diff --git a/.backportrc.json b/.backportrc.json index 1a9f634db4..4d7f463059 100644 --- a/.backportrc.json +++ b/.backportrc.json @@ -2,7 +2,7 @@ "repoOwner": "terrapkg", "repoName": "packages", "resetAuthor": true, - "targetBranchChoices": ["el10", "f41", "f42", "f43", "frawhide"], + "targetBranchChoices": ["frawhide", "f44", "f43", "f42", "el10"], "branchLabelMapping": { "^sync-(.+)$": "$1" } diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 96c9104ef2..965f6f203b 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,16 +1,17 @@ { "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" + "rhaiscript.vscode-rhai", + "1dot75cm.rpmspec", + "hashicorp.hcl", + "redhat.vscode-xml" ] } }, diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml new file mode 100644 index 0000000000..37938e795b --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug.yml @@ -0,0 +1,67 @@ +name: Package Bug Report +description: Report an issue with a package. +title: "[BUG] " +labels: ["bug", "triage"] +#projects: ["octo-org/1", "octo-org/44"] +assignees: + - hamachitan +#type: bug +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to fill out this bug report! + - type: input + id: pkg + attributes: + label: Full Raw Package Name (e.g. anda-0.4.14-1.fcrawhide.x86_64) + description: | + If you report multiple packages, only the main package is needed if applicable, or separate them with spaces otherwise. Obtain the full package name using `rpm -qa pkg-name`. + + **The format MUST BE LITERALLY THE SAME as `anda-0.4.14-1.fc43.x86_64`. Do NOT add anything else, not even backticks.** + placeholder: anda-0.4.14-1.fc43.x86_64 (MUST be under this format, no backticks) + validations: + required: true + - type: dropdown + id: releasever + attributes: + label: Release Version + description: Which version of Terra are you using? + options: + - frawhide + - f44 + - f43 + - f42 + - el10 + default: 1 + - type: textarea + id: description + attributes: + label: Describe the Bug + description: A clear and concise description of what the bug is. Please only report issues with packaging or Terra itself, report upstream bugs to the respective project. + placeholder: A bug happened! + validations: + required: true + - type: textarea + id: repro + attributes: + label: To Reproduce + description: How can the bug be reproduced? + placeholder: | + 1. `dnf install this-package` + 2. run `this-package` + 3. see error + validations: + required: true + - type: textarea + id: expect + attributes: + label: Expected Behavior + description: A clear and concise description of what you expected to happen. + placeholder: Running it should show hello world! + - type: textarea + id: logs + attributes: + label: Relevant Log Output + description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks. + render: shell diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/incident.md similarity index 52% rename from .github/ISSUE_TEMPLATE/bug_report.md rename to .github/ISSUE_TEMPLATE/incident.md index fbc0151853..9a79f26847 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/incident.md @@ -1,14 +1,14 @@ --- -name: Bug report -about: Report an issue with a package (or Terra itself) -title: '[BUG] ' -labels: bug -assignees: '' +name: Incident Report +about: Report an issue with Terra itself +title: '[INCIDENT] ' +labels: incident +assignees: ['madonuko', 'korewaChino', 'lleyton'] --- -**Describe the bug** -A clear and concise description of what the bug is. Please only report issues with packaging or Terra itself, report upstream bugs to the respective project. +**Describe the Incident** +A clear and concise description of what is going on. **If you want to report a problem with a package, please use the Package Bug Report option instead.** **To Reproduce** Steps to reproduce the behavior: @@ -23,7 +23,7 @@ If applicable, add screenshots to help explain your problem. **Affected (please complete the following information):** - Distro [e.g. Fedora] - - Package [e.g. melody, srpm-macros] + - Other relevant environments **Additional context** Add any other context about the problem here. diff --git a/.github/PULL_REQUEST_TEMPLATE/new_package.md b/.github/PULL_REQUEST_TEMPLATE/new_package.md index 83d3347771..85275f746f 100644 --- a/.github/PULL_REQUEST_TEMPLATE/new_package.md +++ b/.github/PULL_REQUEST_TEMPLATE/new_package.md @@ -6,3 +6,10 @@ A clear and concise description of why you want this package. Would this provide **Additional context** Add any other context about the package submission here. Link to any relavent issues. + +**Checklist** +- [] This package is maintained OR there is a valid reason to add it (e.g. python dependency) +- [] I have tested at least the `x86_64` version of the package +- [] I have read through any relevant [Terra](https://developer.fyralabs.com/terra) and [Fedora packaging](https://docs.fedoraproject.org/en-US/packaging-guidelines/) documentation/policies/guidelines +- [] I have made sure there are no security issues with this package to the best of my ability +- [] I have made sure this is not in Fedora (unless adding to the [extras repo](https://developer.fyralabs.com/terra/installing#extras)). diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000000..8c0202ab18 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,8 @@ +version: 2 +updates: + # Maintain GitHub Actions + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" + open-pull-requests-limit: 5 diff --git a/.github/scripts/configure-sccache.js b/.github/scripts/configure-sccache.js new file mode 100644 index 0000000000..bd450d0118 --- /dev/null +++ b/.github/scripts/configure-sccache.js @@ -0,0 +1,180 @@ +// 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 = "/usr/bin/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}`); + } + + // Enable caching + core.exportVariable("RUSTC_WRAPPER", sccachePath); + core.exportVariable("SCCACHE_GHA_ENABLED", "true"); + + // Disable Cargo incremental builds to not interfere with caching + core.exportVariable("CARGO_INCREMENTAL", "false"); + + // 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_BUST_CACHE", "true"); + 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}`); + } +}; diff --git a/.github/scripts/sccache-stats.js b/.github/scripts/sccache-stats.js new file mode 100644 index 0000000000..2fcace5e2c --- /dev/null +++ b/.github/scripts/sccache-stats.js @@ -0,0 +1,121 @@ +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(); +}; diff --git a/.github/workflows/autobuild.yml b/.github/workflows/autobuild.yml index 4e3fab3f60..1eb90aaa12 100644 --- a/.github/workflows/autobuild.yml +++ b/.github/workflows/autobuild.yml @@ -3,6 +3,9 @@ name: Automatically build packages permissions: contents: read + attestations: write + artifact-metadata: write + id-token: write on: push: paths: @@ -30,7 +33,7 @@ jobs: - name: Set workspace as safe run: git config --global --add safe.directory "$GITHUB_WORKSPACE" - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: fetch-depth: 0 - name: Generate build matrix @@ -43,3 +46,93 @@ 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@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 + with: + merge-multiple: true + path: ./artifacts + - name: Generate test catalog + id: 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: Run appstreamcli validate + if: steps.catalog.outcome == 'success' + run: | + if stat output/test.xml.gz &>/dev/null; then + echo "## AppStream MetaInfo Validation" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo '```xml' >> $GITHUB_STEP_SUMMARY + appstreamcli validate output/test.xml.gz >> $GITHUB_STEP_SUMMARY | true + echo "" >> $GITHUB_STEP_SUMMARY + echo '```' >> $GITHUB_STEP_SUMMARY + else + echo "Nothing to do." + fi + + + - name: Export logs + id: export_logs + if: steps.catalog.outcome == 'success' + run: | + if stat output/*.xml.gz &>/dev/null; then + 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 + else + echo "Nothing to do." + fi + + - name: Report Summary + id: report_summary + if: steps.export_logs.outcome == 'success' + run: | + echo "## AppStream Builder Report" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + if stat output/*.xml.gz &>/dev/null; then + 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 || true + echo '```' >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + done + else + echo "No appstream files found." >> $GITHUB_STEP_SUMMARY + fi diff --git a/.github/workflows/bootstrap.yml b/.github/workflows/bootstrap.yml index f5e0bcfeb5..b021a21ba5 100644 --- a/.github/workflows/bootstrap.yml +++ b/.github/workflows/bootstrap.yml @@ -1,6 +1,9 @@ name: Bootstrap Andaman and Subatomic permissions: contents: read + attestations: write + artifact-metadata: write + id-token: write on: workflow_dispatch: @@ -21,7 +24,7 @@ jobs: dnf5 swap -y --setopt=install_weak_deps=False systemd-standalone-sysusers systemd dnf5 install -y --setopt=install_weak_deps=False curl wget git-core openssl-devel cargo podman fuse-overlayfs dnf5-plugins rpmbuild script - - uses: actions/checkout@v4 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: ref: f${{ matrix.version }} fetch-depth: 1 @@ -54,6 +57,9 @@ jobs: - name: Build terra-release run: anda build -D "vendor Terra" -rrpmbuild anda/terra/release/pkg + - name: Build terra-appstream-helper + run: anda build -D "vendor Terra" -D "__python %{__python3}" -rrpmbuild anda/terra/appstream-helper/pkg + - name: Build Subatomic run: anda build -D "vendor Terra" -rrpmbuild anda/tools/buildsys/subatomic/pkg - name: Install Subatomic @@ -76,3 +82,10 @@ jobs: --server https://subatomic.fyralabs.com \ --token ${{ secrets.SUBATOMIC_TOKEN }} \ terra${{ matrix.version }}-source anda-build/rpm/srpm/* + + - name: Attest build provenance + uses: actions/attest-build-provenance@a2bbfa25375fe432b6a289bc6b6cd05ecd0c4c32 # v4.1.0 + with: + subject-path: | + anda-build/rpm/rpms/* + anda-build/rpm/srpm/* diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7e0ff6ed58..1e232af45f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,6 +1,9 @@ name: Manual Builds permissions: contents: read + attestations: write + artifact-metadata: write + id-token: write on: workflow_dispatch: inputs: @@ -29,7 +32,7 @@ jobs: options: --cap-add=SYS_ADMIN --privileged steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: fetch-depth: 0 - name: Setup Git diff --git a/.github/workflows/json-build.yml b/.github/workflows/json-build.yml index 536d2d5d54..479de2b539 100644 --- a/.github/workflows/json-build.yml +++ b/.github/workflows/json-build.yml @@ -1,6 +1,9 @@ name: JSON Build permissions: contents: read + attestations: write + artifact-metadata: write + id-token: write on: workflow_call: inputs: @@ -18,6 +21,11 @@ on: required: false type: string default: "" + bust_cache: + description: "Whether to bust the cache" + required: false + type: boolean + default: false workflow_dispatch: inputs: packages: @@ -37,19 +45,31 @@ jobs: pkg: ${{ fromJson(inputs.packages) }} version: ["rawhide"] fail-fast: false - runs-on: ${{ inputs.custom_builder && inputs.custom_builder || (matrix.pkg.arch == 'aarch64' && matrix.pkg.labels['large']) && 'arm64-lg' || matrix.pkg.arch == 'aarch64' && 'ubuntu-22.04-arm' || matrix.pkg.labels['large'] && format('cirun-x86-64-lg--{0}', github.run_id) || 'ubuntu-22.04' }} + runs-on: ${{ inputs.custom_builder && inputs.custom_builder || (matrix.pkg.arch == 'aarch64' && matrix.pkg.labels['large']) && format('cirun-arm64-lg--{0}', github.run_id) || matrix.pkg.arch == 'aarch64' && 'ubuntu-22.04-arm' || matrix.pkg.labels['large'] && format('cirun-x86-64-lg--{0}', github.run_id) || 'ubuntu-22.04' }} container: image: ghcr.io/terrapkg/builder:f${{ matrix.version }} options: --cap-add=SYS_ADMIN --privileged steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: fetch-depth: 0 - name: Set up git repository run: git config --global --add safe.directory "$GITHUB_WORKSPACE" + - name: Configure sccache + id: sccache + if: ${{ !contains(matrix.pkg.labels.sccache, '0') }} + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 + env: + SCCACHE_GHA_VERSION: ${{ matrix.version }}-${{ matrix.pkg.arch }}-${{ matrix.pkg.pkg }} + SCCACHE_GHA_CACHE_FROM: ${{ matrix.version }}-${{ matrix.pkg.arch }}-${{ matrix.pkg.pkg }} + with: + script: | + const script = require('./.github/scripts/configure-sccache.js') + await script({github, context, core, exec}) + - name: CI Setup Script if: ${{ !contains(matrix.pkg.labels, 'mock') }} run: | @@ -65,7 +85,15 @@ jobs: dnf5 builddep -y ${dir}/*.spec - 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' || '' }} + run: anda build -D "vendor Terra" -D "__python %{__python3}" ${{ matrix.pkg.pkg }} -c terra-${{ matrix.version }}-${{ matrix.pkg.arch }} ${{ !matrix.pkg.labels.mock == '1' && '-rrpmbuild' || '' }} + + - name: Report Cache Summary + if: steps.sccache.outcome == 'success' + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 + with: + script: | + const script = require('./.github/scripts/sccache-stats.js') + await script({github, context, core, exec}) - name: Generating artifact name id: art @@ -74,7 +102,7 @@ jobs: x=${NAME//\//@} echo "name=$x" >> $GITHUB_OUTPUT - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: ${{ steps.art.outputs.name }} compression-level: 0 # The RPMs are already compressed :p @@ -100,6 +128,14 @@ jobs: --token ${{ secrets.SUBATOMIC_TOKEN }} \ terra${{ matrix.version }}${{ matrix.pkg.labels['subrepo'] && '-$subrepo' || '' }}-source anda-build/rpm/srpm/* + - name: Attest build provenance + if: inputs.publish + uses: actions/attest-build-provenance@a2bbfa25375fe432b6a289bc6b6cd05ecd0c4c32 # v4.1.0 + with: + subject-path: | + anda-build/rpm/rpms/* + anda-build/rpm/srpm/* + - name: Notify Madoguchi (Success) if: inputs.publish && success() run: ./.github/workflows/mg.sh true "${{matrix.pkg.pkg}}" "${{matrix.version}}" "${{matrix.pkg.arch}}" "${{github.run_id}}" "${{secrets.MADOGUCHI_JWT}}" "$GITHUB_SHA" diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml new file mode 100644 index 0000000000..e046a46d7f --- /dev/null +++ b/.github/workflows/scorecard.yml @@ -0,0 +1,78 @@ +# This workflow uses actions that are not certified by GitHub. They are provided +# by a third-party and are governed by separate terms of service, privacy +# policy, and support documentation. + +name: Scorecard supply-chain security +on: + # For Branch-Protection check. Only the default branch is supported. See + # https://github.com/ossf/scorecard/blob/main/docs/checks.md#branch-protection + branch_protection_rule: + # To guarantee Maintained check is occasionally updated. See + # https://github.com/ossf/scorecard/blob/main/docs/checks.md#maintained + schedule: + - cron: '43 13 * * 2' + push: + branches: [ "frawhide" ] + +# Declare default permissions as read only. +permissions: read-all + +jobs: + analysis: + name: Scorecard analysis + runs-on: ubuntu-latest + # `publish_results: true` only works when run from the default branch. conditional can be removed if disabled. + if: github.event.repository.default_branch == github.ref_name || github.event_name == 'pull_request' + permissions: + # Needed to upload the results to code-scanning dashboard. + security-events: write + # Needed to publish results and get a badge (see publish_results below). + id-token: write + # Uncomment the permissions below if installing in a private repository. + # contents: read + # actions: read + + steps: + - name: "Checkout code" + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false + + - name: "Run analysis" + uses: ossf/scorecard-action@4eaacf0543bb3f2c246792bd56e8cdeffafb205a # v2.4.3 + with: + results_file: results.sarif + results_format: sarif + # (Optional) "write" PAT token. Uncomment the `repo_token` line below if: + # - you want to enable the Branch-Protection check on a *public* repository, or + # - you are installing Scorecard on a *private* repository + # To create the PAT, follow the steps in https://github.com/ossf/scorecard-action?tab=readme-ov-file#authentication-with-fine-grained-pat-optional. + # repo_token: ${{ secrets.SCORECARD_TOKEN }} + + # Public repositories: + # - Publish results to OpenSSF REST API for easy access by consumers + # - Allows the repository to include the Scorecard badge. + # - See https://github.com/ossf/scorecard-action#publishing-results. + # For private repositories: + # - `publish_results` will always be set to `false`, regardless + # of the value entered here. + publish_results: true + + # (Optional) Uncomment file_mode if you have a .gitattributes with files marked export-ignore + # file_mode: git + + # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF + # format to the repository Actions tab. + - name: "Upload artifact" + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 + with: + name: SARIF file + path: results.sarif + retention-days: 5 + + # Upload the results to GitHub's code scanning dashboard (optional). + # Commenting out will disable upload of results to your repo's Code Scanning dashboard + - name: "Upload to code-scanning" + uses: github/codeql-action/upload-sarif@e46ed2cbd01164d986452f91f178727624ae40d7 # v4 + with: + sarif_file: results.sarif diff --git a/.github/workflows/sync.yml b/.github/workflows/sync.yml index f061efc1d3..6da91e59e6 100644 --- a/.github/workflows/sync.yml +++ b/.github/workflows/sync.yml @@ -1,13 +1,15 @@ name: Automatic backport/sync action permissions: - contents: write - pull-requests: write + contents: read on: pull_request_target: types: ["labeled", "closed"] jobs: backport: + permissions: + contents: write + pull-requests: write name: Backport/sync PR runs-on: ubuntu-22.04 if: github.event.pull_request.merged @@ -25,7 +27,7 @@ jobs: git config --global commit.gpgsign true - name: Backport Action - uses: sorenlouv/backport-github-action@v9.5.1 + uses: sorenlouv/backport-github-action@85813678d776774a19ec5af56bd3a04305946f8a # v12.0.0 with: github_token: ${{ secrets.RABONEKO_BACKPORT_GITHUB_TOKEN }} auto_backport_label_prefix: sync- diff --git a/.github/workflows/update-branch.yml b/.github/workflows/update-branch.yml index 2a43172b4e..47b7ef26c1 100644 --- a/.github/workflows/update-branch.yml +++ b/.github/workflows/update-branch.yml @@ -1,6 +1,6 @@ name: Update per branch permissions: - contents: write + contents: read on: schedule: - cron: "*/30 * * * *" @@ -8,21 +8,23 @@ on: jobs: autoupdate: + permissions: + contents: write runs-on: ubuntu-24.04-arm strategy: matrix: branch: - frawhide - - f41 - - f42 + - f44 - f43 + - f42 - el10 container: image: ghcr.io/terrapkg/builder:frawhide options: --cap-add=SYS_ADMIN --privileged steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: ref: ${{ matrix.branch }} fetch-depth: 0 diff --git a/.github/workflows/update-comps.yml b/.github/workflows/update-comps.yml index 3c026bb3b8..f9f0dab48e 100644 --- a/.github/workflows/update-comps.yml +++ b/.github/workflows/update-comps.yml @@ -6,9 +6,9 @@ on: push: branches: - frawhide + - f44 - f43 - f42 - - f41 - el10 paths: - comps.xml @@ -20,7 +20,7 @@ jobs: container: image: ghcr.io/terrapkg/builder:frawhide steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Push to subatomic run: | branch=${{ github.ref_name }} diff --git a/.github/workflows/update-nightly.yml b/.github/workflows/update-nightly.yml index a9d3bc9e15..0e8d987fc8 100644 --- a/.github/workflows/update-nightly.yml +++ b/.github/workflows/update-nightly.yml @@ -1,6 +1,6 @@ name: Nightly Update permissions: - contents: write + contents: read on: schedule: - cron: "0 0 * * *" @@ -8,13 +8,15 @@ on: jobs: autoupdate: + permissions: + contents: write runs-on: ubuntu-24.04-arm container: image: ghcr.io/terrapkg/builder:frawhide options: --cap-add=SYS_ADMIN --privileged steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: fetch-depth: 0 ssh-key: ${{ secrets.SSH_AUTHENTICATION_KEY }} @@ -48,9 +50,9 @@ jobs: git add anda git commit -S -a -m "$msg" } - copy_over f41 || true - copy_over f42 || true + copy_over f44 || true copy_over f43 || true + copy_over f42 || true copy_over el10 || true git push -u origin --all fi diff --git a/.github/workflows/update-weekly.yml b/.github/workflows/update-weekly.yml index 379a6e516e..4a5c328231 100644 --- a/.github/workflows/update-weekly.yml +++ b/.github/workflows/update-weekly.yml @@ -1,6 +1,6 @@ name: Weekly Update permissions: - contents: write + contents: read on: schedule: - cron: "0 0 * * *" @@ -8,13 +8,15 @@ on: jobs: autoupdate: + permissions: + contents: write runs-on: ubuntu-24.04-arm container: image: ghcr.io/terrapkg/builder:frawhide options: --cap-add=SYS_ADMIN --privileged steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: fetch-depth: 0 ssh-key: ${{ secrets.SSH_AUTHENTICATION_KEY }} @@ -48,9 +50,9 @@ jobs: git add anda git commit -S -a -m "$msg" } - copy_over f41 || true - copy_over f42 || true + copy_over f44 || true copy_over f43 || true + copy_over f42 || true copy_over el10 || true git push -u origin --all fi diff --git a/.github/workflows/update.yml b/.github/workflows/update.yml index 1e9a115dba..24bddfa103 100644 --- a/.github/workflows/update.yml +++ b/.github/workflows/update.yml @@ -1,6 +1,6 @@ name: Update permissions: - contents: write + contents: read on: schedule: - cron: "*/10 * * * *" @@ -8,13 +8,15 @@ on: jobs: autoupdate: + permissions: + contents: write runs-on: ubuntu-24.04-arm container: image: ghcr.io/terrapkg/builder:frawhide options: --cap-add=SYS_ADMIN --privileged steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: fetch-depth: 0 ssh-key: ${{ secrets.SSH_AUTHENTICATION_KEY }} @@ -48,9 +50,9 @@ jobs: git add anda git commit -S -a -m "$msg" } - copy_over f41 || true - copy_over f42 || true + copy_over f44 || true copy_over f43 || true + copy_over f42 || true copy_over el10 || true git push -u origin --all fi diff --git a/.gitignore b/.gitignore index 44eb52965d..9161afd3f9 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,7 @@ anda-build/ **/*.tar* **/*.crate **/*.zip +**/*.minisig +**/*.nupkg +**/*.rpm +**/*.kate-swp diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 83262841d5..4f361bcb83 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,5 +1,8 @@ { "recommendations": [ - "rhaiscript.vscode-rhai" + "rhaiscript.vscode-rhai", + "1dot75cm.rpmspec", + "hashicorp.hcl", + "redhat.vscode-xml" ] } diff --git a/.zed/settings.jsonc b/.zed/settings.jsonc new file mode 100644 index 0000000000..7d4b82e90f --- /dev/null +++ b/.zed/settings.jsonc @@ -0,0 +1,9 @@ +// There is no HCL extension, but the Terraform extension grants HCL support +{ + "auto_install_extensions": { + "RPM Spec": true, + "XML": true, + "rhai": true, + "Terraform": true + } +} diff --git a/README.md b/README.md index 2a67929ae3..2c71d59f8c 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,13 @@ # Terra Sources +[![Repository status](https://repology.org/badge/repository-big/terra_rawhide.svg?header=Terra+Rawhide)](https://repology.org/repository/terra_rawhide) +[![OpenSSF Scorecard](https://api.scorecard.dev/projects/github.com/terrapkg/packages/badge)](https://scorecard.dev/viewer/?uri=github.com/terrapkg/packages) + + Terra is a rolling-release Fedora repository for all the software you need. With Terra, you can install the latest packages knowing that quality and security are assured. -See the introduction at [our website](https://terra.fyralabs.com). +See the introduction at [our website](https://terrapkg.com). This monorepo contains the package manifests for all packages in Terra. @@ -23,8 +27,14 @@ If you are using immutable/atomic editions of Fedora, run the following commands curl -fsSL https://github.com/terrapkg/subatomic-repos/raw/main/terra.repo | pkexec tee /etc/yum.repos.d/terra.repo sudo rpm-ostree install terra-release ``` +#### Subrepos -Optionally, you can install `terra-release-extra` to use the Extras repository. This also installs the Nvidia, and Mesa streams but does not enable them. +On Fedora, you can optionally install the Terra subrepos. Extra care and caution may be needed as some of these packages may conflict with other repositories such as RPM Fusion. + +- Install `terra-release-extras` to enable the Extras subrepo. This repo contains packages which conflict with Fedora packages in some way, such as being a patched version of the same package. +- Install `terra-release-mesa` to install the Mesa subrepo which contains a patched and codec complete Mesa. +- Install `terra-release-nvidia` to install the NVIDIA subrepo which contains NVIDIA drivers. +- Install `terra-release-multimedia` for multimedia packages in Terra. This repository is currently considered a work in progress. ### Enterprise Linux (EL) @@ -42,13 +52,21 @@ 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) +- [Guidelines](https://developer.fyralabs.com/terra/guidelines) + ## Documentation Our documentation can be found on our [Devdocs](https://developer.fyralabs.com/terra/). -## pkgs.org +## Searching Packages -pkgs.org provides a list of the packages available in the main stream: https://fedora.pkgs.org/rawhide/terra/ +[pkgs.org](https://fedora.pkgs.org/rawhide/terra/) and [Repology](https://repology.org/) provide a list of the packages available in Terra. ## Questions? @@ -56,4 +74,4 @@ Feel free to reach out by [joining our community](https://wiki.ultramarine-linux - [Contribution Guide](https://developer.fyralabs.com/terra/contributing) - [FAQ](https://developer.fyralabs.com/terra/faq) -- [Policy](https://developer.fyralabs.com/terra/policy) +- [Guidelines](https://developer.fyralabs.com/terra/guidelines) diff --git a/anda/apps/anki-bin/anki-bin.spec b/anda/apps/anki-bin/anki-bin.spec index 029564fa6d..a00300aee0 100644 --- a/anda/apps/anki-bin/anki-bin.spec +++ b/anda/apps/anki-bin/anki-bin.spec @@ -1,10 +1,10 @@ -%global xurl https://files.pythonhosted.org/packages/22/1c/37fe0377fd5fbfe27b17db20679d76aeb1cef7be3ddfb22e24c0bb62cf96/anki-25.9.2-cp39-abi3-manylinux_2_36_x86_64.whl -%global aurl https://files.pythonhosted.org/packages/c1/49/484a786ea0e1b3659de9478f2546368c5970da60a1cd403cec1fa2f81d65/anki-25.9.2-cp39-abi3-manylinux_2_36_aarch64.whl -%global qurl https://files.pythonhosted.org/packages/e5/d4/26016857a780290264866e1818b1a408106c379906fbd186a0aa26eb1054/aqt-25.9.2-py3-none-any.whl +%global xurl https://files.pythonhosted.org/packages/29/17/68debda9fa3a8234c8a345256254665112180bced608354f7d1361647580/anki-25.9.3-cp39-abi3-manylinux_2_36_x86_64.whl +%global aurl https://files.pythonhosted.org/packages/f9/c7/5d7351f09deed1e294724cfde077d5b2a0c91659b984d05cec291417e806/anki-25.9.3-cp39-abi3-manylinux_2_36_aarch64.whl +%global qurl https://files.pythonhosted.org/packages/54/a3/d5d68ed478b02d44dec3a4a7ba0d671be271dd2203d8ba1d49318b2221ef/aqt-25.9.3-py3-none-any.whl Name: anki-bin -Version: 25.9.2 -Release: 1%?dist +Version: 25.9.3 +Release: 1%{?dist} Summary: Flashcard program for using space repetition learning (Installed with wheel) License: AGPL-3.0-or-later AND GPL-3.0-or-later AND LGPL-3.0-or-later AND MIT AND BSD-3-Clause AND CC-BY-SA-3.0 AND CC-BY-3.0 AND Apache-2.0 AND CC-BY-2.5 URL: https://apps.ankiweb.net/ @@ -74,5 +74,5 @@ rm -rf %buildroot%_bindir/{distro,flask,jsonschema,markdown_py,normalizer,send2t * Fri Nov 10 2023 hazel-bunny - 23.10-2 - Add python3-orjson and mpv as dependencies -* Wed Jan 11 2023 windowsboy111 - 2.1.60 +* Wed Jan 11 2023 madonuko - 2.1.60 - Initial package diff --git a/anda/apps/anki-qt5/anki-qt5.spec b/anda/apps/anki-qt5/anki-qt5.spec index 39dff5b184..8860d3ce77 100644 --- a/anda/apps/anki-qt5/anki-qt5.spec +++ b/anda/apps/anki-qt5/anki-qt5.spec @@ -1,6 +1,6 @@ Name: anki-qt5 -Version: 25.09.2 -Release: 1%?dist +Version: 25.09.3 +Release: 1%{?dist} Summary: Flashcard program for using space repetition learning License: AGPL-3.0-or-later AND GPL-3.0-or-later AND LGPL-3.0-or-later AND MIT AND BSD-3-Clause AND CC-BY-SA-3.0 AND CC-BY-3.0 AND Apache-2.0 AND CC-BY-2.5 URL: https://apps.ankiweb.net/ @@ -62,5 +62,5 @@ find %{buildroot} -iname direct_url.json | xargs -r rm -rf /usr/lib64/python*/site-packages/anki-%{version}.dist-info/ %changelog -* Tue Jan 3 2023 windowsboy111 - 2.1.60 +* Tue Jan 3 2023 madonuko - 2.1.60 - Initial package diff --git a/anda/apps/anki/anki.spec b/anda/apps/anki/anki.spec index 8d29ac2e71..8e2069c31b 100644 --- a/anda/apps/anki/anki.spec +++ b/anda/apps/anki/anki.spec @@ -1,12 +1,13 @@ Name: anki -Version: 25.09.2 -Release: 1%?dist +Version: 25.09.3 +Release: 1%{?dist} Summary: Flashcard program for using space repetition learning License: AGPL-3.0-or-later AND GPL-3.0-or-later AND LGPL-3.0-or-later AND MIT AND BSD-3-Clause AND CC-BY-SA-3.0 AND CC-BY-3.0 AND Apache-2.0 AND CC-BY-2.5 URL: https://apps.ankiweb.net/ +Packager: madonuko BuildRequires: python3-devel python3-setuptools python3-waitress python3-protobuf python3-pysocks rpm_macro(fdupes) BuildRequires: python3-distro python3-flask-cors python3-jsonschema python3-send2trash python3-certifi python3-simplejson -BuildRequires: python3-installer make mold cargo git rsync ninja-build libxcrypt-compat nodejs python3.9 python-unversioned-command gcc python3-pyqt6-webengine +BuildRequires: python3-installer make cargo git rsync ninja-build libxcrypt-compat nodejs python3.9 python-unversioned-command gcc python3-pyqt6-webengine Requires: hicolor-icon-theme python3-sqlalchemy python3-simplejson python3-matplotlib python3-decorator python3-markdown python3-send2trash Requires: python3-requests python3-pygame python3-beautifulsoup4 python3-httplib2 python3-pyaudio python3-jsonschema sox libxcrypt-compat python3-pyqt6-webengine Recommends: (mpv or mpv-nightly) @@ -20,9 +21,7 @@ phrases in a foreign language) as easily, quickly and efficiently as possible. Anki is based on a theory called spaced repetition. %prep -rm -rf * -git clone https://github.com/ankitects/anki . -git checkout %{version} +%git_clone https://github.com/ankitects/anki %patch 0 -p1 # See https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=anki @@ -31,7 +30,7 @@ git checkout %{version} export RELEASE=1 export PYTHONPATH=%_libdir/python3/dist-packages cargo update -mold -run ./tools/build +./tools/build %install @@ -68,5 +67,5 @@ chmod 755 %{buildroot}%{_bindir}/anki %changelog -* Tue Jan 3 2023 windowsboy111 - 2.1.60 +* Tue Jan 3 2023 madonuko - 2.1.60 - Initial package diff --git a/anda/apps/audacity-freeworld/audacity-freeworld.spec b/anda/apps/audacity-freeworld/audacity-freeworld.spec index 2fca654d4a..aebd30e47e 100644 --- a/anda/apps/audacity-freeworld/audacity-freeworld.spec +++ b/anda/apps/audacity-freeworld/audacity-freeworld.spec @@ -1,7 +1,7 @@ %global __requires_exclude ^lib-.*.so %global __provides_exclude ^lib-.*.so -%global ver Audacity-3.7.5 +%global ver Audacity-3.7.7 %global sanitized_ver %(echo %{ver} | sed 's/Audacity-//g') Name: audacity-freeworld diff --git a/anda/apps/auto-cpufreq/anda.hcl b/anda/apps/auto-cpufreq/anda.hcl new file mode 100644 index 0000000000..850557c4c1 --- /dev/null +++ b/anda/apps/auto-cpufreq/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "auto-cpufreq.spec" + } +} diff --git a/anda/apps/auto-cpufreq/auto-cpufreq.spec b/anda/apps/auto-cpufreq/auto-cpufreq.spec new file mode 100644 index 0000000000..501b88edf3 --- /dev/null +++ b/anda/apps/auto-cpufreq/auto-cpufreq.spec @@ -0,0 +1,87 @@ +%global _desc Automatic CPU speed & power optimizer for Linux. + +Name: python-auto-cpufreq +Version: 3.0.0 +Release: 2%?dist +Summary: Automatic CPU speed & power optimizer for Linux +License: LGPL-3.0-or-later +URL: https://foolcontrol.org/?p=4603 +Source0: https://github.com/AdnanHodzic/auto-cpufreq/archive/refs/tags/v%{version}.tar.gz +Patch0: prevent-install-and-copy.patch + +BuildRequires: python3-devel +BuildRequires: python3-wheel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +BuildRequires: python3-installer +BuildRequires: systemd-rpm-macros +BuildRequires: python3-poetry-core +BuildRequires: python3-poetry-dynamic-versioning +BuildArch: noarch + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-auto-cpufreq +Summary: %{summary} +%{?python_provide:%python_provide python3-auto-cpufreq} + +%description -n python3-auto-cpufreq +%_desc + +%prep +%git_clone https://github.com/AdnanHodzic/auto-cpufreq.git %{version} +%patch -P0 -p1 + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files auto_cpufreq +mkdir -p %{buildroot}%{_datadir}/polkit-1/actions/ +install -Dm644 scripts/org.auto-cpufreq.pkexec.policy %{buildroot}%{_datadir}/polkit-1/actions/ +install -Dm644 images/icon.png %{buildroot}%{_hicolordir}/512x512/apps/auto-cpufreq.png +install -Dm644 images/icon.png %{buildroot}%{_datadir}/%{name}/icon.png + +mkdir -p %{buildroot}%{_datadir}/auto-cpufreq/scripts/ +mkdir -p %{buildroot}/opt/auto-cpufreq/ +mkdir -p %{buildroot}%{_appsdir}/ +mkdir -p %{buildroot}%{_unitdir}/ + +install -Dm755 scripts/auto-cpufreq-install.sh %{buildroot}%{_datadir}/auto-cpufreq/scripts/ +install -Dm755 scripts/auto-cpufreq-remove.sh %{buildroot}%{_datadir}/auto-cpufreq/scripts/ +install -Dm644 scripts/auto-cpufreq.service %{buildroot}%{_unitdir}/auto-cpufreq.service +install -Dm755 scripts/cpufreqctl.sh %{buildroot}%{_datadir}/auto-cpufreq/scripts/ +install -Dm644 scripts/style.css %{buildroot}%{_datadir}/auto-cpufreq/scripts/ +install -Dm644 scripts/auto-cpufreq-gtk.desktop %{buildroot}%{_appsdir}/ + +%post +%systemd_post auto-cpufreq.service + +%preun +%systemd_preun auto-cpufreq.service + +%postun +%systemd_postun_with_restart auto-cpufreq.service + +%files -n python3-auto-cpufreq -f %{pyproject_files} +%doc README.md +%license LICENSE +%{_bindir}/auto-cpufreq +%{_bindir}/auto-cpufreq-gtk +%{_datadir}/polkit-1/actions/org.auto-cpufreq.pkexec.policy +%{_hicolordir}/512x512/apps/auto-cpufreq.png +%{_datadir}/%{name}/icon.png +%{_unitdir}/auto-cpufreq.service +%{_datadir}/auto-cpufreq/scripts/ +%{_appsdir}/auto-cpufreq-gtk.desktop + +%changelog +* Tue Apr 07 2026 Owen Zimmerman +- Add install fix patch + +* Sun Apr 05 2026 Owen Zimmerman +- Initial commit diff --git a/anda/apps/auto-cpufreq/prevent-install-and-copy.patch b/anda/apps/auto-cpufreq/prevent-install-and-copy.patch new file mode 100644 index 0000000000..776b61452b --- /dev/null +++ b/anda/apps/auto-cpufreq/prevent-install-and-copy.patch @@ -0,0 +1,101 @@ +diff --git a/auto_cpufreq/core.py b/auto_cpufreq/core.py +index f03e7de..2dff5fb 100755 +--- a/auto_cpufreq/core.py ++++ b/auto_cpufreq/core.py +@@ -277,19 +277,12 @@ def get_current_gov(): + ) + + def cpufreqctl(): +- """ +- deploy cpufreqctl.auto-cpufreq script +- """ +- if not (IS_INSTALLED_WITH_SNAP or os.path.isfile("/usr/local/bin/cpufreqctl.auto-cpufreq")): +- copy(SCRIPTS_DIR / "cpufreqctl.sh", "/usr/local/bin/cpufreqctl.auto-cpufreq") +- call(["chmod", "a+x", "/usr/local/bin/cpufreqctl.auto-cpufreq"]) ++ # scripts are already in the correct place ++ pass + + def cpufreqctl_restore(): +- """ +- remove cpufreqctl.auto-cpufreq script +- """ +- if not IS_INSTALLED_WITH_SNAP and os.path.isfile("/usr/local/bin/cpufreqctl.auto-cpufreq"): +- os.remove("/usr/local/bin/cpufreqctl.auto-cpufreq") ++ #no need to restore ++ pass + + def footer(l=79): print("\n" + "-" * l + "\n") + +@@ -307,31 +300,8 @@ def remove_complete_msg(): + footer() + + def deploy_daemon(): +- print("\n" + "-" * 21 + " Deploying auto-cpufreq as a daemon " + "-" * 22 + "\n") +- +- cpufreqctl() # deploy cpufreqctl script func call +- +- bluetooth_disable() # turn off bluetooth on boot +- +- auto_cpufreq_stats_path.touch(exist_ok=True) +- +- print("\n* Deploy auto-cpufreq install script") +- copy(SCRIPTS_DIR / "auto-cpufreq-install.sh", "/usr/local/bin/auto-cpufreq-install") +- call(["chmod", "a+x", "/usr/local/bin/auto-cpufreq-install"]) +- +- print("\n* Deploy auto-cpufreq remove script") +- copy(SCRIPTS_DIR / "auto-cpufreq-remove.sh", "/usr/local/bin/auto-cpufreq-remove") +- call(["chmod", "a+x", "/usr/local/bin/auto-cpufreq-remove"]) +- +- # output warning if gnome power profile is running +- gnome_power_detect_install() +- gnome_power_svc_disable() +- +- tuned_svc_disable() +- +- tlp_service_detect() # output warning if TLP service is detected +- +- call("/usr/local/bin/auto-cpufreq-install", shell=True) ++ # prevent needless copying and system changes ++ pass + + def deploy_daemon_performance(): + print("\n" + "-" * 21 + " Deploying auto-cpufreq as a daemon (performance) " + "-" * 22 + "\n") +@@ -363,37 +333,7 @@ def deploy_daemon_performance(): + + call("/usr/local/bin/auto-cpufreq-install", shell=True) + +-def remove_daemon(): +- # check if auto-cpufreq is installed +- if not os.path.exists("/usr/local/bin/auto-cpufreq-remove"): +- print("\nauto-cpufreq daemon is not installed.\n") +- sys.exit(1) +- +- print("\n" + "-" * 21 + " Removing auto-cpufreq daemon " + "-" * 22 + "\n") +- +- bluetooth_enable() # turn on bluetooth on boot +- +- # output warning if gnome power profile is stopped +- gnome_power_rm_reminder() +- gnome_power_svc_enable() +- +- tuned_svc_enable() +- +- # run auto-cpufreq daemon remove script +- call("/usr/local/bin/auto-cpufreq-remove", shell=True) +- +- # remove auto-cpufreq-remove +- os.remove("/usr/local/bin/auto-cpufreq-remove") +- +- # delete override pickle if it exists +- if os.path.exists(governor_override_state): os.remove(governor_override_state) +- +- # delete stats file +- if auto_cpufreq_stats_path.exists(): +- if auto_cpufreq_stats_file is not None: auto_cpufreq_stats_file.close() +- auto_cpufreq_stats_path.unlink() +- +- cpufreqctl_restore() # restore original cpufrectl script ++def remove_daemon(): pass + + def gov_check(): + for gov in AVAILABLE_GOVERNORS: diff --git a/anda/apps/auto-cpufreq/update.rhai b/anda/apps/auto-cpufreq/update.rhai new file mode 100644 index 0000000000..46dee26f1d --- /dev/null +++ b/anda/apps/auto-cpufreq/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("AdnanHodzic/auto-cpufreq")); diff --git a/anda/apps/bazzite-portal/anda.hcl b/anda/apps/bazzite-portal/anda.hcl new file mode 100644 index 0000000000..61c3d4d139 --- /dev/null +++ b/anda/apps/bazzite-portal/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "bazzite-portal.spec" + } +} \ No newline at end of file diff --git a/anda/apps/bazzite-portal/bazzite-portal.spec b/anda/apps/bazzite-portal/bazzite-portal.spec new file mode 100644 index 0000000000..82ace48145 --- /dev/null +++ b/anda/apps/bazzite-portal/bazzite-portal.spec @@ -0,0 +1,42 @@ +Name: bazzite-portal +Version: 0.2.2 +Release: 1%{?dist} +Summary: Bazzite Portal is a tabbed frontend for curated script execution, with a focus on distro specific QOL shortcuts +URL: https://github.com/ublue-os/yafti-gtk +Source0: https://github.com/ublue-os/yafti-gtk/archive/refs/tags/v%{version}.tar.gz +License: GPL-3.0-only +Requires: python3-gobject +Requires: python3-PyYAML +Requires: gtk4 +Provides: Bazzite-Portal +BuildArch: noarch +Packager: Zacharias Xenakis + +%description +%{summary}. + +%prep +%autosetup -n yafti-gtk-%{version} + +%build + +%install +install -Dm 755 yafti_gtk.py %{buildroot}%{_bindir}/yafti_gtk.py +install -Dm 644 io.github.ublue_os.yafti_gtk.desktop %{buildroot}%{_appsdir}/io.github.ublue_os.yafti_gtk.desktop +install -Dm 644 portal.svg %{buildroot}%{_scalableiconsdir}/io.github.ublue_os.yafti_gtk.svg +install -Dm 644 io.github.ublue_os.yafti_gtk.metainfo.xml %{buildroot}%{_metainfodir}/io.github.ublue_os.yafti_gtk.metainfo.xml + +%files +%doc README.md +%license LICENSE +%{_bindir}/yafti_gtk.py +%{_appsdir}/io.github.ublue_os.yafti_gtk.desktop +%{_scalableiconsdir}/io.github.ublue_os.yafti_gtk.svg +%{_metainfodir}/io.github.ublue_os.yafti_gtk.metainfo.xml + +%changelog +* Sun Apr 19 2026 Xarishark +- Upgraded to GTK4 + +* Wed Jan 28 2026 Xarishark +- Initial commit diff --git a/anda/apps/bazzite-portal/update.rhai b/anda/apps/bazzite-portal/update.rhai new file mode 100644 index 0000000000..22f4c05b3c --- /dev/null +++ b/anda/apps/bazzite-portal/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("ublue-os/yafti-gtk")); \ No newline at end of file diff --git a/anda/apps/bitwarden/cli.bin/bitwarden-cli.bin.spec b/anda/apps/bitwarden/cli.bin/bitwarden-cli.bin.spec index ebb4c14f37..ee5ef79f33 100644 --- a/anda/apps/bitwarden/cli.bin/bitwarden-cli.bin.spec +++ b/anda/apps/bitwarden/cli.bin/bitwarden-cli.bin.spec @@ -1,6 +1,6 @@ Name: bitwarden-cli.bin -Version: 2025.10.0 -Release: 1%?dist +Version: 2026.4.1 +Release: 1%{?dist} Summary: Bitwarden command-line client License: GPL-3.0-only URL: https://bitwarden.com diff --git a/anda/apps/bitwarden/cli/bitwarden-cli.spec b/anda/apps/bitwarden/cli/bitwarden-cli.spec index a8dcbb5fff..a32c0bd6b9 100644 --- a/anda/apps/bitwarden/cli/bitwarden-cli.spec +++ b/anda/apps/bitwarden/cli/bitwarden-cli.spec @@ -6,8 +6,8 @@ %endif Name: bitwarden-cli -Version: 2025.10.0 -Release: 1%?dist +Version: 2026.4.1 +Release: 1%{?dist} Summary: Bitwarden command-line client License: GPL-3.0-only URL: https://bitwarden.com diff --git a/anda/apps/chdig/anda.hcl b/anda/apps/chdig/anda.hcl new file mode 100644 index 0000000000..3075a01453 --- /dev/null +++ b/anda/apps/chdig/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "chdig.spec" + } +} diff --git a/anda/apps/chdig/chdig.spec b/anda/apps/chdig/chdig.spec new file mode 100644 index 0000000000..d61626ce29 --- /dev/null +++ b/anda/apps/chdig/chdig.spec @@ -0,0 +1,35 @@ +%undefine __brp_mangle_shebangs + +Name: chdig +Version: 26.4.3 +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 +- Intial Commit diff --git a/anda/apps/chdig/update.rhai b/anda/apps/chdig/update.rhai new file mode 100644 index 0000000000..b5b761f772 --- /dev/null +++ b/anda/apps/chdig/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("azat/chdig")); diff --git a/anda/apps/chrultrabook-tools/anda.hcl b/anda/apps/chrultrabook-tools/anda.hcl new file mode 100644 index 0000000000..94b1962d01 --- /dev/null +++ b/anda/apps/chrultrabook-tools/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "chrultrabook-tools.spec" + } +} diff --git a/anda/apps/chrultrabook-tools/chrultrabook-tools.spec b/anda/apps/chrultrabook-tools/chrultrabook-tools.spec new file mode 100644 index 0000000000..87a4b6d203 --- /dev/null +++ b/anda/apps/chrultrabook-tools/chrultrabook-tools.spec @@ -0,0 +1,74 @@ +%undefine __brp_mangle_shebangs + +Name: chrultrabook-tools +Version: 3.1.6 +Release: 1%{?dist} +Summary: User-friendly configuration utility for Chromebooks running an alternate OS +URL: https://github.com/death7654/Chrultrabook-Tools +Source0: %url/archive/refs/tags/%version.tar.gz +License: GPL-3.0-only AND MPL-2.0 AND MIT-0 AND (CC0-1.0 OR MIT-0 OR Apache-2.0) AND (CC0-1.0 OR Apache-2.0) AND BSL-1.0 AND BlueOak-1.0.0 AND CC0-1.0 AND (BSD-3-Clause OR Apache-2.0) AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND BSD-2-Clause AND ISC AND MIT AND (Apache-2.0 OR MIT) AND BSD-3-Clause AND NCSA AND Unicode-3.0 AND (0BSD OR MIT OR Apache-2.0) AND Apache-2.0 AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR ISC OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND (Unlicense OR MIT) AND Zlib AND (Zlib OR Apache-2.0 OR MIT) AND (Apache-2.0/MIT) AND CDLA-Permissive-2.0 AND (MIT OR Zlib OR Apache-2.0) AND (MIT OR Apache-2.0 OR LGPL-2.1-or-later) AND (MIT OR Apache-2.0 OR Zlib) AND (MIT OR Apache-2.0 OR BSD-1-Clause) AND Unlicense + +BuildRequires: cargo +BuildRequires: glib2 +BuildRequires: glib2-devel +BuildRequires: gtk3 +BuildRequires: gtk3-devel +BuildRequires: javascriptcoregtk4.1 +BuildRequires: javascriptcoregtk4.1-devel +BuildRequires: libsoup3 +BuildRequires: libsoup3-devel +BuildRequires: libappindicator-gtk3 +BuildRequires: libappindicator-devel +BuildRequires: gstreamer1 +BuildRequires: gstreamer1-devel +BuildRequires: patchelf +BuildRequires: libstdc++-static +BuildRequires: libxdo-devel +BuildRequires: anda-srpm-macros +BuildRequires: rustc +BuildRequires: %{tauri_buildrequires -a} +# This may seem weird, but https://github.com/nodejs/node/issues/51752#issuecomment-2970163641 +BuildRequires: nodejs-full-i18n + +Requires: chromium-ectool +Requires: coreboot-utils-cbmem +Requires: libayatana-appindicator-gtk3 +Requires: libayatana-ido-gtk3 +Requires: libayatana-indicator-gtk3 + +Packager: Owen Zimmerman owen@fyralabs.com + +%description +%summary. + +%prep +%autosetup -n Chrultrabook-Tools-%version +%tauri_prep + +%build +%npm_build -r build -B + +%install +%tauri_install +install -Dm755 src-tauri/linux/chrultrabook-tools-root %{buildroot}%{_bindir}/chrultrabook-tools-root +install -Dm644 src-tauri/linux/chrultrabook-tools.desktop %{buildroot}%{_appsdir}/chrultrabook-tools.desktop +install -Dm644 src-tauri/icons/128x128.png %{buildroot}%{_hicolordir}/128x128/apps/chrultrabook-tools.png +# Not matching, but upstream does it this way. Working with upstream to correct this issue. +install -Dm644 src-tauri/icons/128x128@2x.png %{buildroot}%{_hicolordir}/256x256@2/apps/chrultrabook-tools.png +install -Dm644 src-tauri/icons/32x32.png %{buildroot}%{_hicolordir}/32x32/apps/chrultrabook-tools.png +install -Dm644 src-tauri/linux/com.chrultrabook.tools.policy %{buildroot}%{_datadir}/polkit-1/actions/com.chrultrabook.tools.policy +%{tauri_cargo_license} > LICENSE.dependencies + +%files +%doc README.md +%license LICENSE +%license LICENSE.dependencies +%{_bindir}/chrultrabook-tools +%{_bindir}/chrultrabook-tools-root +%{_appsdir}/chrultrabook-tools.desktop +%{_hicolordir}/*x*/apps/chrultrabook-tools.png +%{_datadir}/polkit-1/actions/com.chrultrabook.tools.policy + +%changelog +* Mon Jan 19 2026 Owen Zimmerman +- Initial commit diff --git a/anda/apps/chrultrabook-tools/update.rhai b/anda/apps/chrultrabook-tools/update.rhai new file mode 100644 index 0000000000..52a14d7575 --- /dev/null +++ b/anda/apps/chrultrabook-tools/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("death7654/Chrultrabook-Tools")); diff --git a/anda/apps/coolercontrol/coolercontrol.spec b/anda/apps/coolercontrol/coolercontrol.spec index 70cfd8d169..1a07a369c5 100644 --- a/anda/apps/coolercontrol/coolercontrol.spec +++ b/anda/apps/coolercontrol/coolercontrol.spec @@ -8,55 +8,49 @@ for background device management, as well as a GUI to expertly customize your se %global __brp_mangle_shebangs %{nil} Name: coolercontrol -Version: 3.0.1 -Release: 1%?dist +Version: 4.2.1 +Release: 1%{?dist} Summary: Cooling device control for Linux +ExclusiveArch: x86_64 aarch64 License: GPL-3.0-or-later URL: https://gitlab.com/coolercontrol/coolercontrol -Source0: %url/-/archive/%version/coolercontrol-%version.tar.gz +Source0: %url/-/archive/%version/coolercontrol-%version.tar.gz Packager: madonuko -Provides: coolercontrol-ui -Provides: coolercontrol-gui Requires: hicolor-icon-theme -Requires: webkit2gtk4.1 -Requires: libappindicator-gtk3 -Requires: coolercontrold -BuildRequires: nodejs-npm libdrm-devel curl wget file mold -BuildRequires: systemd-rpm-macros anda-srpm-macros cargo >= 1.75.0 cargo-rpm-macros -BuildRequires: binutils bison cmake flex gcc gcc-c++ libtool strace -BuildRequires: libappstream-glib +Requires: coolercontrold = %{version} +BuildRequires: pkgconfig(appstream-glib) BuildRequires: desktop-file-utils +BuildRequires: make +BuildRequires: cmake +BuildRequires: autoconf automake gcc gcc-c++ BuildRequires: cmake(Qt6) +BuildRequires: cmake(Qt6WebEngineCore) BuildRequires: cmake(Qt6WebEngineWidgets) +BuildRequires: cmake(Qt6WebChannel) %description %_desc -%package liqctld -Summary: CoolerControl daemon for interacting with liquidctl devices on a system level -Requires: coolercontrold -BuildRequires: python3-devel python3-wheel python3-liquidctl python3-setproctitle python3-fastapi python3-uvicorn python3-pip -%description liqctld %_desc -coolercontrol-liqctld is a CoolerControl daemon for interacting with liquidctl devices on a system level, and is -installed as the coolercontrol-liqctld application. Its main purpose is to wrap the underlying -liquidctl library providing an API interface that the main coolercontrol daemon interacts with. -It also enables parallel device communication and access to specific device properties. - %package -n coolercontrold Summary: Monitor and control your cooling devices. -Requires: coolercontrol-liqctld -BuildRequires: pkgconfig(webkit2gtk-4.1) pkgconfig(openssl) pkgconfig(librsvg-2.0) -BuildRequires: libappindicator-gtk3-devel +License: GPL-3.0-or-later AND (Apache-2.0 OR MIT) AND (MIT OR Apache-2.0) AND Unicode-3.0 AND (0BSD OR MIT OR Apache-2.0) AND AGPL-3.0-or-later AND Apache-2.0 AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND BSD-2-Clause AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND (BSD-2-Clause OR MIT OR Apache-2.0) AND BSD-3-Clause AND MIT AND (BSD-3-Clause OR Apache-2.0) AND (BSD-3-Clause OR MIT) AND (CC0-1.0 OR Apache-2.0) AND ISC 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 (Unlicense OR MIT) AND Zlib AND (Zlib OR Apache-2.0 OR MIT) +BuildRequires: anda-srpm-macros cargo-rpm-macros rust-srpm-macros +BuildRequires: systemd-rpm-macros +BuildRequires: pkgconfig(libdrm_amdgpu) +BuildRequires: pkgconfig(libdrm) +BuildRequires: pkgconfig(protobuf) +BuildRequires: nodejs-npm +Recommends: python3-liquidctl %description -n coolercontrold %_desc -coolercontrold is the main daemon containing the core logic for interfacing with devices, and installed as -"coolercontrold". It is meant to run in the background as a system daemon. It handles all device -communication and data management, additionally connecting to the liqctld daemon for liquidctl -supported devices. It has an API that services client programs like the coolercontrol-gui. +This is the system daemon for CoolerControl. +CoolerControl is an open-source application for monitoring and controlling supported cooling +devices. It features an intuitive interface, flexible control options, and live thermal data to keep +your system quiet, cool, and stable. %prep %autosetup pushd coolercontrold -%cargo_prep_online & +%cargo_prep_online popd pushd coolercontrol-ui @@ -68,32 +62,23 @@ wait %build pushd coolercontrol-ui -npm run build-only & +%make_build popd -pushd coolercontrol-liqctld -%pyproject_wheel +pushd coolercontrold +%{cargo_license_online} > LICENSE.dependencies +%{cargo_license_summary_online} +wait +cp -rfp ../coolercontrol-ui/dist/* resources/app/ +%{cargo_build} --locked popd pushd coolercontrol %cmake -%cmake_build & -popd - -pushd coolercontrold -%{cargo_license_online} > LICENSE.dependencies & -wait -cp -rfp ../coolercontrol-ui/dist/* resources/app/ -%cargo_build +%cmake_build popd %install -pushd coolercontrol-liqctld -#define _pyproject_wheeldir . -%pyproject_install -%pyproject_save_files coolercontrol_liqctld -popd - pushd coolercontrold install -Dpm755 target/rpm/coolercontrold %buildroot%_bindir/coolercontrold install -Dpm644 LICENSE.dependencies %buildroot%_datadir/licenses/coolercontrold/LICENSE.dependencies @@ -103,10 +88,13 @@ pushd coolercontrol/ %cmake_install popd -install -Dpm644 packaging/systemd/coolercontrol-liqctld.service %buildroot%_unitdir/coolercontrol-liqctld.service desktop-file-install --dir=%buildroot%_datadir/applications packaging/metadata/%rdnn.desktop install -Dpm644 packaging/metadata/%rdnn.svg %buildroot%_iconsdir/hicolor/scalable/apps/%rdnn.svg -install -Dpm644 packaging/metadata/%rdnn.png %buildroot%_iconsdir/hicolor/256x256/apps/%rdnn.svg +install -Dpm644 packaging/metadata/%rdnn-alert.svg %buildroot%_iconsdir/hicolor/scalable/apps/%rdnn-alert.svg +install -Dpm644 packaging/metadata/%rdnn-symbolic.svg %buildroot%_iconsdir/hicolor/symbolic/apps/%rdnn-symbolic.svg +install -Dpm644 packaging/metadata/%rdnn-symbolic-alert.svg %buildroot%_iconsdir/hicolor/symbolic/apps/%rdnn-symbolic-alert.svg +install -Dpm644 packaging/metadata/%rdnn.png %buildroot%_iconsdir/hicolor/256x256/apps/%rdnn.png +install -Dpm644 packaging/metadata/%rdnn-alert.png %buildroot%_iconsdir/hicolor/256x256/apps/%rdnn-alert.png for f in packaging/systemd/*.service; do install -Dpm644 $f %buildroot%_unitdir/$(basename $f) done @@ -115,7 +103,6 @@ install -Dpm644 packaging/metadata/%rdnn.metainfo.xml %buildroot%_metainfodir/%r %check appstream-util validate-relax --nonet %buildroot%_metainfodir/%rdnn.metainfo.xml -%pyproject_check_import %post -n coolercontrold @@ -127,17 +114,17 @@ appstream-util validate-relax --nonet %buildroot%_metainfodir/%rdnn.metainfo.xml %postun -n coolercontrold %systemd_postun_with_restart coolercontrold.service -# coolercontrold.service automatically uses the liqctld service, so there are -# no scriptlets for liqctld. - - %files %doc README.md +%doc CHANGELOG.md %license LICENSE %_bindir/coolercontrol %_datadir/applications/%rdnn.desktop %_datadir/metainfo/%rdnn.metainfo.xml -%_iconsdir/hicolor/*/apps/%rdnn.svg +%_iconsdir/hicolor/*/apps/%rdnn.* +%_iconsdir/hicolor/*/apps/%rdnn-alert.* +%_iconsdir/hicolor/*/apps/%rdnn-symbolic.svg +%_iconsdir/hicolor/*/apps/%rdnn-symbolic-alert.svg %files -n coolercontrold %doc coolercontrold/README.md @@ -146,12 +133,9 @@ appstream-util validate-relax --nonet %buildroot%_metainfodir/%rdnn.metainfo.xml %_bindir/coolercontrold %_unitdir/coolercontrold.service -%files liqctld -f %pyproject_files -%doc coolercontrol-liqctld/README.md -%license LICENSE -%_bindir/coolercontrol-liqctld -%_unitdir/coolercontrol-liqctld.service - %changelog +* Sat Feb 28 2026 Guy Boldon - 3.1.1-2 +- Updated dependencies and build to match current version + * Thu Aug 15 2024 madonuko - 1.4.0-1 - Initial package diff --git a/anda/apps/discord-canary-openasar/discord-canary-openasar.spec b/anda/apps/discord-canary-openasar/discord-canary-openasar.spec index 6c08cf7944..232ead2fa7 100644 --- a/anda/apps/discord-canary-openasar/discord-canary-openasar.spec +++ b/anda/apps/discord-canary-openasar/discord-canary-openasar.spec @@ -6,8 +6,8 @@ %global __provides_exclude_from %{_datadir}/%{name}/.*\\.so Name: discord-canary-openasar -Version: 0.0.790 -Release: 1%?dist +Version: 1.0.1036 +Release: 1%{?dist} Summary: A snappier Discord rewrite with features like further customization and theming License: MIT AND https://discord.com/terms URL: https://github.com/GooseMod/OpenAsar @@ -54,7 +54,7 @@ ln -s %_datadir/discord-canary-openasar/DiscordCanary %buildroot%_bindir/discord %changelog -* Wed Jan 18 2023 windowsboy111 - 0.0.146-1 +* Wed Jan 18 2023 madonuko - 0.0.146-1 - Renamed from openasar-canary to discord-canary-openasar - Fix issues after removing discord-canary package - Bundle discord-canary diff --git a/anda/apps/discord-canary/discord-canary.spec b/anda/apps/discord-canary/discord-canary.spec index d7942d7d25..879f040ffc 100644 --- a/anda/apps/discord-canary/discord-canary.spec +++ b/anda/apps/discord-canary/discord-canary.spec @@ -6,8 +6,8 @@ %global __provides_exclude_from %{_datadir}/%{name}/.*\\.so Name: discord-canary -Version: 0.0.790 -Release: 1%?dist +Version: 1.0.1036 +Release: 1%{?dist} Summary: Free Voice and Text Chat for Gamers URL: discord.com Source0: https://dl-canary.discordapp.net/apps/linux/%{version}/discord-canary-%{version}.tar.gz @@ -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/DiscordCanary %buildroot%_bindir/discord-canary +ln -s %_datadir/discord-canary/DiscordCanary %buildroot%_bindir/discord-canary %files %_bindir/discord-canary @@ -45,7 +45,7 @@ ln -s %_datadir/discord/DiscordCanary %buildroot%_bindir/discord-canary * Thu Dec 01 2022 root - 0.0.144-1 - new version -* Thu Nov 17 2022 windowsboy111 - 0.0.143-1 +* Thu Nov 17 2022 madonuko - 0.0.143-1 - new version * Fri Oct 28 2022 root - 0.0.142-1 @@ -60,10 +60,10 @@ ln -s %_datadir/discord/DiscordCanary %buildroot%_bindir/discord-canary * Thu Oct 27 2022 root - 0.0.141-1 - new version -* Wed Oct 19 2022 windowsboy111 - 0.0.140-1 +* Wed Oct 19 2022 madonuko - 0.0.140-1 - new version -* Sun Oct 16 2022 windowsboy111 - 0.0.139 +* Sun Oct 16 2022 madonuko - 0.0.139 - Repackaged for Terra * Tue Feb 22 2022 Ultramarine Release Tracking Service - 0.0.133-2 diff --git a/anda/apps/discord-openasar/discord-openasar.spec b/anda/apps/discord-openasar/discord-openasar.spec index 0dc102e154..b47ed2b597 100644 --- a/anda/apps/discord-openasar/discord-openasar.spec +++ b/anda/apps/discord-openasar/discord-openasar.spec @@ -6,8 +6,8 @@ %global __provides_exclude_from %{_datadir}/%{name}/.*\\.so Name: discord-openasar -Version: 0.0.112 -Release: 1%?dist +Version: 1.0.137 +Release: 1%{?dist} Summary: A snappier Discord rewrite with features like further customization and theming License: MIT AND https://discord.com/terms URL: https://github.com/GooseMod/OpenAsar @@ -54,5 +54,5 @@ ln -s %_datadir/discord-openasar/Discord %buildroot%_bindir/discord-openasar %changelog -* Sat Jan 21 2023 windowsboy111 - 0.0.38-1 +* Sat Jan 21 2023 madonuko - 0.0.38-1 - Initial package diff --git a/anda/apps/discord-ptb-openasar/discord-ptb-openasar.spec b/anda/apps/discord-ptb-openasar/discord-ptb-openasar.spec index 34290dad02..7202191ff2 100644 --- a/anda/apps/discord-ptb-openasar/discord-ptb-openasar.spec +++ b/anda/apps/discord-ptb-openasar/discord-ptb-openasar.spec @@ -6,8 +6,8 @@ %global __provides_exclude_from %{_datadir}/%{name}/.*\\.so Name: discord-ptb-openasar -Version: 0.0.163 -Release: 1%?dist +Version: 1.0.189 +Release: 1%{?dist} Summary: A snappier Discord rewrite with features like further customization and theming License: MIT AND https://discord.com/terms URL: https://github.com/GooseMod/OpenAsar @@ -56,5 +56,5 @@ ln -s %_datadir/discord-ptb-openasar/Discord %buildroot%_bindir/discord-ptb-open %changelog -* Sat Jan 21 2023 windowsboy111 - 0.0.38-1 +* Sat Jan 21 2023 madonuko - 0.0.38-1 - Initial package diff --git a/anda/apps/discord-ptb/discord-ptb.spec b/anda/apps/discord-ptb/discord-ptb.spec index 348acfc76d..f5f71582a3 100644 --- a/anda/apps/discord-ptb/discord-ptb.spec +++ b/anda/apps/discord-ptb/discord-ptb.spec @@ -6,8 +6,8 @@ %global __provides_exclude_from %{_datadir}/%{name}/.*\\.so Name: discord-ptb -Version: 0.0.163 -Release: 1%?dist +Version: 1.0.189 +Release: 2%{?dist} Summary: Free Voice and Text Chat for Gamers. URL: https://discord.com Source0: https://dl-ptb.discordapp.net/apps/linux/%{version}/discord-ptb-%{version}.tar.gz @@ -37,7 +37,7 @@ mkdir -p %{buildroot}%{_datadir}/applications/ mkdir -p %{buildroot}%{_datadir}/pixmaps ln -s %_datadir/discord-ptb/discord-ptb.desktop %{buildroot}%{_datadir}/applications/ ln -s %_datadir/discord-ptb/discord.png %{buildroot}%{_datadir}/pixmaps/discord-ptb.png -ln -s %_datadir/discord-ptb/Discord %buildroot%_bindir/discord-ptb +ln -s %_datadir/discord-ptb/discord-ptb %buildroot%_bindir/discord-ptb %files %_bindir/discord-ptb @@ -46,11 +46,11 @@ ln -s %_datadir/discord-ptb/Discord %buildroot%_bindir/discord-ptb %{_datadir}/pixmaps/discord-ptb.png %changelog -* Thu Nov 17 2022 windowsboy111 - 0.0.35-1 +* Thu Nov 17 2022 madonuko - 0.0.35-1 - new version -* Thu Oct 20 2022 windowsboy111 - 0.0.34-1 +* Thu Oct 20 2022 madonuko - 0.0.34-1 - new version -* Sun Oct 16 2022 windowsboy111 - 0.0.33 +* Sun Oct 16 2022 madonuko - 0.0.33 - Initial Package. diff --git a/anda/apps/discord/discord.spec b/anda/apps/discord/discord.spec index c543ceaf09..c3f1c662af 100644 --- a/anda/apps/discord/discord.spec +++ b/anda/apps/discord/discord.spec @@ -1,24 +1,16 @@ -%define debug_package %{nil} -%global _build_id_links none - -# Exclude private libraries -%global __requires_exclude libffmpeg.so -%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so - Name: discord -Version: 0.0.112 -Release: 1%?dist +Version: 1.0.137 +Release: 1%{?dist} Summary: Free Voice and Text Chat for Gamers URL: https://discord.com Source0: https://dl.discordapp.net/apps/linux/%{version}/discord-%{version}.tar.gz -License: https://discord.com/terms -Requires: glibc GConf2 -Requires: nspr >= 4.13 -Requires: nss >= 3.27 -Requires: libX11 >= 1.6 -Requires: libXtst >= 1.2 +Source1: https://discord.com/terms#/terms.html +License: Proprietary Group: Applications/Internet ExclusiveArch: x86_64 + +%electronmeta -D + %description All-in-one voice and text chat for gamers that's free, secure, and works on both your desktop and phone. @@ -29,22 +21,24 @@ both your desktop and phone. %build %install -rm -rf $RPM_BUILD_ROOT mkdir -p %{buildroot}%{_bindir} -mkdir -p %{buildroot}%{_datadir}/discord -cp -rv * %{buildroot}%{_datadir}/discord -mkdir -p %{buildroot}%{_datadir}/applications/ +install -Dpm755 ./* -t %{buildroot}%{_datadir}/discord +mkdir -p %{buildroot}%{_appsdir} mkdir -p %{buildroot}%{_datadir}/pixmaps -ln -s %_datadir/discord/discord.desktop %{buildroot}%{_datadir}/applications/discord.desktop -ln -s %_datadir/discord/discord.png %{buildroot}%{_datadir}/pixmaps/discord.png -ln -s %_datadir/discord/Discord %buildroot%_bindir/discord +mv %{buildroot}%{_datadir}/discord/discord.desktop -t %{buildroot}%{_appsdir} +mv %{buildroot}%{_datadir}/discord/discord.png -t %{buildroot}%{_datadir}/pixmaps +mv %{buildroot}%{_datadir}/discord/discord -t %{buildroot}%{_bindir} +cp %{SOURCE1} -t . %files -%_bindir/discord +%license terms.html +%{_bindir}/discord %{_datadir}/discord/ -%{_datadir}/applications/discord.desktop +%{_appsdir}/discord.desktop %{_datadir}/pixmaps/discord.png %changelog -* Thu Jan 19 2023 windowsboy111 - 0.0.143-1 +* Mon May 4 2026 Gilver E. - 1.0.136-2 +- Updated /usr/bin symlink +* Thu Jan 19 2023 madonuko - 0.0.143-1 - Initial package diff --git a/anda/apps/dorion/dorion.spec b/anda/apps/dorion/dorion.spec index dcd318796a..107e8d5b2f 100644 --- a/anda/apps/dorion/dorion.spec +++ b/anda/apps/dorion/dorion.spec @@ -1,8 +1,8 @@ %undefine __brp_mangle_shebangs Name: dorion -Version: 6.11.0 -Release: 1%?dist +Version: 6.12.2 +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) diff --git a/anda/apps/envision/envision.spec b/anda/apps/envision/envision.spec index 352f0ba8f1..3539b07392 100644 --- a/anda/apps/envision/envision.spec +++ b/anda/apps/envision/envision.spec @@ -1,10 +1,10 @@ -%global commit 5470662f25a0fc9cdb024d2e3dce4108f5cc529a -%global commit_date 20250917 +%global commit 0149a82705e97b2f9cdccbc6076b4f213c9dc890 +%global commit_date 20260410 %global shortcommit %(c=%{commit}; echo ${c:0:7}) Name: envision-nightly Version: %commit_date.%shortcommit -Release: 1%?dist +Release: 1%{?dist} Summary: UI for building, configuring and running Monado, the open source OpenXR runtime SourceLicense: AGPL-3.0-or-later License: ((Apache-2.0 OR MIT) AND BSD-3-Clause) AND ((MIT OR Apache-2.0) AND Unicode-3.0) AND (0BSD OR MIT OR Apache-2.0) AND AGPL-3.0-or-later 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 Apache-2.0 AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND ISC AND (MIT OR Apache-2.0) AND (MIT OR Zlib OR Apache-2.0) AND MIT AND Unicode-3.0 AND (Unlicense OR MIT) AND Zlib diff --git a/anda/apps/falcond-gui/anda.hcl b/anda/apps/falcond-gui/anda.hcl new file mode 100644 index 0000000000..9e3986494c --- /dev/null +++ b/anda/apps/falcond-gui/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "falcond-gui.spec" + } +} diff --git a/anda/apps/falcond-gui/falcond-gui.spec b/anda/apps/falcond-gui/falcond-gui.spec new file mode 100644 index 0000000000..ce7e7c0bee --- /dev/null +++ b/anda/apps/falcond-gui/falcond-gui.spec @@ -0,0 +1,52 @@ +Name: falcond-gui +Version: 1.0.2 +Release: 1%?dist +Summary: A GTK4/LibAdwaita application to control and monitor the Falcond gaming optimization daemon +SourceLicense: MIT +License: (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND CC0-1.0 AND ISC AND (MIT OR Apache-2.0) AND MIT AND (Unlicense OR MIT) +URL: https://git.pika-os.com/general-packages/falcond-gui +Source0: %{url}/archive/v%{version}.tar.gz +BuildRequires: anda-srpm-macros +BuildRequires: cargo-rpm-macros +BuildRequires: desktop-file-utils +BuildRequires: gtk4-devel +BuildRequires: libadwaita-devel +BuildRequires: mold +Requires: gtk4 +Requires: falcond +Requires: falcond-profiles +Requires: libadwaita +Requires(post): gtk-update-icon-cache +Packager: Gilver E. + +%description +falcond-gui provides a user-friendly graphical interface for managing falcond. It allows users to view the status of the daemon and customize its behavior. + +%prep +%autosetup -n %{name}/%{name} +%cargo_prep_online + +%build + +%install +%cargo_install +desktop-file-install res/%{name}.desktop +install -Dm644 res/falcond.png -t %{buildroot}%{_hicolordir}/512x512/apps/ +%{cargo_license_online} > LICENSE.dependencies + +%check +desktop-file-validate %{buildroot}%{_datadir}/applications/%{name}.desktop + +%posttrans +/usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor/ &>/dev/null || : + +%files +%doc ../README.md +%license ../LICENSE.md +%{_bindir}/%{name} +%{_hicolordir}/512x512/apps/falcond.png +%{_appsdir}/%{name}.desktop + +%changelog +* Thu Jan 1 2026 Gilver E. - 1.0.0-1 +- Initial package diff --git a/anda/apps/falcond-gui/update.rhai b/anda/apps/falcond-gui/update.rhai new file mode 100644 index 0000000000..9c81c2f668 --- /dev/null +++ b/anda/apps/falcond-gui/update.rhai @@ -0,0 +1 @@ +rpm.version(get("https://git.pika-os.com/api/v1/repos/general-packages/falcond-gui/releases").json_arr()[0].tag_name); diff --git a/anda/apps/feishin/feishin.spec b/anda/apps/feishin/feishin.spec index a7d90e6248..1ff803c0f0 100644 --- a/anda/apps/feishin/feishin.spec +++ b/anda/apps/feishin/feishin.spec @@ -6,8 +6,8 @@ %global __provides_exclude_from %{_datadir}/%{name}/.*\\.so Name: feishin -Version: 0.21.2 -Release: 1%?dist +Version: 1.11.0 +Release: 1%{?dist} Summary: A modern self-hosted music player License: GPL-3.0 URL: https://github.com/jeffvli/feishin diff --git a/anda/apps/flameshot/flameshot-nightly.spec b/anda/apps/flameshot/flameshot-nightly.spec index 9e469f44ab..993e3249df 100644 --- a/anda/apps/flameshot/flameshot-nightly.spec +++ b/anda/apps/flameshot/flameshot-nightly.spec @@ -1,9 +1,9 @@ #? https://github.com/flameshot-org/flameshot/blob/master/packaging/rpm/fedora/flameshot.spec -%global ver 13.2.0 -%global commit 3602d0a7935011d3005e73b28df024e95365f614 +%global ver 13.3.0 +%global commit 1534a895e757b51d34ab5b1184344f04d67b8ebc %global shortcommit %{sub %{commit} 1 7} -%global commit_date 20251027 +%global commit_date 20260504 %global devel_name QtColorWidgets %global _distro_extra_cflags -fuse-ld=mold %global _distro_extra_cxxflags -fuse-ld=mold diff --git a/anda/apps/flatpost/flatpost.spec b/anda/apps/flatpost/flatpost.spec index ddc7f53f25..bb4c516719 100644 --- a/anda/apps/flatpost/flatpost.spec +++ b/anda/apps/flatpost/flatpost.spec @@ -1,5 +1,5 @@ Name: flatpost -Version: 1.1.1 +Version: 1.2.0 Release: 1%?dist License: BSD-2-Clause Summary: Desktop environment agnostic Flathub software center. diff --git a/anda/apps/framework-tool-tui/anda.hcl b/anda/apps/framework-tool-tui/anda.hcl new file mode 100644 index 0000000000..3f7dd905a1 --- /dev/null +++ b/anda/apps/framework-tool-tui/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "framework-tool-tui.spec" + } +} diff --git a/anda/apps/framework-tool-tui/framework-tool-tui.spec b/anda/apps/framework-tool-tui/framework-tool-tui.spec new file mode 100644 index 0000000000..8812b7ca78 --- /dev/null +++ b/anda/apps/framework-tool-tui/framework-tool-tui.spec @@ -0,0 +1,53 @@ +%undefine __brp_mangle_shebangs + +Name: framework-tool-tui +Version: 0.8.3 +Release: 1%{?dist} +Summary: A TUI for controlling and monitoring Framework Computers hardware built in Rust +URL: https://github.com/grouzen/framework-tool-tui +Source0: %{url}/archive/refs/tags/v%{version}.tar.gz +License: MIT AND (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 OR BSL-1.0) AND (MIT OR Apache-2.0) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND BSD-3-Clause AND (MIT OR Apache-2.0) AND (MIT OR Zlib OR Apache-2.0) AND MPL-2.0 AND Zlib AND (Unlicense OR MIT) +BuildRequires: anda-srpm-macros +BuildRequires: cargo-rpm-macros +BuildRequires: pkgconfig(libudev) +BuildArch: x86_64 + +Packager: Owen Zimmerman + +%description +A snappy TUI dashboard for controlling and monitoring your Framework Laptop +hardware — charging, privacy, lighting, USB PD ports, and more. + +%package doc +Summary: Documentations for %{name} +BuildArch: noarch + +%description doc +Documentations for %{name}. + +%prep +%autosetup +%cargo_prep_online + +%build +%cargo_build + +%install +install -Dm755 target/rpm/framework-tool-tui %{buildroot}%{_bindir}/framework-tool-tui +%{cargo_license_online} > LICENSE.dependencies + +mkdir -p %{buildroot}%{_docdir}/%{name}/ +cp -r docs/*.md %{buildroot}%{_docdir}/%{name}/ + +%files +%{_bindir}/framework-tool-tui +%license LICENSE +%license LICENSE.dependencies +%doc README.md + +%files doc +%{_docdir}/%{name}/ + +%changelog +* Thu Apr 23 2026 Owen Zimmerman +- Initial commit diff --git a/anda/apps/framework-tool-tui/update.rhai b/anda/apps/framework-tool-tui/update.rhai new file mode 100644 index 0000000000..458dfc2ca0 --- /dev/null +++ b/anda/apps/framework-tool-tui/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("grouzen/framework-tool-tui")); diff --git a/anda/apps/goofcord/nightly/goofcord-nightly.spec b/anda/apps/goofcord/nightly/goofcord-nightly.spec index c152a28ccb..9c837a0782 100644 --- a/anda/apps/goofcord/nightly/goofcord-nightly.spec +++ b/anda/apps/goofcord/nightly/goofcord-nightly.spec @@ -1,100 +1,59 @@ -%global commit 3f5eda113f33fead76a5a53e0b71c11b254d68fd +%global commit eebb15d3d940823883afa67bf62692874df7f2d1 %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commit_date 20250615 -%global ver 1.10.1 +%global commit_date 20260426 +%global ver 2.2.1^ %global base_name goofcord %global git_name GoofCord -%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 +%global appid io.github.milkshiift.GoofCord Name: %{base_name}-nightly -Version: %{ver}^%{commit_date}.git.%{shortcommit} +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. +Packager: Gilver E. + +%electronmeta -D %description A highly configurable and privacy minded Discord client. %prep %autosetup -n %{git_name}-%{commit} - -%build -%ifarch aarch64 armv7hl armv7l +%ifarch %{arm64} armv7l armv7hl armv7hnl sed -i '/\"x64\",/d' electron-builder.ts %endif -bun install -bun run packageLinux --publish=never + +%build +%bun_build %install -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 +%electron_install -d %{base_name} -s %{base_name} -b %{base_name} -i %{base_name} -D -O -U %U -E UseOzonePlatform,WaylandWindowDecorations -I +install -Dm644 assetsDev/%{appid}.metainfo.xml -t %{buildroot}%{_metainfodir} %check -desktop-file-validate %{buildroot}%{_datadir}/applications/%{git_name}.desktop +%desktop_file_validate %{buildroot}%{_datadir}/applications/%{base_name}.desktop %files %doc README.md %license LICENSE -%{_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 +%{_bindir}/%{base_name} +%{_datadir}/applications/%{base_name}.desktop +%{_libdir}/%{base_name}/ +%{_metainfodir}/%{appid}.metainfo.xml +%{_hicolordir}/16x16/apps/%{base_name}.png +%{_hicolordir}/32x32/apps/%{base_name}.png +%{_hicolordir}/48x48/apps/%{base_name}.png +%{_hicolordir}/64x64/apps/%{base_name}.png +%{_hicolordir}/128x128/apps/%{base_name}.png +%{_hicolordir}/256x256/apps/%{base_name}.png +%{_hicolordir}/512x512/apps/%{base_name}.png +%{_hicolordir}/1024x1024/apps/%{base_name}.png %changelog * Sat Jun 28 2025 Gilver E. - 1.10.1^20250615.git.3f5eda1 diff --git a/anda/apps/goofcord/nightly/update.rhai b/anda/apps/goofcord/nightly/update.rhai index 0e24d0bdb5..5fa3f286b1 100644 --- a/anda/apps/goofcord/nightly/update.rhai +++ b/anda/apps/goofcord/nightly/update.rhai @@ -1,8 +1,13 @@ rpm.global("commit", gh_commit("Milkshiift/GoofCord")); - if rpm.changed { + if rpm.changed() { let v = gh_tag("Milkshiift/GoofCord"); v.crop(1); - rpm.global("ver", v); + 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("commit_date", date()); rpm.release(); } diff --git a/anda/apps/goofcord/stable/anda.hcl b/anda/apps/goofcord/stable/anda.hcl index ab54b297f3..03c90eca20 100644 --- a/anda/apps/goofcord/stable/anda.hcl +++ b/anda/apps/goofcord/stable/anda.hcl @@ -2,7 +2,7 @@ project pkg { rpm { spec = "goofcord.spec" } - labels { - mock = 1 - } + labels { + mock = 1 + } } diff --git a/anda/apps/goofcord/stable/goofcord.spec b/anda/apps/goofcord/stable/goofcord.spec index e5cf51e431..ca79bf1ea9 100644 --- a/anda/apps/goofcord/stable/goofcord.spec +++ b/anda/apps/goofcord/stable/goofcord.spec @@ -1,94 +1,55 @@ %global git_name GoofCord -%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 +%global appid io.github.milkshiift.GoofCord Name: goofcord -Version: 1.11.0 -Release: 1%?dist +Version: 2.2.1 +Release: 1%{?dist} License: OSL-3.0 Summary: A privacy-minded Legcord fork. Group: Applications/Internet URL: https://github.com/Milkshiift/%{git_name} Source0: %{url}/archive/refs/tags/v%{version}.tar.gz +BuildRequires: anda-srpm-macros >= 0.3.0 BuildRequires: 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. +Packager: Gilver E. + +%electronmeta -D %description A highly configurable and privacy minded Discord client. %prep -%autosetup -n %{git_name}-%{version} - -%build -%ifarch aarch64 armv7hl armv7l +%autosetup -p1 -n %{git_name}-%{version} +%ifarch %{arm64} armv7hl armv7l sed -i '/\"x64\",/d' electron-builder.ts %endif -bun install -bun run packageLinux + +%build +%bun_build %install -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 +%electron_install -D -O -U %U -E UseOzonePlatform,WaylandWindowDecorations -I -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 +install -Dm644 assetsDev/%{appid}.metainfo.xml -t %{buildroot}%{_metainfodir} %check -desktop-file-validate %{buildroot}%{_datadir}/applications/%{name}.desktop +%desktop_file_validate %{buildroot}%{_datadir}/applications/%{name}.desktop %files %doc README.md %license LICENSE %{_bindir}/%{name} %{_datadir}/applications/%{name}.desktop -%{_datadir}/%{name}/ -%{_iconsdir}/hicolor/16x16/apps/%{name}.png -%{_iconsdir}/hicolor/32x32/apps/%{name}.png -%{_iconsdir}/hicolor/48x48/apps/%{name}.png -%{_iconsdir}/hicolor/64x64/apps/%{name}.png -%{_iconsdir}/hicolor/128x128/apps/%{name}.png -%{_iconsdir}/hicolor/256x256/apps/%{name}.png -%{_iconsdir}/hicolor/512x512/apps/%{name}.png -%{_iconsdir}/hicolor/1024x1024/apps/%{name}.png +%{_libdir}/%{name}/ +%{_metainfodir}/%{appid}.metainfo.xml +%{_hicolordir}/16x16/apps/%{name}.png +%{_hicolordir}/32x32/apps/%{name}.png +%{_hicolordir}/48x48/apps/%{name}.png +%{_hicolordir}/64x64/apps/%{name}.png +%{_hicolordir}/128x128/apps/%{name}.png +%{_hicolordir}/256x256/apps/%{name}.png +%{_hicolordir}/512x512/apps/%{name}.png +%{_hicolordir}/1024x1024/apps/%{name}.png %changelog * Sat Jun 28 2025 Gilver E. - 1.10.1-1 diff --git a/anda/apps/goofcord/stable/update.rhai b/anda/apps/goofcord/stable/update.rhai index 4b308802cb..0483d3bcc7 100644 --- a/anda/apps/goofcord/stable/update.rhai +++ b/anda/apps/goofcord/stable/update.rhai @@ -1 +1,5 @@ -rpm.version(gh_tag("Milkshiift/GoofCord")); +let v = gh_tag("Milkshiift/GoofCord"); + +if `[\d.]+-beta\.\d+`.find_all(v).len == 0 { + rpm.version(v); +} diff --git a/anda/apps/gurk/anda.hcl b/anda/apps/gurk/anda.hcl new file mode 100644 index 0000000000..52c6ce5c81 --- /dev/null +++ b/anda/apps/gurk/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "gurk.spec" + } + labels { + sccache = 0 + } +} diff --git a/anda/apps/gurk/gurk.spec b/anda/apps/gurk/gurk.spec new file mode 100644 index 0000000000..1960a6f593 --- /dev/null +++ b/anda/apps/gurk/gurk.spec @@ -0,0 +1,40 @@ +%undefine __brp_mangle_shebangs + +Name: gurk +Version: 0.9.3 +Release: 1%{?dist} +Summary: Signal Messenger client for terminal +License: AGPL-3.0-or-later AND (MIT OR Apache-2.0) AND Unicode-3.0 AND (0BSD OR MIT OR Apache-2.0) AND Apache-2.0 AND ISC AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 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 OR Apache-2.0) AND (BSD-3-Clause OR MIT OR Apache-2.0) AND BSL-1.0 AND CDLA-Permissive-2.0 AND MIT AND (MIT OR Apache-2.0) AND (MIT OR Apache-2.0 OR BSD-1-Clause) AND (MIT OR Apache-2.0 OR LGPL-2.1-or-later) AND (MIT OR Apache-2.0 OR Zlib) AND (MIT OR Zlib OR Apache-2.0) AND MPL-2.0 AND (Unlicense OR MIT) AND Zlib AND (Zlib OR Apache-2.0 OR MIT) +URL: https://github.com/boxdot/gurk-rs +Source: %url/archive/refs/tags/v%version.tar.gz + +BuildRequires: cargo-rpm-macros >= 24 +BuildRequires: glibc-devel mold perl openssl-devel protobuf-devel +Requires: glibc libgcc sqlcipher +Provides: gurk-rs + +Packager: Owen Zimmerman + +%description +%{summary}. + +%prep +%autosetup -n gurk-rs-%{version} +%cargo_prep_online + +%build + +%install +export LC_ALL=C.UTF-8 +export LANG=C +%cargo_install +%{cargo_license_online} > LICENSE.dependencies + +%files +%doc README.md CHANGELOG.md +%license LICENSE-AGPL-3.0 +%{_bindir}/gurk + +%changelog +* Fri Feb 13 2026 Owen Zimmerman +- Initial commit diff --git a/anda/apps/gurk/update.rhai b/anda/apps/gurk/update.rhai new file mode 100644 index 0000000000..65a479ec17 --- /dev/null +++ b/anda/apps/gurk/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("boxdot/gurk-rs")); diff --git a/anda/apps/halloy/halloy.spec b/anda/apps/halloy/halloy.spec index 4955bc00da..723b17527b 100644 --- a/anda/apps/halloy/halloy.spec +++ b/anda/apps/halloy/halloy.spec @@ -4,8 +4,8 @@ %global crate halloy Name: halloy -Version: 2025.9 -Release: 1%?dist +Version: 2026.6 +Release: 1%{?dist} Summary: An open-source IRC client written in Rust, with the Iced GUI library Packager: Yoong jin SourceLicense: GPL-3.0-or-later @@ -18,6 +18,7 @@ BuildRequires: alsa-lib-devel BuildRequires: cargo-rpm-macros >= 24 BuildRequires: desktop-file-utils BuildRequires: openssl-devel +BuildRequires: pkgconfig(xcb) %description @@ -32,14 +33,13 @@ BuildRequires: openssl-devel %cargo_build %install -%crate_install_bin +install -Dm755 target/rpm/halloy %{buildroot}%{_bindir}/halloy desktop-file-install assets/linux/%{appid}.desktop install -Dpm644 assets/linux/%{appid}.appdata.xml -t %{buildroot}%{_datadir}/metainfo mkdir -p %{buildroot}%{_datadir} cp -r assets/linux/icons -t %{buildroot}%{_datadir} -%cargo_license_summary_online %{cargo_license_online} > LICENSE.dependencies %if %{with check} diff --git a/anda/apps/helium-browser-bin/anda.hcl b/anda/apps/helium-browser-bin/anda.hcl new file mode 100644 index 0000000000..5f8cf43658 --- /dev/null +++ b/anda/apps/helium-browser-bin/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "helium-browser-bin.spec" + } +} diff --git a/anda/apps/helium-browser-bin/helium-browser-bin.spec b/anda/apps/helium-browser-bin/helium-browser-bin.spec new file mode 100644 index 0000000000..43fb1cc280 --- /dev/null +++ b/anda/apps/helium-browser-bin/helium-browser-bin.spec @@ -0,0 +1,123 @@ +%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.12.1.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 +Source3: helium.desktop + +ExclusiveArch: x86_64 aarch64 + +BuildRequires: terra-appstream-helper +BuildRequires: desktop-file-utils + +Requires: xdg-utils +Requires: liberation-fonts + +Packager: Nadia P , Jaiden Riordan + +%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} + +%build + +%install +install -dm755 %{buildroot}%{_libdir}/%{name} +cp -a * %{buildroot}%{_libdir}/%{name}/ + +%desktop_file_install %{S:3} + +install -Dm644 product_logo_256.png %{buildroot}%{_hicolordir}/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 + +export CHROME_WRAPPER="$(readlink -f "$0")" +export CHROME_VERSION_EXTRA="stable" + +exec -a "$0" %{_libdir}/%{name}/chrome "${FLAGS[@]}" "$@" +EOF +chmod 755 %{buildroot}%{_bindir}/%{name} + +%terra_appstream -o %{SOURCE2} + +%files +%doc README.md +%license LICENSE LICENSE.ungoogled_chromium +%{_libdir}/%{name}/ +# shebang reasons +%attr(0755,root,root) %{_bindir}/%{name} +%{_appsdir}/helium.desktop +%{_hicolordir}/256x256/apps/%{appid}.png +%{_metainfodir}/%{appid}.metainfo.xml + +%changelog +* Sun Feb 15 2026 Jaiden Rirordan +- Use downstream desktop file and recombobulate + +* Wed Dec 03 2025 Nadia P - 0.6.9.1-1 +- Initial package diff --git a/anda/apps/helium-browser-bin/helium.desktop b/anda/apps/helium-browser-bin/helium.desktop new file mode 100644 index 0000000000..ba8b588439 --- /dev/null +++ b/anda/apps/helium-browser-bin/helium.desktop @@ -0,0 +1,229 @@ +[Desktop Entry] +Version=1.0 +Name=Helium + +# For future reference, these translations are available in the Chromium +# tree at chrome/installer/linux/common/desktop.template. +# +# Only KDE 4 seems to use GenericName, so we reuse the KDE strings. +# From Ubuntu's language-pack-kde-XX-base packages, version 9.04-20090413. +GenericName=Web Browser +GenericName[ar]=متصفح الشبكة +GenericName[bg]=Уеб браузър +GenericName[ca]=Navegador web +GenericName[cs]=WWW prohlížeč +GenericName[da]=Browser +GenericName[de]=Web-Browser +GenericName[el]=Περιηγητής ιστού +GenericName[en_GB]=Web Browser +GenericName[es]=Navegador web +GenericName[et]=Veebibrauser +GenericName[fi]=WWW-selain +GenericName[fr]=Navigateur Web +GenericName[gu]=વેબ બ્રાઉઝર +GenericName[he]=דפדפן אינטרנט +GenericName[hi]=वेब ब्राउज़र +GenericName[hu]=Webböngésző +GenericName[it]=Browser Web +GenericName[ja]=ウェブブラウザ +GenericName[kn]=ಜಾಲ ವೀಕ್ಷಕ +GenericName[ko]=웹 브라우저 +GenericName[lt]=Žiniatinklio naršyklė +GenericName[lv]=Tīmekļa pārlūks +GenericName[ml]=വെബ് ബ്രൌസര്‍ +GenericName[mr]=वेब ब्राऊजर +GenericName[nb]=Nettleser +GenericName[nl]=Webbrowser +GenericName[pl]=Przeglądarka WWW +GenericName[pt]=Navegador Web +GenericName[pt_BR]=Navegador da Internet +GenericName[ro]=Navigator de Internet +GenericName[ru]=Веб-браузер +GenericName[sl]=Spletni brskalnik +GenericName[sv]=Webbläsare +GenericName[ta]=இணைய உலாவி +GenericName[th]=เว็บเบราว์เซอร์ +GenericName[tr]=Web Tarayıcı +GenericName[uk]=Веб-браузер +GenericName[zh_CN]=网页浏览器 +GenericName[zh_HK]=網頁瀏覽器 +GenericName[zh_TW]=網頁瀏覽器 +# Not translated in KDE, from Epiphany 2.26.1-0ubuntu1. +GenericName[bn]=ওয়েব ব্রাউজার +GenericName[fil]=Web Browser +GenericName[hr]=Web preglednik +GenericName[id]=Browser Web +GenericName[or]=ଓ୍ବେବ ବ୍ରାଉଜର +GenericName[sk]=WWW prehliadač +GenericName[sr]=Интернет прегледник +GenericName[te]=వెబ్ బ్రౌజర్ +GenericName[vi]=Bộ duyệt Web + +# Gnome and KDE 3 uses Comment. +Comment=Access the Internet +Comment[ar]=الدخول إلى الإنترنت +Comment[bg]=Достъп до интернет +Comment[bn]=ইন্টারনেটটি অ্যাক্সেস করুন +Comment[ca]=Accedeix a Internet +Comment[cs]=Přístup k internetu +Comment[da]=Få adgang til internettet +Comment[de]=Internetzugriff +Comment[el]=Πρόσβαση στο Διαδίκτυο +Comment[en_GB]=Access the Internet +Comment[es]=Accede a Internet. +Comment[et]=Pääs Internetti +Comment[fi]=Käytä internetiä +Comment[fil]=I-access ang Internet +Comment[fr]=Accéder à Internet +Comment[gu]=ઇંટરનેટ ઍક્સેસ કરો +Comment[he]=גישה אל האינטרנט +Comment[hi]=इंटरनेट तक पहुंच स्थापित करें +Comment[hr]=Pristup Internetu +Comment[hu]=Internetelérés +Comment[id]=Akses Internet +Comment[it]=Accesso a Internet +Comment[ja]=インターネットにアクセス +Comment[kn]=ಇಂಟರ್ನೆಟ್ ಅನ್ನು ಪ್ರವೇಶಿಸಿ +Comment[ko]=인터넷 연결 +Comment[lt]=Interneto prieiga +Comment[lv]=Piekļūt internetam +Comment[ml]=ഇന്റര്‍‌നെറ്റ് ആക്‌സസ് ചെയ്യുക +Comment[mr]=इंटरनेटमध्ये प्रवेश करा +Comment[nb]=Gå til Internett +Comment[nl]=Verbinding maken met internet +Comment[or]=ଇଣ୍ଟର୍ନେଟ୍ ପ୍ରବେଶ କରନ୍ତୁ +Comment[pl]=Skorzystaj z internetu +Comment[pt]=Aceder à Internet +Comment[pt_BR]=Acessar a internet +Comment[ro]=Accesaţi Internetul +Comment[ru]=Доступ в Интернет +Comment[sk]=Prístup do siete Internet +Comment[sl]=Dostop do interneta +Comment[sr]=Приступите Интернету +Comment[sv]=Gå ut på Internet +Comment[ta]=இணையத்தை அணுகுதல் +Comment[te]=ఇంటర్నెట్‌ను ఆక్సెస్ చెయ్యండి +Comment[th]=เข้าถึงอินเทอร์เน็ต +Comment[tr]=İnternet'e erişin +Comment[uk]=Доступ до Інтернету +Comment[vi]=Truy cập Internet +Comment[zh_CN]=访问互联网 +Comment[zh_HK]=連線到網際網路 +Comment[zh_TW]=連線到網際網路 + +Exec=helium-browser-bin %U +StartupNotify=true +StartupWMClass=helium +Terminal=false +Icon=net.imput.helium +Type=Application +Categories=Network;WebBrowser; +MimeType=application/pdf;application/rdf+xml;application/rss+xml;application/xhtml+xml;application/xhtml_xml;application/xml;image/gif;image/jpeg;image/png;image/webp;text/html;text/xml;x-scheme-handler/http;x-scheme-handler/https; +Actions=new-window;new-private-window; +X-Desktop-File-Install-Version=0.28 + +[Desktop Action new-window] +Name=New Window +Name[am]=አዲስ መስኮት +Name[ar]=نافذة جديدة +Name[bg]=Нов прозорец +Name[bn]=নতুন উইন্ডো +Name[ca]=Finestra nova +Name[cs]=Nové okno +Name[da]=Nyt vindue +Name[de]=Neues Fenster +Name[el]=Νέο Παράθυρο +Name[en_GB]=New Window +Name[es]=Nueva ventana +Name[et]=Uus aken +Name[fa]=پنجره جدید +Name[fi]=Uusi ikkuna +Name[fil]=New Window +Name[fr]=Nouvelle fenêtre +Name[gu]=નવી વિંડો +Name[hi]=नई विंडो +Name[hr]=Novi prozor +Name[hu]=Új ablak +Name[id]=Jendela Baru +Name[it]=Nuova finestra +Name[iw]=חלון חדש +Name[ja]=新規ウインドウ +Name[kn]=ಹೊಸ ವಿಂಡೊ +Name[ko]=새 창 +Name[lt]=Naujas langas +Name[lv]=Jauns logs +Name[ml]=പുതിയ വിന്‍ഡോ +Name[mr]=नवीन विंडो +Name[nl]=Nieuw venster +Name[no]=Nytt vindu +Name[pl]=Nowe okno +Name[pt]=Nova janela +Name[pt_BR]=Nova janela +Name[ro]=Fereastră nouă +Name[ru]=Новое окно +Name[sk]=Nové okno +Name[sl]=Novo okno +Name[sr]=Нови прозор +Name[sv]=Nytt fönster +Name[sw]=Dirisha Jipya +Name[ta]=புதிய சாளரம் +Name[te]=క్రొత్త విండో +Name[th]=หน้าต่างใหม่ +Name[tr]=Yeni Pencere +Name[uk]=Нове вікно +Name[vi]=Cửa sổ Mới +Name[zh_CN]=新建窗口 +Name[zh_TW]=開新視窗 +Exec=helium-browser-bin + +[Desktop Action new-private-window] +Name=New Incognito Window +Name[ar]=نافذة جديدة للتصفح المتخفي +Name[bg]=Нов прозорец „инкогнито“ +Name[bn]=নতুন ছদ্মবেশী উইন্ডো +Name[ca]=Finestra d'incògnit nova +Name[cs]=Nové anonymní okno +Name[da]=Nyt inkognitovindue +Name[de]=Neues Inkognito-Fenster +Name[el]=Νέο παράθυρο για ανώνυμη περιήγηση +Name[en_GB]=New Incognito window +Name[es]=Nueva ventana de incógnito +Name[et]=Uus inkognito aken +Name[fa]=پنجره جدید حالت ناشناس +Name[fi]=Uusi incognito-ikkuna +Name[fil]=Bagong Incognito window +Name[fr]=Nouvelle fenêtre de navigation privée +Name[gu]=નવી છુપી વિંડો +Name[hi]=नई गुप्त विंडो +Name[hr]=Novi anoniman prozor +Name[hu]=Új Inkognitóablak +Name[id]=Jendela Penyamaran baru +Name[it]=Nuova finestra di navigazione in incognito +Name[iw]=חלון חדש לגלישה בסתר +Name[ja]=新しいシークレット ウィンドウ +Name[kn]=ಹೊಸ ಅಜ್ಞಾತ ವಿಂಡೋ +Name[ko]=새 시크릿 창 +Name[lt]=Naujas inkognito langas +Name[lv]=Jauns inkognito režīma logs +Name[ml]=പുതിയ വേഷ പ്രച്ഛന്ന വിന്‍ഡോ +Name[mr]=नवीन गुप्त विंडो +Name[nl]=Nieuw incognitovenster +Name[no]=Nytt inkognitovindu +Name[pl]=Nowe okno incognito +Name[pt]=Nova janela de navegação anónima +Name[pt_BR]=Nova janela anônima +Name[ro]=Fereastră nouă incognito +Name[ru]=Новое окно в режиме инкогнито +Name[sk]=Nové okno inkognito +Name[sl]=Novo okno brez beleženja zgodovine +Name[sr]=Нови прозор за прегледање без архивирања +Name[sv]=Nytt inkognitofönster +Name[ta]=புதிய மறைநிலைச் சாளரம் +Name[te]=క్రొత్త అజ్ఞాత విండో +Name[th]=หน้าต่างใหม่ที่ไม่ระบุตัวตน +Name[tr]=Yeni Gizli pencere +Name[uk]=Нове вікно в режимі анонімного перегляду +Name[vi]=Cửa sổ ẩn danh mới +Name[zh_CN]=新建隐身窗口 +Name[zh_TW]=新增無痕式視窗 +Exec=helium-browser-bin --incognito diff --git a/anda/apps/helium-browser-bin/net.imput.helium.metainfo.xml b/anda/apps/helium-browser-bin/net.imput.helium.metainfo.xml new file mode 100644 index 0000000000..7b5ca5bf93 --- /dev/null +++ b/anda/apps/helium-browser-bin/net.imput.helium.metainfo.xml @@ -0,0 +1,24 @@ + + + net.imput.helium + CC0-1.0 + GPL-3.0-only AND BSD-3-Clause + + Helium Browser + Private, fast, and honest web browser based on Chromium. + + + /usr/share/icons/hicolor/256x256/apps/net.imput.helium.png + + +

+ Private, fast, and honest web browser based on Chromium. + Based on ungoogled-chromium with additional privacy and usability improvements. +

+
+ https://helium.computer + + + + +
diff --git a/anda/apps/helium-browser-bin/update.rhai b/anda/apps/helium-browser-bin/update.rhai new file mode 100644 index 0000000000..db92cb0a2c --- /dev/null +++ b/anda/apps/helium-browser-bin/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("imputnet/helium-linux")); diff --git a/anda/apps/juce/anda.hcl b/anda/apps/juce/anda.hcl new file mode 100644 index 0000000000..e802400a29 --- /dev/null +++ b/anda/apps/juce/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "juce.spec" + } +} diff --git a/anda/apps/juce/fix-install-dirs.patch b/anda/apps/juce/fix-install-dirs.patch new file mode 100644 index 0000000000..1d415228ec --- /dev/null +++ b/anda/apps/juce/fix-install-dirs.patch @@ -0,0 +1,60 @@ +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 diff --git a/anda/apps/juce/juce.spec b/anda/apps/juce/juce.spec new file mode 100644 index 0000000000..2f4afa404b --- /dev/null +++ b/anda/apps/juce/juce.spec @@ -0,0 +1,85 @@ +Name: juce +Version: 8.0.12 +Release: 4%{?dist} +License: AGPL-3.0-or-later +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 + +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} + +%conf +%cmake -DJUCER_ENABLE_GPL_MODE=1 \ + -DJUCE_BUILD_EXTRAS=ON \ + -DJUCE_TOOL_INSTALL_DIR=bin + +%build +%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 +%{_libdir}/cmake/%{name}/* +%{_datadir}/%{name}/modules/* + +%files doc +%license LICENSE.md +%doc %{_pkgdocdir}/* + +%changelog +* Tue Dec 23 2025 Owen Zimmerman +- Install doc subpackage license + +* Fri Dec 19 2025 metcya - 8.0.12 +- Package juce diff --git a/anda/apps/juce/update.rhai b/anda/apps/juce/update.rhai new file mode 100644 index 0000000000..d313ffde05 --- /dev/null +++ b/anda/apps/juce/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("juce-framework/JUCE")); diff --git a/anda/apps/komikku/komikku.spec b/anda/apps/komikku/komikku.spec index c170c45d4d..545d2c050d 100644 --- a/anda/apps/komikku/komikku.spec +++ b/anda/apps/komikku/komikku.spec @@ -3,19 +3,18 @@ %global gtk4_version 4.14.4 %global libadwaita_version 1.5.1 %global pure_protobuf_version 2.0.0 -%global raw_ver v1.90.0 Name: komikku -Version: 1.90.0 +Version: 50.3.0 %forgemeta -Release: 1%?dist +Release: 1%{?dist} Summary: A manga reader for GNOME BuildArch: noarch License: GPL-3.0-or-later -URL: https://valos.gitlab.io/Komikku -Source0: https://codeberg.org/valos/%{appname}/archive/%{raw_ver}.tar.gz#/%{name}-%{version}.tar.gz +URL: https://apps.gnome.org/Komikku/ +Source0: https://codeberg.org/valos/%{appname}/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz BuildRequires: desktop-file-utils BuildRequires: intltool diff --git a/anda/apps/komikku/update.rhai b/anda/apps/komikku/update.rhai index 13da8a9cef..4fddd2b9d3 100644 --- a/anda/apps/komikku/update.rhai +++ b/anda/apps/komikku/update.rhai @@ -1,4 +1 @@ -let latest_tag = get("https://codeberg.org/api/v1/repos/valos/Komikku/tags").json_arr()[0].name; -let new_version = find("([\\.\\d]+)", latest_tag, 1); -rpm.global("raw_ver", latest_tag); -rpm.version(new_version); +rpm.version(codeberg("valos/Komikku")); diff --git a/anda/apps/kopia/anda.hcl b/anda/apps/kopia/anda.hcl new file mode 100644 index 0000000000..1773be8778 --- /dev/null +++ b/anda/apps/kopia/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "kopia.spec" + } +} diff --git a/anda/apps/kopia/fix-electron-output-dir.patch b/anda/apps/kopia/fix-electron-output-dir.patch new file mode 100644 index 0000000000..d6d7377616 --- /dev/null +++ b/anda/apps/kopia/fix-electron-output-dir.patch @@ -0,0 +1,13 @@ +diff --git a/app/package.json b/app/package.json +index bd3a699a..df05befa 100644 +--- a/app/package.json ++++ b/app/package.json +@@ -45,7 +45,7 @@ + ], + "directories": { + "buildResources": "assets", +- "output": "../dist/kopia-ui" ++ "output": "./dist" + }, + "nsis": { + "oneClick": false, diff --git a/anda/apps/kopia/io.kopia.ui.desktop b/anda/apps/kopia/io.kopia.ui.desktop new file mode 100644 index 0000000000..0fe5a8ffff --- /dev/null +++ b/anda/apps/kopia/io.kopia.ui.desktop @@ -0,0 +1,7 @@ +[Desktop Entry] +Type=Application +Terminal=false +Name=KopiaUI +Comment=Fast and secure open-source backup/restore tool +Exec=kopia-ui +Icon=kopia diff --git a/anda/apps/kopia/io.kopia.ui.metainfo.xml b/anda/apps/kopia/io.kopia.ui.metainfo.xml new file mode 100644 index 0000000000..875b109407 --- /dev/null +++ b/anda/apps/kopia/io.kopia.ui.metainfo.xml @@ -0,0 +1,13 @@ + + KopiaUI + + A backup/restore tool that allows you to create encrypted snapshots + + + System + Network + + + kopia-ui + + diff --git a/anda/apps/kopia/kopia.spec b/anda/apps/kopia/kopia.spec new file mode 100644 index 0000000000..7d9ea4fef5 --- /dev/null +++ b/anda/apps/kopia/kopia.spec @@ -0,0 +1,84 @@ +%global appid io.kopia.ui +%global appstream_component desktop-application + +Name: kopia +%electronmeta -D +Version: 0.22.3 +Release: 1%{?dist} +Summary: A backup/restore tool that allows you to create encrypted snapshots + +License: Apache-2.0 AND CC0-1.0 AND %{electron_license} +URL: https://kopia.io/ +Source0: https://github.com/kopia/kopia/archive/v%{version}.tar.gz +Source1: io.kopia.ui.desktop +Source2: io.kopia.ui.metainfo.xml +Patch0: fix-electron-output-dir.patch +ExclusiveArch: %{golang_arches_future} +Packager: metcya + +BuildRequires: go-rpm-macros +BuildRequires: terra-appstream-helper + +%global gui_name %{name}-ui + +%package -n %{gui_name} +Summary: GUI for %{name} +Requires: %{name} = %{evr} +ExclusiveArch: %{electron_arches} + +%description +Kopia is a fast and secure open-source backup/restore tool that allows you to +create encrypted snapshots of your data and save the snapshots to remote or +cloud storage of your choice, to network-attached storage or server, or locally +on your machine. Kopia does not 'image' your whole machine. Rather, Kopia +allows you to backup/restore any and all files/directories that you deem are +important or critical. + +%description -n %{gui_name} +A graphical user interface for %{name}. + +%prep +%autosetup -p1 + +%build +%global gomodulesmode GO111MODULE=on +%gobuild -o %{name} . + +pushd app +%npm_build -B +popd + +%install +install -Dm 755 %{name} -t %{buildroot}%{_bindir} + +pushd app +%electron_install -b %{gui_name} -d %{gui_name} -s %{gui_name} -I ../icons +popd + +# the offical package for kopia-ui includes a bundled copy of the kopia binary +# but we'll just symlink it +mkdir -p %{buildroot}%{_libdir}/%{gui_name}/resources/server +%{__ln_s} %{_bindir}/%{name} %{buildroot}%{_libdir}/%{gui_name}/resources/server/%{name} + +%desktop_file_install %{S:1} + +%terra_appstream -o %{S:2} + +%check +%desktop_file_validate %{buildroot}%{_appsdir}/%{appid}.desktop + +%files +%license README.md +%doc LICENSE +%{_bindir}/%{name} + +%files -n %{gui_name} +%{_bindir}/%{gui_name} +%{_libdir}/%{gui_name}/ +%{_appsdir}/%{appid}.desktop +%{_metainfodir}/%{appid}.metainfo.xml +%{_hicolordir}/*/apps/kopia.png + +%changelog +* Thu Jan 22 2026 metcya - 0.22.3-1 +- Initial package diff --git a/anda/apps/kopia/update.rhai b/anda/apps/kopia/update.rhai new file mode 100644 index 0000000000..a36be96a92 --- /dev/null +++ b/anda/apps/kopia/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("kopia/kopia")); diff --git a/anda/apps/legcord/nightly/legcord-nightly.spec b/anda/apps/legcord/nightly/legcord-nightly.spec index 78ac0de8bc..01c903c28f 100644 --- a/anda/apps/legcord/nightly/legcord-nightly.spec +++ b/anda/apps/legcord/nightly/legcord-nightly.spec @@ -1,5 +1,5 @@ -%global commit 71a73d9ac15b3c50c80f1a4cffd657f304da79a8 -%global commit_date 20251015 +%global commit e55cd408f7eee7d1009a5c0bb4003914292f082d +%global commit_date 20260427 %global shortcommit %(c=%{commit}; echo ${c:0:7}) %global debug_package %nil %global __strip /bin/true @@ -12,7 +12,7 @@ Name: legcord-nightly Version: %commit_date.%shortcommit -Release: 1%?dist +Release: 1%{?dist} License: OSL-3.0 Summary: Custom lightweight Discord client designed to enhance your experience URL: https://github.com/Legcord/Legcord @@ -82,10 +82,10 @@ desktop-file-install --set-key=Exec --set-value="%{_datadir}/legcord/legcord %U" * Mon Aug 26 2024 madonuko - 3.3.0-1 - Update to license.txt -* Sat Jun 17 2023 windowsboy111 - 3.2.0-2 +* Sat Jun 17 2023 madonuko - 3.2.0-2 - Remove libnotify dependency. - Fix desktop entry. - Set as noarch package because there are not binary files. -* Sat May 6 2023 windowsboy111 - 3.1.7-1 +* Sat May 6 2023 madonuko - 3.1.7-1 - Initial package diff --git a/anda/apps/legcord/stable/legcord.spec b/anda/apps/legcord/stable/legcord.spec index 2d6e752d8f..445ae3002e 100644 --- a/anda/apps/legcord/stable/legcord.spec +++ b/anda/apps/legcord/stable/legcord.spec @@ -9,8 +9,8 @@ %endif Name: legcord -Version: 1.1.5 -Release: 2%?dist +Version: 1.2.4 +Release: 1%{?dist} License: OSL-3.0 Summary: Custom lightweight Discord client designed to enhance your experience URL: https://github.com/Legcord/Legcord @@ -78,10 +78,10 @@ desktop-file-install --set-key=Exec --set-value="%{_datadir}/legcord/legcord %U" * Mon Aug 26 2024 madonuko - 3.3.0-1 - Update to license.txt -* Sat Jun 17 2023 windowsboy111 - 3.2.0-2 +* Sat Jun 17 2023 madonuko - 3.2.0-2 - Remove libnotify dependency. - Fix desktop entry. - Set as noarch package because there are not binary files. -* Sat May 6 2023 windowsboy111 - 3.1.7-1 +* Sat May 6 2023 madonuko - 3.1.7-1 - Initial package diff --git a/anda/apps/librepods/anda.hcl b/anda/apps/librepods/anda.hcl new file mode 100644 index 0000000000..8990d2f4b3 --- /dev/null +++ b/anda/apps/librepods/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "librepods.spec" + } +} diff --git a/anda/apps/librepods/com.github.librepods.metainfo.xml b/anda/apps/librepods/com.github.librepods.metainfo.xml new file mode 100644 index 0000000000..fe37b60d82 --- /dev/null +++ b/anda/apps/librepods/com.github.librepods.metainfo.xml @@ -0,0 +1,37 @@ + + + com.github.librepods + CC0-1.0 + GPL-3.0-only + https://github.com/kavishdevar/librepods/blob/main/linux/assets/librepods.png + + librepods + AirPods liberated from Apple's ecosystem + + +

+ 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. +

+
+ + me.kavishdevar.librepods.desktop + + https://github.com/kavishdevar/librepods + + librepods + + + + airpods + librepods + + + + + +
diff --git a/anda/apps/librepods/librepods.spec b/anda/apps/librepods/librepods.spec new file mode 100644 index 0000000000..66d7ccc7ee --- /dev/null +++ b/anda/apps/librepods/librepods.spec @@ -0,0 +1,63 @@ +%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 + +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 +- Initial commit diff --git a/anda/apps/librepods/update.rhai b/anda/apps/librepods/update.rhai new file mode 100644 index 0000000000..b6238a8951 --- /dev/null +++ b/anda/apps/librepods/update.rhai @@ -0,0 +1,4 @@ +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); diff --git a/anda/apps/mission-center/mission-center.spec b/anda/apps/mission-center/mission-center.spec index d47733b512..6206875c3d 100644 --- a/anda/apps/mission-center/mission-center.spec +++ b/anda/apps/mission-center/mission-center.spec @@ -1,9 +1,9 @@ %global forgeurl0 https://gitlab.com/mission-center-devs/mission-center -Version: 1.0.2 +Version: 1.1.0 %global tag0 v%{version} %global forgeurl1 https://gitlab.com/mission-center-devs/gng -%global commit1 319d95d29cbc3c373ae61cff228e8440fbaadbbb +%global commit1 1a8916cfeb06a3d63eefa8b17972eb2988e16da3 %forgemeta -a diff --git a/anda/apps/moonshot/anda.hcl b/anda/apps/moonshot/anda.hcl new file mode 100644 index 0000000000..7b387f9379 --- /dev/null +++ b/anda/apps/moonshot/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "moonshot.spec" + } +} diff --git a/anda/apps/moonshot/com.fyralabs.moonshot.metainfo.xml b/anda/apps/moonshot/com.fyralabs.moonshot.metainfo.xml new file mode 100644 index 0000000000..74571ae640 --- /dev/null +++ b/anda/apps/moonshot/com.fyralabs.moonshot.metainfo.xml @@ -0,0 +1,50 @@ + + + com.fyralabs.moonshot + CC0-1.0 + GPL-3.0-or-later + /usr/share/icons/hicolor/512x512/apps/moonshot.png + + Moonshot + A beautiful cross-platform flashing tool + + + https://github.com/FyraLabs/moonshot/blob/main/build/screenshot.png + + + +

+ A beautiful cross-platform flashing tool. + Why? + + - Community frustration with existing flashing tools. + - We have unique ideas that we want to implement in the future, ex: selecting distro images from within the app. + - For fun. +

+
+ + moonshot.desktop + + https://github.com/FyraLabs/moonshot + https://github.com/FyraLabs/moonshot/issues + https://github.com/sponsors/FyraLabs + https://fyralabs.com/contact/ + + moonshot + + + + disk flashing + imaging + flashing tool + flasher + etcher + usb + sd card + + + + Fyra Labs + +
diff --git a/anda/apps/moonshot/moonshot.spec b/anda/apps/moonshot/moonshot.spec new file mode 100644 index 0000000000..7f78f7bca2 --- /dev/null +++ b/anda/apps/moonshot/moonshot.spec @@ -0,0 +1,56 @@ +%define debug_package %{nil} +%define appid com.fyralabs.moonshot + +Name: moonshot +Version: 1.0.2 +Release: 1%?dist +Summary: A beautiful cross-platform flashing tool +License: GPL-3.0-or-later +URL: https://github.com/FyraLabs/moonshot +Source0: %url/archive/refs/tags/v%version.tar.gz +Source1: com.fyralabs.moonshot.metainfo.xml + +BuildRequires: wails3 +BuildRequires: golang +BuildRequires: bun-bin +BuildRequires: pkgconfig(webkit2gtk-4.1) +BuildRequires: pkgconfig(gtk4) +BuildRequires: pkgconfig(webkitgtk-6.0) +BuildRequires: pkgconfig(gio-unix-2.0) +BuildRequires: pkgconfig(libsoup-3.0) + +Packager: Owen Zimmerman + +%description +%{summary}. +Why? + + - Community frustration with existing flashing tools. + - We have unique ideas that we want to implement in the future, ex: selecting distro images from within the app. + - For fun. + +%prep +%autosetup + +%build +%set_javascript_build_flags +EXTRA_TAGS=gtk4 wails3 build + +%install +install -Dm755 bin/moonshot %{buildroot}%{_bindir}/moonshot +install -Dm644 build/linux/moonshot.desktop %{buildroot}%{_appsdir}/%{appid}.desktop +install -Dm644 build/appicon.png %{buildroot}%{_hicolordir}/512x512/apps/moonshot.png + +%terra_appstream -o %{SOURCE1} + +%files +%doc README.md +%license LICENSE +%{_bindir}/moonshot +%{_appsdir}/%{appid}.desktop +%{_hicolordir}/512x512/apps/moonshot.png +%{_metainfodir}/com.fyralabs.moonshot.metainfo.xml + +%changelog +* Mon Mar 02 2026 Owen Zimmerman +- Initial commit diff --git a/anda/apps/moonshot/update.rhai b/anda/apps/moonshot/update.rhai new file mode 100644 index 0000000000..11a9be849e --- /dev/null +++ b/anda/apps/moonshot/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("FyraLabs/moonshot")); diff --git a/anda/apps/mpv/mpv-nightly.spec b/anda/apps/mpv/mpv-nightly.spec index 817560bebf..7dd067f276 100644 --- a/anda/apps/mpv/mpv-nightly.spec +++ b/anda/apps/mpv/mpv-nightly.spec @@ -1,14 +1,14 @@ # Disable X11 for RHEL 10+ %bcond x11 %[%{undefined rhel} || 0%{?rhel} < 10] -%global commit 44685344a5341bb2039f9eae2b3fb2898e276c50 +%global commit cfd818bcaef262f82596f49444ee80073fa6d49a %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commit_date 20251027 -%global ver 0.40.0 +%global commit_date 20260506 +%global ver 0.41.0 Name: mpv-nightly Version: %ver^%commit_date.%shortcommit -Release: 1%?dist +Release: 1%{?dist} License: GPL-2.0-or-later AND LGPL-2.1-or-later Summary: Movie player playing most video formats and DVDs @@ -188,7 +188,6 @@ 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 \ diff --git a/anda/apps/neohtop/com.github.neohtop.metainfo.xml b/anda/apps/neohtop/com.github.neohtop.metainfo.xml new file mode 100644 index 0000000000..665ce3842a --- /dev/null +++ b/anda/apps/neohtop/com.github.neohtop.metainfo.xml @@ -0,0 +1,35 @@ + + + com.github.neohtop + CC0-1.0 + MIT + /usr/share/icons/hicolor/128x128/apps/NeoHtop.png + + NeoHtop + System monitoring on steroids + + + https://github.com/Abdenasser/neohtop/blob/main/screenshot.png + + + +

+ A modern, cross-platform system monitor built on top of Svelte, Rust, and Tauri. +

+
+ + NeoHtop.desktop + + https://abdenasser.github.io/neohtop/ + + neohtop + + + + system monitor + + + + + +
diff --git a/anda/apps/neohtop/neohtop.spec b/anda/apps/neohtop/neohtop.spec index b6da0e0383..bc1af0b9ea 100644 --- a/anda/apps/neohtop/neohtop.spec +++ b/anda/apps/neohtop/neohtop.spec @@ -1,51 +1,70 @@ -%global __brp_mangle_shebangs %{nil} +%undefine __brp_mangle_shebangs +%global appid com.github.neohtop Name: neohtop Version: 1.2.0 -Release: 1%?dist +Release: 5%?dist Summary: System monitoring on steroids -License: MIT -URL: https://github.com/Abdenasser/neohtop -Source0: %url/archive/refs/tags/v%version.tar.gz +SourceLicense: MIT +License: ((Apache-2.0 OR MIT) AND BSD-3-Clause) AND (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND Apache-2.0 AND (BSD-3-Clause AND MIT) AND (BSD-3-Clause OR MIT OR Apache-2.0) AND (BSD-3-Clause OR MIT) AND BSD-3-Clause AND (CC0-1.0 OR MIT-0 OR Apache-2.0) AND (MIT OR Apache-2.0 OR Zlib) AND (MIT OR Apache-2.0) AND (MIT OR Zlib OR Apache-2.0) AND MIT AND MPL-2.0 AND (Unlicense OR MIT) AND (Zlib OR Apache-2.0 OR MIT) +URL: https://abdenasser.github.io/neohtop/ +Source0: https://github.com/Abdenasser/neohtop/archive/refs/tags/v%version.tar.gz Source1: NeoHtop.desktop +Source2: com.github.neohtop.metainfo.xml Packager: Owen Zimmerman BuildRequires: rust -BuildRequires: nodejs-npm -BuildRequires: webkit2gtk4.1-devel -BuildRequires: javascriptcoregtk4.1-devel +BuildRequires: %tauri_buildrequires BuildRequires: libsoup3-devel 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. %prep %autosetup -n neohtop-%version +%tauri_prep %build -npm install -npm run tauri build +%npm_build -B %install -install -Dpm755 src-tauri/target/release/NeoHtop %buildroot%_bindir/NeoHtop -install -Dpm644 %{SOURCE1} %buildroot%{_datadir}/applications/NeoHtop.desktop +install -Dpm755 src-tauri/target/rpm/NeoHtop %{buildroot}%{_bindir}/NeoHtop +%desktop_file_install %{SOURCE1} # 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%{_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 +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} + +%{tauri_cargo_license} > LICENSE.dependencies + +%check +%desktop_file_validate %{buildroot}%{_appsdir}/NeoHtop.desktop %files %doc README.md %license LICENSE -%_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 +%license LICENSE.dependencies +%{_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 %changelog +* Wed Dec 24 2025 Owen Zimmerman +- Clean up build, add %check +* Wed Nov 19 2025 Owen Zimmerman +- Add metainfo * Sat Feb 15 2025 Owen Zimmerman - Initial package diff --git a/anda/apps/newsraft/anda.hcl b/anda/apps/newsraft/anda.hcl new file mode 100644 index 0000000000..9cd7b97ce0 --- /dev/null +++ b/anda/apps/newsraft/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "newsraft.spec" + } +} diff --git a/anda/apps/newsraft/newsraft.spec b/anda/apps/newsraft/newsraft.spec new file mode 100644 index 0000000000..ec2acc8b2f --- /dev/null +++ b/anda/apps/newsraft/newsraft.spec @@ -0,0 +1,61 @@ +%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 + +%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 +- Intial Commit diff --git a/anda/apps/newsraft/update.rhai b/anda/apps/newsraft/update.rhai new file mode 100644 index 0000000000..c5530b7f3f --- /dev/null +++ b/anda/apps/newsraft/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("newsraft/newsraft")); diff --git a/anda/apps/opensnitch/opensnitch.spec b/anda/apps/opensnitch/opensnitch.spec index 981612ce2b..526c4a597e 100644 --- a/anda/apps/opensnitch/opensnitch.spec +++ b/anda/apps/opensnitch/opensnitch.spec @@ -4,7 +4,7 @@ # https://github.com/evilsocket/opensnitch %global goipath github.com/evilsocket/opensnitch -Version: 1.7.0.0 +Version: 1.8.0 %gometa -f @@ -20,7 +20,7 @@ Snitch.} utils/packaging/ui/deb/debian/changelog Name: opensnitch -Release: %autorelease +Release: 1%{?dist} Summary: OpenSnitch is a GNU/Linux interactive application firewall inspired by Little Snitch License: GPL-3.0-only AND LGPL-2.1-or-later @@ -36,8 +36,7 @@ BuildRequires: python3dist(pyqt5) BuildRequires: /usr/bin/lrelease-qt5 BuildRequires: protobuf-compiler BuildRequires: pkgconfig(libnetfilter_queue) -#BuildRequires: protoc-gen-go -#BuildRequires: /usr/bin/protoc-gen-go-grpc +BuildRequires: qt6-linguist %description %{common_description} @@ -46,7 +45,6 @@ BuildRequires: pkgconfig(libnetfilter_queue) %prep %goprep -A -%autopatch -p1 export GOBIN=$(go env GOPATH | sed -E 's/:.+$//')/bin echo $GOBIN > %_builddir/gobin @@ -83,26 +81,15 @@ popd install -Dm755 opensnitchd -t %buildroot%_bindir pushd ui -%if 0%{?fedora} <= 41 -%py3_install -%else %pyproject_install %pyproject_save_files %name -%endif popd rm -rf %buildroot%python3_sitelib/tests/ cp -r %buildroot%python3_sitelib%_usr/ %buildroot%_usr/ --preserve=all --no-target-directory rm -rf %buildroot%python3_sitelib%_usr - -%if 0%{?fedora} <= 41 -%files -%{python3_sitelib}/%name/ -%{python3_sitelib}/%name-%{version}-py%{python3_version}.egg-info/ -%else %files -f %{pyproject_files} -%endif %license LICENSE %doc README.md %_bindir/opensnitch-ui @@ -113,7 +100,10 @@ rm -rf %buildroot%python3_sitelib%_usr %_iconsdir/hicolor/scalable/apps/opensnitch-ui.svg %_datadir/kservices5/kcm_opensnitch.desktop %_metainfodir/io.github.evilsocket.opensnitch.appdata.xml - -/usr/share/icons/hicolor/scalable/apps/opensnitch-ui.svg +%_scalableiconsdir/opensnitch-ui.svg %gopkgfiles + +%changelog +* Mon Mar 16 2026 Owen Zimmerman +- Fix build, clean up spec diff --git a/anda/apps/opensnitch/update.rhai b/anda/apps/opensnitch/update.rhai index e69de29bb2..def95f43fc 100644 --- a/anda/apps/opensnitch/update.rhai +++ b/anda/apps/opensnitch/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("evilsocket/opensnitch")); diff --git a/anda/apps/opentrack/anda.hcl b/anda/apps/opentrack/anda.hcl new file mode 100644 index 0000000000..3d67e7a597 --- /dev/null +++ b/anda/apps/opentrack/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "opentrack.spec" + } +} diff --git a/anda/apps/opentrack/com.github.opentrack.desktop b/anda/apps/opentrack/com.github.opentrack.desktop new file mode 100644 index 0000000000..0809ab5008 --- /dev/null +++ b/anda/apps/opentrack/com.github.opentrack.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Type=Application +Name=Opentrack +Comment=Head tracking for games and simulation +Exec=opentrack +Icon=opentrack +Terminal=false +Categories=Game;Settings; diff --git a/anda/apps/opentrack/com.github.opentrack.metainfo.xml b/anda/apps/opentrack/com.github.opentrack.metainfo.xml new file mode 100644 index 0000000000..c65352384d --- /dev/null +++ b/anda/apps/opentrack/com.github.opentrack.metainfo.xml @@ -0,0 +1,30 @@ + + + com.github.opentrack + CC0-1.0 + ISC AND BSD-3-Clause AND BSD-2-Clause AND LGPL-2.1-only AND GPL-3.0-only AND LGPL-2.1-or-later AND MIT AND LGPL-3.0-or-later + /usr/share/icons/hicolor/256x256/apps/opentrack.png + + opentrack + Head tracking software for MS Windows, Linux, and Apple OSX + + +

+ opentrack is a program for tracking user's head rotation and transmitting it to flight simulation software and military-themed video games. +

+
+ + com.github.opentrack.desktop + + https://github.com/opentrack/opentrack + + opentrack + + + + head tracking + tracking + body tracking + +
diff --git a/anda/apps/opentrack/fix-qt6-resolve.patch b/anda/apps/opentrack/fix-qt6-resolve.patch new file mode 100644 index 0000000000..a24465e12c --- /dev/null +++ b/anda/apps/opentrack/fix-qt6-resolve.patch @@ -0,0 +1,13 @@ +diff --git a/tracker-neuralnet/env.cpp b/tracker-neuralnet/env.cpp +index 563c9c1..21b1d58 100644 +--- a/tracker-neuralnet/env.cpp ++++ b/tracker-neuralnet/env.cpp +@@ -20,7 +20,7 @@ void NeuralNetTracker::maybe_load_onnxruntime_dynamically() + std::abort(); + } + +- void* fn_OrtGetApiBase = lib.resolve("OrtGetApiBase"); ++ void* fn_OrtGetApiBase = reinterpret_cast(lib.resolve("OrtGetApiBase")); + if (!fn_OrtGetApiBase) + { + qDebug().nospace() << "tracker/nn: can't find OrtGetApiBase in onnxruntime: " << lib.errorString() << ". now crashing."; diff --git a/anda/apps/opentrack/opentrack.spec b/anda/apps/opentrack/opentrack.spec new file mode 100644 index 0000000000..9779cdd024 --- /dev/null +++ b/anda/apps/opentrack/opentrack.spec @@ -0,0 +1,116 @@ +%global debug_package %{nil} +%global openvr_ver 2.12.14 +%global appid com.github.opentrack +%global ver opentrack-2026.1.0 +%global sanitized_ver %(echo %{ver} | sed 's/opentrack\-//') + +Name: opentrack +Version: %{sanitized_ver} +Release: 1%{?dist} +Summary: Head tracking software for MS Windows, Linux, and Apple OSX + +License: ISC AND BSD-3-Clause AND BSD-2-Clause AND LGPL-2.1-only AND GPL-3.0-only AND LGPL-2.1-or-later AND MIT AND LGPL-3.0-or-later +URL: https://github.com/%{name}/%{name} +Source0: %{url}/archive/refs/tags/%{name}-%{version}.tar.gz +Source1: https://github.com/ValveSoftware/openvr/archive/refs/tags/v%{openvr_ver}.tar.gz +Source2: %{appid}.desktop +Source3: %{appid}.metainfo.xml + +Patch0: fix-qt6-resolve.patch + +ExcludeArch: %{ix86} + +BuildRequires: cmake +BuildRequires: gcc-c++ +BuildRequires: faust +BuildRequires: faust-osclib-devel +BuildRequires: libevdev-devel +BuildRequires: librealsense-devel +BuildRequires: libX11-devel +BuildRequires: libXtst-devel +BuildRequires: ninja-build +BuildRequires: onnxruntime-devel +BuildRequires: opencv-devel +BuildRequires: procps-ng-devel +BuildRequires: qt6-qt5compat-devel +BuildRequires: qt6-qtbase-devel +BuildRequires: qt6-qtbase-private-devel +BuildRequires: qt6-qtserialport-devel +BuildRequires: qt6-qttools-devel +BuildRequires: terra-wine-staging +BuildRequires: wine-staging-devel + +Requires: qt6-qtbase +Requires: qt6-qt5compat +Requires: qt6-qtserialport +Requires: opencv +Requires: faust-osclib +Requires: onnxruntime + +Packager: Owen Zimmerman + +%description +opentrack is a program for tracking user's head rotation and transmitting it to flight simulation software and military-themed video games. + +%prep +%autosetup -n %{name}-%{name}-%{version} -p1 +tar -xf %{SOURCE1} + +# Rename the OpenVR license so we can include it in the RPM +cp openvr-%{openvr_ver}/LICENSE LICENSE-OpenVR + +mkdir -p external-include/include/oscpack/osc +mkdir -p external-include/lib +ln -s /usr/include/faust/osc/*.h external-include/include/oscpack/osc/ +ln -s /usr/share/faust/osclib/oscpack/osc/*.h external-include/include/oscpack/osc/ +ln -s /usr/lib/libOSCFaust.so external-include/lib/liboscpack.so + +%build +%cmake -G Ninja \ + -DCMAKE_BUILD_TYPE=Release \ + -DSDK_HIERARCHY=ON \ + -DSDK_WINE=ON \ + -DSDK_LIBDIR=%{_lib}/%{name} \ + -DSDK_PLUGINDIR=%{_lib}/%{name} \ + -DSDK_OSCPACK=$PWD/external-include \ + -DSDK_ONNX=ON \ + -DONNXRuntime_DIR=%{_libdir} \ + -DONNXRuntime_INCLUDE_DIRS=%{_includedir}/onnxruntime \ + -DSDK_OPENCV=ON \ + -DSDK_VALVE_STEAMVR=$PWD/openvr-%{openvr_ver} \ + -DOPENCV_PREFIX=%{_prefix} + +%cmake_build + +%install +%cmake_install + +mkdir -p %{buildroot}%{_libdir}/%{name} +install -Dm755 openvr-%{openvr_ver}/bin/linux64/libopenvr_api.so %{buildroot}%{_libdir}/%{name}/ + +install -Dm644 gui/images/opentrack.png %{buildroot}%{_hicolordir}/256x256/apps/opentrack.png + +%desktop_file_install %{S:2} + +%terra_appstream -o %{S:3} + +%check +%desktop_file_validate %{buildroot}%{_appsdir}/%{appid}.desktop + +%files +%doc %{_datadir}/doc/%{name}/ +%license OPENTRACK-LICENSING.txt WARRANTY.txt LICENSE-OpenVR 3rdparty-notices/ +%{_bindir}/%{name} +%{_libexecdir}/%{name}/ +%{_libdir}/%{name}/libopenvr_api.so +%{_datadir}/%{name}/ +%{_datadir}/applications/%{appid}.desktop +%{_hicolordir}/256x256/apps/opentrack.png +%{_metainfodir}/%{appid}.metainfo.xml + +%changelog +* Sun Mar 15 2026 Owen Zimmerman - 2026.1.0-1 +- Port to Terra + +* Wed Mar 11 2026 LionHeartP - 2026.1.0-1 +- Initial Nobara package diff --git a/anda/apps/opentrack/update.rhai b/anda/apps/opentrack/update.rhai new file mode 100644 index 0000000000..876930473a --- /dev/null +++ b/anda/apps/opentrack/update.rhai @@ -0,0 +1 @@ +rpm.global("ver", gh("opentrack/opentrack")); diff --git a/anda/apps/peazip/peazip.spec b/anda/apps/peazip/peazip.spec index 8f80e23e2a..6448d162e1 100644 --- a/anda/apps/peazip/peazip.spec +++ b/anda/apps/peazip/peazip.spec @@ -2,8 +2,8 @@ %define debug_package %nil Name: peazip -Version: 10.7.0 -Release: 1%?dist +Version: 11.0.0 +Release: 1%{?dist} Summary: Free Zip / Unzip software and Rar file extractor. Cross-platform file and archive manager License: LGPL-3.0-only URL: https://peazip.github.io @@ -88,15 +88,20 @@ Qt6 version of pea. %build cd peazip-sources -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 +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 %install install -Dm755 peazip.* -t %buildroot%_bindir diff --git a/anda/apps/proton-vpn/anda.hcl b/anda/apps/proton-vpn/anda.hcl new file mode 100644 index 0000000000..114e0b33a4 --- /dev/null +++ b/anda/apps/proton-vpn/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "proton-vpn.spec" + } +} diff --git a/anda/apps/proton-vpn/proton-vpn.spec b/anda/apps/proton-vpn/proton-vpn.spec new file mode 100644 index 0000000000..00a21788da --- /dev/null +++ b/anda/apps/proton-vpn/proton-vpn.spec @@ -0,0 +1,78 @@ +%global metainfo_commit 92832ea1d6adc2b226742d29bc41f5156426f898 + +Name: proton-vpn-gtk-app +Version: 4.16.1 +Release: 1%{?dist} +Summary: Official ProtonVPN Linux app +License: GPL-3.0-only +URL: https://protonvpn.com/download-linux +Source0: https://github.com/ProtonVPN/proton-vpn-gtk-app/archive/refs/tags/v%version.tar.gz +# So cursed but makes our lives easier +Source1: https://github.com/flathub/com.protonvpn.www/archive/%{metainfo_commit}/com.protonvpn.www-%{metainfo_commit}.tar.gz +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-build +BuildRequires: python3-wheel +BuildRequires: python3-pip +BuildRequires: python3-setuptools +BuildRequires: python3-gobject +BuildRequires: python3-dbus +BuildRequires: python3-packaging +BuildRequires: gtk3 +BuildRequires: libnotify +BuildRequires: python3-proton-vpn-api-core +BuildRequires: librsvg2 + +Requires: gtk3 +Requires: libnotify +Requires: python3-gobject +Requires: python3-dbus +Requires: python3-packaging +Requires: python3-proton-vpn-api-core +Requires: python3-proton-core >= 0.7.0 +Requires: librsvg2 + +Provides: protonvpn +Provides: proton-vpn + +Packager: Owen Zimmerman + +%description +The Proton VPN GTK app is intended for every Proton VPN service user, +it provides full access to all functionalities available to authenticated users, +with the user signup process handled on the website. + +%prep +%autosetup -n %{name}-%{version} +tar -xvf %{SOURCE1} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files proton +install -Dm644 rpmbuild/SOURCES/proton-vpn-logo.svg %{buildroot}%{_scalableiconsdir}/proton-vpn-logo.svg +install -Dm644 com.protonvpn.www-%{metainfo_commit}/com.protonvpn.www.metainfo.xml %{buildroot}%{_metainfodir}/com.protonvpn.www.metainfo.xml +install -Dm644 rpmbuild/SOURCES/proton.vpn.app.gtk.desktop %{buildroot}%{_appsdir}/proton.vpn.app.gtk.desktop + +# We pull in a metainfo file that often changes upstream, that calls the .desktop file what we are symlinking it to. +# If we install the .desktop file with the new name, the icon does not show properly on KDE Plasma. +%{__ln_s} -f %{_appsdir}/proton.vpn.app.gtk.desktop %{buildroot}%{_appsdir}/com.protonvpn.www.desktop + +%files -f %{pyproject_files} +%doc README.md CONTRIBUTING.md CODEOWNERS +%license LICENSE COPYING.md +%{_bindir}/protonvpn-app +%{_appsdir}/proton.vpn.app.gtk.desktop +%{_appsdir}/com.protonvpn.www.desktop +%{_scalableiconsdir}/proton-vpn-logo.svg +%{_metainfodir}/com.protonvpn.www.metainfo.xml + +%changelog +* Wed Mar 25 2026 Owen Zimmerman +- Fix metainfo and .desktop file + +* Sat Jan 17 2026 Owen Zimmerman +- Initial commit diff --git a/anda/apps/proton-vpn/update.rhai b/anda/apps/proton-vpn/update.rhai new file mode 100644 index 0000000000..84f830d233 --- /dev/null +++ b/anda/apps/proton-vpn/update.rhai @@ -0,0 +1,3 @@ +rpm.version(gh_tag("ProtonVPN/proton-vpn-gtk-app")); + +rpm.global("metainfo_commit", gh_commit("flathub/com.protonvpn.www")); diff --git a/anda/apps/protontricks/protontricks.spec b/anda/apps/protontricks/protontricks.spec index 5ea09b3a59..d2f3ef4bae 100644 --- a/anda/apps/protontricks/protontricks.spec +++ b/anda/apps/protontricks/protontricks.spec @@ -2,8 +2,8 @@ %global pypi_name protontricks Name: terra-%{pypi_name} -Version: 1.13.0 -Release: 1%?dist +Version: 1.14.1 +Release: 1%{?dist} Summary: Simple wrapper that does winetricks things for Proton enabled games BuildArch: noarch diff --git a/anda/apps/qiqi-notebook/anda.hcl b/anda/apps/qiqi-notebook/anda.hcl new file mode 100644 index 0000000000..ab9df9d4a9 --- /dev/null +++ b/anda/apps/qiqi-notebook/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "qiqis-notebook.spec" + } +} diff --git a/anda/apps/qiqi-notebook/qiqis-notebook.desktop b/anda/apps/qiqi-notebook/qiqis-notebook.desktop new file mode 100644 index 0000000000..755a41d765 --- /dev/null +++ b/anda/apps/qiqi-notebook/qiqis-notebook.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Name=Qiqi's Notebook +Exec=qiqis-notebook --ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime +Terminal=false +Type=Application +Icon=qiqis-notebook +StartupWMClass=qiqis-notebook +Comment=Qiqi's Notebook desktop app diff --git a/anda/apps/qiqi-notebook/qiqis-notebook.spec b/anda/apps/qiqi-notebook/qiqis-notebook.spec new file mode 100644 index 0000000000..7a471c54df --- /dev/null +++ b/anda/apps/qiqi-notebook/qiqis-notebook.spec @@ -0,0 +1,89 @@ +# Make electron_license macro properly work +%bcond bundled_electron 1 + + +Name: qiqis-notebook +%electronmeta -D +Version: 1.1.6 +Release: 1%?dist +Summary: Qiqi's Notebook desktop app +URL: https://qiqis-notebook.com/ +Source0: https://github.com/Qiqis-Notebook/qnb-client/archive/refs/tags/v%{version}.tar.gz +Source1: qiqis-notebook.desktop +License: MIT AND %{electron_license} +Packager: Yoong Jin + +BuildRequires: nodejs-npm +BuildRequires: squashfs-tools + +Provides: qnb-client + +%description +Qiqi's Notebook is an application used for launcing +user created farming routes for Genshin Impact and +Wuthering Waves + +%prep +%autosetup -n qnb-client-%{version} + +%build +%npm_build -r package +#npm i +#npm run package +cd "out/Qiqi's Notebook-linux-%{_electron_cpu}" +mv ./* .. +cd .. +mv "Qiqi's Notebook" ./qiqis-notebook + +mv ./LICENSE ./LICENSE.electron + +%install +cd ./out + +install -Dm755 ./libEGL.so %{buildroot}%{_libdir}/qiqis-notebook/libEGL.so +install -Dm755 ./libGLESv2.so %{buildroot}%{_libdir}/qiqis-notebook/libGLESv2.so +install -Dm755 ./libffmpeg.so %{buildroot}%{_libdir}/qiqis-notebook/libffmpeg.so +install -Dm755 ./libvk_swiftshader.so %{buildroot}%{_libdir}/qiqis-notebook/libvk_swiftshader.so +install -Dm755 ./libvulkan.so.1 %{buildroot}%{_libdir}/qiqis-notebook/libvulkan.so.1 +install -Dm644 ./icudtl.dat %{buildroot}%{_libdir}/qiqis-notebook/icudtl.dat +install -Dm644 ./v8_context_snapshot.bin %{buildroot}%{_libdir}/qiqis-notebook/v8_context_snapshot.bin +install -Dm644 ./chrome_100_percent.pak %{buildroot}%{_libdir}/qiqis-notebook/chrome_100_percent.pak +install -Dm644 ./chrome_200_percent.pak %{buildroot}%{_libdir}/qiqis-notebook/chrome_200_percent.pak +install -Dm644 ./resources.pak %{buildroot}%{_libdir}/qiqis-notebook/resources.pak +install -Dm644 ./vk_swiftshader_icd.json %{buildroot}%{_libdir}/qiqis-notebook/vk_swiftshader_icd.json +install -Dm644 ./resources/app.asar %{buildroot}%{_libdir}/qiqis-notebook/resources/app.asar +install -Dm755 ./chrome-sandbox %{buildroot}%{_libdir}/qiqis-notebook/chrome-sandbox +install -Dm755 ./chrome_crashpad_handler %{buildroot}%{_libdir}/qiqis-notebook/chrome_crashpad_handler +install -Dm755 ./qiqis-notebook %{buildroot}%{_libdir}/qiqis-notebook/qiqis-notebook + + +mkdir %{buildroot}%{_libdir}/qiqis-notebook/locales/ +cp -r locales/* %{buildroot}%{_libdir}/qiqis-notebook/locales/ +chmod -R 755 %{buildroot}%{_libdir}/qiqis-notebook/locales/ + +cd .. + +install -Dm644 assets/logo.png %{buildroot}%{_hicolordir}/1024x1024/apps/qiqis-notebook.png + +install -Dm644 %{SOURCE1} %{buildroot}%{_appsdir}/qiqis-notebook.desktop + +mkdir -p %{buildroot}%{_bindir} + +ln -s %{_libdir}/qiqis-notebook/qiqis-notebook %{buildroot}%{_bindir}/qiqis-notebook + +%check +desktop-file-validate %{buildroot}%{_appsdir}/qiqis-notebook.desktop + +%files +%doc README.md +%license ./out/LICENSE.electron +%license ./out/LICENSES.chromium.html +%license LICENSE +%{_bindir}/qiqis-notebook +%{_libdir}/qiqis-notebook/ +%{_appsdir}/qiqis-notebook.desktop +%{_hicolordir}/1024x1024/apps/qiqis-notebook.png + +%changelog +* Sat Jan 17 2026 Yoong Jin - 1.1.6 +- Initial package. diff --git a/anda/apps/qiqi-notebook/update.rhai b/anda/apps/qiqi-notebook/update.rhai new file mode 100644 index 0000000000..4cc0bd46dc --- /dev/null +++ b/anda/apps/qiqi-notebook/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("Qiqis-Notebook/qnb-client")); diff --git a/anda/apps/rasputin/rasputin.spec b/anda/apps/rasputin/rasputin.spec index 9e2ceb1270..189c7043b4 100644 --- a/anda/apps/rasputin/rasputin.spec +++ b/anda/apps/rasputin/rasputin.spec @@ -1,10 +1,10 @@ -%global commit be92ea86af35aa1ecee28b12cd4401aac82cadb0 -%global commit_date 20251023 +%global commit b8a8e25fdc8a9f7c479535144ca8f99a31aa299f +%global commit_date 20260325 %global shortcommit %(c=%{commit}; echo ${c:0:7}) Name: rasputin Version: 0~%commit_date.git~%shortcommit -Release: 1%?dist +Release: 1%{?dist} Summary: Mouse and keyboard settings for Raspberry Pi Desktop License: BSD-3-Clause URL: https://github.com/raspberrypi-ui/rasputin diff --git a/anda/apps/rp-appset/rp-appset.spec b/anda/apps/rp-appset/rp-appset.spec index e56c2cc294..f1f4147efe 100644 --- a/anda/apps/rp-appset/rp-appset.spec +++ b/anda/apps/rp-appset/rp-appset.spec @@ -1,10 +1,10 @@ -%global commit a445d545c8e1a3339acd53cadf4e9c08698a786d -%global commit_date 20251024 +%global commit b8a8e25fdc8a9f7c479535144ca8f99a31aa299f +%global commit_date 20260325 %global shortcommit %(c=%{commit}; echo ${c:0:7}) Name: appset Version: 0~%commit_date.git~%shortcommit -Release: 1%?dist +Release: 1%{?dist} Summary: Application for customisation of appearance of Raspberry Pi Desktop License: BSD-3-Clause URL: https://github.com/raspberrypi-ui/appset diff --git a/anda/apps/rp-bookshelf/rp-bookshelf.spec b/anda/apps/rp-bookshelf/rp-bookshelf.spec index f13626c512..23ddf8565f 100644 --- a/anda/apps/rp-bookshelf/rp-bookshelf.spec +++ b/anda/apps/rp-bookshelf/rp-bookshelf.spec @@ -1,10 +1,10 @@ -%global commit c1c0aaff854d01fb8e8bf31a204fd03f8e81daab -%global commit_date 20251014 +%global commit ecc8fff9109001717d913dd5a4d30573f4a3f2c5 +%global commit_date 20260401 %global shortcommit %(c=%{commit}; echo ${c:0:7}) Name: rp-bookshelf Version: 0~%commit_date.git~%shortcommit -Release: 1%?dist +Release: 1%{?dist} Summary: Browser for Raspberry Pi Press publications in PDF format License: BSD-3-Clause URL: https://github.com/raspberrypi-ui/bookshelf diff --git a/anda/apps/rpcc/rpcc.spec b/anda/apps/rpcc/rpcc.spec index 2a10f8a097..e3445822e3 100644 --- a/anda/apps/rpcc/rpcc.spec +++ b/anda/apps/rpcc/rpcc.spec @@ -1,10 +1,10 @@ -%global commit d4bbcb081c28632fa80c89d8d9b9a419ffd22a8f -%global commit_date 20251023 +%global commit 7b4843db7b7774110077760973e8050b4e632f86 +%global commit_date 20260331 %global shortcommit %(c=%{commit}; echo ${c:0:7}) Name: rpcc Version: 0~%commit_date.git~%shortcommit -Release: 2%?dist +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 @@ -36,8 +36,10 @@ A number of packages contain plugins which are installed as standard on Raspberr %prep %autosetup -n rpcc-%commit -%build +%conf %meson + +%build %meson_build %install diff --git a/anda/apps/rpinters/anda.hcl b/anda/apps/rpinters/anda.hcl new file mode 100644 index 0000000000..17deb0a98d --- /dev/null +++ b/anda/apps/rpinters/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "rpinters.spec" + } + labels { + nightly = 1 + } +} diff --git a/anda/apps/rpinters/rpinters.spec b/anda/apps/rpinters/rpinters.spec new file mode 100644 index 0000000000..5062d2da0c --- /dev/null +++ b/anda/apps/rpinters/rpinters.spec @@ -0,0 +1,45 @@ +%global commit 8ce6f3eadf8e41d364d76d0853ae7f0cbb4fc23d +%global commit_date 20260501 +%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 + +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 +- Package bookshelf diff --git a/anda/apps/rpinters/update.rhai b/anda/apps/rpinters/update.rhai new file mode 100644 index 0000000000..63503e23a4 --- /dev/null +++ b/anda/apps/rpinters/update.rhai @@ -0,0 +1,5 @@ +rpm.global("commit", gh_commit("raspberrypi-ui/rpinters")); +if rpm.changed() { + rpm.release(); + rpm.global("commit_date", date()); +} diff --git a/anda/apps/ruffle/ruffle-nightly.spec b/anda/apps/ruffle/ruffle-nightly.spec index 4d4fbbf424..5c374f6ee0 100644 --- a/anda/apps/ruffle/ruffle-nightly.spec +++ b/anda/apps/ruffle/ruffle-nightly.spec @@ -1,4 +1,4 @@ -%global ver 2025-10-27 +%global ver 2026-05-07 %global goodver %(echo %ver | sed 's/-//g') %global __brp_mangle_shebangs %{nil} %bcond_without mold @@ -9,7 +9,7 @@ language. Ruffle targets both the desktop and the web using WebAssembly.} Name: ruffle-nightly Version: %goodver -Release: 1%?dist +Release: 1%{?dist} Summary: A Flash Player emulator written in Rust License: Apache-2.0 OR MIT URL: https://ruffle.rs/ diff --git a/anda/langs/go/chezmoi/anda.hcl b/anda/apps/rustnet/anda.hcl similarity index 52% rename from anda/langs/go/chezmoi/anda.hcl rename to anda/apps/rustnet/anda.hcl index 1b9cadbb43..78a025ed15 100644 --- a/anda/langs/go/chezmoi/anda.hcl +++ b/anda/apps/rustnet/anda.hcl @@ -1,5 +1,5 @@ project pkg { rpm { - spec = "chezmoi.spec" + spec = "rustnet.spec" } } diff --git a/anda/apps/rustnet/rustnet.spec b/anda/apps/rustnet/rustnet.spec new file mode 100644 index 0000000000..50780caba2 --- /dev/null +++ b/anda/apps/rustnet/rustnet.spec @@ -0,0 +1,64 @@ +Name: rustnet +Version: 1.3.0 +Release: 1%{?dist} +Summary: A cross-platform network monitoring terminal UI tool built with Rust +License: Apache-2.0 AND (MIT OR Apache-2.0) AND Unicode-3.0 AND (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 AND ISC) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND Apache-2.0 AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND BSD-2-Clause AND (BSD-3-Clause OR Apache-2.0) AND BSL-1.0 AND ISC AND (LGPL-2.1-only OR BSD-2-Clause) AND (MIT OR Apache-2.0 OR LGPL-2.1-or-later) AND (MIT OR Apache-2.0 OR Zlib) AND (MIT OR Zlib OR Apache-2.0) AND MIT AND (Unlicense OR MIT) AND (Zlib OR Apache-2.0 OR MIT) AND Zlib +URL: https://github.com/domcyrus/rustnet +Source0: %{url}/archive/refs/tags/v%{version}.tar.gz + +Packager: Owen Zimmerman + +BuildRequires: cargo +BuildRequires: rust +BuildRequires: cargo-rpm-macros +BuildRequires: libpcap-devel +BuildRequires: elfutils-libelf-devel +BuildRequires: clang +BuildRequires: llvm + +Requires: libpcap +Requires: elfutils-libelf + +%description +A cross-platform network monitoring tool built with Rust. RustNet provides +real-time visibility into network connections with detailed state information, +connection lifecycle management, deep packet inspection, and a terminal user +interface. + +Features include: +- Real-time Network Monitoring for TCP, UDP, ICMP, and ARP connections +- Deep Packet Inspection (DPI) for HTTP/HTTPS, DNS, SSH, and QUIC protocols +- Connection lifecycle management with protocol-aware timeouts +- Process identification and service name resolution +- Cross-platform support (Linux, macOS, Windows, BSD) +- Advanced filtering with vim/fzf-style search +- eBPF-enhanced process detection (enabled by default with automatic fallback) + +%prep +%autosetup -n %{name}-%{version} + +%build +export RUSTFLAGS="%{build_rustflags}" +# Cargo macros fail due to RUSTC_BOOTSTRAP and build target +cargo build + +%install +install -Dm755 target/debug/rustnet -t %{buildroot}%{_bindir}/ +install -Dm644 assets/services -t %{buildroot}%{_datadir}/%{name}/ +install -Dm644 resources/packaging/linux/graphics/rustnet.png -t %{buildroot}%{_hicolordir}/256x256/apps/ +install -Dm644 resources/packaging/linux/rustnet.desktop -t %{buildroot}%{_appsdir}/ + +%{cargo_license_online} > LICENSE.dependencies + +%files +%license LICENSE +%license LICENSE.dependencies +%doc *.md +%{_bindir}/rustnet +%{_datadir}/%{name}/services +%{_hicolordir}/256x256/apps/rustnet.png +%{_appsdir}/rustnet.desktop + +%changelog +* Mon Jan 12 2026 Owen Zimmerman +- Initial commit diff --git a/anda/apps/rustnet/update.rhai b/anda/apps/rustnet/update.rhai new file mode 100644 index 0000000000..053e5447e1 --- /dev/null +++ b/anda/apps/rustnet/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("domcyrus/rustnet")); diff --git a/anda/apps/scrcpy/scrcpy.spec b/anda/apps/scrcpy/scrcpy.spec index e5ee7c7f6c..6ce03d87ea 100644 --- a/anda/apps/scrcpy/scrcpy.spec +++ b/anda/apps/scrcpy/scrcpy.spec @@ -1,10 +1,34 @@ +%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.3 +Version: 3.3.4 Release: 1%?dist Summary: Display and control your Android device -License: Apache-2.0 +License: Apache-2.0 AND Proprietary 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 BuildRequires: meson ninja-build cmake nasm gcc BuildRequires: pkgconfig(sdl2) @@ -18,29 +42,78 @@ 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-latest-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 -%meson_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 %files %doc README.md @@ -48,5 +121,17 @@ export VERSION=v%version %_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 +- fix android sdk bug diff --git a/anda/apps/signal-desktop/fix-runtime.patch b/anda/apps/signal-desktop/fix-runtime.patch new file mode 100644 index 0000000000..7fe4b4760e --- /dev/null +++ b/anda/apps/signal-desktop/fix-runtime.patch @@ -0,0 +1,11 @@ +--- a/package.json 2026-03-23 09:45:41.545576312 +0100 ++++ b/package.json 2026-03-23 09:46:51.714180613 +0100 +@@ -424,7 +424,7 @@ + ] + }, + "engines": { +- "node": "24.14.0" ++ "node": ">= 22" + }, + "build": { + "appId": "org.whispersystems.signal-desktop", diff --git a/anda/apps/signal-desktop/org.signal.Signal.metainfo.xml b/anda/apps/signal-desktop/org.signal.Signal.metainfo.xml new file mode 100644 index 0000000000..510baf6ffb --- /dev/null +++ b/anda/apps/signal-desktop/org.signal.Signal.metainfo.xml @@ -0,0 +1,38 @@ + + + org.signal.Signal + Signal Desktop + AGPL-3.0-only + /usr/share/icons/hicolor/1024x1024/apps/signal.png + + Signal Foundation + + A private messenger for Windows, macOS, and Linux + CC0-1.0 + https://signal.org/ + https://support.signal.org/ + https://signal.org/donate/ + https://github.com/signalapp/Signal-Desktop/blob/main/CONTRIBUTING.md + org.signal.Signal.desktop + +

+ Signal Desktop links with Signal on Android or iOS and lets you message from your Windows, macOS, and Linux computers. +

+
+ + signal-desktop + + + signal + + + + https://web.archive.org/web/20240219132433if_/https://signal.org/assets/images/screenshots/download-desktop-windows.png + Typical view of the window (Windows version) + + +
diff --git a/anda/apps/signal-desktop/signal-desktop.spec b/anda/apps/signal-desktop/signal-desktop.spec index dbcf3e78c9..a2dae02f28 100644 --- a/anda/apps/signal-desktop/signal-desktop.spec +++ b/anda/apps/signal-desktop/signal-desktop.spec @@ -1,31 +1,28 @@ -#? https://gitlab.archlinux.org/archlinux/packaging/packages/signal-desktop/-/blob/main/PKGBUILD -%define debug_package %{nil} +%define appid org.signal.Signal -# Exclude private libraries -%global __requires_exclude libffmpeg.so -%global __provides_exclude ^lib.*\\.so.*$ - -%ifarch x86_64 -%define arch %{nil} -%elifarch aarch64 -%define arch arm64- -%endif - -Name: signal-desktop -Version: 7.76.0 -Release: 1%?dist +Name: signal-desktop +%electronmeta -aD +Version: 8.8.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_licenses -ExclusiveArch: x86_64 aarch64 -BuildRequires: pulseaudio-libs-devel libX11-devel pnpm make gcc g++ python3 +Source2: org.signal.Signal.metainfo.xml +Patch0: fix-runtime.patch +License: AGPL-3.0-only AND %{electron_license} + +BuildRequires: pulseaudio-libs-devel +BuildRequires: libX11-devel BuildRequires: git-lfs -Requires: gtk3 +BuildRequires: anda-srpm-macros +BuildRequires: pnpm +BuildRequires: python3 +BuildRequires: terra-appstream-helper +BuildRequires: libxcrypt-compat + Requires: libwayland-cursor -Requires: libwayland-client +Requires: libwayland-client Requires: libxkbcommon Requires: gdk-pixbuf2 Requires: libthai @@ -42,86 +39,75 @@ Requires: cairo Requires: xz-libs Requires: libxcb Requires: nss-util -Requires: nss Requires: dbus-libs Requires: mesa-libgbm Requires: at-spi2-atk Requires: expat Requires: alsa-lib +Requires: minizip Provides: signal Provides: Signal Provides: Signal-Desktop +Packager: junefish + %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} -p1 +%autosetup -n Signal-Desktop-%{version} +sed -i 's/--config.directories.output=release//g' package.json %build -pnpm install --frozen-lockfile -pnpm --prefix sticker-creator install -pnpm --prefix sticker-creator build -pnpm run build-linux --dir +export SIGNAL_ENV=production +export SOURCE_DATE_EPOCH="$(date +"%s")" +%{__pnpm} install --frozen-lockfile +%{__pnpm} run clean-transpile +pushd sticker-creator +%{__pnpm} install --frozen-lockfile +%{__pnpm} run build +popd +%dnl %pnpm_build -r generate,build:policy-files,generate,build:esbuild:prod +%{__pnpm} run generate +%{__pnpm} run build-linux %install -install -Dm755 release/linux-%{arch}unpacked/libEGL.so %{buildroot}%{_libdir}/signal-desktop/libEGL.so -install -Dm755 release/linux-%{arch}unpacked/libGLESv2.so %{buildroot}%{_libdir}/signal-desktop/libGLESv2.so -install -Dm755 release/linux-%{arch}unpacked/libffmpeg.so %{buildroot}%{_libdir}/signal-desktop/libffmpeg.so -install -Dm755 release/linux-%{arch}unpacked/libvk_swiftshader.so %{buildroot}%{_libdir}/signal-desktop/libvk_swiftshader.so -install -Dm755 release/linux-%{arch}unpacked/libvulkan.so.1 %{buildroot}%{_libdir}/signal-desktop/libvulkan.so.1 -install -Dm644 release/linux-%{arch}unpacked/icudtl.dat %{buildroot}%{_libdir}/signal-desktop/icudtl.dat -install -Dm644 release/linux-%{arch}unpacked/v8_context_snapshot.bin %{buildroot}%{_libdir}/signal-desktop/v8_context_snapshot.bin -install -Dm644 release/linux-%{arch}unpacked/chrome_100_percent.pak %{buildroot}%{_libdir}/signal-desktop/chrome_100_percent.pak -install -Dm644 release/linux-%{arch}unpacked/chrome_200_percent.pak %{buildroot}%{_libdir}/signal-desktop/chrome_200_percent.pak -install -Dm644 release/linux-%{arch}unpacked/resources.pak %{buildroot}%{_libdir}/signal-desktop/resources.pak -install -Dm644 release/linux-%{arch}unpacked/vk_swiftshader_icd.json %{buildroot}%{_libdir}/signal-desktop/vk_swiftshader_icd.json -install -Dm644 release/linux-%{arch}unpacked/resources/app.asar %{buildroot}%{_libdir}/signal-desktop/resources/app.asar -cp -r release/linux-%{arch}unpacked/resources/app.asar.unpacked %{buildroot}%{_libdir}/signal-desktop/resources/ +%electron_install -i signal -l -I build/icons/png -install -Dm755 release/linux-%{arch}unpacked/chrome-sandbox %{buildroot}%{_libdir}/signal-desktop/chrome-sandbox -install -Dm755 release/linux-%{arch}unpacked/chrome_crashpad_handler %{buildroot}%{_libdir}/signal-desktop/chrome_crashpad_handler +%desktop_file_install %{SOURCE1} -install -Dm755 release/linux-%{arch}unpacked/signal-desktop %{buildroot}%{_libdir}/signal-desktop/signal-desktop +for policy in org.signalapp.view-aep.policy org.signalapp.enable-backups.policy; do +install -Dm644 $OUTDIR/resources/$policy %{buildroot}%{_datadir}/polkit-1/rules.d/$policy +rm $OUTDIR/resources/$policy +done -install -Dm644 release/linux-%{arch}unpacked/resources/org.signalapp.view-aep.policy %{buildroot}%{_datadir}/polkit-1/rules.d/org.signalapp.view-aep.policy -install -Dm644 release/linux-%{arch}unpacked/resources/org.signalapp.enable-backups.policy %{buildroot}%{_datadir}/polkit-1/rules.d/org.signalapp.enable-backups.policy +%terra_appstream -o %{SOURCE2} -install -Dm644 build/icons/png/1024x1024.png %{buildroot}%{_iconsdir}/hicolor/1024x1024/apps/signal.png -install -Dm644 build/icons/png/128x128.png %{buildroot}%{_iconsdir}/hicolor/128x128/apps/signal.png -install -Dm644 build/icons/png/16x16.png %{buildroot}%{_iconsdir}/hicolor/16x16/apps/signal.png -install -Dm644 build/icons/png/24x24.png %{buildroot}%{_iconsdir}/hicolor/24x24/apps/signal.png -install -Dm644 build/icons/png/256x256.png %{buildroot}%{_iconsdir}/hicolor/256x256/apps/signal.png -install -Dm644 build/icons/png/32x32.png %{buildroot}%{_iconsdir}/hicolor/32x32/apps/signal.png -install -Dm644 build/icons/png/48x48.png %{buildroot}%{_iconsdir}/hicolor/48x48/apps/signal.png -install -Dm644 build/icons/png/512x512.png %{buildroot}%{_iconsdir}/hicolor/512x512/apps/signal.png -install -Dm644 build/icons/png/64x64.png %{buildroot}%{_iconsdir}/hicolor/64x64/apps/signal.png - -install -Dm644 %{SOURCE1} %{buildroot}%{_datadir}/applications/signal.desktop -mkdir -p %buildroot%_bindir -ln -s %_libdir/signal-desktop/signal-desktop %buildroot%_bindir/signal-desktop +%check +%desktop_file_validate %{buildroot}%{_appsdir}/signal.desktop %files %license LICENSE %doc README.md CONTRIBUTING.md ACKNOWLEDGMENTS.md -%license release/linux-%{arch}unpacked/LICENSE.electron.txt -%license release/linux-%{arch}unpacked/LICENSES.chromium.html +%license bundled_licenses/* %{_bindir}/signal-desktop %{_libdir}/signal-desktop/ %{_datadir}/polkit-1/rules.d/org.signalapp.view-aep.policy %{_datadir}/polkit-1/rules.d/org.signalapp.enable-backups.policy -%{_datadir}/applications/signal.desktop -%{_iconsdir}/hicolor/1024x1024/apps/signal.png -%{_iconsdir}/hicolor/128x128/apps/signal.png -%{_iconsdir}/hicolor/16x16/apps/signal.png -%{_iconsdir}/hicolor/24x24/apps/signal.png -%{_iconsdir}/hicolor/256x256/apps/signal.png -%{_iconsdir}/hicolor/32x32/apps/signal.png -%{_iconsdir}/hicolor/48x48/apps/signal.png -%{_iconsdir}/hicolor/512x512/apps/signal.png -%{_iconsdir}/hicolor/64x64/apps/signal.png +%{_appsdir}/signal.desktop +%{_hicolordir}/*x*/apps/signal.png +%{_metainfodir}/org.signal.Signal.metainfo.xml %changelog +* Mon Dec 22 2025 Owen Zimmerman +- Use more electron macros, correct build failures + +* Wed Dec 10 2025 Owen Zimmerman +- Add metainfo + +* Tue Nov 11 2025 Owen Zimmerman +- Add more Requires:, fix electron_license macro application, fix some formatting + * Fri Aug 8 2025 june-fish - Initial Package diff --git a/anda/apps/signal-desktop/signal.desktop b/anda/apps/signal-desktop/signal.desktop index 9ed98565b9..212816501f 100644 --- a/anda/apps/signal-desktop/signal.desktop +++ b/anda/apps/signal-desktop/signal.desktop @@ -1,6 +1,6 @@ [Desktop Entry] Name=Signal -Exec=signal-desktop %U +Exec=signal-desktop --use-tray-icon %U Terminal=false Type=Application Icon=signal @@ -8,6 +8,3 @@ StartupWMClass=Signal Comment=Private messaging from your desktop MimeType=x-scheme-handler/sgnl;x-scheme-handler/signalcaptcha; Categories=Network;InstantMessaging;Chat; -X-Desktop-File-Install-Version=0.27 -X-Purism-FormFactor=Workstation;Mobile; -X-Flatpak-RenamedFrom=signal-desktop.desktop; diff --git a/anda/apps/snow/anda.hcl b/anda/apps/snow/anda.hcl new file mode 100644 index 0000000000..a725adc65d --- /dev/null +++ b/anda/apps/snow/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "snow.spec" + } +} diff --git a/anda/apps/snow/snow.spec b/anda/apps/snow/snow.spec new file mode 100644 index 0000000000..8eb14dde25 --- /dev/null +++ b/anda/apps/snow/snow.spec @@ -0,0 +1,67 @@ +Name: snow +Version: 1.4.1 +Release: 1%{?dist} +Summary: Classic Macintosh emulator +URL: https://github.com/twvd/snow +Source0: %url/archive/refs/tags/v%version.tar.gz +License: MIT AND MPL-2.0 AND Unicode-3.0 AND (Unlicense OR MIT) AND Apache-2.0 AND BSD-2-Clause AND Zlib AND (MIT OR Apache-2.0 OR LGPL-2.1-or-later) AND (BSD-3-Clause OR Apache-2.0) AND BSD-3-Clause AND BSL-1.0 AND CC0-1.0 OR MIT-0 OR Apache-2.0 AND ISC AND (Apache-2.0 OR BSL-1.0) AND (MIT OR Apache-2.0 OR Zlib) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND + +BuildRequires: cargo +BuildRequires: gcc-c++ +BuildRequires: mold +BuildRequires: anda-srpm-macros +BuildRequires: cargo-rpm-macros +BuildRequires: desktop-file-utils +BuildRequires: SDL2-devel +Provides: snowemu + +Packager: Owen Zimmerman + +%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/snowemu %{buildroot}%{_bindir}/snowemu +install -Dm644 assets/snow_icon.png %{buildroot}%{_hicolordir}/1024x1024/apps/snow_icon.png +%desktop_file_install assets/snow.desktop +install -Dm644 assets/dev.thomasw.snow.metainfo.xml %{buildroot}%{_metainfodir}/dev.thomasw.snow.metainfo.xml + +cp -a docs/* %{buildroot}%{_pkgdocdir}/ +rm %{buildroot}%{_pkgdocdir}/*.toml +rm -r %{buildroot}%{_pkgdocdir}/theme + +%{cargo_license_online} > LICENSE.dependencies + +%files +%doc README.md +%license LICENSE +%license LICENSE.dependencies +%{_bindir}/snowemu +%{_hicolordir}/1024x1024/apps/snow_icon.png +%{_appsdir}/snow.desktop +%{_metainfodir}/dev.thomasw.snow.metainfo.xml + +%files doc +%license LICENSE +%doc %{_pkgdocdir}/* + +%changelog +* Tue Dec 23 2025 Owen Zimmerman +- Initial commit diff --git a/anda/apps/snow/update.rhai b/anda/apps/snow/update.rhai new file mode 100644 index 0000000000..c8d574b7c8 --- /dev/null +++ b/anda/apps/snow/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("twvd/snow")); diff --git a/anda/apps/socktop/anda.hcl b/anda/apps/socktop/anda.hcl new file mode 100644 index 0000000000..1038af94e2 --- /dev/null +++ b/anda/apps/socktop/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "socktop.spec" + } +} diff --git a/anda/apps/socktop/socktop.spec b/anda/apps/socktop/socktop.spec new file mode 100644 index 0000000000..1089263ef0 --- /dev/null +++ b/anda/apps/socktop/socktop.spec @@ -0,0 +1,54 @@ +%global ver v1.55.0-test2 +%global download_ver %(echo %{ver} | sed 's/v//g') +%global sanitized_ver %(echo %{ver} | sed 's/-//g') + +Name: socktop +Version: %sanitized_ver +Release: 1%?dist +Summary: socktop is a remote system monitor with a rich TUI interface +URL: https://github.com/jasonwitty/socktop +Source0: %{url}/archive/refs/tags/%{ver}.tar.gz +License: MIT +BuildRequires: rust libdrm-devel systemd-rpm-macros cargo-rpm-macros +Requires: libdrm +Packager: lux8149 + +%description +socktop is a remote system monitor with a rich TUI interface, inspired by `top` and `btop`, +that communicates with a lightweight remote agent over WebSockets. + +%prep +%autosetup -n %{name}-%{download_ver} +%cargo_prep_online + +%build +%cargo_build + +%install +install -Dm 755 target/rpm/socktop %{buildroot}%{_bindir}/socktop +install -Dm 755 target/rpm/socktop_agent %{buildroot}%{_bindir}/socktop_agent +install -Dm 644 target/rpm/libsocktop_connector.so %{buildroot}%{_libdir}/libsocktop_connector.so +install -Dm 644 docs/socktop-agent.service %{buildroot}%{_unitdir}/socktop-agent.service +%{cargo_license_online} > LICENSE.dependencies + +%post +%systemd_post socktop-agent.service + +%preun +%systemd_preun socktop-agent.service + +%postun +%systemd_postun_with_restart socktop-agent.service + +%files +%doc README.md +%license LICENSE +%license LICENSE.dependencies +%{_bindir}/socktop +%{_bindir}/socktop_agent +%{_libdir}/libsocktop_connector.so +%{_unitdir}/socktop-agent.service + +%changelog +* Sun Jan 04 2026 lux8149 +- Initial Package diff --git a/anda/apps/socktop/update.rhai b/anda/apps/socktop/update.rhai new file mode 100644 index 0000000000..f8fadc9d1f --- /dev/null +++ b/anda/apps/socktop/update.rhai @@ -0,0 +1 @@ +rpm.global("ver", gh("jasonwitty/socktop")); diff --git a/anda/apps/spotify-launcher/anda.hcl b/anda/apps/spotify-launcher/anda.hcl new file mode 100644 index 0000000000..1da498eab1 --- /dev/null +++ b/anda/apps/spotify-launcher/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "spotify-launcher.spec" + } +} diff --git a/anda/apps/spotify-launcher/spotify-launcher.spec b/anda/apps/spotify-launcher/spotify-launcher.spec new file mode 100644 index 0000000000..07e6b2b179 --- /dev/null +++ b/anda/apps/spotify-launcher/spotify-launcher.spec @@ -0,0 +1,68 @@ +Name: spotify-launcher +Version: 0.6.5 +Release: 3%?dist +Summary: Client for spotify's apt repository in Rust +License: Apache-2.0 AND MIT AND ((Apache-2.0 OR MIT) AND BSD-3-Clause) AND ((MIT OR Apache-2.0) AND Unicode-3.0) AND (Apache-2.0 OR ISC OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND BSD-3-Clause AND CDLA-Permissive-2.0 AND ISC AND (ISC AND (Apache-2.0 OR ISC)) AND (ISC AND (Apache-2.0 OR ISC) AND OpenSSL) AND (MIT OR Apache-2.0) AND (MIT OR Apache-2.0 OR LGPL-2.1-or-later) AND MPL-2.0 AND Unicode-3.0 AND (Unlicense OR MIT) AND Zlib +Packager: veuxit +ExclusiveArch: x86_64 +URL: https://github.com/kpcyrd/spotify-launcher + +Source0: https://github.com/kpcyrd/spotify-launcher/archive/refs/tags/v%{version}.tar.gz + +BuildRequires: cargo cargo-rpm-macros anda-srpm-macros pkgconfig(liblzma) desktop-file-utils +Requires: sequoia-sqv zenity alsa-lib gtk3 desktop-file-utils openssl nss at-spi2-atk libcurl libSM libayatana-appindicator-gtk3 + + +%description +%{summary}. + +%prep +%autosetup -n %{name}-%{version} +%cargo_prep_online + +%build +%{cargo_build} --locked + +%install + +install -Dm755 target/release/spotify-launcher %{buildroot}%{_bindir}/spotify-launcher + +install -Dm644 data/pubkey_5384CE82BA52C83A.gpg %{buildroot}/%{_datadir}/spotify-launcher/keyring.pgp + +install -Dm644 contrib/spotify-launcher.desktop %{buildroot}%{_appsdir}/spotify-launcher.desktop + +install -Dm644 contrib/icons/spotify-linux-256.png "%{buildroot}/%{_datadir}/pixmaps/spotify-launcher.png" + +install -Dm644 contrib/spotify-launcher.conf %{buildroot}%{_sysconfdir}/spotify-launcher.conf + +for size in 22 24 32 48 64 128 256 512; do + install -Dm644 contrib/icons/spotify-linux-${size}.png %{buildroot}%{_hicolordir}/${size}x${size}/apps/spotify-launcher.png +done +%{cargo_license_online} > LICENSE.dependencies + +%check +%desktop_file_validate %{buildroot}%{_appsdir}/spotify-launcher.desktop + +%files +%{_appsdir}/%{name}.desktop +%{_sysconfdir}/spotify-launcher.conf +%{_datadir}/pixmaps/spotify-launcher.png +%{_hicolordir}/22x22/apps/spotify-launcher.png +%{_hicolordir}/24x24/apps/spotify-launcher.png +%{_hicolordir}/32x32/apps/spotify-launcher.png +%{_hicolordir}/48x48/apps/spotify-launcher.png +%{_hicolordir}/64x64/apps/spotify-launcher.png +%{_hicolordir}/128x128/apps/spotify-launcher.png +%{_hicolordir}/256x256/apps/spotify-launcher.png +%{_hicolordir}/512x512/apps/spotify-launcher.png +%{_bindir}/spotify-launcher +%{_datadir}/spotify-launcher/keyring.pgp +%license LICENSE-MIT LICENSE-APACHE LICENSE.dependencies +%doc README.md + +%changelog +* Tue Mar 17 2026 veux - 0.6.5-2 +- Fix big package size and enable debug subpackages + +* Fri Feb 27 2026 veux - 0.6.5-1 +- Initial package release diff --git a/anda/apps/spotify-launcher/update.rhai b/anda/apps/spotify-launcher/update.rhai new file mode 100644 index 0000000000..0d5499301d --- /dev/null +++ b/anda/apps/spotify-launcher/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("kpcyrd/spotify-launcher")); \ No newline at end of file diff --git a/anda/apps/subtitleedit/subtitleedit.spec b/anda/apps/subtitleedit/subtitleedit.spec index 22b5a06c00..ef47f57046 100644 --- a/anda/apps/subtitleedit/subtitleedit.spec +++ b/anda/apps/subtitleedit/subtitleedit.spec @@ -2,7 +2,7 @@ %global realname subtitleedit Name: %realname.bin -Version: 4.0.13 +Version: 4.0.15 Release: 1%?dist Summary: An advanced subtitle editor and converter License: GPL-3.0-only diff --git a/anda/tools/buildsys/anda/anda.hcl b/anda/apps/tauon/anda.hcl similarity index 50% rename from anda/tools/buildsys/anda/anda.hcl rename to anda/apps/tauon/anda.hcl index 603eef82af..8240804b26 100644 --- a/anda/tools/buildsys/anda/anda.hcl +++ b/anda/apps/tauon/anda.hcl @@ -1,5 +1,5 @@ project pkg { rpm { - spec = "rust-anda.spec" + spec = "tauon.spec" } } diff --git a/anda/apps/tauon/remove-reqed-version.patch b/anda/apps/tauon/remove-reqed-version.patch new file mode 100644 index 0000000000..11fc6854d8 --- /dev/null +++ b/anda/apps/tauon/remove-reqed-version.patch @@ -0,0 +1,13 @@ +diff --git a/requirements.txt b/requirements.txt +index a0471ddb..e8ca00a9 100644 +--- a/requirements.txt ++++ b/requirements.txt +@@ -18,7 +18,7 @@ keyboard; sys_platform == 'win32' + lynxtray; sys_platform == 'win32' + opencc; sys_platform != 'win32' # optional + opencc-python-reimplemented; sys_platform == 'win32' # optional +-pypresence>=4.5.0 # optional ++pypresence # optional + tekore # optional + natsort # optional + #picard # optional diff --git a/anda/apps/tauon/tauon.spec b/anda/apps/tauon/tauon.spec new file mode 100644 index 0000000000..c3ae7839fb --- /dev/null +++ b/anda/apps/tauon/tauon.spec @@ -0,0 +1,69 @@ +%global _desc A music player for the desktop. Designed to be powerful and streamlined, putting the user in control of their music collection. + +%undefine __brp_mangle_shebangs + +Name: python-tauon +Version: 9.1.3 +Release: 1%{?dist} +Summary: A music player for the desktop. Designed to be powerful and streamlined +License: GPL-3.0-or-later +URL: https://tauonmusicbox.rocks/ +Source0: https://github.com/Taiko2k/Tauon/archive/refs/tags/v%{version}.tar.gz +Patch0: remove-reqed-version.patch + +BuildRequires: python3-devel +BuildRequires: python3-wheel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +BuildRequires: gcc +BuildRequires: make +BuildRequires: flac-devel +BuildRequires: mpg123-devel +BuildRequires: libvorbis-devel +BuildRequires: opusfile-devel +BuildRequires: libsamplerate-devel +BuildRequires: libopenmpt-devel +BuildRequires: wavpack-devel +BuildRequires: game-music-emu-devel + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-tauon +Summary: %{summary} +%{?python_provide:%python_provide python3-tauon} + +%description -n python3-tauon +%_desc + +%prep +%git_clone https://github.com/Taiko2k/Tauon v%{version} +%patch -P0 -p1 + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files tauon +%find_lang tauon +install -Dm644 extra/tauonmb.desktop %{buildroot}%{_appsdir}/tauonmb.desktop +install -Dm644 extra/tauonmb-symbolic.svg %{buildroot}%{_scalableiconsdir}/tauonmb-symbolic.svg +install -Dm644 extra/tauonmb.svg %{buildroot}%{_scalableiconsdir}/tauonmb.svg +install -Dm755 extra/tauonmb.sh %{buildroot}/opt/tauon/tauonmb.sh + +%files -n python3-tauon -f %{pyproject_files} -f tauon.lang +%doc README.md CHANGELOG.md CONTRIBUTING.md +%license LICENSE +%{_bindir}/tauonmb +%{python3_sitearch}/phazor.cpython-314-*-linux-gnu.so +%{_appsdir}/tauonmb.desktop +%{_scalableiconsdir}/tauonmb-symbolic.svg +%{_scalableiconsdir}/tauonmb.svg +/opt/tauon/tauonmb.sh + +%changelog +* Sat Mar 28 2026 Owen Zimmerman +- Initial commit diff --git a/anda/apps/tauon/update.rhai b/anda/apps/tauon/update.rhai new file mode 100644 index 0000000000..601e35ff3b --- /dev/null +++ b/anda/apps/tauon/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("Taiko2k/Tauon")); diff --git a/anda/apps/throne/Sagernet.SingBox.Version.txt b/anda/apps/throne/Sagernet.SingBox.Version.txt index 0860ca77dd..f36a98a9c8 100644 --- a/anda/apps/throne/Sagernet.SingBox.Version.txt +++ b/anda/apps/throne/Sagernet.SingBox.Version.txt @@ -1 +1 @@ -v1.12.11 \ No newline at end of file +v1.13.11 \ No newline at end of file diff --git a/anda/apps/throne/throne.spec b/anda/apps/throne/throne.spec index acd910587a..833db62722 100644 --- a/anda/apps/throne/throne.spec +++ b/anda/apps/throne/throne.spec @@ -1,8 +1,8 @@ #? https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=throne-git Name: throne -Version: 1.0.7 -Release: 1%?dist +Version: 1.1.2 +Release: 1%{?dist} Summary: Qt based cross-platform GUI proxy configuration manager (backend: sing-box) URL: https://github.com/throneproj/Throne License: GPLv3 @@ -24,12 +24,6 @@ BuildRequires: rpm_macro(cmake_build) BuildRequires: rpm_macro(cmake_install) BuildRequires: cmake BuildRequires: gcc-c++ -BuildRequires: pkgconfig(protobuf) -BuildRequires: pkgconfig(libcurl) -BuildRequires: cmake(yaml-cpp) -BuildRequires: cmake(ZXing) -BuildRequires: cmake(absl) -BuildRequires: cmake(cpr) BuildRequires: cmake(Qt6) BuildRequires: cmake(Qt6Svg) BuildRequires: cmake(Qt6Linguist) @@ -39,6 +33,7 @@ BuildRequires: sed BuildRequires: golang BuildRequires: rpm_macro(gobuildflags) BuildRequires: protobuf-compiler +BuildRequires: desktop-file-utils Requires: %{name}-core %define core Core @@ -86,17 +81,20 @@ 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}%{_datadir}/applications/%{name}.desktop +install -Dpm644 %{SOURCE3} %{buildroot}%{_appsdir}/%{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, -, -) %{_datadir}/icons/Throne.ico -%attr(0644, -, -) %{_datadir}/applications/%{name}.desktop +%attr(0644, -, -) %{_iconsdir}/Throne.ico +%attr(0644, -, -) %{_appsdir}/%{name}.desktop %_datadir/pixmaps/Throne.png %files core diff --git a/anda/apps/ttop/anda.hcl b/anda/apps/ttop/anda.hcl new file mode 100644 index 0000000000..b10fdcce8a --- /dev/null +++ b/anda/apps/ttop/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "ttop.spec" + } +} diff --git a/anda/apps/ttop/ttop.spec b/anda/apps/ttop/ttop.spec new file mode 100644 index 0000000000..ae3cd95bb9 --- /dev/null +++ b/anda/apps/ttop/ttop.spec @@ -0,0 +1,33 @@ +Name: ttop +Version: 1.6.1 +Release: 1%{?dist} +Summary: System monitoring tool with historical data service, triggers and top-like TUI +License: MIT +URL: https://github.com/inv2004/ttop +Source0: %url/archive/refs/tags/v%version.tar.gz +BuildRequires: anda-srpm-macros +BuildRequires: nim + +Packager: Owen Zimmerman + +%description +%summary. + +%prep +%autosetup -n ttop-%version +%nim_prep + +%build +%nim_c src/ttop + +%install +install -Dm755 src/ttop.out %{buildroot}%{_bindir}/ttop + +%files +%doc README.md +%license LICENSE +%{_bindir}/ttop + +%changelog +* Sun Jan 04 2026 Owen Zimmerman +- Initial commit diff --git a/anda/apps/ttop/update.rhai b/anda/apps/ttop/update.rhai new file mode 100644 index 0000000000..b36ff56cdb --- /dev/null +++ b/anda/apps/ttop/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("inv2004/ttop")); diff --git a/anda/apps/twintaillauncher/anda.hcl b/anda/apps/twintaillauncher/anda.hcl new file mode 100644 index 0000000000..62f910e857 --- /dev/null +++ b/anda/apps/twintaillauncher/anda.hcl @@ -0,0 +1,6 @@ +project "pkg" { + arches = ["x86_64"] + rpm { + spec = "twintaillauncher.spec" + } +} diff --git a/anda/apps/twintaillauncher/twintaillauncher.spec b/anda/apps/twintaillauncher/twintaillauncher.spec new file mode 100644 index 0000000000..7633110232 --- /dev/null +++ b/anda/apps/twintaillauncher/twintaillauncher.spec @@ -0,0 +1,106 @@ +%undefine __brp_mangle_shebangs + +%global _build_id_links none + +%global toolchain clang + +Name: twintaillauncher + +Version: 2.0.0 +Release: 3%{?dist} +Summary: A multi-platform launcher for your anime games +Packager: Yoong Jin + +SourceLicense: GPL-3.0-only +License: GPL-3.0-only AND (((Apache-2.0 OR MIT) AND BSD-3-Clause) AND ((MIT OR Apache-2.0) AND Unicode-3.0) AND (0BSD OR Apache-2.0 OR MIT) AND (Apache-2.0) AND (Apache-2.0 AND ISC) AND (Apache-2.0 AND MIT) AND (Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR CC0-1.0) AND (Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT) AND (Apache-2.0 OR BSD-2-Clause OR MIT) AND (Apache-2.0 OR BSD-3-Clause) AND (Apache-2.0 OR BSD-3-Clause OR MIT) AND (Apache-2.0 OR BSL-1.0 OR MIT) AND (Apache-2.0 OR CC0-1.0 OR MIT-0) AND (Apache-2.0 OR ISC OR MIT) AND (Apache-2.0 OR LGPL-2.1-or-later OR MIT) AND (Apache-2.0 OR MIT) AND (Apache-2.0 OR MIT OR Zlib) AND (Apache-2.0 WITH LLVM-exception) AND (BSD-2-Clause) AND (BSD-3-Clause) AND (BSD-3-Clause AND MIT) AND (BSD-3-Clause OR MIT) AND CC0-1.0 AND (CC0-1.0 OR MIT-0) AND (CDLA-Permissive-2.0) AND ISC AND (ISC AND (Apache-2.0 OR ISC)) AND (ISC AND (Apache-2.0 OR ISC) AND OpenSSL) AND (LGPL-3.0-or-later OR MIT) AND MIT AND (MIT OR Unlicense) AND MPL-2.0 AND Unicode-3.0 AND Zlib AND bzip2-1.0.6) +URL: https://twintaillauncher.app/ +Source0: https://github.com/TwintailTeam/TwintailLauncher/archive/refs/tags/ttl-v%{version}.tar.gz + +ExclusiveArch: x86_64 + +Requires: cairo +Requires: desktop-file-utils +Requires: gdk-pixbuf2 +Requires: glib2 +Requires: gtk3 +Requires: hicolor-icon-theme +Requires: libappindicator-gtk3 +Requires: libayatana-appindicator-gtk3 +Requires: pango +Requires: webkit2gtk4.1 +Requires: mangohud +Requires: gamemode + +# Build requires +BuildRequires: pnpm +BuildRequires: %{tauri_buildrequires} +BuildRequires: protobuf-devel +BuildRequires: webkit2gtk4.1-devel +BuildRequires: desktop-file-utils +BuildRequires: hicolor-icon-theme +BuildRequires: perl +BuildRequires: zlib-ng-devel +BuildRequires: clang +BuildRequires: mold + +Provides: ttl + +%description +Twintaillauncher is a multi-platform launcher that brings mod support, quality-of-life improvements, and advanced features to a variety of anime-styled games. +TTL is an all-in-one tool for downloading, managing, and launching your favorite anime games. It’s designed with flexibility, ease of use, and customization in mind. + +%prep +%autosetup -n TwintailLauncher-ttl-v%{version} +%tauri_prep +%{__pnpm} import + +%build +%pnpm_build -F + + +%install +%tauri_install +mkdir -p %{buildroot}/usr/lib/twintaillauncher/resources + +#app expects files to be present there +mv %{buildroot}/%{_datadir}/cargo/registry/twintaillauncher-%{version}/resources %{buildroot}/usr/lib/twintaillauncher +rm -rf %{buildroot}/%{_datadir}/cargo/registry/twintaillauncher-%{version} + + +%tauri_cargo_license_summary +%{tauri_cargo_license} > LICENSE.dependencies + +%desktop_file_install -f ./twintaillauncher.desktop + +install -Dm644 public/launcher-icon.png %{buildroot}%{_hicolordir}/512x512/apps/%{name}.png +install -Dm644 public/launcher-icon-128.png %{buildroot}%{_hicolordir}/128x128/apps/%{name}.png + +chmod 0755 %{buildroot}/usr/lib/twintaillauncher/resources -R + + +%files +%license LICENSE.dependencies +%license LICENSE +%doc README.md + +%{_bindir}/twintaillauncher +/usr/lib/twintaillauncher/resources +%{_hicolordir}/512x512/apps/%{name}.png +%{_hicolordir}/128x128/apps/%{name}.png +%_appsdir/twintaillauncher.desktop + + + + + +%changelog +* Wed Apr 15 2026 Yoong Jin - 2.0.0-3 +- Fix folders +- filx perms +* Sat Apr 4 2026 Yoong Jin - 2.0.0-2 +- Fix folders +- Update License +* Thu Feb 19 2026 Yoong Jin - 1.1.15-1 +- Fix resources +* Tue Feb 3 2026 Yoong Jin - 1.1.15-0 +- Initial Package diff --git a/anda/apps/twintaillauncher/update.rhai b/anda/apps/twintaillauncher/update.rhai new file mode 100644 index 0000000000..ec0890fe7f --- /dev/null +++ b/anda/apps/twintaillauncher/update.rhai @@ -0,0 +1,2 @@ +// index of 5 skips 'ttl-v' +rpm.version(gh_tag("TwintailTeam/TwintailLauncher")[5..]); diff --git a/anda/apps/valent/anda.hcl b/anda/apps/valent/anda.hcl new file mode 100644 index 0000000000..e688a5daeb --- /dev/null +++ b/anda/apps/valent/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "valent.spec" + } + labels { + nightly = 1 + } +} diff --git a/anda/apps/valent/update.rhai b/anda/apps/valent/update.rhai new file mode 100644 index 0000000000..ea282cb7f0 --- /dev/null +++ b/anda/apps/valent/update.rhai @@ -0,0 +1,7 @@ +if filters.contains("nightly") { + rpm.global("commit", gh_commit("andyholmes/valent")); + if rpm.changed() { + rpm.release(); + rpm.global("commit_date", date()); + } +} diff --git a/anda/apps/valent/valent.spec b/anda/apps/valent/valent.spec new file mode 100644 index 0000000000..9dafaf6495 --- /dev/null +++ b/anda/apps/valent/valent.spec @@ -0,0 +1,98 @@ +%global commit df82168bc37ad1ec700c66b0f0f5dfd7a07be485 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global commit_date 20260316 + +Name: valent +Version: 0~%{commit_date}git.%{shortcommit} +Release: 1%{?dist} +Summary: Connect, control and sync devices +License: GPL-3.0-or-later +URL: https://github.com/andyholmes/valent +Source0: %{url}/archive/%{commit}/valent-%{commit}.tar.gz +Source1: https://gitlab.gnome.org/GNOME/libgnome-volume-control/-/archive/master/libgnome-volume-control-master.tar.gz +Packager: Tulip Blossom + +Provides: bundled(gvc) +BuildRequires: desktop-file-utils +BuildRequires: evolution-data-server-devel +BuildRequires: gcc +BuildRequires: gcc-c++ +BuildRequires: libphonenumber-devel +BuildRequires: meson +BuildRequires: pkgconfig(glycin-2) +BuildRequires: pkgconfig(glycin-gtk4-2) +BuildRequires: pkgconfig(gnutls) +BuildRequires: pkgconfig(gstreamer-1.0) +BuildRequires: pkgconfig(json-glib-1.0) +BuildRequires: pkgconfig(libadwaita-1) +BuildRequires: pkgconfig(libpeas-2) +BuildRequires: pkgconfig(libpipewire-0.3) +BuildRequires: pkgconfig(libportal-gtk4) +BuildRequires: pkgconfig(libpulse) +BuildRequires: pkgconfig(tracker-sparql-3.0) + +%description +%{summary}. + +%package devel +%pkg_devel_files +%{_datadir}/vala/vapi/libvalent-1.deps +%{_datadir}/vala/vapi/libvalent-1.vapi +%{_libdir}/libvalent-1.so.0 +%{_libdir}/libvalent-1.so.1.0.0 + +%package langpacks +Summary: Translations for %{name} +BuildArch: noarch +Requires: %{name} = %{evr} + +%description langpacks +This package contains translations for %{name}. + +%prep +%autosetup -n valent-%{commit} -p1 +rm -r subprojects/gvc* +tar -xf %{SOURCE1} -C subprojects +mv subprojects/libgnome-volume-control* subprojects/gvc + +%conf +%meson + +%build +%meson_build + +%install +%meson_install + +%files langpacks +%{_datadir}/locale + + +%files +%license LICENSE +%doc README.md +%{_bindir}/valent +%{_datadir}/applications/ca.andyholmes.Valent.desktop +%{_datadir}/dbus-1/services/ca.andyholmes.Valent.service +%{_datadir}/gir-1.0/Valent-1.gir +%{_datadir}/glib-2.0/schemas/ca.andyholmes.Valent.Plugin.battery.gschema.xml +%{_datadir}/glib-2.0/schemas/ca.andyholmes.Valent.Plugin.clipboard.gschema.xml +%{_datadir}/glib-2.0/schemas/ca.andyholmes.Valent.Plugin.connectivity_report.gschema.xml +%{_datadir}/glib-2.0/schemas/ca.andyholmes.Valent.Plugin.contacts.gschema.xml +%{_datadir}/glib-2.0/schemas/ca.andyholmes.Valent.Plugin.notification.gschema.xml +%{_datadir}/glib-2.0/schemas/ca.andyholmes.Valent.Plugin.runcommand.gschema.xml +%{_datadir}/glib-2.0/schemas/ca.andyholmes.Valent.Plugin.sftp.gschema.xml +%{_datadir}/glib-2.0/schemas/ca.andyholmes.Valent.Plugin.share.gschema.xml +%{_datadir}/glib-2.0/schemas/ca.andyholmes.Valent.Plugin.systemvolume.gschema.xml +%{_datadir}/glib-2.0/schemas/ca.andyholmes.Valent.Plugin.telephony.gschema.xml +%{_datadir}/glib-2.0/schemas/ca.andyholmes.Valent.Plugin.xdp.gschema.xml +%{_datadir}/glib-2.0/schemas/ca.andyholmes.Valent.gschema.xml +%{_datadir}/icons/hicolor/scalable/apps/ca.andyholmes.Valent.svg +%{_datadir}/icons/hicolor/symbolic/apps/ca.andyholmes.Valent-symbolic.svg +%{_datadir}/metainfo/ca.andyholmes.Valent.metainfo.xml +%{_libdir}/girepository-1.0/Valent-1.typelib +%{_sysconfdir}/xdg/autostart/ca.andyholmes.Valent-autostart.desktop + +%changelog +* Sun Mar 15 2026 Tulip Blossom +- Initial commit diff --git a/anda/apps/vesktop/vesktop.spec b/anda/apps/vesktop/vesktop.spec index 16ba89b3af..0ca85caea6 100644 --- a/anda/apps/vesktop/vesktop.spec +++ b/anda/apps/vesktop/vesktop.spec @@ -1,5 +1,8 @@ %define debug_package %nil +%global giturl https://github.com/Vencord/Vesktop +%global appid dev.vencord.Vesktop + # Exclude private libraries %global __requires_exclude libffmpeg.so %global __provides_exclude_from %{_datadir}/vesktop/.*\\.so @@ -7,28 +10,27 @@ Name: vesktop Obsoletes: VencordDesktop < 1.5.8-1 Obsoletes: vencord-desktop < 1.5.8-1 -Version: 1.6.0 -Release: 2%?dist -License: GPL-3.0 +Version: 1.6.5 +Release: 1%?dist +License: GPL-3.0-or-later 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 +URL: https://vesktop.dev Group: Applications/Internet -#Source1: launch.sh -Source0: https://github.com/Vencord/Vesktop/archive/refs/tags/v%{version}.tar.gz +Source0: %{giturl}/archive/refs/tags/v%{version}.tar.gz +Source1: %{giturl}/releases/download/v%{version}/%{appid}.metainfo.xml Requires: xdg-utils +%if 0%{?fedora} >= 44 +BuildRequires: nodejs24-npm-bin git +%else BuildRequires: nodejs-npm git -# Conflicts: vesktop-bin +%endif %description vesktop is a custom client designed to enhance your Discord experience while keeping everything lightweight. %prep -git init -git remote add origin %url || : -git reset --hard -git fetch -git checkout v%version +%git_clone %giturl v%version cat < vesktop.desktop [Desktop Entry] @@ -44,14 +46,11 @@ StartupWMClass=vesktop Keywords=discord;vesktop;vencord;shelter;armcord;electron; EOF - %build -npx pnpm install --no-frozen-lockfile -npx pnpm package:dir - +%__npx pnpm install --no-frozen-lockfile +%__npx pnpm package:dir %install - mkdir -p %buildroot/usr/share/vesktop cp -r dist/*-unpacked/. %buildroot/usr/share/vesktop/. @@ -60,6 +59,7 @@ ln -sf /usr/share/vesktop/vesktop %buildroot/usr/bin/vesktop ln -sf /usr/bin/vesktop %buildroot/usr/bin/vencorddesktop install -Dm644 vesktop.desktop %{buildroot}%{_datadir}/applications/vesktop.desktop install -Dm644 build/icon.svg %{buildroot}%{_iconsdir}/hicolor/scalable/apps/vesktop.svg +install -Dm644 %{SOURCE1} %{buildroot}%{_metainfodir}/%{appid}.metainfo.xml %files %doc README.md @@ -69,10 +69,12 @@ install -Dm644 build/icon.svg %{buildroot}%{_iconsdir}/hicolor/scalable/apps/ves %{_datadir}/applications/vesktop.desktop %{_iconsdir}/hicolor/scalable/apps/vesktop.svg %{_datadir}/vesktop/* +%{_metainfodir}/%{appid}.metainfo.xml %changelog +* Wed Feb 04 2026 Kaitlyn - 1.6.4 +- Added appstream metainfo and fixed buildrequires to adhere to new npm package naming scheme * Thu Jul 24 2025 Atmois - 1.5.8-2 - Rename from vencord-desktop to vesktop and amend the spec file accordingly * Tue Nov 07 2023 Cappy Ishihara - 0.4.3-1 - Initial package - diff --git a/anda/apps/voicevox/voicevox.spec b/anda/apps/voicevox/voicevox.spec index 8bb281d576..9aba51ee0e 100644 --- a/anda/apps/voicevox/voicevox.spec +++ b/anda/apps/voicevox/voicevox.spec @@ -13,8 +13,8 @@ %global __requires_exclude ^((libffmpeg[.]so.*)|(lib.*\\.so.*))$ Name: voicevox -Version: 0.24.2 -Release: 1%?dist +Version: 0.25.2 +Release: 1%{?dist} Summary: Free Japanese text-to-speech editor License: LGPL-3.0 URL: https://voicevox.hiroshiba.jp diff --git a/anda/apps/vpkedit/vpkedit.spec b/anda/apps/vpkedit/vpkedit.spec index 2967b32c89..34949b70b8 100644 --- a/anda/apps/vpkedit/vpkedit.spec +++ b/anda/apps/vpkedit/vpkedit.spec @@ -1,18 +1,23 @@ +%global appid com.github.craftablescience.VPKEdit +%global _distro_extra_ldflags -fuse-ld=mold + Name: vpkedit -Version: 5.0.0.3 -Release: 1%?dist +Version: 5.0.0.4 +Release: 2%?dist Summary: A CLI/GUI tool to create, read, and write several pack file formats License: MIT URL: https://github.com/craftablescience/VPKEdit Requires: qt6-qtbase hicolor-icon-theme Suggests: qt6-qtwayland Packager: madonuko -BuildRequires: cmake git-core gcc gcc-c++ binutils +BuildRequires: cmake git-core gcc gcc-c++ binutils mold BuildRequires: cmake(Qt6) BuildRequires: cmake(Qt6Svg) BuildRequires: cmake(Qt6Linguist) BuildRequires: cmake(Qt6Charts) BuildRequires: cmake(Qt6LinguistTools) +BuildRequires: desktop-file-utils +BuildRequires: libappstream-glib ExclusiveArch: x86_64 %description @@ -26,10 +31,10 @@ new VPKs. %build -%cmake -DCMAKE_INSTALL_PREFIX=%_libdir/%name \ - -DBUILD_SHARED_LIBS:BOOL=OFF \ - -DCMAKE_BUILD_TYPE=Release -# -DVPKEDIT_BUILD_LIBC=ON +%cmake -DBUILD_SHARED_LIBS:BOOL=OFF \ + -DCMAKE_BUILD_TYPE=Release \ + -DCPACK_GENERATOR=RPM \ + -DVPKEDIT_USE_LTO=ON %cmake_build @@ -38,18 +43,23 @@ new VPKs. pushd %buildroot%_libdir/%name rm -rf {libQt*,*.md,LICENSE} popd -ln -sf %_libdir/vpkedit/vpkedit %buildroot%_bindir/vpkedit -ln -sf %_libdir/vpkedit/vpkeditcli %buildroot%_bindir/vpkeditcli -sed -i 's@Exec=/opt/vpkedit/@Exec=@g' %buildroot%_datadir/applications/vpkedit.desktop +mkdir -p %buildroot%_bindir +#ln -sf %_libdir/vpkedit/vpkedit %buildroot%_bindir/vpkedit +#ln -sf %_libdir/vpkedit/vpkeditcli %buildroot%_bindir/vpkeditcli +desktop-file-edit --set-key=Exec --set-value=%_bindir/vpkedit %buildroot%_datadir/applications/vpkedit.desktop +%terra_appstream + +%check +desktop-file-validate %buildroot%_appsdir/%name.desktop %files -%doc README.md CREDITS.md -%license LICENSE +%doc README.md CODE_OF_CONDUCT.md INSTALL.md CREDITS.md +%license LICENSE CREDITS.md %_bindir/vpkedit %_bindir/vpkeditcli %_libdir/%name/ %_datadir/applications/vpkedit.desktop -%_iconsdir/hicolor/128x128/mimetypes/application-x-vpkedit.png +%_hicolordir/*x*/apps/vpkedit.png %_datadir/mime/packages/vpkedit.xml -%_datadir/pixmaps/vpkedit.png +%_metainfodir/%appid.metainfo.xml diff --git a/anda/apps/waydroid-helper/anda.hcl b/anda/apps/waydroid-helper/anda.hcl new file mode 100644 index 0000000000..1749ec8758 --- /dev/null +++ b/anda/apps/waydroid-helper/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "waydroid-helper.spec" + } +} diff --git a/anda/apps/waydroid-helper/update.rhai b/anda/apps/waydroid-helper/update.rhai new file mode 100644 index 0000000000..60f57aa8b5 --- /dev/null +++ b/anda/apps/waydroid-helper/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("waydroid-helper/waydroid-helper")); diff --git a/anda/apps/waydroid-helper/waydroid-helper.spec b/anda/apps/waydroid-helper/waydroid-helper.spec new file mode 100644 index 0000000000..d0799fb642 --- /dev/null +++ b/anda/apps/waydroid-helper/waydroid-helper.spec @@ -0,0 +1,77 @@ +%global appid com.jaoushingan.WaydroidHelper +%define debug_package %{nil} + +Name: waydroid-helper +Version: 0.2.9 +Release: 1%?dist +Summary: User-friendly way to configure Waydroid and install extensions +License: GPL-3.0-or-later +URL: https://github.com/waydroid-helper/waydroid-helper +Source0: %url/archive/refs/tags/v%version.tar.gz +Packager: madonuko + +# https://github.com/waydroid-helper/waydroid-helper/blob/main/waydroid-helper.spec + +Recommends: bindfs +BuildRequires: pkgconfig(python3) +BuildRequires: pkgconfig(cairo) +BuildRequires: pkgconfig(gtk4) +BuildRequires: libadwaita-devel +BuildRequires: pkgconfig(gobject-introspection-1.0) +BuildRequires: pkgconfig(dbus-1) +BuildRequires: meson +BuildRequires: ninja-build +BuildRequires: pkgconfig +BuildRequires: gcc +BuildRequires: gettext +BuildRequires: systemd +BuildRequires: desktop-file-utils + +%description +Waydroid Helper is a graphical user interface application written in Python using PyGObject. It provides a user-friendly way to configure Waydroid and install extensions, including Magisk and ARM translation. + +%prep +%autosetup + +%build +%meson +%meson_build + +%install +%meson_install + +%terra_appstream +%find_lang %name + +%post +%systemd_post waydroid-mount.service +%systemd_user_post waydroid-monitor.service + +%preun +%systemd_preun waydroid-mount.service +%systemd_user_preun waydroid-monitor.service + +%postun +%systemd_postun_with_restart waydroid-mount.service +%systemd_user_postun_with_restart waydroid-monitor.service + +%files -f %name.lang +%license COPYING +%doc README.md +%_bindir/waydroid-helper +%_bindir/waydroid-cli +%_datadir/waydroid-helper/ +%_datadir/applications/%appid.desktop +%_scalableiconsdir/%appid.svg +%_iconsdir/hicolor/symbolic/apps/%appid-symbolic.svg +%_datadir/metainfo/%appid.metainfo.xml +%_datadir/glib-2.0/schemas/%appid.gschema.xml +%_datadir/polkit-1/actions/%appid.policy +%_datadir/dbus-1/system.d/id.waydro.Mount.conf +%_datadir/dbus-1/system-services/id.waydro.Mount.service +%_unitdir/waydroid-mount.service +%_userunitdir/waydroid-monitor.service + +%changelog +* Mon Mar 05 2026 madonuko - 0.2.9-1 +- Initial package diff --git a/anda/apps/webapp-manager/anda.hcl b/anda/apps/webapp-manager/anda.hcl new file mode 100644 index 0000000000..c921f54ac4 --- /dev/null +++ b/anda/apps/webapp-manager/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "webapp-manager.spec" + } +} diff --git a/anda/apps/webapp-manager/update.rhai b/anda/apps/webapp-manager/update.rhai new file mode 100644 index 0000000000..9e75eb8c9b --- /dev/null +++ b/anda/apps/webapp-manager/update.rhai @@ -0,0 +1 @@ +rpm.version(gh_tag("linuxmint/webapp-manager")); diff --git a/anda/apps/webapp-manager/webapp-manager.spec b/anda/apps/webapp-manager/webapp-manager.spec new file mode 100644 index 0000000000..e55a935156 --- /dev/null +++ b/anda/apps/webapp-manager/webapp-manager.spec @@ -0,0 +1,77 @@ +Name: webapp-manager +Version: master.mint22 +Release: 1%?dist +Summary: Web Application Manager +License: GPL-3.0-or-later +URL: https://github.com/linuxmint/webapp-manager +Source: %{url}/archive/refs/tags/%{version}.tar.gz +BuildArch: noarch + +Requires: python3-beautifulsoup4 +Requires: python3-configobj +Requires: python3-gobject +Requires: python3-pillow +Requires: python3-setproctitle +Requires: python3-tldextract +Requires: xapp-symbolic-icons +Requires: xapps + +BuildRequires: gettext +BuildRequires: make +BuildRequires: python3-devel +BuildRequires: desktop-file-utils + +Packager: metcya + +%description +Launch websites as if they were apps. + +%prep +%autosetup -n %{name}-%{version} + +%build +%make_build buildmo + +%install +mkdir -p %{buildroot}%{_datadir}/locale +cp -r usr/share/locale/* %{buildroot}%{_datadir}/locale +install -Dm 755 usr/bin/%{name} -t %{buildroot}%{_bindir} +install -Dm 755 usr/lib/%{name}/*.py -t %{buildroot}%{_libdir}/%{name}/ +install -Dm 644 usr/share/applications/%{name}.desktop -t %{buildroot}%{_appsdir} +install -Dm 644 usr/share/desktop-directories/webapps-webapps.directory -t %{buildroot}%{_datadir}/desktop-directories/webapps-webapps.directory +install -Dm 644 usr/share/glib-2.0/schemas/org.x.%{name}.gschema.xml -t %{buildroot}%{_datadir}/glib-2.0/schemas +install -Dm 644 usr/share/icons/hicolor/scalable/apps/webapp-manager.svg -t %{buildroot}%{_scalableiconsdir} +install -Dm 644 usr/share/icons/hicolor/scalable/categories/applications-webapps.svg -t %{buildroot}%{_hicolordir}/scalable/categories +install -Dm 644 usr/share/%{name}/*.ui -t %{buildroot}%{_datadir}/%{name} +install -Dm 644 usr/share/%{name}/firefox/userChrome-with-navbar.css -t %{buildroot}%{_datadir}/%{name}/firefox +install -Dm 644 usr/share/%{name}/firefox/profile/{places.sqlite,search.json.mozlz4,user.js} -t %{buildroot}%{_datadir}/%{name}/firefox/profile +install -Dm 644 usr/share/%{name}/firefox/profile/chrome/userChrome.css -t %{buildroot}%{_datadir}/%{name}/firefox/profile/chrome +install -Dm 644 etc/xdg/menus/applications-merged/webapps.menu -t %{buildroot}%{_sysconfdir}/xdg/menus/applications-merged + +sed -i '/^NotShowIn=KDE;$/d' %{buildroot}%{_appsdir}/%{name}.desktop + +%check +desktop-file-validate %{buildroot}%{_appsdir}/%{name}.desktop + +%files +%doc README.md +%license LICENSE +%{_bindir}/%{name} +%{_libdir}/%{name}/*.py +%{_appsdir}/%{name}.desktop +%{_datadir}/desktop-directories/webapps-webapps.directory +%{_datadir}/glib-2.0/schemas/org.x.%{name}.gschema.xml +%{_scalableiconsdir}/%{name}.svg +%{_hicolordir}/scalable/categories/applications-webapps.svg +%{_datadir}/%{name}/ +%{_sysconfdir}/xdg/menus/applications-merged/webapps.menu + +%dnl %find_lang does not work because the upstream Makefile does not place them in the right spot. +%{_datadir}/locale/*/*/webapp-manager.mo + +%changelog +* Mon Dec 22 2025 Owen Zimmerman +- Build fixes + +* Fri Dec 19 2025 metcya +- Port to Terra diff --git a/anda/apps/winetricks/git/winetricks-git.spec b/anda/apps/winetricks/git/winetricks-git.spec index be7b32fe72..d75a454055 100644 --- a/anda/apps/winetricks/git/winetricks-git.spec +++ b/anda/apps/winetricks/git/winetricks-git.spec @@ -1,13 +1,13 @@ # Fedora sometimes sources the snapshots under stable versions and just bumps release # For user clarity I have separated these into different packages -%global commit a5a76f24a5d03697cab0c3192843a4379d6f8ff6 +%global commit 14b802e419aff260b9d630e71027d88855e224e7 %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global ver 20250102 -%global commit_date 20251025 +%global ver 20260125 +%global commit_date 20260411 Name: winetricks-git Version: %{ver}^%{commit_date}git.%{shortcommit} -Release: 1%?dist +Release: 1%{?dist} Summary: Work around common problems in Wine; Winetricks Git builds License: LGPL-2.1-or-later URL: https://github.com/Winetricks/winetricks diff --git a/anda/apps/winetricks/stable/winetricks.spec b/anda/apps/winetricks/stable/winetricks.spec index 29132eb2d7..2aac2c9b27 100644 --- a/anda/apps/winetricks/stable/winetricks.spec +++ b/anda/apps/winetricks/stable/winetricks.spec @@ -2,8 +2,8 @@ # For user clarity I have separated these into different packages Name: terra-winetricks -Version: 20250102 -Release: 1%{?dist} +Version: 20260125 +Release: 1%?dist Summary: Winetricks built to be compatible with Terra WINE builds License: LGPL-2.1-or-later URL: https://github.com/Winetricks/winetricks diff --git a/anda/apps/youtube-music/youtube-music.spec b/anda/apps/youtube-music/youtube-music.spec index 672bfe046b..7fe38ef7bc 100644 --- a/anda/apps/youtube-music/youtube-music.spec +++ b/anda/apps/youtube-music/youtube-music.spec @@ -24,7 +24,7 @@ Packager: Cappy Ishihara # todo: investigate why #ExclusiveArch: x86_64 -BuildRequires: git-core gcc make +BuildRequires: git-core gcc make desktop-file-utils # Required for usocket native module built with node-gyp BuildRequires: python3 gcc-c++ @@ -90,7 +90,10 @@ install -d -m 0755 %{buildroot}%{_bindir} ln -svf %{_datadir}/youtube-music/youtube-music %{buildroot}%{_bindir}/youtube-music # Install desktop file -install -D -m 0644 %{SOURCE1} %{buildroot}%{_datadir}/applications/youtube-music.desktop +install -D -m 0644 %{SOURCE1} %{buildroot}%{_appsdir}/youtube-music.desktop + +%check +desktop-file-validate %{buildroot}%{_appsdir}/youtube-music.desktop %files %license license @@ -99,10 +102,10 @@ install -D -m 0644 %{SOURCE1} %{buildroot}%{_datadir}/applications/youtube-music %{_bindir}/youtube-music %{_datadir}/youtube-music %{_datadir}/icons/hicolor/*/apps/youtube-music* -%{_datadir}/applications/youtube-music.desktop - - +%{_appsdir}/youtube-music.desktop %changelog +* Thu Dec 25 2025 Owen Zimmerman +- Add %check * Sat Aug 03 2024 Cappy Ishihara - Initial Release diff --git a/anda/buildsys/anda/anda.hcl b/anda/buildsys/anda/anda.hcl new file mode 100644 index 0000000000..a430c7e9ff --- /dev/null +++ b/anda/buildsys/anda/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "anda.spec" + } +} diff --git a/anda/buildsys/anda/anda.spec b/anda/buildsys/anda/anda.spec new file mode 100644 index 0000000000..2db4ec04ba --- /dev/null +++ b/anda/buildsys/anda/anda.spec @@ -0,0 +1,77 @@ +# Work around a bug in rustc 1.95.0 with GCC +%global toolchain clang +%global crate anda + +Name: anda +Version: 0.5.4 +Release: 2%{?dist} +Summary: Andaman Build toolchain +SourceLicense: MIT +License: ((MIT OR Apache-2.0) AND Unicode-3.0) AND (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 AND ISC) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR ISC OR MIT) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND Apache-2.0 AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND BSD-3-Clause AND BSL-1.0 AND CDLA-Permissive-2.0 AND ISC AND (MIT OR Apache-2.0 OR LGPL-2.1-or-later) AND (MIT OR Apache-2.0) AND (MIT OR Zlib OR Apache-2.0) AND MIT AND MPL-2.0-or-later AND MPL-2.0-only AND Unicode-3.0 AND (Unlicense OR MIT) +URL: https://crates.io/crates/anda +Source0: https://github.com/FyraLabs/anda/archive/refs/tags/%{version}.tar.gz +%if %["%{toolchain}" == "clang"] +BuildRequires: clang +%else +BuildRequires: gcc +%endif +BuildRequires: rust-packaging >= 21 +BuildRequires: anda-srpm-macros +BuildRequires: openssl-devel +%if %{defined fedora} +BuildRequires: openssl-devel-engine +%endif +BuildRequires: git-core +BuildRequires: libgit2-devel +BuildRequires: libssh2-devel +BuildRequires: mold +Requires: mock +Requires: rpm-build +Requires: createrepo_c +Requires: git-core +Requires: libgit2 +%if 0%{?fedora} >= 42 +Requires: mock-filesystem +Requires: util-linux-script +%endif +Packager: Terra Packaging Team + +%description +Andaman Build toolchain. + +%pkg_completion -bfz + +%prep +%autosetup -n %{crate}-%{version} +%cargo_prep_online +%{__cargo} fetch --locked + +%build +%{cargo_build} --frozen +%{cargo_license_online} > LICENSE.dependencies +%{__cargo} run --release -p xtask -- manpage +%{__cargo} run --release -p xtask -- completion + +%install +%crate_install_bin + +# Install shell completions +COMPDIR="target/assets/completion" + +install -Dm644 $COMPDIR/bash/anda.bash -t %{buildroot}%{bash_completions_dir} +install -Dm644 $COMPDIR/zsh/_anda -t %{buildroot}%{zsh_completions_dir} +install -Dm644 $COMPDIR/fish/anda.fish -t %{buildroot}%{fish_completions_dir} + +# Install man pages +install -Dm644 target/assets/man_pages/* -t %{buildroot}%{_mandir}/man1 + +%files +%doc README.md +%license LICENSE.dependencies LICENSE.md +%{_bindir}/anda +%{_mandir}/man1/anda*.1.* + +%changelog +* Sun May 3 2026 Gilver E. - 0.5.4-2 +- Fix build on Fedora 43 +- Add shell completions subpackages diff --git a/anda/tools/buildsys/anda/update.rhai b/anda/buildsys/anda/update.rhai similarity index 100% rename from anda/tools/buildsys/anda/update.rhai rename to anda/buildsys/anda/update.rhai diff --git a/anda/buildsys/gradle/anda.hcl b/anda/buildsys/gradle/anda.hcl new file mode 100644 index 0000000000..81e72434b7 --- /dev/null +++ b/anda/buildsys/gradle/anda.hcl @@ -0,0 +1,7 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "gradle.spec" + extra_repos = ["https://packages.adoptium.net/artifactory/rpm/fedora/rawhide/\\$basearch"] + } +} diff --git a/anda/buildsys/gradle/ci_setup.rhai b/anda/buildsys/gradle/ci_setup.rhai new file mode 100644 index 0000000000..92de03460a --- /dev/null +++ b/anda/buildsys/gradle/ci_setup.rhai @@ -0,0 +1,2 @@ +import "andax/ci/extra_repos.rhai" as extra_repos; +extra_repos::install(labels); diff --git a/anda/buildsys/gradle/gradle.spec b/anda/buildsys/gradle/gradle.spec new file mode 100644 index 0000000000..836ef03e6b --- /dev/null +++ b/anda/buildsys/gradle/gradle.spec @@ -0,0 +1,99 @@ +Name: gradle +Version: 9.5.0 +Release: 1%{?dist} +Summary: Powerful build system for the JVM +URL: https://gradle.org/ +Source0: https://github.com/gradle/gradle/archive/refs/tags/v%{version}.tar.gz +Packager: madonuko +License: Apache-2.0 +Requires: java coreutils findutils sed which bash +BuildRequires: java-21-openjdk-devel asciidoc xmlto groovy unzip git +BuildRequires: temurin-17-jdk temurin-17-jre anda-srpm-macros +BuildArch: noarch +Recommends: gradle-doc gradle-src + +%description +Gradle is a build tool with a focus on build automation and support for multi-language development. If you are building, testing, publishing, and deploying software on any platform, Gradle offers a flexible model that can support the entire development lifecycle from compiling and packaging code to publishing web sites. Gradle has been designed to support build automation across multiple languages and platforms including Java, Scala, Android, Kotlin, C/C++, and Groovy, and is closely integrated with development tools and continuous integration servers including Eclipse, IntelliJ, and Jenkins. + +%package doc +Summary: Gradle documentation +%description doc +Documentation for gradle, a powerful build system for the JVM. + +%package src +Summary: Gradle sources +%description src +Sources for gradle, a powerful build system for the JVM. + +%prep +%autosetup -n %{name}-%{version} + +cat < gradle.sh +#!/bin/sh +export GRADLE_HOME=/usr/share/java/gradle +EOF + +%build +export PATH="/usr/lib/jvm/java-21-openjdk/bin:${PATH}" +./gradlew installAll --parallel \ + -Porg.gradle.java.installations.auto-download=false \ + -PfinalRelease=true \ + -Pgradle_installPath="$(pwd)/dist" \ + -Porg.gradle.ignoreBuildJavaVersionCheck=true \ + --warning-mode all \ + --no-configuration-cache + +%install + +# install profile.d script +mkdir -p %{buildroot}%{_sysconfdir}/profile.d/ +install -Dm755 gradle.sh %{buildroot}/%{_sysconfdir}/profile.d/ + +# create the necessary directory structure +install -d "%{buildroot}%{_javadir}/%{name}/bin" +install -d "%{buildroot}%{_javadir}/%{name}/lib/plugins" +install -d "%{buildroot}%{_javadir}/%{name}/lib/agents" +install -d "%{buildroot}%{_javadir}/%{name}/init.d" + +# copy across jar files +install -Dm644 dist/lib/*.jar "%{buildroot}%{_javadir}/%{name}/lib" +install -Dm644 dist/lib/plugins/*.jar "%{buildroot}%{_javadir}/%{name}/lib/plugins" +install -Dm644 dist/lib/agents/*.jar "%{buildroot}%{_javadir}/%{name}/lib/agents" + +# copy across supporting text documentation and scripts +install -m644 dist/NOTICE "%{buildroot}%{_javadir}/%{name}" +mkdir -p %{buildroot}%{_javadir}/%{name}/bin +install -m755 dist/bin/%{name} "%{buildroot}%{_javadir}/%{name}/bin" +install -m644 dist/init.d/*.* "%{buildroot}%{_javadir}/%{name}/init.d" + +# link gradle script to /usr/bin +mkdir -p "%{buildroot}/%{_bindir}" +ln -s %{_javadir}/%{name}/bin/%{name} "%{buildroot}%{_bindir}/%{name}" + +cp -r dist/* %{buildroot}%{_javadir}/%{name}/ + +%files +%doc README.md +%license LICENSE +%{_sysconfdir}/profile.d/gradle.sh +%{_javadir}/%{name}/ +%exclude %{_javadir}/%{name}/docs +%exclude %{_javadir}/%{name}/src +%{_bindir}/%{name} + +%files doc +%doc README.md +%license LICENSE +%{_javadir}/%{name}/docs + +%files src +%doc README.md +%license LICENSE +%{_javadir}/%{name}/src + +%changelog +* Fri Dec 05 2025 Owen Zimmerman +- Pull in adoptium repo, fix many build issues, change source to GitHub release artifacts + +* Tue Feb 7 2023 madonuko +- Initial package diff --git a/anda/tools/buildsys/gradle/update.rhai b/anda/buildsys/gradle/update.rhai similarity index 100% rename from anda/tools/buildsys/gradle/update.rhai rename to anda/buildsys/gradle/update.rhai diff --git a/anda/tools/buildsys/katsu/anda.hcl b/anda/buildsys/katsu/anda.hcl similarity index 100% rename from anda/tools/buildsys/katsu/anda.hcl rename to anda/buildsys/katsu/anda.hcl diff --git a/anda/tools/buildsys/katsu/katsu.spec b/anda/buildsys/katsu/katsu.spec similarity index 97% rename from anda/tools/buildsys/katsu/katsu.spec rename to anda/buildsys/katsu/katsu.spec index bc70b6cd5e..3a034b458a 100644 --- a/anda/tools/buildsys/katsu/katsu.spec +++ b/anda/buildsys/katsu/katsu.spec @@ -6,8 +6,8 @@ %global cargo_install_lib 0 Name: katsu -Version: 0.9.2 -Release: 2%?dist +Version: 0.10.3 +Release: 1%?dist Summary: Vicious image builder Packager: madonuko diff --git a/anda/tools/buildsys/katsu/update.rhai b/anda/buildsys/katsu/update.rhai similarity index 100% rename from anda/tools/buildsys/katsu/update.rhai rename to anda/buildsys/katsu/update.rhai diff --git a/anda/tools/buildsys/mise/anda.hcl b/anda/buildsys/mise/anda.hcl similarity index 100% rename from anda/tools/buildsys/mise/anda.hcl rename to anda/buildsys/mise/anda.hcl diff --git a/anda/tools/buildsys/mise/mise-fix-metadata-auto.diff b/anda/buildsys/mise/mise-fix-metadata-auto.diff similarity index 70% rename from anda/tools/buildsys/mise/mise-fix-metadata-auto.diff rename to anda/buildsys/mise/mise-fix-metadata-auto.diff index 57543fb611..3198f7e1f2 100644 --- a/anda/tools/buildsys/mise/mise-fix-metadata-auto.diff +++ b/anda/buildsys/mise/mise-fix-metadata-auto.diff @@ -1,6 +1,6 @@ ---- mise-2025.9.15/Cargo.toml 1970-01-01T00:00:01+00:00 -+++ mise-2025.9.15/Cargo.toml 2025-09-22T01:33:34.763933+00:00 -@@ -507,27 +507,6 @@ +--- mise-2026.2.10/Cargo.toml 2006-07-24T01:21:28+00:00 ++++ mise-2026.2.10/Cargo.toml 2026-02-12T15:02:18.584012+00:00 +@@ -575,30 +575,6 @@ optional = true default-features = false @@ -24,11 +24,14 @@ - "consoleapi", - "minwindef", -] +- +-[target."cfg(windows)".dependencies.zipsign-api] +-version = "0.1" - [lints.clippy] borrowed_box = "allow" -@@ -544,3 +523,4 @@ +@@ -615,3 +591,4 @@ [profile.serious] lto = true inherits = "release" diff --git a/anda/tools/buildsys/mise/rust-mise.spec b/anda/buildsys/mise/rust-mise.spec similarity index 70% rename from anda/tools/buildsys/mise/rust-mise.spec rename to anda/buildsys/mise/rust-mise.spec index 111b009453..ab64c4318f 100644 --- a/anda/tools/buildsys/mise/rust-mise.spec +++ b/anda/buildsys/mise/rust-mise.spec @@ -5,8 +5,8 @@ %global crate mise Name: rust-mise -Version: 2025.10.18 -Release: 1%?dist +Version: 2026.5.1 +Release: 1%{?dist} Summary: Front-end to your dev env License: MIT @@ -44,8 +44,44 @@ License: ((Apache-2.0 OR MIT) AND BSD-3-Clause) AND ((MIT OR Apache-2.0) %{_bindir}/mise %_mandir/man1/mise.1.gz +%package -n %crate-bash-completion +Summary: Bash completion for %crate +Requires: %{crate} = %{version}-%{release} +Requires: bash-completion +Requires: usage +Supplements: (%{crate} and bash-completion) -%pkg_completion -bfzn %crate +%description -n %crate-bash-completion +Bash command line completion support for %{crate}. + +%package -n %crate-fish-completion +Summary: Fish completion for %{crate} +Requires: %{crate} = %{version}-%{release} +Requires: fish +Requires: usage +Supplements: (%{crate} and fish) + +%description -n %crate-fish-completion +Fish command line completion support for %{crate}. + +%package -n %crate-zsh-completion +Summary: Zsh completion for %{crate} +Requires: %{crate} = %{version}-%{release} +Requires: zsh +Requires: usage +Supplements: (%{crate} and zsh) + +%description -n %crate-zsh-completion +Zsh command line completion support for %{crate}. + +%files -n %crate-bash-completion +%bash_completions_dir/mise.bash + +%files -n %crate-fish-completion +%fish_completions_dir/mise.fish + +%files -n %crate-zsh-completion +%zsh_completions_dir/_mise %prep @@ -55,9 +91,10 @@ License: ((Apache-2.0 OR MIT) AND BSD-3-Clause) AND ((MIT OR Apache-2.0) %build %{cargo_license_summary_online} %{cargo_license_online} > LICENSE.dependencies +%{cargo_build} --locked %install -%cargo_install +%crate_install_bin install -Dm644 %SOURCE1 %buildroot%_mandir/man1/mise.1 install -Dm644 %SOURCE2 %buildroot%bash_completions_dir/mise.bash install -Dm644 %SOURCE3 %buildroot%fish_completions_dir/mise.fish diff --git a/anda/tools/buildsys/mise/update.rhai b/anda/buildsys/mise/update.rhai similarity index 100% rename from anda/tools/buildsys/mise/update.rhai rename to anda/buildsys/mise/update.rhai diff --git a/anda/tools/buildsys/muon/anda.hcl b/anda/buildsys/muon/anda.hcl similarity index 56% rename from anda/tools/buildsys/muon/anda.hcl rename to anda/buildsys/muon/anda.hcl index 0a22d891b8..fd3534d4f4 100644 --- a/anda/tools/buildsys/muon/anda.hcl +++ b/anda/buildsys/muon/anda.hcl @@ -2,4 +2,7 @@ project pkg { rpm { spec = "muon.spec" } + labels { + subrepo = "extras" + } } diff --git a/anda/buildsys/muon/fix-tracy-header-placement-quirk.patch b/anda/buildsys/muon/fix-tracy-header-placement-quirk.patch new file mode 100644 index 0000000000..66995d6f33 --- /dev/null +++ b/anda/buildsys/muon/fix-tracy-header-placement-quirk.patch @@ -0,0 +1,13 @@ +diff --git a/include/tracy.h b/include/tracy.h +index 8bbc923f..ae58c877 100644 +--- a/include/tracy.h ++++ b/include/tracy.h +@@ -4,7 +4,7 @@ + */ + + #ifdef TRACY_ENABLE +-#include "tracy/TracyC.h" ++#include "tracy/tracy/TracyC.h" + + #define TracyCZoneAutoS TracyCZoneN(tctx_func, __func__, true) + #define TracyCZoneAutoE TracyCZoneEnd(tctx_func) diff --git a/anda/buildsys/muon/muon.spec b/anda/buildsys/muon/muon.spec new file mode 100644 index 0000000000..5a6538904d --- /dev/null +++ b/anda/buildsys/muon/muon.spec @@ -0,0 +1,64 @@ +Name: muon +Version: 0.5.0 +Release: 4%{?dist} +Summary: A meson-compatible build system + +# https://git.sr.ht/~lattis/muon/tree/master/item/LICENSES +License: GPL-3.0-only AND Apache-2.0 AND Unlicense AND MIT AND Python-2.0 +URL: https://muon.build/ +Source: https://git.sr.ht/~lattis/muon/archive/%{version}.tar.gz +Patch0: fix-tracy-header-placement-quirk.patch +# mdbook removed multilingual support, this patch can be removed when this package next bumps +Patch1: remove-multilingual-field.patch + +BuildRequires: meson +BuildRequires: gcc +BuildRequires: gcc-c++ +BuildRequires: cmake +BuildRequires: libcurl-devel +BuildRequires: libarchive-devel +BuildRequires: libpkgconf-devel +BuildRequires: scdoc +BuildRequires: git-core +BuildRequires: pkgconfig(tracy) +BuildRequires: pkgconfig(libattr) +BuildRequires: pkgconfig(bzip2) +BuildRequires: pkgconfig(libb2) +BuildRequires: pkgconfig(liblz4) +BuildRequires: pkgconfig(libzstd) +BuildRequires: pkgconfig(liblzma) +BuildRequires: pkgconfig(lzo2) +BuildRequires: pkgconfig(libxml-2.0) +BuildRequires: pkgconfig(libacl) +BuildRequires: python3-pyyaml +BuildRequires: mandoc +BuildRequires: mdbook + +Packager: Owen Zimmerman + +%description +An implementation of the meson build system in c99 with minimal dependencies. + +%prep +%autosetup -p1 + +%conf +%meson --wrap-mode=nofallback + +%build +%meson_build + +%install +%meson_install + +%files +%license LICENSES/ +%doc README.md +%{_bindir}/muon +%{_mandir}/man1/muon* +%{_mandir}/man5/meson* +%{_mandir}/man3/meson-reference.3.* + +%changelog +* Mon Apr 20 2026 Owen Zimmerman +- Update spec, add tracy patch diff --git a/anda/buildsys/muon/remove-multilingual-field.patch b/anda/buildsys/muon/remove-multilingual-field.patch new file mode 100644 index 0000000000..e0867fb189 --- /dev/null +++ b/anda/buildsys/muon/remove-multilingual-field.patch @@ -0,0 +1,25 @@ +From 776a9a30eded21206df1e643d888233472a2dbbf Mon Sep 17 00:00:00 2001 +From: Stone Tickle +Date: Thu, 27 Nov 2025 09:14:02 -0500 +Subject: [PATCH] remove multilingual field + +Signed-off-by: Owen-sz +--- + doc/book/book.toml | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/doc/book/book.toml b/doc/book/book.toml +index f51e1836..b96e9792 100644 +--- a/doc/book/book.toml ++++ b/doc/book/book.toml +@@ -1,7 +1,6 @@ + [book] + authors = ["Stone Tickle"] + language = "en" +-multilingual = false + src = "src" + title = "Muon Docs" + +-- +2.53.0 + diff --git a/anda/tools/buildsys/muon/update.rhai b/anda/buildsys/muon/update.rhai similarity index 100% rename from anda/tools/buildsys/muon/update.rhai rename to anda/buildsys/muon/update.rhai diff --git a/anda/tools/buildsys/ops2deb/anda.hcl b/anda/buildsys/ops2deb/anda.hcl similarity index 100% rename from anda/tools/buildsys/ops2deb/anda.hcl rename to anda/buildsys/ops2deb/anda.hcl diff --git a/anda/buildsys/ops2deb/ops2deb.spec b/anda/buildsys/ops2deb/ops2deb.spec new file mode 100644 index 0000000000..a2eef9ec7d --- /dev/null +++ b/anda/buildsys/ops2deb/ops2deb.spec @@ -0,0 +1,50 @@ +%global pypi_name ops2deb +%global _desc Generate Debian packages for common devops tools such as kubectl, kustomize, helm. + +Name: python-%{pypi_name} +Version: 2.7.0 +Release: 1%?dist +Summary: Generate Debian packages for common devops tools such as kubectl, kustomize, helm +License: MIT +URL: https://github.com/upciti/ops2deb +Source0: %{pypi_source} +Patch0: versions.patch +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-pip +BuildRequires: python3-poetry + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n %{pypi_name}-%{version} -p1 + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files %{pypi_name} + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md +%license LICENSE +%{_bindir}/ops2deb + +%changelog +* Thu Apr 23 2026 Owen Zimmerman +- Switch to modern python packaging methods + +* Fri Apr 28 2023 madonuko - 2.4.1-1 +- Initial package. diff --git a/anda/tools/buildsys/ops2deb/update.rhai b/anda/buildsys/ops2deb/update.rhai similarity index 100% rename from anda/tools/buildsys/ops2deb/update.rhai rename to anda/buildsys/ops2deb/update.rhai diff --git a/anda/buildsys/ops2deb/versions.patch b/anda/buildsys/ops2deb/versions.patch new file mode 100644 index 0000000000..a01e2a5097 --- /dev/null +++ b/anda/buildsys/ops2deb/versions.patch @@ -0,0 +1,18 @@ +diff --git a/pyproject.toml b/pyproject.toml +index 29b753f..926abf8 100644 +--- a/pyproject.toml ++++ b/pyproject.toml +@@ -18,10 +18,10 @@ packages = [ + ] + + [tool.poetry.dependencies] +-python = ">=3.10,<3.12" ++python = ">=3.10" + httpx = ">=0.20.0" +-semver = "3.0.2" +-"ruamel.yaml" = "0.18.14" ++semver = ">3.0.2" ++"ruamel.yaml" = ">0.18.14" + python-debian = ">=0.1.42" + PyYAML = "^6" + typer = ">=0.6.1" diff --git a/anda/desktops/budgie/budgie-extras/budgie-extras.spec b/anda/desktops/budgie/budgie-extras/budgie-extras.spec index bd25f3f8a9..7633934619 100644 --- a/anda/desktops/budgie/budgie-extras/budgie-extras.spec +++ b/anda/desktops/budgie/budgie-extras/budgie-extras.spec @@ -1,6 +1,6 @@ Name: budgie-extras -Version: 1.9.0 -Release: 1%?dist +Version: 2.2.3 +Release: 1%{?dist} License: GPL-3.0 Summary: Additional Budgie Desktop enhancements for user experience diff --git a/anda/desktops/cagebreak/anda.hcl b/anda/desktops/cagebreak/anda.hcl new file mode 100644 index 0000000000..d7db926282 --- /dev/null +++ b/anda/desktops/cagebreak/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "cagebreak.spec" + } +} diff --git a/anda/desktops/cagebreak/cagebreak.spec b/anda/desktops/cagebreak/cagebreak.spec new file mode 100644 index 0000000000..b178160160 --- /dev/null +++ b/anda/desktops/cagebreak/cagebreak.spec @@ -0,0 +1,64 @@ +%global tag 3.2.0 +%global forgeurl https://github.com/project-repo/cagebreak +%forgemeta + +Name: cagebreak +Version: %{tag} +Release: 1%{?dist} +Summary: A wayland tiling compositor inspired by Ratpoison + +License: MIT +URL: %{forgeurl} +Source0: %{forgesource} + +Packager: metcya + +BuildRequires: meson +BuildRequires: gcc +BuildRequires: scdoc +BuildRequires: pkgconfig(wlroots-0.20) +BuildRequires: pkgconfig(wayland-protocols) +BuildRequires: pkgconfig(wayland-server) +BuildRequires: pkgconfig(wayland-cursor) +BuildRequires: pkgconfig(wayland-client) +BuildRequires: pkgconfig(xkbcommon) +BuildRequires: pkgconfig(cairo) +BuildRequires: pkgconfig(pango) +BuildRequires: pkgconfig(pangocairo) +BuildRequires: pkgconfig(fontconfig) +BuildRequires: pkgconfig(libinput) +BuildRequires: pkgconfig(libevdev) +BuildRequires: pkgconfig(libudev) + +# used in the example configuration +Recommends: /usr/bin/xterm +Recommends: /usr/bin/pactl + +%description +cagebreak is a slim, keyboard-controlled, tiling compositor for wayland +conceptually based on the X11 window manager ratpoison. + +%prep +%forgesetup + +%build +%meson -Dxwayland=true -Dman-pages=true +%meson_build + +%install +%meson_install + +%files +# license is already installed by the package +%license %{_defaultlicensdir}/%{name}/LICENSE +%doc README.md SECURITY.md FAQ.md Bugs.md +%{_bindir}/cagebreak +%{_sysconfdir}/xdg/%{name}/config +%{_mandir}/man1/cagebreak.1.* +%{_mandir}/man5/cagebreak-config.5.* +%{_mandir}/man7/cagebreak-socket.7.* + + +%changelog +* Wed Feb 04 2026 metcya +- Initial package diff --git a/anda/desktops/cagebreak/update.rhai b/anda/desktops/cagebreak/update.rhai new file mode 100644 index 0000000000..5431242340 --- /dev/null +++ b/anda/desktops/cagebreak/update.rhai @@ -0,0 +1 @@ +rpm.global("tag", gh_tag("project-repo/cagebreak")); diff --git a/anda/desktops/compiz9/compiz9.spec b/anda/desktops/compiz9/compiz9.spec index eceedb05e9..29bea230f3 100644 --- a/anda/desktops/compiz9/compiz9.spec +++ b/anda/desktops/compiz9/compiz9.spec @@ -1,4 +1,4 @@ -%define _ubuntu_rel 25.10.20250930-0ubuntu1 +%define _ubuntu_rel 25.10.20250930-0ubuntu3 %global _hardened_build 0 Name: compiz9 diff --git a/anda/desktops/ctwm/ctwm.desktop b/anda/desktops/ctwm/ctwm.desktop index 2d255d41cc..62f51d54be 100644 --- a/anda/desktops/ctwm/ctwm.desktop +++ b/anda/desktops/ctwm/ctwm.desktop @@ -3,5 +3,5 @@ Name=CTWM Comment=Claude's Tab Window Manager TryExec=ctwm Exec=ctwm -Type=Xsession -Encoding=UTF-8 \ No newline at end of file +Type=Application +Encoding=UTF-8 diff --git a/anda/desktops/ctwm/ctwm.spec b/anda/desktops/ctwm/ctwm.spec index 1a1447bcda..5cc5187659 100644 --- a/anda/desktops/ctwm/ctwm.spec +++ b/anda/desktops/ctwm/ctwm.spec @@ -1,13 +1,13 @@ -Summary: Lightweight window manager with virtual workspaces Name: ctwm +Summary: Lightweight window manager with virtual workspaces Version: 4.1.0 -Release: 1%?dist +Release: 2%?dist URL: https://ctwm.org -BuildRequires: libjpeg-turbo-devel libX11-devel libXext-devel libXmu-devel libXpm-devel libXt-devel libXrandr-devel cmake gcc m4 +BuildRequires: libjpeg-turbo-devel libX11-devel libXext-devel libXmu-devel libXpm-devel libXt-devel libXrandr-devel cmake gcc m4 desktop-file-utils Source0: https://www.ctwm.org/dist/%{name}-%{version}.tar.xz Source1: %{name}.desktop License: MIT -Requires: m4 +Requires: m4 # Derived from RPMSphere's packaging %description @@ -22,7 +22,10 @@ CTWM is a window manager based on TWM (with virtual workspaces added). %install %cmake_install -%{__install} -Dm644 %{SOURCE1} %{buildroot}%{_datadir}/xsessions/%{name}.desktop +install -Dm644 %{SOURCE1} %{buildroot}%{_datadir}/xsessions/%{name}.desktop + +%check +desktop-file-validate %{buildroot}%{_datadir}/xsessions/%{name}.desktop %files %doc README.md CHANGES.md @@ -35,6 +38,8 @@ CTWM is a window manager based on TWM (with virtual workspaces added). %{_datadir}/examples/ctwm/system.ctwmrc %changelog +* Wed Dec 24 2025 Owen Zimmerman +- Add %check section * Tue Dec 17 2024 Owen Zimmerman - Add .desktop and .rhai file, fix dependancies, and switch to .tar.xz source (smaller download) * Thu Jun 27 2024 Jaiden Riordan - 4.1.0 @@ -52,4 +57,3 @@ CTWM is a window manager based on TWM (with virtual workspaces added). * Tue May 3 2005 Richard Levitte - Received the original from Johan Vromans. Adjusted it to become an official .spec file. - diff --git a/anda/desktops/driftwm/anda.hcl b/anda/desktops/driftwm/anda.hcl new file mode 100644 index 0000000000..7629282154 --- /dev/null +++ b/anda/desktops/driftwm/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "driftwm.spec" + } +} diff --git a/anda/desktops/driftwm/driftwm.spec b/anda/desktops/driftwm/driftwm.spec new file mode 100644 index 0000000000..14fa046ab5 --- /dev/null +++ b/anda/desktops/driftwm/driftwm.spec @@ -0,0 +1,46 @@ +Name: driftwm +Version: 0.5.0 +Release: 1%{?dist} +Summary: A trackpad-first infinite canvas Wayland compositor +License: GPL-3.0-or-later +URL: https://github.com/malbiruk/driftwm +Source0: %{url}/archive/refs/tags/v%{version}.tar.gz +Packager: Owen Zimmerman + +BuildRequires: cargo-rpm-macros +BuildRequires: pkgconfig(libudev) +BuildRequires: pkgconfig(libseat) +BuildRequires: pkgconfig(libdisplay-info) +BuildRequires: libinput-devel +BuildRequires: libxkbcommon-devel +BuildRequires: mesa-libgbm-devel + +%description +%{summary}. + +%prep +%autosetup +%cargo_prep_online + +%build +%cargo_build +%cargo_license_summary_online +%{cargo_license_online} > LICENSE.dependencies + +%install +export PREFIX=/usr +%make_install + +%files +%doc README.md +%license LICENSE LICENSE.dependencies +%{_bindir}/driftwm +%{_bindir}/driftwm-session +%{_datadir}/wayland-sessions/driftwm.desktop +%{_datadir}/xdg-desktop-portal/driftwm-portals.conf +%{_sysconfdir}/driftwm/config.toml +%{_datadir}/driftwm/wallpapers/*.glsl + +%changelog +* Tue Mar 17 2026 Owen Zimmerman - 0.1.0-1 +- Initial commit diff --git a/anda/desktops/driftwm/update.rhai b/anda/desktops/driftwm/update.rhai new file mode 100644 index 0000000000..3d7c8b86dc --- /dev/null +++ b/anda/desktops/driftwm/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("malbiruk/driftwm")); diff --git a/anda/desktops/elementary/capnet-assist/anda.hcl b/anda/desktops/elementary/capnet-assist/anda.hcl new file mode 100644 index 0000000000..644f0f79b1 --- /dev/null +++ b/anda/desktops/elementary/capnet-assist/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "capnet-assist.spec" + } +} diff --git a/anda/desktops/elementary/capnet-assist/capnet-assist.spec b/anda/desktops/elementary/capnet-assist/capnet-assist.spec new file mode 100644 index 0000000000..85d9f8808c --- /dev/null +++ b/anda/desktops/elementary/capnet-assist/capnet-assist.spec @@ -0,0 +1,50 @@ +%global appid io.elementary.capnet-assist + +Name: capnet-assist +Version: 8.0.2 +Release: 1%?dist +Summary: Captive Network Assistant automatically opens to help you get connected +License: GPL-3.0-only +URL: https://github.com/elementary/capnet-assist +Source0: %url/archive/refs/tags/%version.tar.gz +BuildRequires: meson gettext vala desktop-file-utils +BuildRequires: pkgconfig(gcr-4) +BuildRequires: pkgconfig(gio-2.0) +BuildRequires: pkgconfig(glib-2.0) +BuildRequires: pkgconfig(gobject-2.0) +BuildRequires: pkgconfig(granite-7) >= 7.0.0 +BuildRequires: pkgconfig(gtk4) +BuildRequires: pkgconfig(libadwaita-1) >= 1.0.0 +BuildRequires: pkgconfig(webkitgtk-6.0) + +%description +Log into captive portals—like Wi-Fi networks at coffee shops, airports, and trains—with ease. Captive Network Assistant automatically opens to help you get connected. + +%prep +%autosetup + +%build +%meson +%meson_build + +%install +%meson_install + +%terra_appstream -o %buildroot%_metainfodir/%appid.metainfo.xml +%find_lang %appid + +%check +%desktop_file_validate %buildroot%_appsdir/%appid.desktop + +%files -f %appid.lang +%doc README.md +%license COPYING +%_bindir/%appid +%_appsdir/%appid.desktop +%_datadir/glib-2.0/schemas/%appid.gschema.xml +%_hicolordir/*/apps/%appid.svg +%_metainfodir/%appid.metainfo.xml + +%changelog +* Tue Apr 07 2026 madonuko - 8.0.2-1 +- Initial package. diff --git a/anda/desktops/elementary/capnet-assist/update.rhai b/anda/desktops/elementary/capnet-assist/update.rhai new file mode 100644 index 0000000000..fc7813e120 --- /dev/null +++ b/anda/desktops/elementary/capnet-assist/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("elementary/capnet-assist")); diff --git a/anda/desktops/gnome/gnome-shell-extension-appmenu-is-back/anda.hcl b/anda/desktops/gnome/gnome-shell-extension-appmenu-is-back/anda.hcl index ede91daf20..2554aaa4d2 100644 --- a/anda/desktops/gnome/gnome-shell-extension-appmenu-is-back/anda.hcl +++ b/anda/desktops/gnome/gnome-shell-extension-appmenu-is-back/anda.hcl @@ -1,4 +1,5 @@ project pkg { + arches = ["x86_64"] rpm { spec = "gnome-shell-extension-appmenu-is-back.spec" } diff --git a/anda/desktops/gnome/gnome-shell-extension-appmenu-is-back/gnome-shell-extension-appmenu-is-back.spec b/anda/desktops/gnome/gnome-shell-extension-appmenu-is-back/gnome-shell-extension-appmenu-is-back.spec index 3346f502ec..7e6a391c8c 100644 --- a/anda/desktops/gnome/gnome-shell-extension-appmenu-is-back/gnome-shell-extension-appmenu-is-back.spec +++ b/anda/desktops/gnome/gnome-shell-extension-appmenu-is-back/gnome-shell-extension-appmenu-is-back.spec @@ -3,7 +3,7 @@ Name: gnome-shell-extension-%{extension} Version: 12 -Release: 2%?dist +Release: 4%{?dist} Summary: GNOME Shell extension to bring back the app menu License: GPL-3.0-only URL: https://github.com/fthx/appmenu-is-back @@ -12,7 +12,7 @@ BuildArch: noarch Source0: https://github.com/fthx/appmenu-is-back/archive/refs/tags/v%{version}.tar.gz -Requires: (gnome-shell >= 48~ with gnome-shell < 50~) +Requires: gnome-shell >= 48~ Recommends: gnome-extensions-app %description @@ -22,12 +22,12 @@ This extension brings back the app menu in the top panel, for GNOME 45 and later %autosetup -n appmenu-is-back-%{version} -p1 %install -install -Dm644 metadata.json %{buildroot}%{_datadir}/gnome-shell/extensions/%{uuid}/metadata.json -install -Dm644 extension.js %{buildroot}%{_datadir}/gnome-shell/extensions/%{uuid}/extension.js +install -Dm644 metadata.json %{buildroot}%{_gnomeextensionsdir}/metadata.json +install -Dm644 extension.js %{buildroot}%{_gnomeextensionsdir}/extension.js %files %license LICENSE -%{_datadir}/gnome-shell/extensions/%{uuid} +%{_gnomeextensionsdir} %changelog * Thu Nov 16 2023 Lleyton Gray - 2-1 diff --git a/anda/desktops/gnome/gnome-shell-extension-battery_time/anda.hcl b/anda/desktops/gnome/gnome-shell-extension-battery_time/anda.hcl new file mode 100644 index 0000000000..07746fe533 --- /dev/null +++ b/anda/desktops/gnome/gnome-shell-extension-battery_time/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "gnome-shell-extension-battery_time.spec" + } +} diff --git a/anda/desktops/gnome/gnome-shell-extension-battery_time/gnome-shell-extension-battery_time.spec b/anda/desktops/gnome/gnome-shell-extension-battery_time/gnome-shell-extension-battery_time.spec new file mode 100644 index 0000000000..c7cd7205a8 --- /dev/null +++ b/anda/desktops/gnome/gnome-shell-extension-battery_time/gnome-shell-extension-battery_time.spec @@ -0,0 +1,45 @@ +%global commit 0df5f952843a296bf9f9b61b36c5fae5d851700b +%global commit_date 20250925 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) + +%global extension battery_time +%global uuid %{extension}@pomoke + +Name: gnome-shell-extension-%{extension} +Version: 0~%{commit_date}git.%{shortcommit} +Release: 3%{?dist} +Summary: Battery remaining time extension for GNOME Shell +License: GPL-2.0-only +URL: https://github.com/pomoke/battery_time + +BuildArch: noarch + +Source0: %url/archive/%commit/battery_time-%commit.tar.gz +# License declared in README +Source1: https://scancode-licensedb.aboutcode.org/gpl-2.0.LICENSE + +Requires: gnome-shell >= 48~ +Recommends: gnome-extensions-app + +Packager: Owen Zimmerman + +%description +This extension serves as a replacement of battery remaining time, last seen in GNOME 42. +Remaining time is shown inline, so no additional menu item is created (currently). + +%prep +%autosetup -n %{extension}-%{commit} + +%install +install -Dm644 metadata.json %{buildroot}%{_gnomeextensionsdir}/metadata.json +install -Dm644 extension.js %{buildroot}%{_gnomeextensionsdir}/extension.js +cp %{SOURCE1} LICENSE + +%files +%doc README.md +%license LICENSE +%{_gnomeextensionsdir} + +%changelog +* Mon Jan 05 2026 Owen Zimmerman +- Initial commit diff --git a/anda/desktops/gnome/gnome-shell-extension-battery_time/update.rhai b/anda/desktops/gnome/gnome-shell-extension-battery_time/update.rhai new file mode 100644 index 0000000000..4d59d3708c --- /dev/null +++ b/anda/desktops/gnome/gnome-shell-extension-battery_time/update.rhai @@ -0,0 +1,5 @@ +rpm.global("commit", gh_commit("pomoke/battery_time")); +if rpm.changed() { + rpm.release(); + rpm.global("commit_date", date()); +} diff --git a/anda/desktops/gnome/gnome-shell-extension-gpu-supergfxctl-switch/anda.hcl b/anda/desktops/gnome/gnome-shell-extension-gpu-supergfxctl-switch/anda.hcl new file mode 100644 index 0000000000..3870cb13d0 --- /dev/null +++ b/anda/desktops/gnome/gnome-shell-extension-gpu-supergfxctl-switch/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "gnome-shell-extension-gpu-supergfxctl-switch.spec" + } +} diff --git a/anda/desktops/gnome/gnome-shell-extension-gpu-supergfxctl-switch/gnome-shell-extension-gpu-supergfxctl-switch.spec b/anda/desktops/gnome/gnome-shell-extension-gpu-supergfxctl-switch/gnome-shell-extension-gpu-supergfxctl-switch.spec new file mode 100644 index 0000000000..6c81ff0bf6 --- /dev/null +++ b/anda/desktops/gnome/gnome-shell-extension-gpu-supergfxctl-switch/gnome-shell-extension-gpu-supergfxctl-switch.spec @@ -0,0 +1,43 @@ +%global commit 1de26db2ea4166fdca85306300b12bdc24f2c955 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global commit_date 20250925 +%global ver 11 +%global extension gpu-switcher-supergfxctl +%global uuid %{extension}@chikobara.github.io + +Name: gnome-shell-extension-%{extension} +Version: %ver^%commit_date.%shortcommit +Release: 3%{?dist} +Summary: GPU Profile switcher Gnome-Shell-Extension for ASUS laptops using Supergfxctl +License: GPL-3.0-only +URL: https://github.com/chikobara/GPU-Switcher-Supergfxctl + +Source0: %url/archive/%commit.tar.gz + +Requires: gnome-shell >= 48~ +Requires: asusctl +Requires: supergfxctl +Recommends: gnome-extensions-app + +BuildArch: noarch + +Packager: june-fish + +%description +GPU Profile switcher Gnome-Shell-Extension for ASUS laptops using Supergfxctl + +%prep +%autosetup -n GPU-Switcher-Supergfxctl-%{commit} -p1 + +%install +install -Dm644 metadata.json %{buildroot}%{_gnomeextensionsdir}/metadata.json +install -Dm644 extension.js %{buildroot}%{_gnomeextensionsdir}/extension.js + +%files +%license LICENSE +%doc README.md +%{_gnomeextensionsdir} + +%changelog +* Mon Oct 27 2025 june-fish - 11 +- Initial Package diff --git a/anda/desktops/gnome/gnome-shell-extension-gpu-supergfxctl-switch/update.rhai b/anda/desktops/gnome/gnome-shell-extension-gpu-supergfxctl-switch/update.rhai new file mode 100644 index 0000000000..10ce2bdccd --- /dev/null +++ b/anda/desktops/gnome/gnome-shell-extension-gpu-supergfxctl-switch/update.rhai @@ -0,0 +1,9 @@ +if filters.contains("nightly") { + rpm.global("commit", gh_commit("chikobara/GPU-Switcher-Supergfxctl")); + if rpm.changed() { + let v = find("\"version\": ([.\\d]+)\n", gh_rawfile("chikobara/GPU-Switcher-Supergfxctl", "main", "metadata.json"), 1); + rpm.global("ver", v); + rpm.global("commit_date", date()); + rpm.release(); + } +} diff --git a/anda/desktops/gnome/gnome-shell-extension-grand-theft-focus/anda.hcl b/anda/desktops/gnome/gnome-shell-extension-grand-theft-focus/anda.hcl new file mode 100644 index 0000000000..2e23cb347e --- /dev/null +++ b/anda/desktops/gnome/gnome-shell-extension-grand-theft-focus/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "gnome-shell-extension-grand-theft-focus.spec" + } +} diff --git a/anda/desktops/gnome/gnome-shell-extension-grand-theft-focus/gnome-shell-extension-grand-theft-focus.spec b/anda/desktops/gnome/gnome-shell-extension-grand-theft-focus/gnome-shell-extension-grand-theft-focus.spec new file mode 100644 index 0000000000..cef765fdd2 --- /dev/null +++ b/anda/desktops/gnome/gnome-shell-extension-grand-theft-focus/gnome-shell-extension-grand-theft-focus.spec @@ -0,0 +1,37 @@ +%global extension grand-theft-focus +%global uuid %{extension}@zalckos + +Name: gnome-shell-extension-%{extension} +Version: 10 +Release: 2%{?dist} +Summary: GNOME extension that removes the 'Window is ready' notification and brings the window into focus instead +License: AGPL-3.0-only +URL: https://github.com/zalckos/GrandTheftFocus + +BuildArch: noarch + +Source0: https://github.com/zalckos/GrandTheftFocus/archive/refs/tags/v%version.tar.gz + +Requires: gnome-shell >= 48~ +Recommends: gnome-extensions-app + +Packager: Owen Zimmerman + +%description +GNOME extension. Removes the 'Window is ready' notification and brings the window into focus instead. + +%prep +%autosetup -n GrandTheftFocus-%version + +%install +install -Dm644 grand-theft-focus@zalckos.github.com/metadata.json %{buildroot}%{_gnomeextensionsdir}/metadata.json +install -Dm644 grand-theft-focus@zalckos.github.com/extension.js %{buildroot}%{_gnomeextensionsdir}/extension.js + +%files +%license LICENSE +%doc README.md +%{_gnomeextensionsdir} + +%changelog +* Tue Dec 30 2025 Owen Zimmerman +- Initial commit diff --git a/anda/desktops/gnome/gnome-shell-extension-grand-theft-focus/update.rhai b/anda/desktops/gnome/gnome-shell-extension-grand-theft-focus/update.rhai new file mode 100644 index 0000000000..9c32bed9ab --- /dev/null +++ b/anda/desktops/gnome/gnome-shell-extension-grand-theft-focus/update.rhai @@ -0,0 +1 @@ +rpm.version(gh_tag("zalckos/GrandTheftFocus")); diff --git a/anda/desktops/gnome/gnome-shell-extension-multi-monitors-bar/anda.hcl b/anda/desktops/gnome/gnome-shell-extension-multi-monitors-bar/anda.hcl new file mode 100644 index 0000000000..814427681e --- /dev/null +++ b/anda/desktops/gnome/gnome-shell-extension-multi-monitors-bar/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "gnome-shell-extension-multi-monitors-bar.spec" + } + labels { + nightly = 1 + } +} diff --git a/anda/desktops/gnome/gnome-shell-extension-multi-monitors-bar/gnome-shell-extension-multi-monitors-bar.spec b/anda/desktops/gnome/gnome-shell-extension-multi-monitors-bar/gnome-shell-extension-multi-monitors-bar.spec new file mode 100644 index 0000000000..0227f12442 --- /dev/null +++ b/anda/desktops/gnome/gnome-shell-extension-multi-monitors-bar/gnome-shell-extension-multi-monitors-bar.spec @@ -0,0 +1,55 @@ +%global commit aeb29c1e8ca23dc1bd89f1f2c73044e0ec031588 +%global commit_date 20260506 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) + +%global extension multi-monitors-bar +%global uuid %{extension}@frederykabryan + +Name: gnome-shell-extension-%{extension} +Version: 0~%{commit_date}git.%{shortcommit} +Release: 1%{?dist} +Summary: Add multiple monitors overview and panel for GNOME Shell. This is an updated fork with GNOME 46 compatibility +License: GPL-2.0-or-later +URL: https://github.com/FrederykAbryan/multi-monitors-bar_fapv2 + +BuildArch: noarch + +Source0: %url/archive/%commit/multi-monitors-bar_fapv2-%commit.tar.gz +# README declared the license, but they do not provide a license file + +Requires: gnome-shell >= 48~ +Recommends: gnome-extensions-app + +Packager: Owen Zimmerman + +%description +%summary. + +%prep +%autosetup -n multi-monitors-bar_fapv2-%commit + +%build + +%install +find . -name "*.gschema.xml" +mkdir -p %{buildroot}%{_gnomeextensionsdir} +install -Dm644 *.json %{buildroot}%{_gnomeextensionsdir}/ +install -Dm644 *.js %{buildroot}%{_gnomeextensionsdir}/ +install -Dm644 *.css %{buildroot}%{_gnomeextensionsdir}/ +install -Dm644 schemas/*.gschema.xml -t %{buildroot}%{_datadir}/glib-2.0/schemas/ + +%post +glib-compile-schemas %{_datadir}/glib-2.0/schemas/ &> /dev/null || : + +%postun +glib-compile-schemas %{_datadir}/glib-2.0/schemas/ &> /dev/null || : + +%files +%license LICENSE +%doc README.md +%{_gnomeextensionsdir} +%{_datadir}/glib-2.0/schemas/*.gschema.xml + +%changelog +* Thu Jan 01 2026 Owen Zimmerman +- Initial commit diff --git a/anda/desktops/gnome/gnome-shell-extension-multi-monitors-bar/update.rhai b/anda/desktops/gnome/gnome-shell-extension-multi-monitors-bar/update.rhai new file mode 100644 index 0000000000..255ca7a345 --- /dev/null +++ b/anda/desktops/gnome/gnome-shell-extension-multi-monitors-bar/update.rhai @@ -0,0 +1,5 @@ +rpm.global("commit", gh_commit("FrederykAbryan/multi-monitors-bar_fapv2")); +if rpm.changed() { + rpm.release(); + rpm.global("commit_date", date()); +} diff --git a/anda/desktops/gnome/gnome-shell-extension-vicinae/anda.hcl b/anda/desktops/gnome/gnome-shell-extension-vicinae/anda.hcl new file mode 100644 index 0000000000..3459041c9c --- /dev/null +++ b/anda/desktops/gnome/gnome-shell-extension-vicinae/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + rpm { + spec = "gnome-shell-extension-vicinae.spec" + } + arches = ["x86_64"] +} diff --git a/anda/desktops/gnome/gnome-shell-extension-vicinae/gnome-shell-extension-vicinae.spec b/anda/desktops/gnome/gnome-shell-extension-vicinae/gnome-shell-extension-vicinae.spec new file mode 100644 index 0000000000..32535f9575 --- /dev/null +++ b/anda/desktops/gnome/gnome-shell-extension-vicinae/gnome-shell-extension-vicinae.spec @@ -0,0 +1,41 @@ +%global uuid vicinae@dagimg-dot.netlify.app + +Name: gnome-shell-extension-vicinae +Version: 1.6.1 +Release: 2%{?dist} +License: MIT +URL: https://github.com/dagimg-dot/vicinae-gnome-extension +Source: %{url}/archive/refs/tags/v%{version}.tar.gz +Summary: Companion GNOME extension for Vicinae launcher +Packager: metcya + +BuildArch: noarch + +BuildRequires: bun-bin glib2-devel +Requires: gnome-shell >= 48~ +Requires: vicinae +Recommends: gnome-extensions-app +Provides: gnome-shell-extension-vicinae-gnome-extension + +%description +Companion GNOME extension for Vicinae launcher with clipboard monitoring, +window management APIs, and paste-to-active-window capabilities. + +%prep +%autosetup -n vicinae-gnome-extension-%{version} + +%build +%{__bun} i && %{__bun} run build + +%install +mkdir -p %{buildroot}%{_gnomeextensionsdir} +cp -a src/ %{buildroot}%{_gnomeextensionsdir}/ + +%files +%license LICENSE +%doc README.md DEVELOPMENT.md +%{_gnomeextensionsdir}/ + +%changelog +* Sat Dec 27 2025 metcya - 1.5.3-1 +- Package diff --git a/anda/desktops/gnome/gnome-shell-extension-vicinae/update.rhai b/anda/desktops/gnome/gnome-shell-extension-vicinae/update.rhai new file mode 100644 index 0000000000..62d40c1f5d --- /dev/null +++ b/anda/desktops/gnome/gnome-shell-extension-vicinae/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("dagimg-dot/vicinae-gnome-extension")); diff --git a/anda/desktops/gnome/gnome-shell/gnome-shell.spec b/anda/desktops/gnome/gnome-shell/gnome-shell.spec index 916c0fe25d..b835be6c66 100644 --- a/anda/desktops/gnome/gnome-shell/gnome-shell.spec +++ b/anda/desktops/gnome/gnome-shell/gnome-shell.spec @@ -1,5 +1,5 @@ %global tarball_version %%(echo %{version} | tr '~' '.') -%global major_version 49 +%global major_version 50 %global minor_version 1 %if 0%{?rhel} @@ -10,7 +10,7 @@ Name: gnome-shell Version: %{major_version}.%{minor_version} -Release: 1%{?dist}.switcheroo +Release: 2%{?dist}.switcheroo Summary: Window management and application launching for GNOME Provides: gnome-shell.switcheroo = %version-%release @@ -214,7 +214,6 @@ mkdir -p %{buildroot}%{_datadir}/gnome-shell/search-providers %find_lang gnome-shell %check -desktop-file-validate %{buildroot}%{_datadir}/applications/org.gnome.Shell.desktop desktop-file-validate %{buildroot}%{_datadir}/applications/org.gnome.Shell.Extensions.desktop %if %{portal_helper} @@ -230,7 +229,6 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/org.gnome.Shell.Porta %{_bindir}/gnome-shell-test-tool %{_datadir}/glib-2.0/schemas/00_org.gnome.shell.gschema.override %{_datadir}/applications/org.gnome.Shell.Extensions.desktop -%{_datadir}/applications/org.gnome.Shell.desktop %{_datadir}/bash-completion/completions/gnome-extensions %{_datadir}/gnome-control-center/keybindings/50-gnome-shell-launchers.xml %{_datadir}/gnome-control-center/keybindings/50-gnome-shell-screenshots.xml @@ -242,6 +240,7 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/org.gnome.Shell.Porta %{_datadir}/dbus-1/services/org.gnome.Shell.HotplugSniffer.service %{_datadir}/dbus-1/services/org.gnome.Shell.Notifications.service %{_datadir}/dbus-1/services/org.gnome.Shell.Screencast.service +%{_datadir}/dbus-1/interfaces/org.gnome.Shell.Brightness.xml %{_datadir}/dbus-1/interfaces/org.gnome.Shell.Extensions.xml %{_datadir}/dbus-1/interfaces/org.gnome.Shell.Introspect.xml %{_datadir}/dbus-1/interfaces/org.gnome.Shell.PadOsd.xml @@ -257,7 +256,6 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/org.gnome.Shell.Porta %{_userunitdir}/org.gnome.Shell-disable-extensions.service %{_userunitdir}/org.gnome.Shell.target %{_userunitdir}/org.gnome.Shell@wayland.service -%{_userunitdir}/org.gnome.Shell@x11.service %{_libdir}/gnome-shell/ %{_libexecdir}/gnome-shell-calendar-server %{_libexecdir}/gnome-shell-perf-helper diff --git a/anda/desktops/gnome/nautilus-open-any-terminal/nautilus-open-any-terminal.spec b/anda/desktops/gnome/nautilus-open-any-terminal/nautilus-open-any-terminal.spec index 2392c4404a..e57735d067 100644 --- a/anda/desktops/gnome/nautilus-open-any-terminal/nautilus-open-any-terminal.spec +++ b/anda/desktops/gnome/nautilus-open-any-terminal/nautilus-open-any-terminal.spec @@ -1,7 +1,7 @@ %global pypi_name nautilus_open_any_terminal Name: nautilus-open-any-terminal -Version: 0.7.0 +Version: 0.8.1 Release: 1%?dist Summary: Context-menu entry for opening other terminal in Nautilus License: GPL-3.0-only @@ -18,6 +18,7 @@ BuildRequires: python3dist(pip) BuildRequires: gettext Requires: python3-%{name} = %{version}-%{release} Requires: %{name}-caja = %{version}-%{release} +Requires: nautilus-python Obsoletes: python3-%{name} < 0.6.1-2 diff --git a/anda/desktops/waylands/hyprgraphics/anda.hcl b/anda/desktops/hyprland/hyprgraphics/anda.hcl similarity index 100% rename from anda/desktops/waylands/hyprgraphics/anda.hcl rename to anda/desktops/hyprland/hyprgraphics/anda.hcl diff --git a/anda/desktops/waylands/hyprgraphics/hyprgraphics.nightly.spec b/anda/desktops/hyprland/hyprgraphics/hyprgraphics.nightly.spec similarity index 93% rename from anda/desktops/waylands/hyprgraphics/hyprgraphics.nightly.spec rename to anda/desktops/hyprland/hyprgraphics/hyprgraphics.nightly.spec index 2f0196b51b..0200ccc85d 100644 --- a/anda/desktops/waylands/hyprgraphics/hyprgraphics.nightly.spec +++ b/anda/desktops/hyprland/hyprgraphics/hyprgraphics.nightly.spec @@ -1,9 +1,9 @@ #? https://src.fedoraproject.org/rpms/hyprgraphics/blob/rawhide/f/hyprgraphics.spec %global realname hyprgraphics -%global ver 0.2.0 -%global commit 50fb9f069219f338a11cf0bcccb9e58357d67757 -%global commit_date 20251015 +%global ver 0.3.0 +%global commit ffc999d980c7b3bca85d3ebd0a9fbadf984a8162 +%global commit_date 20251107 %global shortcommit %{sub %commit 1 7} %bcond libjxl 1 diff --git a/anda/desktops/hyprland/hyprgraphics/update.rhai b/anda/desktops/hyprland/hyprgraphics/update.rhai new file mode 100644 index 0000000000..2ddb0b8570 --- /dev/null +++ b/anda/desktops/hyprland/hyprgraphics/update.rhai @@ -0,0 +1,16 @@ +import "andax/bump_extras.rhai" as bump; +import "andax/spec.rhai" as spec; + +rpm.global("commit", gh_commit("hyprwm/hyprgraphics")); +if rpm.changed() { + rpm.global("ver", gh_rawfile("hyprwm/hyprgraphics", "main", "VERSION")); + rpm.global("commit_date", date()); +} + +// FIXME: should be updbranch but we also need nightly and we are using gh_commit()? +let dir = sub(`/[^/]+$`, "", __script_path); +open_file(`${dir}/VER_hyprlang.txt`, "w").write(bump::madoguchi("hyprlang.nightly", labels.branch)); +if sh("[[ `git status " + dir + " --porcelain` ]] && exit 1 || exit 0", #{}).ctx.rc == 1 { + let rel = spec::get_release(rpm).parse_int(); + rpm.release(rel + 1); +} diff --git a/anda/desktops/waylands/hypridle/anda.hcl b/anda/desktops/hyprland/hypridle/anda.hcl similarity index 100% rename from anda/desktops/waylands/hypridle/anda.hcl rename to anda/desktops/hyprland/hypridle/anda.hcl diff --git a/anda/desktops/waylands/hypridle/ci_setup.rhai b/anda/desktops/hyprland/hypridle/ci_setup.rhai similarity index 100% rename from anda/desktops/waylands/hypridle/ci_setup.rhai rename to anda/desktops/hyprland/hypridle/ci_setup.rhai diff --git a/anda/desktops/waylands/hypridle/hypridle.spec b/anda/desktops/hyprland/hypridle/hypridle.spec similarity index 100% rename from anda/desktops/waylands/hypridle/hypridle.spec rename to anda/desktops/hyprland/hypridle/hypridle.spec diff --git a/anda/desktops/waylands/hypridle/update.rhai b/anda/desktops/hyprland/hypridle/update.rhai similarity index 100% rename from anda/desktops/waylands/hypridle/update.rhai rename to anda/desktops/hyprland/hypridle/update.rhai diff --git a/anda/desktops/waylands/hyprland-protocols/anda.hcl b/anda/desktops/hyprland/hyprland-protocols/anda.hcl similarity index 100% rename from anda/desktops/waylands/hyprland-protocols/anda.hcl rename to anda/desktops/hyprland/hyprland-protocols/anda.hcl diff --git a/anda/desktops/waylands/hyprland-protocols/hyprland-protocols.nightly.spec b/anda/desktops/hyprland/hyprland-protocols/hyprland-protocols.nightly.spec similarity index 92% rename from anda/desktops/waylands/hyprland-protocols/hyprland-protocols.nightly.spec rename to anda/desktops/hyprland/hyprland-protocols/hyprland-protocols.nightly.spec index 3828c20d69..539cf1735c 100644 --- a/anda/desktops/waylands/hyprland-protocols/hyprland-protocols.nightly.spec +++ b/anda/desktops/hyprland/hyprland-protocols/hyprland-protocols.nightly.spec @@ -2,8 +2,8 @@ %global realname hyprland-protocols %global ver 0.7.0 -%global commit bd153e76f751f150a09328dbdeb5e4fab9d23622 -%global commit_date 20251005 +%global commit 1cb6db5fd6bb8aee419f4457402fa18293ace917 +%global commit_date 20260303 %global shortcommit %{sub %commit 1 7} Name: %realname.nightly diff --git a/anda/desktops/waylands/hyprland-protocols/update.rhai b/anda/desktops/hyprland/hyprland-protocols/update.rhai similarity index 100% rename from anda/desktops/waylands/hyprland-protocols/update.rhai rename to anda/desktops/hyprland/hyprland-protocols/update.rhai diff --git a/anda/desktops/hyprland/hyprlang/VER_hyprutil.txt b/anda/desktops/hyprland/hyprlang/VER_hyprutil.txt new file mode 100644 index 0000000000..7d0807b501 --- /dev/null +++ b/anda/desktops/hyprland/hyprlang/VER_hyprutil.txt @@ -0,0 +1 @@ +0.10.0^20251005git.3df7bde \ No newline at end of file diff --git a/anda/desktops/waylands/hyprlang/anda.hcl b/anda/desktops/hyprland/hyprlang/anda.hcl similarity index 100% rename from anda/desktops/waylands/hyprlang/anda.hcl rename to anda/desktops/hyprland/hyprlang/anda.hcl diff --git a/anda/desktops/waylands/hyprlang/hyprlang.nightly.spec b/anda/desktops/hyprland/hyprlang/hyprlang.nightly.spec similarity index 100% rename from anda/desktops/waylands/hyprlang/hyprlang.nightly.spec rename to anda/desktops/hyprland/hyprlang/hyprlang.nightly.spec diff --git a/anda/desktops/hyprland/hyprlang/update.rhai b/anda/desktops/hyprland/hyprlang/update.rhai new file mode 100644 index 0000000000..a08e4157bb --- /dev/null +++ b/anda/desktops/hyprland/hyprlang/update.rhai @@ -0,0 +1,16 @@ +import "andax/bump_extras.rhai" as bump; +import "andax/spec.rhai" as spec; + + // FIXME: should be updbranch but we also need nightly and we are using gh_commit()? + let dir = sub(`/[^/]+$`, "", __script_path); + open_file(`${dir}/VER_hyprutil.txt`, "w").write(bump::madoguchi("hyprutils.nightly", labels.branch)); + if sh("[[ `git status " + dir + " --porcelain` ]] && exit 1 || exit 0", #{}).ctx.rc == 1 { + let rel = spec::get_release(rpm).parse_int(); + rpm.release(rel + 1); + } + +rpm.global("commit", gh_commit("hyprwm/hyprlang")); +if rpm.changed() { + rpm.global("ver", gh_rawfile("hyprwm/hyprlang", "main", "VERSION")); + rpm.global("commit_date", date()); +} diff --git a/anda/desktops/waylands/hyprlock/anda.hcl b/anda/desktops/hyprland/hyprlock/anda.hcl similarity index 100% rename from anda/desktops/waylands/hyprlock/anda.hcl rename to anda/desktops/hyprland/hyprlock/anda.hcl diff --git a/anda/desktops/waylands/hyprlock/ci_setup.rhai b/anda/desktops/hyprland/hyprlock/ci_setup.rhai similarity index 100% rename from anda/desktops/waylands/hyprlock/ci_setup.rhai rename to anda/desktops/hyprland/hyprlock/ci_setup.rhai diff --git a/anda/desktops/waylands/hyprlock/hyprlock.spec b/anda/desktops/hyprland/hyprlock/hyprlock.spec similarity index 100% rename from anda/desktops/waylands/hyprlock/hyprlock.spec rename to anda/desktops/hyprland/hyprlock/hyprlock.spec diff --git a/anda/desktops/hyprland/hyprlock/update.rhai b/anda/desktops/hyprland/hyprlock/update.rhai new file mode 100644 index 0000000000..8fac9b39fe --- /dev/null +++ b/anda/desktops/hyprland/hyprlock/update.rhai @@ -0,0 +1,14 @@ +import "andax/bump_extras.rhai" as bump; +import "andax/spec.rhai" as spec; + +let v = gh_rawfile("hyprwm/hyprlock", "main", "VERSION"); +v.trim(); +rpm.version(v); + +// FIXME: should be updbranch but we also need nightly and we are using gh_commit()? +let dir = sub(`/[^/]+$`, "", __script_path); +open_file(`${dir}/VER_hyprgraphics.txt`, "w").write(bump::madoguchi("hyprgraphics.nightly", labels.branch)); +if sh("[[ `git status " + dir + " --porcelain` ]] && exit 1 || exit 0", #{}).ctx.rc == 1 { + let rel = spec::get_release(rpm).parse_int(); + rpm.release(rel + 1); +} diff --git a/anda/desktops/waylands/hyprutils/anda.hcl b/anda/desktops/hyprland/hyprutils/anda.hcl similarity index 100% rename from anda/desktops/waylands/hyprutils/anda.hcl rename to anda/desktops/hyprland/hyprutils/anda.hcl diff --git a/anda/desktops/waylands/hyprutils/hyprutils.nightly.spec b/anda/desktops/hyprland/hyprutils/hyprutils.nightly.spec similarity index 89% rename from anda/desktops/waylands/hyprutils/hyprutils.nightly.spec rename to anda/desktops/hyprland/hyprutils/hyprutils.nightly.spec index c966923b58..a4476a8093 100644 --- a/anda/desktops/waylands/hyprutils/hyprutils.nightly.spec +++ b/anda/desktops/hyprland/hyprutils/hyprutils.nightly.spec @@ -1,10 +1,10 @@ #? https://src.fedoraproject.org/rpms/hyprutils/blob/rawhide/f/hyprutils.spec %global realname hyprutils -%global ver 0.10.0 +%global ver 0.13.0 -%global commit 3df7bde01efb3a3e8e678d1155f2aa3f19e177ef -%global commit_date 20251005 +%global commit ec5c0c709706bad5b82f667fd8758eae442577ce +%global commit_date 20260430 %global shortcommit %{sub %commit 1 7} Name: %realname.nightly @@ -22,6 +22,7 @@ ExcludeArch: %{ix86} BuildRequires: cmake BuildRequires: gcc-c++ BuildRequires: pkgconfig(pixman-1) +BuildRequires: cmake(GTest) Provides: %realname = %evr Conflicts: %realname diff --git a/anda/desktops/waylands/hyprutils/update.rhai b/anda/desktops/hyprland/hyprutils/update.rhai similarity index 100% rename from anda/desktops/waylands/hyprutils/update.rhai rename to anda/desktops/hyprland/hyprutils/update.rhai diff --git a/anda/desktops/waylands/hyprwayland-scanner/anda.hcl b/anda/desktops/hyprland/hyprwayland-scanner/anda.hcl similarity index 100% rename from anda/desktops/waylands/hyprwayland-scanner/anda.hcl rename to anda/desktops/hyprland/hyprwayland-scanner/anda.hcl diff --git a/anda/desktops/waylands/hyprwayland-scanner/hyprwayland-scanner.nightly.spec b/anda/desktops/hyprland/hyprwayland-scanner/hyprwayland-scanner.nightly.spec similarity index 92% rename from anda/desktops/waylands/hyprwayland-scanner/hyprwayland-scanner.nightly.spec rename to anda/desktops/hyprland/hyprwayland-scanner/hyprwayland-scanner.nightly.spec index 4374f029c3..03001fbc1f 100644 --- a/anda/desktops/waylands/hyprwayland-scanner/hyprwayland-scanner.nightly.spec +++ b/anda/desktops/hyprland/hyprwayland-scanner/hyprwayland-scanner.nightly.spec @@ -1,10 +1,10 @@ #? https://src.fedoraproject.org/rpms/hyprwayland-scanner/blob/rawhide/f/hyprwayland-scanner.spec %global realname hyprwayland-scanner -%global ver 0.4.5 -%global commit b3b0f1f40ae09d4447c20608e5a4faf8bf3c492d +%global ver 0.4.6 +%global commit b8632713a6beaf28b56f2a7b0ab2fb7088dbb404 %global shortcommit %{sub %commit 1 7} -%global commit_date 20250815 +%global commit_date 20260426 Name: %realname.nightly Version: %ver^%{commit_date}git.%shortcommit diff --git a/anda/desktops/waylands/hyprwayland-scanner/update.rhai b/anda/desktops/hyprland/hyprwayland-scanner/update.rhai similarity index 100% rename from anda/desktops/waylands/hyprwayland-scanner/update.rhai rename to anda/desktops/hyprland/hyprwayland-scanner/update.rhai diff --git a/anda/desktops/kde/kf6-kio/0001-Give-the-kuriikwsfiltereng_private-a-VERSION-and-SOV.patch b/anda/desktops/kde/kf6-kio/0001-Give-the-kuriikwsfiltereng_private-a-VERSION-and-SOV.patch deleted file mode 100644 index 6f1529a5ba..0000000000 --- a/anda/desktops/kde/kf6-kio/0001-Give-the-kuriikwsfiltereng_private-a-VERSION-and-SOV.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 0cc287336b32e601e70b26d60d9335abde538a18 Mon Sep 17 00:00:00 2001 -From: Adam Williamson -Date: Mon, 16 Oct 2023 17:57:16 -0700 -Subject: [PATCH] Give the kuriikwsfiltereng_private a VERSION and SOVERSION - (#26) - -Signed-off-by: Adam Williamson ---- - src/urifilters/ikws/CMakeLists.txt | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/src/urifilters/ikws/CMakeLists.txt b/src/urifilters/ikws/CMakeLists.txt -index 7d42584c3..393588993 100644 ---- a/src/urifilters/ikws/CMakeLists.txt -+++ b/src/urifilters/ikws/CMakeLists.txt -@@ -1,6 +1,11 @@ - add_subdirectory(searchproviders) - - add_library(kuriikwsfiltereng_private kuriikwsfiltereng.cpp searchprovider.cpp searchproviderregistry.cpp) -+set_target_properties(kuriikwsfiltereng_private PROPERTIES -+ VERSION ${KIO_VERSION} -+ SOVERSION ${KIO_SOVERSION} -+ EXPORT_NAME kuriikwsfiltereng_private -+) - generate_export_header(kuriikwsfiltereng_private) # We need this to be a shared lib, because otherwise we have duplicate Q_GLOBAL_STATICs - target_link_libraries(kuriikwsfiltereng_private PUBLIC KF6::KIOGui) - install(TARGETS kuriikwsfiltereng_private ${KF_INSTALL_TARGETS_DEFAULT_ARGS}) --- -2.41.0 - diff --git a/anda/desktops/kde/kf6-kio/1556.patch b/anda/desktops/kde/kf6-kio/1556.patch deleted file mode 100644 index 60270100ab..0000000000 --- a/anda/desktops/kde/kf6-kio/1556.patch +++ /dev/null @@ -1,290 +0,0 @@ -From 7b1154d235f752b9fd1797f87861f11ef89d5d7a Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Jan=20Dr=C3=B6gehoff?= -Date: Thu, 15 Feb 2024 14:38:21 +0100 -Subject: [PATCH 1/7] Improve discrete GPU detection using switcheroo-control - ---- - src/gui/gpudetection.cpp | 34 ++++++++++++++++++++++++++++++++++ - 1 file changed, 34 insertions(+) - -diff --git a/src/gui/gpudetection.cpp b/src/gui/gpudetection.cpp -index ef246d3936..695bf27a1e 100644 ---- a/src/gui/gpudetection.cpp -+++ b/src/gui/gpudetection.cpp -@@ -62,6 +62,40 @@ static bool checkGpuWithSwitcheroo() - QList gpus; - arg >> gpus; - -+ if (gpus.length() < 2) { -+ // Skip checking for Default or Discrete GPUs when 1 or no GPU is available -+ return false; -+ } -+ -+ // Check if the Default GPU is Discrete -+ for (const auto &gpu : gpus) { -+ bool defaultGpu = qvariant_cast(gpu[QStringLiteral("Default")]); -+ if (defaultGpu) { -+ bool discreteGpu = qvariant_cast(gpu.value(QStringLiteral("Discrete"), false)); -+ if (discreteGpu) { -+ // If the default GPU is Discret there is no need to apply the env vars -+ s_gpuCheck = GpuCheck::Present; -+ return true; -+ } -+ break; -+ } -+ } -+ -+ // Find the first Discrete GPU -+ for (const auto &gpu : gpus) { -+ bool discreteGpu = qvariant_cast(gpu.value(QStringLiteral("Discrete"), false)); -+ if (!discreteGpu) { -+ s_gpuCheck = GpuCheck::Present; -+ QStringList envList = qvariant_cast(gpu[QStringLiteral("Environment")]); -+ for (int i = 0; i + 1 < envList.size(); i += 2) { -+ s_gpuEnv.insert(envList[i], envList[i + 1]); -+ } -+ return true; -+ } -+ } -+ -+ // fallback to old behavior -+ // find the first non-Default GPU - for (const auto &gpu : gpus) { - bool defaultGpu = qvariant_cast(gpu[QStringLiteral("Default")]); - if (!defaultGpu) { --- -GitLab - - -From 29c056a6a71b0de226369c03d02f47ab56a7877a Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Jan=20Dr=C3=B6gehoff?= -Date: Wed, 21 Feb 2024 15:57:28 +0100 -Subject: [PATCH 2/7] make gpus length comparison easier to reade - ---- - src/gui/gpudetection.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/gui/gpudetection.cpp b/src/gui/gpudetection.cpp -index 695bf27a1e..dfe6a9982b 100644 ---- a/src/gui/gpudetection.cpp -+++ b/src/gui/gpudetection.cpp -@@ -62,7 +62,7 @@ static bool checkGpuWithSwitcheroo() - QList gpus; - arg >> gpus; - -- if (gpus.length() < 2) { -+ if (gpus.length() <= 1) { - // Skip checking for Default or Discrete GPUs when 1 or no GPU is available - return false; - } --- -GitLab - - -From afc22129301ac2e33673ce9415b1e0d329a57c59 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Jan=20Dr=C3=B6gehoff?= -Date: Wed, 21 Feb 2024 16:27:05 +0100 -Subject: [PATCH 3/7] lookup needed GPU entries in a single loop - ---- - src/gui/gpudetection.cpp | 56 +++++++++++++++++----------------------- - 1 file changed, 23 insertions(+), 33 deletions(-) - -diff --git a/src/gui/gpudetection.cpp b/src/gui/gpudetection.cpp -index dfe6a9982b..57436e4789 100644 ---- a/src/gui/gpudetection.cpp -+++ b/src/gui/gpudetection.cpp -@@ -67,45 +67,35 @@ static bool checkGpuWithSwitcheroo() - return false; - } - -- // Check if the Default GPU is Discrete -- for (const auto &gpu : gpus) { -- bool defaultGpu = qvariant_cast(gpu[QStringLiteral("Default")]); -- if (defaultGpu) { -- bool discreteGpu = qvariant_cast(gpu.value(QStringLiteral("Discrete"), false)); -- if (discreteGpu) { -- // If the default GPU is Discret there is no need to apply the env vars -- s_gpuCheck = GpuCheck::Present; -- return true; -- } -- break; -+ QVariantMap defaultGpu; -+ QVariantMap firstDiscreteGpu; -+ QVariantMap firstNonDefaultGpu; -+ -+ for (const auto &gpu : std::as_const(gpus)) { -+ if (defaultGpu.isEmpty() && qvariant_cast(gpu[QStringLiteral("Default")])) { -+ defaultGpu = gpu; -+ } else if (firstNonDefaultGpu.isEmpty()) { -+ firstNonDefaultGpu = gpu; -+ } -+ if (firstDiscreteGpu.isEmpty() && qvariant_cast(gpu[QStringLiteral("Discrete")])) { -+ firstDiscreteGpu = gpu; - } - } - -- // Find the first Discrete GPU -- for (const auto &gpu : gpus) { -- bool discreteGpu = qvariant_cast(gpu.value(QStringLiteral("Discrete"), false)); -- if (!discreteGpu) { -- s_gpuCheck = GpuCheck::Present; -- QStringList envList = qvariant_cast(gpu[QStringLiteral("Environment")]); -- for (int i = 0; i + 1 < envList.size(); i += 2) { -- s_gpuEnv.insert(envList[i], envList[i + 1]); -- } -- return true; -- } -+ if (!defaultGpu.isEmpty() && defaultGpu[QStringLiteral("Discrete")].toBool()) { -+ // If the default GPU is discrete we don't need to check for another device or apply special env vars -+ s_gpuCheck = GpuCheck::Present; -+ return true; - } - -- // fallback to old behavior -- // find the first non-Default GPU -- for (const auto &gpu : gpus) { -- bool defaultGpu = qvariant_cast(gpu[QStringLiteral("Default")]); -- if (!defaultGpu) { -- s_gpuCheck = GpuCheck::Present; -- QStringList envList = qvariant_cast(gpu[QStringLiteral("Environment")]); -- for (int i = 0; i + 1 < envList.size(); i += 2) { -- s_gpuEnv.insert(envList[i], envList[i + 1]); -- } -- return true; -+ // Otherwise prefer the discrete GPU over any other random non-default GPU (legacy behavior) -+ for (const auto &gpu : {firstDiscreteGpu, firstNonDefaultGpu}) { -+ s_gpuCheck = GpuCheck::Present; -+ auto envList = qvariant_cast(gpu[QStringLiteral("Environment")]); -+ for (int i = 0; i + 1 < envList.size(); i += 2) { -+ s_gpuEnv.insert(envList[i], envList[i + 1]); - } -+ return true; - } - #endif - --- -GitLab - - -From d05cabb8e3e4aa60c8453edc0f6231d9bcb6d64e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Jan=20Dr=C3=B6gehoff?= -Date: Wed, 21 Feb 2024 16:27:25 +0100 -Subject: [PATCH 4/7] correct absent gpu comment - ---- - src/gui/gpudetection.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/gui/gpudetection.cpp b/src/gui/gpudetection.cpp -index 57436e4789..bbef5ba8f2 100644 ---- a/src/gui/gpudetection.cpp -+++ b/src/gui/gpudetection.cpp -@@ -99,7 +99,7 @@ static bool checkGpuWithSwitcheroo() - } - #endif - -- // No non-default GPU found -+ // No discrete or non-default GPU found - s_gpuCheck = GpuCheck::Absent; - return true; - } --- -GitLab - - -From 7f9f76ce9bb472b54bf7297b8b5c078eb0c194c9 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Jan=20Dr=C3=B6gehoff?= -Date: Thu, 22 Feb 2024 08:33:19 +0100 -Subject: [PATCH 5/7] check exact GPU count and fallback to solid when none are - found - ---- - src/gui/gpudetection.cpp | 10 ++++++++-- - 1 file changed, 8 insertions(+), 2 deletions(-) - -diff --git a/src/gui/gpudetection.cpp b/src/gui/gpudetection.cpp -index bbef5ba8f2..d3bf895ea5 100644 ---- a/src/gui/gpudetection.cpp -+++ b/src/gui/gpudetection.cpp -@@ -62,9 +62,15 @@ static bool checkGpuWithSwitcheroo() - QList gpus; - arg >> gpus; - -- if (gpus.length() <= 1) { -- // Skip checking for Default or Discrete GPUs when 1 or no GPU is available -+ auto gpu_count = gpus.length(); -+ -+ if (gpu_count == 0) { -+ // No GPUs? Something might have gone wrong on the other end - return false; -+ } else if (gpu_count == 1) { -+ // There is only one GPU, no need to check for others -+ s_gpuCheck = GpuCheck::Absent; -+ return true; - } - - QVariantMap defaultGpu; --- -GitLab - - -From 87ca7b125be15963c45867705f4b75e40b379437 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Jan=20Dr=C3=B6gehoff?= -Date: Wed, 4 Sep 2024 23:58:18 +0000 -Subject: [PATCH 6/7] Simplify GPU count check - ---- - src/gui/gpudetection.cpp | 6 ++---- - 1 file changed, 2 insertions(+), 4 deletions(-) - -diff --git a/src/gui/gpudetection.cpp b/src/gui/gpudetection.cpp -index d3bf895ea5..5e8450f2f9 100644 ---- a/src/gui/gpudetection.cpp -+++ b/src/gui/gpudetection.cpp -@@ -62,12 +62,10 @@ static bool checkGpuWithSwitcheroo() - QList gpus; - arg >> gpus; - -- auto gpu_count = gpus.length(); -- -- if (gpu_count == 0) { -+ if (gpus.isEmpty()) { - // No GPUs? Something might have gone wrong on the other end - return false; -- } else if (gpu_count == 1) { -+ } else if (gpus.size() == 1) { - // There is only one GPU, no need to check for others - s_gpuCheck = GpuCheck::Absent; - return true; --- -GitLab - - -From 1920a2ea3b67331b419fc19a377b57a36466fb9f Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Jan=20Dr=C3=B6gehoff?= -Date: Thu, 5 Sep 2024 02:01:41 +0200 -Subject: [PATCH 7/7] Fix non default GPU fallback - ---- - src/gui/gpudetection.cpp | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/src/gui/gpudetection.cpp b/src/gui/gpudetection.cpp -index 5e8450f2f9..2f5547ab8f 100644 ---- a/src/gui/gpudetection.cpp -+++ b/src/gui/gpudetection.cpp -@@ -94,6 +94,9 @@ static bool checkGpuWithSwitcheroo() - - // Otherwise prefer the discrete GPU over any other random non-default GPU (legacy behavior) - for (const auto &gpu : {firstDiscreteGpu, firstNonDefaultGpu}) { -+ if (gpu.isEmpty()) { -+ continue; -+ } - s_gpuCheck = GpuCheck::Present; - auto envList = qvariant_cast(gpu[QStringLiteral("Environment")]); - for (int i = 0; i + 1 < envList.size(); i += 2) { --- -GitLab - diff --git a/anda/desktops/kde/kf6-kio/6e7775d315f389df0a440ed62b842ce83dc9a27e.patch b/anda/desktops/kde/kf6-kio/6e7775d315f389df0a440ed62b842ce83dc9a27e.patch deleted file mode 100644 index 2c9b594b33..0000000000 --- a/anda/desktops/kde/kf6-kio/6e7775d315f389df0a440ed62b842ce83dc9a27e.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 6e7775d315f389df0a440ed62b842ce83dc9a27e Mon Sep 17 00:00:00 2001 -From: Nicolas Fella -Date: Fri, 1 Mar 2024 22:16:07 +0100 -Subject: [PATCH] [kterminallauncherjob] Inherit default process environment - from parent - -Before Qt 6.3, an empty (default constructed) QProcessEnvironment caused -QProcess to incorrectly inherit the environment variables from the parent -process. This was fixed in qtbase 5fc9c02a695. - -CommandLauncherJob was adjusted for this in 916984940f64e07db9b4d152be9f2a87dda0cfb4, -however here we are overriding its default env with our own default-constructed one - -BUG: 482107 ---- - src/gui/kterminallauncherjob.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/gui/kterminallauncherjob.cpp b/src/gui/kterminallauncherjob.cpp -index c4e83fb11b..edd99327bd 100644 ---- a/src/gui/kterminallauncherjob.cpp -+++ b/src/gui/kterminallauncherjob.cpp -@@ -22,7 +22,7 @@ public: - QString m_fullCommand; // "xterm -e ls" - QString m_desktopName; - QByteArray m_startupId; -- QProcessEnvironment m_environment; -+ QProcessEnvironment m_environment{QProcessEnvironment::InheritFromParent}; - }; - - KTerminalLauncherJob::KTerminalLauncherJob(const QString &command, QObject *parent) --- -GitLab - diff --git a/anda/desktops/kde/kf6-kio/anda.hcl b/anda/desktops/kde/kf6-kio/anda.hcl deleted file mode 100644 index c848a83927..0000000000 --- a/anda/desktops/kde/kf6-kio/anda.hcl +++ /dev/null @@ -1,10 +0,0 @@ -project pkg { - rpm { - spec = "kf6-kio.spec" - } - labels { - subrepo = "extras" - updbranch = 1 - mock = 1 - } -} diff --git a/anda/desktops/kde/kf6-kio/kf6-kio.spec b/anda/desktops/kde/kf6-kio/kf6-kio.spec deleted file mode 100644 index 9f50a4e5a9..0000000000 --- a/anda/desktops/kde/kf6-kio/kf6-kio.spec +++ /dev/null @@ -1,369 +0,0 @@ -%global framework kio - -%global stable_kf6 stable -%global majmin_ver_kf6 6.18 -%global ecm_ver 6.19.0 -%global ecm_rel 1 - -Name: kf6-%{framework} -Version: %{majmin_ver_kf6}.0 -Release: 1%{?dist}.switcheroo -Summary: KDE Frameworks 6 Tier 3 solution for filesystem abstraction - -Obsoletes: kf6-%{framework}.switcheroo < 6.14.0-4 - -License: BSD-2-Clause AND BSD-3-Clause AND CC0-1.0 AND GPL-2.0-only AND GPL-2.0-or-later AND GPL-3.0-only AND LGPL-2.0-only AND LGPL-2.0-or-later AND LGPL-2.1-only AND LGPL-2.1-or-later AND LGPL-3.0-only AND (GPL-2.0-only OR GPL-3.0-only) AND (LGPL-2.1-only OR LGPL-3.0-only) AND MIT -URL: https://invent.kde.org/frameworks/%{framework} - -Source0: https://download.kde.org/%{stable_kf6}/frameworks/%{majmin_ver_kf6}/%{framework}-%{version}.tar.xz -Source1: https://download.kde.org/%{stable_kf6}/frameworks/%{majmin_ver_kf6}/%{framework}-%{version}.tar.xz.sig - -# https://invent.kde.org/frameworks/kio/-/issues/26 -# I'm not sending this upstream because I'm not sure it's really -# exactly what upstream will want, but it solves the practical -# issue for us for now -Patch0: 0001-Give-the-kuriikwsfiltereng_private-a-VERSION-and-SOV.patch - -%if 0%{?flatpak} -# Disable the help: and ghelp: protocol for Flatpak builds, to avoid depending -# on the docbook stack. -Patch101: kio-no-help-protocol.patch -%endif - -Provides: kf6-%{framework} -BuildRequires: extra-cmake-modules -BuildRequires: gcc-c++ -BuildRequires: kf6-rpm-macros -BuildRequires: cmake -BuildRequires: cmake(KF6Archive) -BuildRequires: cmake(KF6Crash) -BuildRequires: cmake(KF6Solid) -BuildRequires: switcheroo-control -BuildRequires: cmake(KF6ColorScheme) -BuildRequires: cmake(KF6Config) -BuildRequires: cmake(KF6CoreAddons) -BuildRequires: cmake(KF6DBusAddons) -BuildRequires: cmake(KF6DocTools) -BuildRequires: cmake(KF6GuiAddons) -BuildRequires: cmake(KF6I18n) -BuildRequires: cmake(KF6Service) -BuildRequires: qt6-qtbase-private-devel -BuildRequires: cmake(KF6Bookmarks) -BuildRequires: cmake(KF6Completion) -BuildRequires: cmake(KF6ConfigWidgets) -BuildRequires: cmake(KF6IconThemes) -BuildRequires: cmake(KF6ItemViews) -BuildRequires: cmake(KF6JobWidgets) -BuildRequires: cmake(KF6WindowSystem) -BuildRequires: cmake(KF6Notifications) -BuildRequires: cmake(KF6Wallet) -BuildRequires: cmake(KF6WidgetsAddons) -BuildRequires: cmake(KF6XmlGui) - -BuildRequires: libacl-devel -%if !0%{?flatpak} -BuildRequires: libxml2-devel -BuildRequires: libxslt-devel -%endif -BuildRequires: pkgconfig(blkid) -BuildRequires: pkgconfig(mount) -BuildRequires: pkgconfig(xkbcommon) -BuildRequires: zlib-devel - -BuildRequires: qt6-qtbase-devel -BuildRequires: cmake(Qt6UiPlugin) -BuildRequires: cmake(Qt6Qml) - -BuildRequires: cmake(KF6KDED) -BuildRequires: cmake(Qt6Core5Compat) - -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-widgets%{?_isa} = %{version}-%{release} -Requires: %{name}-file-widgets%{?_isa} = %{version}-%{release} -Requires: %{name}-gui%{?_isa} = %{version}-%{release} - -Requires: kf6-kded - -%description -KDE Frameworks 6 Tier 3 solution for filesystem abstraction - -%package devel -Summary: Development files for %{name} -Requires: %{name} = %{version}-%{release} -Requires: kf6-kbookmarks-devel -Requires: cmake(KF6Completion) -Requires: cmake(KF6Config) -Requires: cmake(KF6CoreAddons) -Requires: cmake(KF6ItemViews) -Requires: cmake(KF6JobWidgets) -Requires: cmake(KF6Service) -Requires: cmake(KF6Solid) -Requires: cmake(KF6XmlGui) -Requires: cmake(KF6WindowSystem) -Requires: qt6-qtbase-devel -Obsoletes: kf6-kio.switcheroo-devel < 6.14.0-4 -%description devel -The %{name}-devel package contains libraries and header files for -developing applications that use %{name}. - -%package doc -Summary: Documentation files for %{name} -Requires: %{name}-core = %{version}-%{release} -BuildArch: noarch -Obsoletes: kf6-kio.switcheroo-doc < 6.14.0-4 -%description doc -Documentation for %{name}. - -%package core -Summary: Core components of the KIO Framework -%{?kf6_kinit_requires} -Requires: %{name}-core-libs%{?_isa} = %{version}-%{release} -Requires: %{name}-doc = %{version}-%{release} -Requires: kf6-filesystem -Recommends: switcheroo-control -Obsoletes: kf6-kio.switcheroo-core < 6.14.0-4 -%description core -KIOCore library provides core non-GUI components for working with KIO. - -%package core-libs -Summary: Runtime libraries for KIO Core -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Obsoletes: kf6-kio.switcheroo-core-libs < 6.14.0-4 -%description core-libs -%{summary}. - -%package widgets -Summary: Widgets for KIO Framework -## org.kde.klauncher6 service referenced from : widgets/krun.cpp -## included here for completeness, even those -core already has a dependency. -%{?kf6_kinit_requires} -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Obsoletes: kf6-kio.switcheroo-widgets < 6.14.0-4 -%description widgets -KIOWidgets contains classes that provide generic job control, progress -reporting, etc. - -%package widgets-libs -Summary: Runtime libraries for KIO Widgets library -Requires: %{name}-widgets%{?_isa} = %{version}-%{release} -Obsoletes: kf6-kio.switcheroo-widgets-libs < 6.14.0-4 -%description widgets-libs -%{summary}. - -%package file-widgets -Summary: Widgets for file-handling for KIO Framework -Requires: %{name}-widgets%{?_isa} = %{version}-%{release} -Obsoletes: kf6-kio.switcheroo-file-widgets < 6.14.0-4 -%description file-widgets -The KIOFileWidgets library provides the file selection dialog and -its components. - -%package gui -Summary: Gui components for the KIO Framework -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Provides: kf6-kio-gui = %version-%release -Obsoletes: kf6-kio.switcheroo-gui < 6.14.0-4 -%description gui -%{summary}. - -%package qch-doc -Summary: Developer Documentation files for %{name} -BuildArch: noarch -Obsoletes: kf6-kio.switcheroo-qch-doc < 6.14.0-4 -%description qch-doc -Developer Documentation files for %{name} for use with KDevelop or QtCreator. - -%package html -Summary: Developer Documentation files for %{name} -BuildArch: noarch -%description html -Developer Documentation files for %{name} in HTML format - - -%prep -%autosetup -n %{framework}-%{version} -p1 - - -%build -%cmake_kf6 -%cmake_build_kf6 - - -%install -%cmake_install_kf6 -%find_lang kf6-kio --all-name --with-man --with-html - -%files -%license LICENSES/*.txt -%doc README.md - -%files core -%{_kf6_libexecdir}/kioexec -%{_kf6_libexecdir}/kiod6 -%{_kf6_libexecdir}/kioworker -%{_kf6_bindir}/ktelnetservice6 -%{_kf6_bindir}/ktrash6 -%{_kf6_plugindir}/kio/ -%{_kf6_plugindir}/kded/ -%{_kf6_plugindir}/kiod/ -%{_kf6_plugindir}/kio_dnd/ -%{_kf6_datadir}/kf6/searchproviders/*.desktop -%{_kf6_datadir}/applications/*.desktop -%{_datadir}/dbus-1/services/org.kde.*.service -%{_kf6_datadir}/qlogging-categories6/*categories - -%files core-libs -%{_kf6_libdir}/libKF6KIOCore.so.* - -%files doc -f kf6-kio.lang - -%files gui -%{_kf6_libdir}/libKF6KIOGui.so.* - -%files widgets -%dir %{_kf6_plugindir}/urifilters/ -%{_kf6_plugindir}/urifilters/*.so -%{_kf6_libdir}/libkuriikwsfiltereng_private.so.* - -%files widgets-libs -%{_kf6_libdir}/libKF6KIOWidgets.so.* - -%files file-widgets -%{_kf6_libdir}/libKF6KIOFileWidgets.so.* - -%files devel -%{_kf6_includedir}/* -%{_kf6_libdir}/*.so -%{_kf6_libdir}/cmake/KF6KIO/ -%{_kf6_datadir}/kdevappwizard/templates/kioworker6.tar.bz2 -%{_kf6_qtplugindir}/designer/kio6widgets.so -%{_qt6_docdir}/*/*.tags -%{_qt6_docdir}/*/*.index - -%files qch-doc -%{_qt6_docdir}/*.qch - -%files html -%{_qt6_docdir}/*/* -%exclude %{_qt6_docdir}/*/*.tags -%exclude %{_qt6_docdir}/*/*.index - -%changelog -* Fri Feb 07 2025 Marc Deop i Argemí - 6.11.0-1 -- 6.11.0 - -* Fri Jan 17 2025 Fedora Release Engineering - 6.10.0-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Tue Jan 07 2025 Steve Cossette - 6.10.0-2 -- File Picker: Fix 'All supported files' for more than 3 - filters - -* Fri Jan 03 2025 Steve Cossette - 6.10.0-1 -- 6.10.0 - -* Sat Dec 14 2024 Steve Cossette - 6.9.0-1 -- 6.9.0 - -* Sat Nov 02 2024 Marc Deop i Argemí - 6.8.0-1 -- 6.8.0 - -* Mon Oct 14 2024 Jan Grulich - 6.7.0-2 -- Rebuild (qt6) - -* Fri Oct 04 2024 Steve Cossette - 6.7.0-1 -- 6.7.0 - -* Mon Sep 16 2024 Steve Cossette - 6.6.0-1 -- 6.6.0 - -* Sat Aug 10 2024 Steve Cossette - 6.5.0-1 -- 6.5.0 - -* Fri Jul 19 2024 Steve Cossette - 6.4.1-1 -- 6.4.1 - -* Thu Jul 18 2024 Steve Cossette - 6.4.0-3 -- Fix for a regression in Frameworks 6.4.0 - -* Thu Jul 18 2024 Fedora Release Engineering - 6.4.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Sat Jul 06 2024 Marc Deop i Argemí - 6.4.0-1 -- 6.4.0 - -* Sat Jun 01 2024 Marc Deop i Argemí - 6.3.0-1 -- 6.3.0 - -* Sat May 04 2024 Marc Deop i Argemí - 6.2.0-1 -- 6.2.0 - -* Wed Apr 10 2024 Marc Deop i Argemí - 6.1.0-1 -- 6.1.0 - -* Thu Apr 04 2024 Jan Grulich - 6.0.0-7 -- Re-enable docs - -* Thu Apr 04 2024 Jan Grulich - 6.0.0-6 -- Rebuild (qt6) - -* Fri Mar 15 2024 Marie Loise Nolden - 6.0.0-5 -- add 6e7775d315f389df0a440ed62b842ce83dc9a27e.patch -[kterminallauncherjob] Inherit default process environment from parent - -* Mon Mar 11 2024 Yaakov Selkowitz - 6.0.0-4 -- Soften switcheroo-control dependency - -* Sat Mar 09 2024 Marie Loise Nolden - 6.0.0-3 -- add missing BuildArch: noarch to -doc package - -* Sat Mar 2 2024 Marie Loise Nolden - 6.0.0-2 -- move qt designer plugin to -devel - -* Wed Feb 21 2024 Marc Deop i Argemí - 6.0.0-1 -- 6.0.0 - -* Fri Feb 16 2024 Jan Grulich - 5.249.0-2 -- Rebuild (qt6) - -* Wed Jan 31 2024 Marc Deop i Argemí - 5.249.0-1 -- 5.249.0 - -* Thu Jan 25 2024 Fedora Release Engineering - 5.248.0-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Sun Jan 21 2024 Fedora Release Engineering - 5.248.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Wed Jan 10 2024 Marc Deop i Argemí - 5.248.0-1 -- 5.248.0 - -* Tue Jan 09 2024 Marie Loise Nolden - 5.247.0-2 -- add doc package for KF6 API - -* Wed Dec 20 2023 Marc Deop i Argemí - 5.247.0-1 -- 5.247.0 - -* Sat Dec 02 2023 Justin Zobel - 5.246.0-1 -- Update to 5.246.0 - -* Wed Nov 29 2023 Jan Grulich - 5.245.0-3 -- Rebuild (qt6) - -* Mon Nov 20 2023 Alessandro Astone - 5.245.0-2 -- Add back kuriikwsfiltereng SOVERSION patch - -* Thu Nov 09 2023 Steve Cossette - 5.245.0-1 -- 5.245.0 - -* Tue Oct 17 2023 Jan Grulich - 5.240.0^20231010.060359.1c34fd4-4 -- Rebuild (qt6) - -* Mon Oct 16 2023 Adam Williamson - 5.240.0^20231010.060359.1c34fd4-3 -- Give kuriikwsfiltereng_private library a proper soname to fix deps - -* Mon Oct 09 2023 Steve Cossette - 5.240.0^20231010.060359.1c34fd4-2 -- Fixed a problem with the -doc subpackage building differently on different arches. - -* Mon Oct 09 2023 Steve Cossette - 5.240.0^20231010.060359.1c34fd4-1 -- Initial Release diff --git a/anda/desktops/kde/kf6-kio/update.rhai b/anda/desktops/kde/kf6-kio/update.rhai deleted file mode 100644 index 9e455c5ee6..0000000000 --- a/anda/desktops/kde/kf6-kio/update.rhai +++ /dev/null @@ -1,20 +0,0 @@ -import "andax/bump_extras.rhai" as bump; - -let pkg = "kf6-kio"; -let branch = bump::as_bodhi_ver(labels.branch); - -let url = `https://bodhi.fedoraproject.org/updates/?search=${pkg}&status=stable&releases=${branch}&rows_per_page=1&page=1`; - -for entry in get(url).json().updates[0].title.split(' ') { - let matches = find_all(`${pkg}-([\d.]+)-(\d+)\.[\w\d]+$`, entry); - if matches.len() == 0 { continue; } - if matches[0][1].ends_with(".0") { - rpm.global("majmin_ver_kf6", matches[0][1][0..matches[0][1].len()-2]); - rpm.f = sub(`Release: (.+?)\n`, "Release: " + matches[0][2] + "%{?dist}.switcheroo\n", rpm.f); - } - break; -} - -let vr = bump::bodhi_vr("extra-cmake-modules", branch); -rpm.global("ecm_ver", vr[1]); -rpm.global("ecm_rel", vr[2]); diff --git a/anda/desktops/kde/lightdm-kde-greeter/lightdm-kde-greeter.spec b/anda/desktops/kde/lightdm-kde-greeter/lightdm-kde-greeter.spec index adeb1f8bb2..c0ef17ec79 100644 --- a/anda/desktops/kde/lightdm-kde-greeter/lightdm-kde-greeter.spec +++ b/anda/desktops/kde/lightdm-kde-greeter/lightdm-kde-greeter.spec @@ -1,8 +1,8 @@ -%global commit 31d29530ad834c1bfb70ed43f9395a549fbace56 +%global commit b58d624095da102fef99b5825ad6dc78a5cec5a1 Name: lightdm-kde-greeter -Version: 6.0.3 -Release: 1%?dist +Version: 6.1.6 +Release: 1%{?dist} Summary: Login screen using the LightDM framework License: GPL-3.0-or-later URL: https://invent.kde.org/plasma/%name @@ -22,10 +22,11 @@ BuildRequires: cmake(KF6Auth) BuildRequires: cmake(KF6NetworkManagerQt) BuildRequires: cmake(Plasma) BuildRequires: pkgconfig(gtk+-2.0) +BuildRequires: pkgconfig(libei-1.0) BuildRequires: pkgconfig(liblightdm-gobject-1) BuildRequires: systemd-rpm-macros Requires: lightdm -Requires: plasma-workspace-qml +Requires: plasma-workspace Requires: polkit Provides: lightdm-greeter @@ -81,7 +82,8 @@ mkdir -p %buildroot%_sharedstatedir/%name %_datadir/dbus-1/system-services/org.kde.kcontrol.kcmlightdm.service %_datadir/dbus-1/system.d/org.kde.kcontrol.kcmlightdm.conf %_datadir/polkit-1/actions/org.kde.kcontrol.kcmlightdm.policy -%_datadir/xgreeters/lightdm-kde-greeter.desktop +%_datadir/lightdm/greeters/lightdm-kde-greeter.desktop +%_datadir/xgreeters/lightdm-kde-greeter-x11.desktop %_datadir/%name/ %_kf6_libexecdir/kauth/kcmlightdmhelper %_qt6_plugindir/plasma/kcms/systemsettings/kcm_lightdm.so diff --git a/anda/desktops/kde/plasma6-applet-appgrid/anda.hcl b/anda/desktops/kde/plasma6-applet-appgrid/anda.hcl new file mode 100644 index 0000000000..efc7b5f9be --- /dev/null +++ b/anda/desktops/kde/plasma6-applet-appgrid/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "plasma6-applet-appgrid.spec" + } +} diff --git a/anda/desktops/kde/plasma6-applet-appgrid/plasma6-applet-appgrid.spec b/anda/desktops/kde/plasma6-applet-appgrid/plasma6-applet-appgrid.spec new file mode 100644 index 0000000000..8ae73fa61a --- /dev/null +++ b/anda/desktops/kde/plasma6-applet-appgrid/plasma6-applet-appgrid.spec @@ -0,0 +1,71 @@ +Name: plasma6-applet-appgrid +Version: 1.7.8 +Release: 1%{?dist} +Summary: A modern application launcher for KDE Plasma, inspired by macOS and COSMIC +# Main code: GPL-2.0-or-later +# dev.xarbit.appgrid.metainfo.xml: CC0-1.0 +License: GPL-2.0-or-later AND CC0-1.0 +URL: https://github.com/xarbit/plasma6-applet-appgrid +Packager: hilltty <49129010+hilltty@users.noreply.github.com> +Source0: %{url}/archive/refs/tags/v%{version}.tar.gz#/%{name}-%{version}.tar.gz + +BuildRequires: cmake +BuildRequires: extra-cmake-modules +BuildRequires: gcc-c++ +BuildRequires: gettext +BuildRequires: kf6-rpm-macros +BuildRequires: cmake(Qt6Quick) +BuildRequires: cmake(Qt6Gui) +BuildRequires: cmake(Qt6DBus) +BuildRequires: cmake(KF6Service) +BuildRequires: cmake(KF6I18n) +BuildRequires: cmake(KF6CoreAddons) +BuildRequires: cmake(KF6KIO) +BuildRequires: cmake(KF6WindowSystem) +BuildRequires: cmake(KF6Package) +BuildRequires: cmake(KF6Runner) +BuildRequires: cmake(Plasma) +BuildRequires: cmake(PlasmaQuick) +BuildRequires: cmake(LayerShellQt) +BuildRequires: cmake(LibKWorkspace) + +Requires: plasma-workspace +Requires: kf6-kservice +Requires: kf6-ki18n +Requires: kf6-kcoreaddons +Requires: kf6-kio +Requires: kf6-kwindowsystem +Requires: layer-shell-qt + +%description +AppGrid is a modern application launcher for KDE Plasma 6, inspired by +macOS Launchpad, COSMIC, and Pantheon. + +%prep +%autosetup -n plasma6-applet-appgrid-%{version} + +%conf +%cmake + +%build +%cmake_build + +%install +%cmake_install +%find_lang dev.xarbit.appgrid --with-kde + +%files -f dev.xarbit.appgrid.lang +%license LICENSE +%doc README.md +%{_libdir}/qt6/plugins/plasma/applets/dev.xarbit.appgrid.so +%{_libdir}/qt6/plugins/plasma/applets/dev.xarbit.appgrid.panel.so +%{_datadir}/plasma/plasmoids/dev.xarbit.appgrid/ +%{_datadir}/plasma/plasmoids/dev.xarbit.appgrid.panel/ +%{_metainfodir}/dev.xarbit.appgrid.metainfo.xml + +%changelog +* Sat Apr 25 2026 hilltty <49129010+hilltty@users.noreply.github.com> - 1.7.8-1 +- Update to 1.7.8 + +* Thu Apr 24 2026 hilltty <49129010+hilltty@users.noreply.github.com> - 1.2.1-1 +- Initial package diff --git a/anda/desktops/kde/plasma6-applet-appgrid/update.rhai b/anda/desktops/kde/plasma6-applet-appgrid/update.rhai new file mode 100644 index 0000000000..acfe50ecd6 --- /dev/null +++ b/anda/desktops/kde/plasma6-applet-appgrid/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("xarbit/plasma6-applet-appgrid")); diff --git a/anda/desktops/lomiri-unity/frame/frame.spec b/anda/desktops/lomiri-unity/frame/frame.spec index 29d6e17c3a..ac7da8587c 100644 --- a/anda/desktops/lomiri-unity/frame/frame.spec +++ b/anda/desktops/lomiri-unity/frame/frame.spec @@ -1,9 +1,9 @@ Name: frame Version: 2.5.0 -Release: 2%?dist +Release: 3%?dist Summary: Touch Frame Library -License: GPL-3.0 AND LGPL-3.0 +License: GPL-3.0-or-later AND LGPL-3.0-or-later URL: https://launchpad.net/frame Source0: http://archive.ubuntu.com/ubuntu/pool/universe/f/frame/frame_%{version}daily13.06.05+16.10.20160809.orig.tar.gz Patch0: http://archive.ubuntu.com/ubuntu/pool/universe/f/frame/frame_%{version}daily13.06.05+16.10.20160809-0ubuntu3.diff.gz @@ -24,7 +24,7 @@ Frame handles the buildup and synchronization of a set of simultaneous touches. %package devel Summary: Development files for %{name} -Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}%{?_isa} = %{evr} %description devel The %{name}-devel package contains libraries and header files for @@ -33,7 +33,7 @@ developing applications that use %{name}. %prep %autosetup -c -p1 -%build +%conf NOCONFIGURE=1 \ ./autogen.sh @@ -44,6 +44,7 @@ export PYTHON --disable-silent-rules \ --disable-static +%build %make_build %install diff --git a/anda/desktops/lomiri-unity/geis/geis.spec b/anda/desktops/lomiri-unity/geis/geis.spec index d20afede10..94f5f302f8 100644 --- a/anda/desktops/lomiri-unity/geis/geis.spec +++ b/anda/desktops/lomiri-unity/geis/geis.spec @@ -1,9 +1,9 @@ Name: geis Version: 2.2.17 -Release: %autorelease +Release: 2%{?dist} Summary: An implementation of the GEIS interface -License: GPL-3.0 AND LGPL-3.0 +License: GPL-3.0-or-later AND LGPL-3.0-or-later URL: https://launchpad.net/geis Source0: http://archive.ubuntu.com/ubuntu/pool/universe/g/geis/geis_%{version}+16.04.20160126.orig.tar.gz Patch0: http://archive.ubuntu.com/ubuntu/pool/universe/g/geis/geis_%{version}+16.04.20160126-0ubuntu8.diff.gz @@ -22,14 +22,13 @@ BuildRequires: pkgconfig(x11) BuildRequires: pkgconfig(xext) BuildRequires: pkgconfig(xi) BuildRequires: pkgconfig(xorg-server) -Requires: python3 %description An implementation of the GEIS (Gesture Engine Interface and Support) interface. %package devel Summary: Development files for %{name} -Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}%{?_isa} = %{evr} %description devel The %{name}-devel package contains libraries and header files for @@ -38,7 +37,7 @@ developing applications that use %{name}. %prep %autosetup -n geis-%{version}+16.04.20160126 -p1 -%build +%conf NOCONFIGURE=1 \ ./autogen.sh @@ -49,6 +48,7 @@ export PYTHON --disable-silent-rules \ --disable-static +%build %make_build %install diff --git a/anda/desktops/lomiri-unity/libunity-misc/libunity-misc.spec b/anda/desktops/lomiri-unity/libunity-misc/libunity-misc.spec index 6398562321..9a20428285 100644 --- a/anda/desktops/lomiri-unity/libunity-misc/libunity-misc.spec +++ b/anda/desktops/lomiri-unity/libunity-misc/libunity-misc.spec @@ -32,14 +32,17 @@ developing applications that use %{name}. %prep %autosetup -n libunity-misc-%{version}+14.04.20140115 + +%conf find ./ -type f -exec sed -i 's/-Werror//' {} \; NOCONFIGURE=1 \ ./autogen.sh -%build %configure \ --disable-silent-rules \ --disable-static + +%build %make_build %install diff --git a/anda/desktops/lomiri-unity/lomiri-api/lomiri-api.spec b/anda/desktops/lomiri-unity/lomiri-api/lomiri-api.spec index 56938c53f5..f3e9435f2e 100644 --- a/anda/desktops/lomiri-unity/lomiri-api/lomiri-api.spec +++ b/anda/desktops/lomiri-unity/lomiri-api/lomiri-api.spec @@ -3,8 +3,8 @@ %forgemeta Name: lomiri-api -Version: 0.2.3 -Release: 1%?dist +Version: 0.3.2 +Release: 1%{?dist} Summary: API for Lomiri License: LGPL-3.0-or-later diff --git a/anda/desktops/lomiri-unity/lomiri-app-launch/lomiri-app-launch.spec b/anda/desktops/lomiri-unity/lomiri-app-launch/lomiri-app-launch.spec index 463aa251db..4cf59a5276 100644 --- a/anda/desktops/lomiri-unity/lomiri-app-launch/lomiri-app-launch.spec +++ b/anda/desktops/lomiri-unity/lomiri-app-launch/lomiri-app-launch.spec @@ -1,5 +1,5 @@ %global forgeurl https://gitlab.com/ubports/development/core/lomiri-app-launch -%global commit ca7670c0a74c42f03c0bb4196773519c270a0d75 +%global commit c40aaeecbc1a1634f961ed6ce2b5f5cb0e5196e3 %forgemeta Name: lomiri-app-launch diff --git a/anda/desktops/lomiri-unity/lomiri-download-manager/lomiri-download-manager.spec b/anda/desktops/lomiri-unity/lomiri-download-manager/lomiri-download-manager.spec index 99efc489e5..3c5b75197a 100644 --- a/anda/desktops/lomiri-unity/lomiri-download-manager/lomiri-download-manager.spec +++ b/anda/desktops/lomiri-unity/lomiri-download-manager/lomiri-download-manager.spec @@ -1,10 +1,10 @@ %global forgeurl https://gitlab.com/ubports/development/core/lomiri-download-manager -%global commit 4ceb67059014b9b7e0e15f860297fe60b95903a2 +%global commit 0939d480c72871b3270cc529e16902fd41bfdda5 %forgemeta Name: lomiri-download-manager -Version: 0.2.2 -Release: 1%?dist +Version: 0.3.1 +Release: 1%{?dist} Summary: Upload Download Manager for Lomiri License: LGPLv3 URL: https://gitlab.com/ubports/development/core/lomiri-download-manager diff --git a/anda/desktops/lomiri-unity/lomiri-indicator-network/lomiri-indicator-network.spec b/anda/desktops/lomiri-unity/lomiri-indicator-network/lomiri-indicator-network.spec index d677e36c08..a42751424f 100644 --- a/anda/desktops/lomiri-unity/lomiri-indicator-network/lomiri-indicator-network.spec +++ b/anda/desktops/lomiri-unity/lomiri-indicator-network/lomiri-indicator-network.spec @@ -1,9 +1,9 @@ %global forgeurl https://gitlab.com/ubports/development/core/lomiri-indicator-network -%global commit ee3fddcc45a8322938aacc0effd4383b29ebfaf6 +%global commit 5c72fe38523e70377205cfa31c929d20fa8b29ac %forgemeta Name: lomiri-indicator-network -Version: 1.1.2 +Version: 1.2.0 Release: 1%?dist Summary: The Network indicator for Ubuntu Touch License: GPL-3.0 AND LGPL-3.0 diff --git a/anda/desktops/lomiri-unity/lomiri-schemas/lomiri-schemas.spec b/anda/desktops/lomiri-unity/lomiri-schemas/lomiri-schemas.spec index 94b202768f..bc14a407ce 100644 --- a/anda/desktops/lomiri-unity/lomiri-schemas/lomiri-schemas.spec +++ b/anda/desktops/lomiri-unity/lomiri-schemas/lomiri-schemas.spec @@ -1,9 +1,9 @@ %global forgeurl https://gitlab.com/ubports/development/core/lomiri-schemas -%global commit c5d57303dfb0f9641c9c0ce572905b3eedb99bd9 +%global commit f24a7d2ebbf2847bf2a82235935af787ca05bf90 %forgemeta Name: lomiri-schemas -Version: 0.1.9 +Version: 0.1.10 Release: 1%?dist Summary: Configuration schemas for lomiri License: LGPL-2.0-or-later diff --git a/anda/desktops/lomiri-unity/lomiri-settings-components/lomiri-settings-components.spec b/anda/desktops/lomiri-unity/lomiri-settings-components/lomiri-settings-components.spec index 5eb61ebeb3..9aaa1fe248 100644 --- a/anda/desktops/lomiri-unity/lomiri-settings-components/lomiri-settings-components.spec +++ b/anda/desktops/lomiri-unity/lomiri-settings-components/lomiri-settings-components.spec @@ -1,10 +1,10 @@ %global forgeurl https://gitlab.com/ubports/development/core/lomiri-settings-components -%global commit 91a0a1f94b90d8e3371ab47b769bcd058ac57a74 +%global commit 7bfc33d16ca234af8c88477cfbb2a95f3b7d8c9a %forgemeta Name: lomiri-settings-components -Version: 1.1.3 -Release: 1%?dist +Version: 1.2.0 +Release: 1%{?dist} Summary: The system settings components for Lomiri License: GPLv3 AND LGPLv3 URL: https://gitlab.com/ubports/development/core/lomiri-settings-components diff --git a/anda/desktops/lomiri-unity/lomiri-system-settings/lomiri-system-settings.spec b/anda/desktops/lomiri-unity/lomiri-system-settings/lomiri-system-settings.spec index d082dd71da..5b8b0ded44 100644 --- a/anda/desktops/lomiri-unity/lomiri-system-settings/lomiri-system-settings.spec +++ b/anda/desktops/lomiri-unity/lomiri-system-settings/lomiri-system-settings.spec @@ -1,5 +1,5 @@ %global forgeurl https://gitlab.com/ubports/development/core/lomiri-system-settings -%global commit b7447b5350712d56d48ac2ccf757e54e67cc258f +%global commit cdf9dc925feb09c4e4e540849d3e9f6efa67599d %forgemeta Name: lomiri-system-settings diff --git a/anda/desktops/lomiri-unity/lomiri-ui-toolkit/lomiri-ui-toolkit.spec b/anda/desktops/lomiri-unity/lomiri-ui-toolkit/lomiri-ui-toolkit.spec index 89e4666c5b..bee5fd5d79 100644 --- a/anda/desktops/lomiri-unity/lomiri-ui-toolkit/lomiri-ui-toolkit.spec +++ b/anda/desktops/lomiri-unity/lomiri-ui-toolkit/lomiri-ui-toolkit.spec @@ -1,10 +1,10 @@ %global forgeurl https://gitlab.com/ubports/development/core/lomiri-ui-toolkit -%global commit 4111d119b21d58754f8b4bcaa7665cab7263be00 +%global commit d4afffeb1e4180aba90f3e52b6556894147cdbf9 %forgemeta Name: lomiri-ui-toolkit -Version: 1.3.5110 -Release: 2%?dist +Version: 1.3.5905 +Release: 1%{?dist} Summary: QML components to ease the creation of beautiful applications in QML for Lomiri License: LGPL-3.0 diff --git a/anda/desktops/lomiri-unity/nux/nux.spec b/anda/desktops/lomiri-unity/nux/nux.spec index c42fe66afb..8ac24413bc 100644 --- a/anda/desktops/lomiri-unity/nux/nux.spec +++ b/anda/desktops/lomiri-unity/nux/nux.spec @@ -1,6 +1,6 @@ Name: nux Version: 4.0.8 -Release: %autorelease +Release: 1%{?dist} Summary: An OpenGL toolkit License: GPL-3.0-or-later AND LGPL-3.0-or-later AND LGPL-2.0-or-later @@ -51,7 +51,7 @@ Requires: %{name}%{?_isa} = %{version}-%{release} %autosetup -n nux-%{version} -p1 for i in debian/patches/*.patch; do patch -p1 < $i; done -%build +%conf NOCONFIGURE=1 \ ./autogen.sh @@ -60,6 +60,7 @@ NOCONFIGURE=1 \ --disable-silent-rules \ --disable-static +%build %make_build %install diff --git a/anda/desktops/lomiri-unity/nux/update.rhai b/anda/desktops/lomiri-unity/nux/update.rhai new file mode 100644 index 0000000000..a50d44a7f3 --- /dev/null +++ b/anda/desktops/lomiri-unity/nux/update.rhai @@ -0,0 +1,2 @@ +let v = find(`Latest version is ([\d.]+)`, get("https://launchpad.net/nux"), 1); +rpm.version(v); diff --git a/anda/desktops/lomiri-unity/unity-greeter/unity-greeter.spec b/anda/desktops/lomiri-unity/unity-greeter/unity-greeter.spec index bbd6de1364..b99b54067a 100644 --- a/anda/desktops/lomiri-unity/unity-greeter/unity-greeter.spec +++ b/anda/desktops/lomiri-unity/unity-greeter/unity-greeter.spec @@ -2,10 +2,10 @@ Name: unity-greeter Version: 25.04.1 -Release: 1%?dist +Release: 2%?dist Summary: Unity Greeter for Lightdm -License: GPL-3.0 +License: GPL-3.0-or-later URL: https://launchpad.net/unity-greeter Source0: http://archive.ubuntu.com/ubuntu/pool/universe/u/unity-greeter/unity-greeter_%version-0ubuntu%rn.tar.xz Patch1: 0001-Remove-libido.patch @@ -35,12 +35,13 @@ It is implemented as a LightDM greeter. %prep %autosetup -p1 -%build +%conf NOCONFIGURE=1 \ ./autogen.sh %configure --disable-static +%build %make_build %install diff --git a/anda/desktops/lomiri-unity/unity-scope-home/unity-scope-home.spec b/anda/desktops/lomiri-unity/unity-scope-home/unity-scope-home.spec index 3d9c527ee3..a0d6babb9a 100644 --- a/anda/desktops/lomiri-unity/unity-scope-home/unity-scope-home.spec +++ b/anda/desktops/lomiri-unity/unity-scope-home/unity-scope-home.spec @@ -1,7 +1,7 @@ Name: unity-scope-home Summary: Home scope that aggregates results from multiple scopes Version: 19.04.20190412 -Release: %autorelease +Release: 1%{?dist} License: GPL-3.0 URL: https://launchpad.net/unity-scope-home Source0: http://archive.ubuntu.com/ubuntu/pool/universe/u/unity-scope-home/unity-scope-home_6.8.2+%{version}.orig.tar.gz @@ -32,12 +32,14 @@ Theme and icons for Unity. %prep %autosetup -c -p1 -%build +%conf NOCONFIGURE=1 \ ./autogen.sh # Cannot build with Fedora's libunity %configure --disable-static + +%build %make_build %install diff --git a/anda/desktops/lomiri-unity/unity-shell/unity-shell.spec b/anda/desktops/lomiri-unity/unity-shell/unity-shell.spec index b8816bd7b5..acd54b5ad1 100644 --- a/anda/desktops/lomiri-unity/unity-shell/unity-shell.spec +++ b/anda/desktops/lomiri-unity/unity-shell/unity-shell.spec @@ -1,8 +1,8 @@ -%define archive unity_7.7.0+23.04.20230222.2-0ubuntu8.tar.xz +%define archive unity_7.7.1+26.04.20260306-0ubuntu3.tar.xz Name: unity-shell -Version: 7.7.0 -Release: 1%?dist +Version: 7.7.1 +Release: 1%{?dist} Summary: Unity is a shell that sings License: GPL-3.0-or-later diff --git a/anda/desktops/mangowm/anda.hcl b/anda/desktops/mangowm/anda.hcl new file mode 100644 index 0000000000..90b2da7f90 --- /dev/null +++ b/anda/desktops/mangowm/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "mangowm.spec" + } +} diff --git a/anda/desktops/mangowm/mangowm.spec b/anda/desktops/mangowm/mangowm.spec new file mode 100644 index 0000000000..241746d505 --- /dev/null +++ b/anda/desktops/mangowm/mangowm.spec @@ -0,0 +1,63 @@ +%global mangowc_ver 0.12.5-1 + +Name: mangowm +Version: 0.12.9 +Release: 1%{?dist} +Summary: A modern, lightweight, high-performance Wayland compositor built on dwl +License: GPL-3.0-or-later AND MIT AND X11 AND CC0-1.0 +Packager: metcya +URL: https://github.com/mangowm/mango +Source: %{url}/archive/%{version}.tar.gz + +BuildRequires: meson +BuildRequires: gcc +BuildRequires: gcc-c++ +BuildRequires: pkgconfig(xcb) +BuildRequires: pkgconfig(xcb-icccm) +BuildRequires: pkgconfig(wayland-protocols) +BuildRequires: pkgconfig(wayland-server) +BuildRequires: pkgconfig(wlroots-0.19) +BuildRequires: pkgconfig(xkbcommon) +BuildRequires: pkgconfig(libinput) +BuildRequires: pkgconfig(wayland-client) +BuildRequires: pkgconfig(libpcre2-8) +BuildRequires: scenefx-devel + +Conflicts: mangowc < %{mangowc_ver} +Obsoletes: mangowc < %{mangowc_ver} +Provides: mangowc = %{mangowc_ver} + +%description +MangoWM is a modern, lightweight, high-performance Wayland compositor built on +dwl — crafted for speed, flexibility, and a customizable desktop experience. + +%prep +%autosetup -n mango-%{version} + +%build +%meson +%meson_build + +%install +%meson_install + +%files +%doc README.md +%license LICENSE +%license LICENSE.wlroots +%license LICENSE.tinywl +%license LICENSE.sway +%license LICENSE.dwm +%license LICENSE.dwl +%{_bindir}/mango +%{_bindir}/mmsg +%{_sysconfdir}/mango/config.conf +%{_datadir}/wayland-sessions/mango.desktop +%{_datadir}/xdg-desktop-portal/mango-portals.conf + +%changelog +* Wed Mar 04 2026 metcya - 0.12.5-1 +- Rename to mangowm + +* Wed Nov 12 2025 metcya +- Package mangowc diff --git a/anda/desktops/mangowm/update.rhai b/anda/desktops/mangowm/update.rhai new file mode 100644 index 0000000000..f16a6a5ef9 --- /dev/null +++ b/anda/desktops/mangowm/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("mangowm/mango")); diff --git a/anda/desktops/mate/dock-applet/mate-dock-applet.spec b/anda/desktops/mate/dock-applet/mate-dock-applet.spec index 368cc92480..2aa2fd33f3 100644 --- a/anda/desktops/mate/dock-applet/mate-dock-applet.spec +++ b/anda/desktops/mate/dock-applet/mate-dock-applet.spec @@ -17,10 +17,12 @@ Packager: madonuko %prep %autosetup + +%conf autoreconf -fi +%configure --with-gtk3 %build -%configure --with-gtk3 %make_build %install diff --git a/anda/desktops/mate/indicators/session/0001-fix-tests-import-cstdint.patch b/anda/desktops/mate/indicators/session/0001-fix-tests-import-cstdint.patch index 62e326898a..49498f8e33 100644 --- a/anda/desktops/mate/indicators/session/0001-fix-tests-import-cstdint.patch +++ b/anda/desktops/mate/indicators/session/0001-fix-tests-import-cstdint.patch @@ -1,5 +1,5 @@ From e4039bd482e3abba2a04e754fcb179ea95213232 Mon Sep 17 00:00:00 2001 -From: windowsboy111 +From: madonuko Date: Fri, 16 Jun 2023 18:02:22 +0800 Subject: [PATCH] fix(tests): import cstdint diff --git a/anda/desktops/niri/iio-niri/anda.hcl b/anda/desktops/niri/iio-niri/anda.hcl new file mode 100644 index 0000000000..8ebe47eadb --- /dev/null +++ b/anda/desktops/niri/iio-niri/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "iio-niri.spec" + } +} diff --git a/anda/desktops/niri/iio-niri/iio-niri.spec b/anda/desktops/niri/iio-niri/iio-niri.spec new file mode 100644 index 0000000000..4b688350f7 --- /dev/null +++ b/anda/desktops/niri/iio-niri/iio-niri.spec @@ -0,0 +1,37 @@ +Name: iio-niri +Version: 2.0.0 +Release: 1%{?dist} +Summary: Autorotation daemon for niri +URL: https://github.com/Zhaith-Izaliel/iio-niri +Source0: %{url}/archive/refs/tags/v%{version}.tar.gz +BuildRequires: cargo-rpm-macros +BuildRequires: dbus-devel +Requires: iio-sensor-proxy +License: (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND GPL-3.0-or-later AND MIT OR Apache-2.0 AND (Unlicense OR MIT) +Packager: Tulip Blossom + +%description +%{summary}. + +%prep +%autosetup +%cargo_prep_online + +%build +%cargo_build +%{cargo_license_online} > LICENSE.dependencies + +%install +%crate_install_bin + +%files +%doc README.md +%license LICENSE.md LICENSE.dependencies +%{_bindir}/%{name} + +%changelog +* Fri May 05 2026 Tulip Blossom - 2.0.0-1 +- Update package and add autoupdate definitions + +* Fri Mar 13 2026 Tulip Blossom +- Initial commit diff --git a/anda/desktops/niri/iio-niri/update.rhai b/anda/desktops/niri/iio-niri/update.rhai new file mode 100644 index 0000000000..b5009ad134 --- /dev/null +++ b/anda/desktops/niri/iio-niri/update.rhai @@ -0,0 +1 @@ +rpm.version(find(`version = "([\d.]+)"`, gh_rawfile("Zhaith-Izaliel/iio-niri", "master", "Cargo.toml"), 1)); diff --git a/anda/desktops/niri/nirius/anda.hcl b/anda/desktops/niri/nirius/anda.hcl new file mode 100644 index 0000000000..9cf529f78b --- /dev/null +++ b/anda/desktops/niri/nirius/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "nirius.spec" + } +} diff --git a/anda/desktops/niri/nirius/nirius.spec b/anda/desktops/niri/nirius/nirius.spec new file mode 100644 index 0000000000..102fd4f134 --- /dev/null +++ b/anda/desktops/niri/nirius/nirius.spec @@ -0,0 +1,44 @@ +Name: nirius +Version: 0.6.1 +Release: 1%{?dist} +Summary: Utility commands for niri + +License: GPL-3.0-or-later AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND MIT AND (Unlicense OR MIT) +URL: https://git.sr.ht/~tsdh/nirius +Source0: %{url}/archive/%{name}-%{version}.tar.gz + +Packager: metcya + +BuildRequires: cargo +BuildRequires: cargo-rpm-macros +BuildRequires: mold +Requires: niri + +%description +Some utility commands for the niri wayland compositor. You have to start the +niriusd daemon and then issue commands using the nirius utility. The daemon is +best started by adding spawn-at-startup "niriusd" to niri's config.kdl. + +%prep +%autosetup -n %{name}-%{name}-%{version} +%cargo_prep_online + +%build +%cargo_license_summary_online +%{cargo_license_online} > LICENSE.dependencies +%cargo_build + +%install +install -Dm 755 target/rpm/nirius %{buildroot}%{_bindir}/nirius +install -Dm 755 target/rpm/niriusd %{buildroot}%{_bindir}/niriusd + +%files +%license LICENSE +%license LICENSE.dependencies +%doc README.md +%{_bindir}/nirius +%{_bindir}/niriusd + +%changelog +* Thu Jan 22 2026 metcya +- Initial package diff --git a/anda/desktops/noctalia-qs/anda.hcl b/anda/desktops/noctalia-qs/anda.hcl new file mode 100644 index 0000000000..2f51b5f5ef --- /dev/null +++ b/anda/desktops/noctalia-qs/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "noctalia-qs.spec" + } +} diff --git a/anda/desktops/noctalia-qs/noctalia-qs.spec b/anda/desktops/noctalia-qs/noctalia-qs.spec new file mode 100644 index 0000000000..3aa8a1df4e --- /dev/null +++ b/anda/desktops/noctalia-qs/noctalia-qs.spec @@ -0,0 +1,84 @@ +%global commit fb0cc1557d8321fb2e3f34e94beddefe56211e04 + +Name: noctalia-qs +Version: 0.0.12 +Release: 2%{?dist} +Summary: Flexible QtQuick based desktop shell toolkit +License: LGPL-3.0-only AND GPL-3.0-only +URL: https://github.com/noctalia-dev/noctalia-qs +Source0: https://github.com/noctalia-dev/noctalia-qs/archive/refs/tags/v%{version}.tar.gz + +Packager: Willow C Reed + +BuildRequires: cmake +BuildRequires: cmake(Qt6Core) +BuildRequires: cmake(Qt6Qml) +BuildRequires: cmake(Qt6ShaderTools) +BuildRequires: cmake(Qt6WaylandClient) +BuildRequires: gcc-c++ +BuildRequires: ninja-build +BuildRequires: qt6-qtbase-private-devel +BuildRequires: spirv-tools +BuildRequires: anda-srpm-macros +BuildRequires: breakpad-devel +BuildRequires: breakpad-static +BuildRequires: pkgconfig +BuildRequires: pkgconfig(jemalloc) +BuildRequires: pkgconfig(libpipewire-0.3) +BuildRequires: pkgconfig(wayland-client) +BuildRequires: pkgconfig(wayland-protocols) +BuildRequires: pkgconfig(xcb) +BuildRequires: pkgconfig(pam) +BuildRequires: pkgconfig(libdrm) +BuildRequires: pkgconfig(gbm) +BuildRequires: pkgconfig(CLI11) +BuildRequires: glib2-devel +BuildRequires: polkit-devel + +Conflicts: quickshell +Provides: quickshell + +Provides: desktop-notification-daemon +Provides: PolicyKit-authentication-agent + +%description +Flexible QtQuick based desktop shell toolkit. + +%prep +%autosetup -n %{name}-%{version} + +%build +%cmake -GNinja \ + -DBUILD_SHARED_LIBS=OFF \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DDISTRIBUTOR="Fedora Terra" \ + -DDISTRIBUTOR_DEBUGINFO_AVAILABLE=YES \ + -DGIT_REVISION=%{commit} \ + -DINSTALL_QML_PREFIX=%{_lib}/qt6/qml +%cmake_build + +%install +%cmake_install + +%files +%license LICENSE LICENSE-GPL +%doc BUILD.md +%doc CONTRIBUTING.md +%doc README.md +%doc changelog/next.md +%{_bindir}/qs +%{_bindir}/quickshell +%{_appsdir}/dev.noctalia.noctalia-qs.desktop +%{_scalableiconsdir}/dev.noctalia.noctalia-qs.svg +%{_libdir}/qt6/qml/Quickshell + +%changelog +* Sun Mar 29 2026 Willow C Reed +- Add provides for a polkit agent and desktop notification daemon (so gnome doesn't get installed) + +* Thu Mar 05 2026 Willow C Reed +- Fix reision to actually be defined as a specific git commit since it never gets initialized rn +- Also fix that noctalia-qs is replacing quickshell overall and not just for noctlaia users + +* Fri Feb 27 2026 Willow C Reed +- Initial commit based on quickshell spec diff --git a/anda/desktops/noctalia-qs/update.rhai b/anda/desktops/noctalia-qs/update.rhai new file mode 100644 index 0000000000..7872e1741f --- /dev/null +++ b/anda/desktops/noctalia-qs/update.rhai @@ -0,0 +1,7 @@ +let release = get(`https://api.github.com/repos/noctalia-dev/noctalia-qs/tags`).json_arr()[0]; + +rpm.version(release.name); + +if rpm.changed() { + rpm.global("commit", release.commit.sha); +} \ No newline at end of file diff --git a/anda/desktops/noctalia-shell/anda.hcl b/anda/desktops/noctalia-shell/anda.hcl new file mode 100644 index 0000000000..40cee1a4b7 --- /dev/null +++ b/anda/desktops/noctalia-shell/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "noctalia-shell.spec" + } +} diff --git a/anda/desktops/noctalia-shell/noctalia-shell.spec b/anda/desktops/noctalia-shell/noctalia-shell.spec new file mode 100644 index 0000000000..592c7e2304 --- /dev/null +++ b/anda/desktops/noctalia-shell/noctalia-shell.spec @@ -0,0 +1,53 @@ +%global debug_package %{nil} + +Name: noctalia-shell +Version: 4.7.6 +Release: 1%{?dist} +Summary: A Quickshell-based custom shell setup + +License: MIT +URL: https://github.com/noctalia-dev/noctalia-shell +Source0: https://github.com/noctalia-dev/noctalia-shell/releases/download/v%{version}/noctalia-v%{version}.tar.gz + +Requires: brightnessctl +Requires: dejavu-sans-fonts +Requires: qt6-qtmultimedia +Requires: noctalia-qs +Requires: xdg-desktop-portal + +Recommends: cava +Recommends: cliphist +Recommends: ddcutil +Recommends: matugen +Recommends: power-profiles-daemon +Recommends: wlsunset +Recommends: gpu-screen-recorder + +Packager: Willow Reed + +%description +A beautiful, minimal desktop shell for Wayland that actually gets out of your way. Built on Quickshell with a warm lavender aesthetic that you can easily customize to match your vibe. + +%prep +%autosetup -n noctalia-release + +%build + +%install +install -d -m 0755 %{buildroot}/etc/xdg/quickshell/noctalia-shell +cp -r ./* %{buildroot}/etc/xdg/quickshell/noctalia-shell/ + +%files +%doc README.md +%license LICENSE +%{_sysconfdir}/xdg/quickshell/noctalia-shell/ + +%changelog +* Mon Mar 09 2026 Willow C Reed +- switch gpu-screen-recorder to be recommended as it's a plugin and not required anymore. also switched source to be based on version. + +* Fri Feb 27 2026 Willow C Reed +- Change required quickshell to Noctalia's version + +* Fri Jan 02 2026 Willow Reed +- Initial commit \ No newline at end of file diff --git a/anda/desktops/noctalia-shell/update.rhai b/anda/desktops/noctalia-shell/update.rhai new file mode 100644 index 0000000000..1c9be28be7 --- /dev/null +++ b/anda/desktops/noctalia-shell/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("noctalia-dev/noctalia-shell")); diff --git a/anda/desktops/satty/anda.hcl b/anda/desktops/satty/anda.hcl new file mode 100644 index 0000000000..2afc889c3f --- /dev/null +++ b/anda/desktops/satty/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "satty.spec" + } +} diff --git a/anda/desktops/satty/satty.spec b/anda/desktops/satty/satty.spec new file mode 100644 index 0000000000..d6843f609e --- /dev/null +++ b/anda/desktops/satty/satty.spec @@ -0,0 +1,44 @@ +Name: satty +Version: 0.20.1 +Release: 1%{?dist} +Summary: Modern screenshot annotation tool +URL: https://github.com/Satty-org/Satty +Source0: %{url}/archive/refs/tags/v%{version}.tar.gz +BuildRequires: cargo-rpm-macros +BuildRequires: libadwaita-devel +BuildRequires: libepoxy-devel +License: MPL-2.0 AND (MIT OR Apache-2.0) AND Unicode-3.0 AND Apache-2.0 AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND (BSD-3-Clause OR Apache-2.0) AND CC0-1.0 AND (CC0-1.0 OR Apache-2.0) AND ISC AND MIT AND (MIT OR Apache-2.0) AND (MIT OR Apache-2.0 OR Zlib) AND (Unlicense OR MIT) AND Zlib AND (Zlib OR Apache-2.0 OR MIT) +Packager: Tulip Blossom + +%description +%{summary}. + +%pkg_completion -BNfz + +%prep +%autosetup -n Satty-%{version} +%cargo_prep_online + +%build +%cargo_build +%{cargo_license_online} > LICENSE.dependencies + +%install +install -Dpm0755 -t %{buildroot}%{_bindir} ./target/rpm/satty +install -Dpm0644 -t %{buildroot}%{_datadir}/applications/ ./satty.desktop +install -Dpm0644 -t %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/ ./assets/satty.svg +install -Dpm0644 -t %{buildroot}%{_datadir}/fish/vendor_completions.d/ ./completions/satty.fish +install -Dpm0644 -t %{buildroot}%{_datadir}/zsh/site-functions/ ./completions/_satty +install -Dpm0644 ./completions/satty.bash %{buildroot}%{_datadir}/bash-completion/completions/satty +install -Dpm0644 -t %{buildroot}%{_datadir}/nushell/vendor/autoload/ ./completions/satty.nu + +%files +%doc README.md +%license LICENSE LICENSE.dependencies +%{_bindir}/%{name} +%{_datadir}/applications/satty.desktop +%{_datadir}/icons/hicolor/scalable/apps/satty.svg + +%changelog +* Sun Mar 29 2026 Tulip Blossom +- Initial commit diff --git a/anda/desktops/satty/update.rhai b/anda/desktops/satty/update.rhai new file mode 100644 index 0000000000..4cb90fd002 --- /dev/null +++ b/anda/desktops/satty/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("Satty-org/Satty")); diff --git a/anda/desktops/scroll/50-systemd-user.conf b/anda/desktops/scroll/50-systemd-user.conf new file mode 100644 index 0000000000..71207a438a --- /dev/null +++ b/anda/desktops/scroll/50-systemd-user.conf @@ -0,0 +1,16 @@ +# sway does not set DISPLAY/WAYLAND_DISPLAY in the systemd user environment +# See FS#63021 +# Adapted from xorg's 50-systemd-user.sh, which achieves a similar goal. + +# Upstream refuses to set XDG_CURRENT_DESKTOP so we have to. +exec systemctl --user set-environment XDG_CURRENT_DESKTOP=scroll +exec systemctl --user import-environment DISPLAY \ + SCROLLSOCK \ + WAYLAND_DISPLAY \ + XDG_CURRENT_DESKTOP + +exec hash dbus-update-activation-environment 2>/dev/null && \ + dbus-update-activation-environment --systemd DISPLAY \ + SCROLLSOCK \ + XDG_CURRENT_DESKTOP=scroll \ + WAYLAND_DISPLAY diff --git a/anda/desktops/scroll/anda.hcl b/anda/desktops/scroll/anda.hcl new file mode 100644 index 0000000000..5b0626f4d1 --- /dev/null +++ b/anda/desktops/scroll/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "scroll.spec" + } +} diff --git a/anda/desktops/scroll/scroll-portals.conf b/anda/desktops/scroll/scroll-portals.conf new file mode 100644 index 0000000000..aebea31a93 --- /dev/null +++ b/anda/desktops/scroll/scroll-portals.conf @@ -0,0 +1,5 @@ +[preferred] +default=gtk +org.freedesktop.impl.portal.ScreenCast=wlr +org.freedesktop.impl.portal.Screenshot=wlr +org.freedesktop.impl.portal.Inhibit=none diff --git a/anda/desktops/scroll/scroll.spec b/anda/desktops/scroll/scroll.spec new file mode 100644 index 0000000000..15b390c7bc --- /dev/null +++ b/anda/desktops/scroll/scroll.spec @@ -0,0 +1,93 @@ +Name: scroll +Version: 1.12.11 +Release: 1%{?dist} +Summary: i3-compatible Wayland compositor (sway) with a PaperWM layout like niri or hyprscroller +License: MIT +URL: https://github.com/dawsers/scroll +Source0: %{url}/archive/refs/tags/%{version}.tar.gz +# https://aur.archlinux.org/cgit/aur.git/tree/?h=sway-scroll +Source1: 50-systemd-user.conf +Source2: scroll-portals.conf + +Packager: Owen Zimmerman + +BuildRequires: meson +BuildRequires: cmake +BuildRequires: ninja-build +BuildRequires: gcc +BuildRequires: pkgconfig(libdrm) +BuildRequires: pkgconfig(wayland-protocols) +BuildRequires: pkgconfig(wayland-server) +BuildRequires: pkgconfig(gbm) +BuildRequires: pkgconfig(glslang) +BuildRequires: pkgconfig(libseat) +BuildRequires: pkgconfig(hwdata) +BuildRequires: pkgconfig(libdisplay-info) +BuildRequires: pkgconfig(libliftoff) +BuildRequires: pkgconfig(xcb-renderutil) +BuildRequires: pkgconfig(xwayland) +BuildRequires: pkgconfig(xcb-ewmh) +BuildRequires: pkgconfig(xcb-errors) +BuildRequires: pkgconfig(json-c) +BuildRequires: pkgconfig(lua) +BuildRequires: pkgconfig(scdoc) +BuildRequires: pkgconfig(vulkan) +BuildRequires: pkgconfig(libinput) +BuildRequires: pkgconfig(libevdev) +BuildRequires: pkgconfig(xkbcommon) +BuildRequires: pkgconfig(pixman-1) +BuildRequires: pkgconfig(egl) +BuildRequires: pkgconfig(lcms2) +BuildRequires: pkgconfig(libpcre2-8) +BuildRequires: pkgconfig(cairo) +BuildRequires: pkgconfig(pango) +BuildRequires: pkgconfig(gdk-pixbuf-2.0) + +Provides: sway-scroll + +%description +%{summary}. + +%prep +%autosetup + +%pkg_completion -B scroll scrollbar scrollmsg +%pkg_completion -f scroll scrollmsg scrollnag +%pkg_completion -z scroll scrollmsg + +%build +%meson -D sd-bus-provider=libsystemd +%meson_build + +%install +%meson_install +install -Dm644 %{S:1} %{buildroot}%{_sysconfdir}/scroll/config.d/50-systemd-user.conf +install -Dm644 %{S:2} %{buildroot}%{_datadir}/xdg-desktop-portal/scroll-portals.conf + +%files +%doc README.md CONTRIBUTING.md +%license LICENSE +%{_bindir}/scroll +%{_bindir}/scrollbar +%{_bindir}/scrollmsg +%{_bindir}/scrollnag +%{_sysconfdir}/scroll/config +%{_sysconfdir}/scroll/config.d/50-systemd-user.conf +%{_datadir}/backgrounds/scroll/*png +%{_datadir}/xdg-desktop-portal/scroll-portals.conf +%{_iconsdir}/scroll.png +%{_mandir}/man1/scroll.1.* +%{_mandir}/man1/scrollmsg.1.* +%{_mandir}/man1/scrollnag.1.* +%{_mandir}/man5/scroll-bar.5.* +%{_mandir}/man5/scroll-input.5.* +%{_mandir}/man5/scroll-output.5.* +%{_mandir}/man5/scroll.5.* +%{_mandir}/man5/scrollnag.5.* +%{_mandir}/man7/scroll-ipc.7.* +%{_mandir}/man7/scrollbar-protocol.7.* +%{_datadir}/wayland-sessions/scroll.desktop + +%changelog +* Sun Apr 12 2026 Owen Zimmerman - 1.12.8-1 +- Initial commit diff --git a/anda/desktops/scroll/update.rhai b/anda/desktops/scroll/update.rhai new file mode 100644 index 0000000000..43498f46c8 --- /dev/null +++ b/anda/desktops/scroll/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("dawsers/scroll")); diff --git a/anda/desktops/somewm/anda.hcl b/anda/desktops/somewm/anda.hcl new file mode 100644 index 0000000000..63b30c73ae --- /dev/null +++ b/anda/desktops/somewm/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "somewm.spec" + } +} diff --git a/anda/desktops/somewm/somewm.spec b/anda/desktops/somewm/somewm.spec new file mode 100644 index 0000000000..9578154a45 --- /dev/null +++ b/anda/desktops/somewm/somewm.spec @@ -0,0 +1,56 @@ +Name: somewm +Version: 1.4.1 +Release: 1%{?dist} +Summary: Wayland compositor that brings AwesomeWM's Lua API to Wayland +License: GPL-3.0 +URL: https://github.com/trip-zip/somewm +Source: %{url}/archive/%{version}.tar.gz + +Packager: Owen Zimmerman + +BuildRequires: gcc +BuildRequires: gcc-c++ +BuildRequires: meson +BuildRequires: pkgconfig(wlroots) +BuildRequires: pkgconfig(luajit) +BuildRequires: lua-lgi-compat +BuildRequires: pkgconfig(wlroots-0.19) +BuildRequires: pkgconfig(cairo) +BuildRequires: pkgconfig(pango) +BuildRequires: gdk-pixbuf2-devel +BuildRequires: pkgconfig(wayland-protocols) +BuildRequires: pkgconfig(libinput) +BuildRequires: libxkbcommon-devel +BuildRequires: pkgconfig(xcb-util) +BuildRequires: dbus-devel +BuildRequires: pkgconfig(dbus-1) +BuildRequires: python3-devel +BuildRequires: ninja-build + +%description +somewm is a Wayland compositor that brings AwesomeWM's Lua API to Wayland, built on wlroots. +The goal is 100% compatibility with AwesomeWM's Lua configuration. + +%prep +%autosetup + +%build +%meson -Dwerror=false +%meson_build + +%install +%meson_install + +%files +%doc README.md CHANGELOG.md +%license LICENSE licenses/ +%{_bindir}/%{name} +%{_bindir}/%{name}-client +%{_sysconfdir}/xdg/%{name}/rc.lua +%{_datadir}/%{name}/ +%{_datadir}/wayland-sessions/%{name}.desktop +%{_mandir}/man1/somewm.1.* + +%changelog +* Sun Jan 04 2026 Owen Zimmerman +- Initial commit diff --git a/anda/desktops/somewm/update.rhai b/anda/desktops/somewm/update.rhai new file mode 100644 index 0000000000..abf20acf6f --- /dev/null +++ b/anda/desktops/somewm/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("trip-zip/somewm")); diff --git a/anda/desktops/stardust/armillary/nightly/anda.hcl b/anda/desktops/stardust/armillary/nightly/anda.hcl new file mode 100644 index 0000000000..87e3aa5098 --- /dev/null +++ b/anda/desktops/stardust/armillary/nightly/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "stardust-armillary-nightly.spec" + } + labels { + nightly = 1 + } +} diff --git a/anda/desktops/stardust/armillary/nightly/stardust-armillary-nightly.spec b/anda/desktops/stardust/armillary/nightly/stardust-armillary-nightly.spec new file mode 100644 index 0000000000..3c77b16321 --- /dev/null +++ b/anda/desktops/stardust/armillary/nightly/stardust-armillary-nightly.spec @@ -0,0 +1,42 @@ +%global commit f6388f05209195818418fdd9db061000b0f007af +%global commit_date 20260320 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +# Exclude input files from mangling +%global __brp_mangle_shebangs_exclude_from ^/usr/src/.*$ + +Name: stardust-xr-armillary-nightly +Version: 0~%{commit_date}git.%{shortcommit} +Release: 1%{?dist} +Summary: Model viewer for Stardust XR +URL: https://github.com/StardustXR/armillary +Source0: %url/archive/%commit/armillary-%commit.tar.gz +License: MIT AND (MIT OR Apache-2.0) AND Unicode-3.0 AND (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 OR BSL-1.0) 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 OR MIT OR Apache-2.0) AND ISC AND BSD-3-Clause AND LGPL-2.1-or-later AND (MIT OR Zlib OR Apache-2.0) AND MPL-2.0 AND Unicode-3.0 AND (Unlicense OR MIT) AND Zlib +BuildRequires: cargo cmake anda-srpm-macros cargo-rpm-macros mold + +Provides: armillary-nightly stardust-armillary-nightly +Conflicts: stardust-xr-armillary +Packager: Owen Zimmerman + +%description +A model viewer for Stardust XR which works great for hand tracking, pointers, and controllers. + +%prep +%autosetup -n armillary-%commit +%cargo_prep_online + +%build + +%install +%define __cargo_common_opts %{?_smp_mflags} -Z avoid-dev-deps --locked +%cargo_install +%{cargo_license_online} > LICENSE.dependencies + +%files +%_bindir/armillary +%license LICENSE +%license LICENSE.dependencies +%doc README.md + +%changelog +* Sun Jan 11 2026 Owen Zimmerman +- Initial commit (port from stable) diff --git a/anda/stardust/armillary/update.rhai b/anda/desktops/stardust/armillary/nightly/update.rhai similarity index 100% rename from anda/stardust/armillary/update.rhai rename to anda/desktops/stardust/armillary/nightly/update.rhai diff --git a/anda/stardust/armillary/anda.hcl b/anda/desktops/stardust/armillary/stable/anda.hcl similarity index 69% rename from anda/stardust/armillary/anda.hcl rename to anda/desktops/stardust/armillary/stable/anda.hcl index 31ad1adca2..261ee3ed48 100644 --- a/anda/stardust/armillary/anda.hcl +++ b/anda/desktops/stardust/armillary/stable/anda.hcl @@ -2,7 +2,4 @@ project pkg { rpm { spec = "stardust-armillary.spec" } - labels { - nightly = 1 - } } diff --git a/anda/stardust/armillary/stardust-armillary.spec b/anda/desktops/stardust/armillary/stable/stardust-armillary.spec similarity index 51% rename from anda/stardust/armillary/stardust-armillary.spec rename to anda/desktops/stardust/armillary/stable/stardust-armillary.spec index 8056e6743f..25c8131443 100644 --- a/anda/stardust/armillary/stardust-armillary.spec +++ b/anda/desktops/stardust/armillary/stable/stardust-armillary.spec @@ -1,16 +1,14 @@ -%global commit 8ad02b636690170adbd4279fe3fc8265088cbcc2 -%global commit_date 20240726 -%global shortcommit %(c=%{commit}; echo ${c:0:7}) # Exclude input files from mangling %global __brp_mangle_shebangs_exclude_from ^/usr/src/.*$ Name: stardust-xr-armillary -Version: %commit_date.%shortcommit -Release: 1%?dist +Version: 0.51.1 +Release: 1%{?dist} +Epoch: 1 Summary: Model viewer for Stardust XR URL: https://github.com/StardustXR/armillary -Source0: %url/archive/%commit/armillary-%commit.tar.gz -License: MIT +Source0: %url/archive/refs/tags/%version.tar.gz +License: MIT AND (MIT OR Apache-2.0) AND Unicode-3.0 AND (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 OR BSL-1.0) 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 OR MIT OR Apache-2.0) AND ISC AND BSD-3-Clause AND LGPL-2.1-or-later AND (MIT OR Zlib OR Apache-2.0) AND MPL-2.0 AND Unicode-3.0 AND (Unlicense OR MIT) AND Zlib BuildRequires: cargo cmake anda-srpm-macros cargo-rpm-macros mold Provides: armillary stardust-armillary @@ -20,7 +18,7 @@ Packager: Owen Zimmerman A model viewer for Stardust XR which works great for hand tracking, pointers, and controllers. %prep -%autosetup -n armillary-%commit +%autosetup -n armillary-%version %cargo_prep_online %build @@ -28,12 +26,17 @@ A model viewer for Stardust XR which works great for hand tracking, pointers, an %install %define __cargo_common_opts %{?_smp_mflags} -Z avoid-dev-deps --locked %cargo_install +%{cargo_license_online} > LICENSE.dependencies %files %_bindir/armillary %license LICENSE +%license LICENSE.dependencies %doc README.md %changelog +* Sat Jan 10 2026 Owen Zimmerman +- Switch to version based + * Sat Sep 7 2024 Owen-sz - Package StardustXR armillary diff --git a/anda/desktops/stardust/armillary/stable/update.rhai b/anda/desktops/stardust/armillary/stable/update.rhai new file mode 100644 index 0000000000..88d41ddc01 --- /dev/null +++ b/anda/desktops/stardust/armillary/stable/update.rhai @@ -0,0 +1 @@ +rpm.version(gh_tag("StardustXR/armillary")); diff --git a/anda/desktops/stardust/atmosphere/nightly/anda.hcl b/anda/desktops/stardust/atmosphere/nightly/anda.hcl new file mode 100644 index 0000000000..12f9613023 --- /dev/null +++ b/anda/desktops/stardust/atmosphere/nightly/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "stardust-atmosphere-nightly.spec" + } + labels { + nightly = 1 + } +} diff --git a/anda/desktops/stardust/atmosphere/nightly/stardust-atmosphere-nightly.spec b/anda/desktops/stardust/atmosphere/nightly/stardust-atmosphere-nightly.spec new file mode 100644 index 0000000000..96242d0579 --- /dev/null +++ b/anda/desktops/stardust/atmosphere/nightly/stardust-atmosphere-nightly.spec @@ -0,0 +1,42 @@ +%global commit 81927a7057f4f5aa1baab8dbb498e03c71e81eb5 +%global commit_date 20260323 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +# Exclude input files from mangling +%global __brp_mangle_shebangs_exclude_from ^/usr/src/.*$ + +Name: stardust-xr-atmosphere-nightly +Version: 0~%{commit_date}git.%{shortcommit} +Release: 1%{?dist} +Summary: Environment, homespace, and setup client for Stardust XR +URL: https://github.com/StardustXR/atmosphere +Source0: %url/archive/%commit/atmosphere-%commit.tar.gz +License: MIT AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND Apache-2.0 AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND (BSD-3-Clause OR MIT OR Apache-2.0) AND BSD-3-Clause AND ISC AND BSD-3-Clause AND (MIT OR Apache-2.0 OR LGPL-2.1-or-later) AND (MIT OR Apache-2.0) AND (MIT OR X11 OR Apache-2.0) AND (MIT OR Zlib OR Apache-2.0) AND MPL-2.0 AND Unicode-3.0 AND (Unlicense OR MIT) AND Zlib +BuildRequires: cargo cmake anda-srpm-macros cargo-rpm-macros mold libudev-devel g++ libinput-devel libxkbcommon-x11-devel + +Provides: atmosphere-nightly stardust-atmosphere-nightly +Conflicts: stardust-xr-atmosphere +Packager: Owen Zimmerman + +%description +%summary. + +%prep +%autosetup -n atmosphere-%commit +%cargo_prep_online + +%build + +%install +%define __cargo_common_opts %{?_smp_mflags} -Z avoid-dev-deps --locked +%cargo_install +%{cargo_license_online} > LICENSE.dependencies + +%files +%_bindir/atmosphere +%license LICENSE +%license LICENSE.dependencies +%doc README.md + +%changelog +* Sun Jan 11 2026 Owen Zimmerman +- Initial commit (port from stable) diff --git a/anda/stardust/atmosphere/update.rhai b/anda/desktops/stardust/atmosphere/nightly/update.rhai similarity index 98% rename from anda/stardust/atmosphere/update.rhai rename to anda/desktops/stardust/atmosphere/nightly/update.rhai index a375acf6ce..ce6d6c9112 100644 --- a/anda/stardust/atmosphere/update.rhai +++ b/anda/desktops/stardust/atmosphere/nightly/update.rhai @@ -2,4 +2,4 @@ rpm.global("commit", gh_commit("StardustXR/atmosphere")); if rpm.changed() { rpm.release(); rpm.global("commit_date", date()); -} \ No newline at end of file +} diff --git a/anda/stardust/atmosphere/anda.hcl b/anda/desktops/stardust/atmosphere/stable/anda.hcl similarity index 64% rename from anda/stardust/atmosphere/anda.hcl rename to anda/desktops/stardust/atmosphere/stable/anda.hcl index 5a82bc12e7..74a7c681c3 100644 --- a/anda/stardust/atmosphere/anda.hcl +++ b/anda/desktops/stardust/atmosphere/stable/anda.hcl @@ -2,7 +2,4 @@ project pkg { rpm { spec = "stardust-atmosphere.spec" } - labels { - nightly = 1 - } -} \ No newline at end of file +} diff --git a/anda/stardust/atmosphere/stardust-atmosphere.spec b/anda/desktops/stardust/atmosphere/stable/stardust-atmosphere.spec similarity index 50% rename from anda/stardust/atmosphere/stardust-atmosphere.spec rename to anda/desktops/stardust/atmosphere/stable/stardust-atmosphere.spec index e4b090b73c..7be8eed3a4 100644 --- a/anda/stardust/atmosphere/stardust-atmosphere.spec +++ b/anda/desktops/stardust/atmosphere/stable/stardust-atmosphere.spec @@ -1,16 +1,14 @@ -%global commit 0c8bfb91e8ca32a4895f858067334ed265517309 -%global commit_date 20240822 -%global shortcommit %(c=%{commit}; echo ${c:0:7}) # Exclude input files from mangling %global __brp_mangle_shebangs_exclude_from ^/usr/src/.*$ Name: stardust-xr-atmosphere -Version: %commit_date.%shortcommit -Release: 1%?dist +Version: 0.51.1 +Release: 1%{?dist} +Epoch: 1 Summary: Environment, homespace, and setup client for Stardust XR URL: https://github.com/StardustXR/atmosphere -Source0: %url/archive/%commit/atmosphere-%commit.tar.gz -License: MIT +Source0: %url/archive/refs/tags/%version.tar.gz +License: MIT AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND Apache-2.0 AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND (BSD-3-Clause OR MIT OR Apache-2.0) AND BSD-3-Clause AND ISC AND BSD-3-Clause AND (MIT OR Apache-2.0 OR LGPL-2.1-or-later) AND (MIT OR Apache-2.0) AND (MIT OR X11 OR Apache-2.0) AND (MIT OR Zlib OR Apache-2.0) AND MPL-2.0 AND Unicode-3.0 AND (Unlicense OR MIT) AND Zlib BuildRequires: cargo cmake anda-srpm-macros cargo-rpm-macros mold libudev-devel g++ libinput-devel libxkbcommon-x11-devel Provides: atmosphere stardust-atmosphere @@ -20,7 +18,7 @@ Packager: Owen Zimmerman %summary. %prep -%autosetup -n atmosphere-%commit +%autosetup -n atmosphere-%version %cargo_prep_online %build @@ -28,12 +26,17 @@ Packager: Owen Zimmerman %install %define __cargo_common_opts %{?_smp_mflags} -Z avoid-dev-deps --locked %cargo_install +%{cargo_license_online} > LICENSE.dependencies %files %_bindir/atmosphere %license LICENSE +%license LICENSE.dependencies %doc README.md %changelog +* Sat Jan 10 2026 Owen Zimmerman +- Switch to version based + * Tue Sep 10 2024 Owen-sz - Package StardustXR atmosphere diff --git a/anda/desktops/stardust/atmosphere/stable/update.rhai b/anda/desktops/stardust/atmosphere/stable/update.rhai new file mode 100644 index 0000000000..f9bbc21252 --- /dev/null +++ b/anda/desktops/stardust/atmosphere/stable/update.rhai @@ -0,0 +1 @@ +rpm.version(gh_tag("StardustXR/atmosphere")); diff --git a/anda/desktops/stardust/black-hole/nightly/anda.hcl b/anda/desktops/stardust/black-hole/nightly/anda.hcl new file mode 100644 index 0000000000..293ef56e0d --- /dev/null +++ b/anda/desktops/stardust/black-hole/nightly/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "stardust-black-hole-nightly.spec" + } + labels { + nightly = 1 + } + } diff --git a/anda/desktops/stardust/black-hole/nightly/stardust-black-hole-nightly.spec b/anda/desktops/stardust/black-hole/nightly/stardust-black-hole-nightly.spec new file mode 100644 index 0000000000..4279662c69 --- /dev/null +++ b/anda/desktops/stardust/black-hole/nightly/stardust-black-hole-nightly.spec @@ -0,0 +1,47 @@ +%global commit e5b7778ed23b1e9b57e2292f16c9db10ca0eb1ad +%global commit_date 20260320 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +# Exclude input files from mangling +%global __brp_mangle_shebangs_exclude_from ^/usr/src/.*$ + +Name: stardust-xr-black-hole-nightly +Version: 0~%{commit_date}git.%{shortcommit} +Release: 1%{?dist} +Summary: Spatial storage for Stardust XR +URL: https://github.com/StardustXR/black-hole +Source0: %url/archive/%commit/black-hole-%commit.tar.gz +License: MIT AND (MIT OR Apache-2.0) AND Unicode-3.0 AND (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND Apache-2.0 AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND (BSD-3-Clause OR MIT OR Apache-2.0) AND BSD-3-Clause AND (MIT AND BSD-3-Clause) AND (MIT OR Apache-2.0) AND (MIT OR Zlib OR Apache-2.0) AND MPL-2.0 AND Unicode-3.0 AND (Unlicense OR MIT) +BuildRequires: cargo cmake anda-srpm-macros cargo-rpm-macros mold + +Provides: black-hole-nightly stardust-black-hole-nightly +Conflicts: stardust-xr-black-hole +Packager: Owen Zimmerman + +%description +%summary. + +%prep +%autosetup -n black-hole-%commit +%cargo_prep_online + +%build + +%install +%define __cargo_common_opts %{?_smp_mflags} -Z avoid-dev-deps --locked +export STARDUST_RES_PREFIXES=%_datadir +%cargo_install +%{cargo_license_online} > LICENSE.dependencies + +mkdir -p %buildroot%_datadir +cp -r res/* %buildroot%_datadir/ + +%files +%doc README.md +%license LICENSE +%license LICENSE.dependencies +%_bindir/black-hole +%_datadir/black_hole/ + +%changelog +* Sun Jan 11 2026 Owen Zimmerman +- Initial commit (port from stable) diff --git a/anda/stardust/black-hole/update.rhai b/anda/desktops/stardust/black-hole/nightly/update.rhai similarity index 100% rename from anda/stardust/black-hole/update.rhai rename to anda/desktops/stardust/black-hole/nightly/update.rhai diff --git a/anda/stardust/black-hole/anda.hcl b/anda/desktops/stardust/black-hole/stable/anda.hcl similarity index 66% rename from anda/stardust/black-hole/anda.hcl rename to anda/desktops/stardust/black-hole/stable/anda.hcl index f14c2dc669..9a26292ed9 100644 --- a/anda/stardust/black-hole/anda.hcl +++ b/anda/desktops/stardust/black-hole/stable/anda.hcl @@ -2,7 +2,4 @@ project pkg { rpm { spec = "stardust-black-hole.spec" } - labels { - nightly = 1 - } -} \ No newline at end of file +} diff --git a/anda/stardust/black-hole/stardust-black-hole.spec b/anda/desktops/stardust/black-hole/stable/stardust-black-hole.spec similarity index 52% rename from anda/stardust/black-hole/stardust-black-hole.spec rename to anda/desktops/stardust/black-hole/stable/stardust-black-hole.spec index f80c0c6e60..0ea1e7a133 100644 --- a/anda/stardust/black-hole/stardust-black-hole.spec +++ b/anda/desktops/stardust/black-hole/stable/stardust-black-hole.spec @@ -1,16 +1,14 @@ -%global commit 01c666f472457ef6230c9d2fd5a289d0a64ce5c2 -%global commit_date 20241230 -%global shortcommit %(c=%{commit}; echo ${c:0:7}) # Exclude input files from mangling %global __brp_mangle_shebangs_exclude_from ^/usr/src/.*$ Name: stardust-xr-black-hole -Version: %commit_date.%shortcommit -Release: 1%?dist +Version: 0.51.1 +Release: 1%{?dist} +Epoch: 1 Summary: Spatial storage for Stardust XR URL: https://github.com/StardustXR/black-hole -Source0: %url/archive/%commit/black-hole-%commit.tar.gz -License: MIT +Source0: %url/archive/refs/tags/%version.tar.gz +License: MIT AND (MIT OR Apache-2.0) AND Unicode-3.0 AND (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND Apache-2.0 AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND (BSD-3-Clause OR MIT OR Apache-2.0) AND BSD-3-Clause AND (MIT AND BSD-3-Clause) AND (MIT OR Apache-2.0) AND (MIT OR Zlib OR Apache-2.0) AND MPL-2.0 AND Unicode-3.0 AND (Unlicense OR MIT) BuildRequires: cargo cmake anda-srpm-macros cargo-rpm-macros mold Provides: black-hole stardust-black-hole @@ -20,7 +18,7 @@ Packager: Owen Zimmerman %summary. %prep -%autosetup -n black-hole-%commit +%autosetup -n black-hole-%version %cargo_prep_online %build @@ -29,6 +27,7 @@ Packager: Owen Zimmerman %define __cargo_common_opts %{?_smp_mflags} -Z avoid-dev-deps --locked export STARDUST_RES_PREFIXES=%_datadir %cargo_install +%{cargo_license_online} > LICENSE.dependencies mkdir -p %buildroot%_datadir cp -r res/* %buildroot%_datadir/ @@ -36,9 +35,13 @@ cp -r res/* %buildroot%_datadir/ %files %doc README.md %license LICENSE +%license LICENSE.dependencies %_bindir/black-hole %_datadir/black_hole/ %changelog +* Sat Jan 10 2026 Owen Zimmerman +- Switch to version based + * Sat Sep 8 2024 Owen-sz - Package StardustXR black-hole diff --git a/anda/desktops/stardust/black-hole/stable/update.rhai b/anda/desktops/stardust/black-hole/stable/update.rhai new file mode 100644 index 0000000000..1f0cd54cb4 --- /dev/null +++ b/anda/desktops/stardust/black-hole/stable/update.rhai @@ -0,0 +1 @@ +rpm.version(gh_tag("StardustXR/black-hole")); diff --git a/anda/desktops/stardust/comet/nightly/anda.hcl b/anda/desktops/stardust/comet/nightly/anda.hcl new file mode 100644 index 0000000000..af380fc21e --- /dev/null +++ b/anda/desktops/stardust/comet/nightly/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "stardust-comet-nightly.spec" + } + labels { + nightly = 1 + } +} diff --git a/anda/desktops/stardust/comet/nightly/stardust-comet-nightly.spec b/anda/desktops/stardust/comet/nightly/stardust-comet-nightly.spec new file mode 100644 index 0000000000..21f52658cf --- /dev/null +++ b/anda/desktops/stardust/comet/nightly/stardust-comet-nightly.spec @@ -0,0 +1,42 @@ +%global commit ff7b5cc92e80f685851626d27baa17e8f682e7af +%global commit_date 20260320 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +# Exclude input files from mangling +%global __brp_mangle_shebangs_exclude_from ^/usr/src/.*$ + +Name: stardust-xr-comet-nightly +Version: 0~%{commit_date}git.%{shortcommit} +Release: 1%{?dist} +Summary: Annotate things in Stardust XR +URL: https://github.com/StardustXR/comet +Source0: %url/archive/%commit/comet-%commit.tar.gz +License: MIT AND MIT OR Apache-2.0) AND Unicode-3.0 AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND Apache-2.0 AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND (BSD-3-Clause OR MIT OR Apache-2.0) AND BSD-3-Clause AND ISC AND (MIT AND BSD-3-Clause) AND (MIT OR Apache-2.0 OR LGPL-2.1-or-later) AND (MIT OR Zlib OR Apache-2.0) AND MPL-2.0 AND (Unlicense OR MIT) AND Zlib +BuildRequires: cargo cmake anda-srpm-macros cargo-rpm-macros mold + +Provides: comet-nightly stardust-comet-nightly +Conflicts: stardust-xr-comet +Packager: Owen Zimmerman + +%description +%summary. + +%prep +%autosetup -n comet-%commit +%cargo_prep_online + +%build + +%install +%define __cargo_common_opts %{?_smp_mflags} -Z avoid-dev-deps --locked +%cargo_install +%{cargo_license_online} > LICENSE.dependencies + +%files +%_bindir/comet +%license LICENSE +%license LICENSE.dependencies +%doc README.md + +%changelog +* Sun Jan 11 2026 Owen Zimmerman +- Initial commit (port from stable) diff --git a/anda/stardust/comet/update.rhai b/anda/desktops/stardust/comet/nightly/update.rhai similarity index 100% rename from anda/stardust/comet/update.rhai rename to anda/desktops/stardust/comet/nightly/update.rhai diff --git a/anda/stardust/comet/anda.hcl b/anda/desktops/stardust/comet/stable/anda.hcl similarity index 66% rename from anda/stardust/comet/anda.hcl rename to anda/desktops/stardust/comet/stable/anda.hcl index 95ba7c5843..4b8128741c 100644 --- a/anda/stardust/comet/anda.hcl +++ b/anda/desktops/stardust/comet/stable/anda.hcl @@ -2,7 +2,4 @@ project pkg { rpm { spec = "stardust-comet.spec" } - labels { - nightly = 1 - } } diff --git a/anda/desktops/stardust/comet/stable/stardust-comet.spec b/anda/desktops/stardust/comet/stable/stardust-comet.spec new file mode 100644 index 0000000000..c7124b4bcb --- /dev/null +++ b/anda/desktops/stardust/comet/stable/stardust-comet.spec @@ -0,0 +1,42 @@ +# Exclude input files from mangling +%global __brp_mangle_shebangs_exclude_from ^/usr/src/.*$ + +Name: stardust-xr-comet +Version: 0.51.1 +Release: 1%{?dist} +Epoch: 1 +Summary: Annotate things in Stardust XR +URL: https://github.com/StardustXR/comet +Source0: %url/archive/refs/tags/%version.tar.gz +License: MIT AND MIT OR Apache-2.0) AND Unicode-3.0 AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND Apache-2.0 AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND (BSD-3-Clause OR MIT OR Apache-2.0) AND BSD-3-Clause AND ISC AND (MIT AND BSD-3-Clause) AND (MIT OR Apache-2.0 OR LGPL-2.1-or-later) AND (MIT OR Zlib OR Apache-2.0) AND MPL-2.0 AND (Unlicense OR MIT) AND Zlib +BuildRequires: cargo cmake anda-srpm-macros cargo-rpm-macros mold + +Provides: comet stardust-comet +Packager: Owen Zimmerman + +%description +%summary. + +%prep +%autosetup -n comet-%version +%cargo_prep_online + +%build + +%install +%define __cargo_common_opts %{?_smp_mflags} -Z avoid-dev-deps --locked +%cargo_install +%{cargo_license_online} > LICENSE.dependencies + +%files +%_bindir/comet +%license LICENSE +%license LICENSE.dependencies +%doc README.md + +%changelog +* Sat Jan 10 2026 Owen Zimmerman +- Switch to version based + +* Sat Sep 7 2024 Owen-sz +- Package StardustXR comet diff --git a/anda/desktops/stardust/comet/stable/update.rhai b/anda/desktops/stardust/comet/stable/update.rhai new file mode 100644 index 0000000000..92d47374cf --- /dev/null +++ b/anda/desktops/stardust/comet/stable/update.rhai @@ -0,0 +1 @@ +rpm.version(gh_tag("StardustXR/comet")); diff --git a/anda/desktops/stardust/flatland/nightly/anda.hcl b/anda/desktops/stardust/flatland/nightly/anda.hcl new file mode 100644 index 0000000000..21e46cb248 --- /dev/null +++ b/anda/desktops/stardust/flatland/nightly/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "stardust-flatland-nightly.spec" + } + labels { + nightly = 1 + } +} diff --git a/anda/desktops/stardust/flatland/nightly/stardust-flatland-nightly.spec b/anda/desktops/stardust/flatland/nightly/stardust-flatland-nightly.spec new file mode 100644 index 0000000000..d1b2c6d669 --- /dev/null +++ b/anda/desktops/stardust/flatland/nightly/stardust-flatland-nightly.spec @@ -0,0 +1,48 @@ +%global commit a8694174290e02aaf454747e1232e4db0d7ef916 +%global commit_date 20260426 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +# Exclude input files from mangling +%global __brp_mangle_shebangs_exclude_from ^/usr/src/.*$ + +Name: stardust-xr-flatland-nightly +Version: 0~%{commit_date}git.%{shortcommit} +Release: 1%{?dist} +Summary: Flatland for Stardust XR +URL: https://github.com/StardustXR/flatland +Source0: %url/archive/%commit/flatland-%commit.tar.gz +License: MIT AND (MIT OR Apache-2.0) AND Unicode-3.0 AND (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND Apache-2.0 AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND (BSD-3-Clause OR MIT OR Apache-2.0) AND BSD-3-Clause AND GPL-2.0-only AND ISC AND (MIT AND BSD-3-Clause) AND (MIT OR Apache-2.0 OR LGPL-2.1-or-later) AND (MIT OR Apache-2.0) AND (MIT OR Zlib OR Apache-2.0) AND MPL-2.0 AND Unicode-3.0 AND (Unlicense OR MIT) AND Zlib +BuildRequires: cargo cmake anda-srpm-macros cargo-rpm-macros mold + +Provides: flatland-nightly stardust-flatland-nightly +Conflicts: stardust-xr-flatland +Packager: Owen Zimmerman + +%description +%summary. + +%prep +%autosetup -n flatland-%commit +%cargo_prep_online + +%build + +%install +%define __cargo_common_opts %{?_smp_mflags} -Z avoid-dev-deps --locked +export STARDUST_RES_PREFIXES=%_datadir +%cargo_install + +mkdir -p %buildroot%_datadir +cp -r res/* %buildroot%_datadir/ +%{cargo_license_online} > LICENSE.dependencies + + +%files +%_bindir/flatland +%_datadir/flatland/ +%license LICENSE +%license LICENSE.dependencies +%doc README.md + +%changelog +* Sun Jan 11 2026 Owen Zimmerman +- Initial commit (port from stable) diff --git a/anda/stardust/flatland/update.rhai b/anda/desktops/stardust/flatland/nightly/update.rhai similarity index 100% rename from anda/stardust/flatland/update.rhai rename to anda/desktops/stardust/flatland/nightly/update.rhai diff --git a/anda/stardust/flatland/anda.hcl b/anda/desktops/stardust/flatland/stable/anda.hcl similarity index 67% rename from anda/stardust/flatland/anda.hcl rename to anda/desktops/stardust/flatland/stable/anda.hcl index 9f0199171a..6f0745ed49 100644 --- a/anda/stardust/flatland/anda.hcl +++ b/anda/desktops/stardust/flatland/stable/anda.hcl @@ -2,7 +2,4 @@ project pkg { rpm { spec = "stardust-flatland.spec" } - labels { - nightly = 1 - } } diff --git a/anda/desktops/stardust/flatland/stable/stardust-flatland.spec b/anda/desktops/stardust/flatland/stable/stardust-flatland.spec new file mode 100644 index 0000000000..f6befdff86 --- /dev/null +++ b/anda/desktops/stardust/flatland/stable/stardust-flatland.spec @@ -0,0 +1,48 @@ +# Exclude input files from mangling +%global __brp_mangle_shebangs_exclude_from ^/usr/src/.*$ + +Name: stardust-xr-flatland +Version: 0.51.1 +Release: 1%{?dist} +Epoch: 1 +Summary: Flatland for Stardust XR +URL: https://github.com/StardustXR/flatland +Source0: %url/archive/refs/tags/%version.tar.gz +License: MIT AND (MIT OR Apache-2.0) AND Unicode-3.0 AND (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND Apache-2.0 AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND (BSD-3-Clause OR MIT OR Apache-2.0) AND BSD-3-Clause AND GPL-2.0-only AND ISC AND (MIT AND BSD-3-Clause) AND (MIT OR Apache-2.0 OR LGPL-2.1-or-later) AND (MIT OR Apache-2.0) AND (MIT OR Zlib OR Apache-2.0) AND MPL-2.0 AND Unicode-3.0 AND (Unlicense OR MIT) AND Zlib +BuildRequires: cargo cmake anda-srpm-macros cargo-rpm-macros mold + +Provides: flatland stardust-flatland +Packager: Owen Zimmerman + +%description +%summary. + +%prep +%autosetup -n flatland-%version +%cargo_prep_online + +%build + +%install +%define __cargo_common_opts %{?_smp_mflags} -Z avoid-dev-deps --locked +export STARDUST_RES_PREFIXES=%_datadir +%cargo_install + +mkdir -p %buildroot%_datadir +cp -r res/* %buildroot%_datadir/ +%{cargo_license_online} > LICENSE.dependencies + + +%files +%_bindir/flatland +%_datadir/flatland/ +%license LICENSE +%license LICENSE.dependencies +%doc README.md + +%changelog +* Sat Jan 10 2026 Owen Zimmerman +- Switch to version based + +* Sat Sep 7 2024 Owen-sz +- Package StardustXR Flatland diff --git a/anda/desktops/stardust/flatland/stable/update.rhai b/anda/desktops/stardust/flatland/stable/update.rhai new file mode 100644 index 0000000000..f74d9e16b3 --- /dev/null +++ b/anda/desktops/stardust/flatland/stable/update.rhai @@ -0,0 +1 @@ +rpm.version(gh_tag("StardustXR/flatland")); diff --git a/anda/desktops/stardust/gravity/nightly/anda.hcl b/anda/desktops/stardust/gravity/nightly/anda.hcl new file mode 100644 index 0000000000..a76c0e9147 --- /dev/null +++ b/anda/desktops/stardust/gravity/nightly/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "stardust-gravity-nightly.spec" + } + labels { + nightly = 1 + } + } diff --git a/anda/desktops/stardust/gravity/nightly/stardust-gravity-nightly.spec b/anda/desktops/stardust/gravity/nightly/stardust-gravity-nightly.spec new file mode 100644 index 0000000000..37dbcbacbd --- /dev/null +++ b/anda/desktops/stardust/gravity/nightly/stardust-gravity-nightly.spec @@ -0,0 +1,42 @@ +%global commit adca3464f3dc95b773c6c7b36b4c87d71b65f741 +%global commit_date 20260320 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +# Exclude input files from mangling +%global __brp_mangle_shebangs_exclude_from ^/usr/src/.*$ + +Name: stardust-xr-gravity-nightly +Version: 0~%{commit_date}git.%{shortcommit} +Release: 1%{?dist} +Summary: Utility to launch apps and Stardust XR clients spatially +URL: https://github.com/StardustXR/gravity +Source0: %url/archive/%commit/gravity-%commit.tar.gz +License: MIT AND (MIT OR Apache-2.0) AND Unicode-3.0 AND (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND Apache-2.0 AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND BSD-2-Clause-Patent AND (BSD-3-Clause OR MIT OR Apache-2.0) AND BSD-3-Clause AND (MIT AND BSD-3-Clause) AND (MIT OR Apache-2.0 OR LGPL-2.1-or-later) AND (MIT OR Apache-2.0) AND (MIT OR Zlib OR Apache-2.0) AND MPL-2.0 AND (Unlicense OR MIT) +BuildRequires: cargo cmake anda-srpm-macros cargo-rpm-macros mold + +Provides: gravity-nightly stardust-gravity-nightly +Conflicts: stardust-xr-gravity +Packager: Owen Zimmerman + +%description +%summary. + +%prep +%autosetup -n gravity-%commit +%cargo_prep_online + +%build + +%install +%define __cargo_common_opts %{?_smp_mflags} -Z avoid-dev-deps --locked +%cargo_install +%{cargo_license_online} > LICENSE.dependencies + +%files +%_bindir/gravity +%license LICENSE +%license LICENSE.dependencies +%doc README.md + +%changelog +* Sun Jan 11 2026 Owen Zimmerman +- Initial commit (port from stable) diff --git a/anda/stardust/gravity/update.rhai b/anda/desktops/stardust/gravity/nightly/update.rhai similarity index 98% rename from anda/stardust/gravity/update.rhai rename to anda/desktops/stardust/gravity/nightly/update.rhai index d139dccddc..00b900679a 100644 --- a/anda/stardust/gravity/update.rhai +++ b/anda/desktops/stardust/gravity/nightly/update.rhai @@ -2,4 +2,4 @@ rpm.global("commit", gh_commit("StardustXR/gravity")); if rpm.changed() { rpm.release(); rpm.global("commit_date", date()); -} \ No newline at end of file +} diff --git a/anda/stardust/gravity/anda.hcl b/anda/desktops/stardust/gravity/stable/anda.hcl similarity index 63% rename from anda/stardust/gravity/anda.hcl rename to anda/desktops/stardust/gravity/stable/anda.hcl index 58522742e6..ab8afd0480 100644 --- a/anda/stardust/gravity/anda.hcl +++ b/anda/desktops/stardust/gravity/stable/anda.hcl @@ -2,7 +2,4 @@ project pkg { rpm { spec = "stardust-gravity.spec" } - labels { - nightly = 1 - } -} \ No newline at end of file +} diff --git a/anda/desktops/stardust/gravity/stable/stardust-gravity.spec b/anda/desktops/stardust/gravity/stable/stardust-gravity.spec new file mode 100644 index 0000000000..957f13d2c3 --- /dev/null +++ b/anda/desktops/stardust/gravity/stable/stardust-gravity.spec @@ -0,0 +1,42 @@ +# Exclude input files from mangling +%global __brp_mangle_shebangs_exclude_from ^/usr/src/.*$ + +Name: stardust-xr-gravity +Version: 0.51.1 +Release: 1%{?dist} +Epoch: 1 +Summary: Utility to launch apps and Stardust XR clients spatially +URL: https://github.com/StardustXR/gravity +Source0: %url/archive/refs/tags/%version.tar.gz +License: MIT AND (MIT OR Apache-2.0) AND Unicode-3.0 AND (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND Apache-2.0 AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND BSD-2-Clause-Patent AND (BSD-3-Clause OR MIT OR Apache-2.0) AND BSD-3-Clause AND (MIT AND BSD-3-Clause) AND (MIT OR Apache-2.0 OR LGPL-2.1-or-later) AND (MIT OR Apache-2.0) AND (MIT OR Zlib OR Apache-2.0) AND MPL-2.0 AND (Unlicense OR MIT) +BuildRequires: cargo cmake anda-srpm-macros cargo-rpm-macros mold + +Provides: gravity stardust-gravity +Packager: Owen Zimmerman + +%description +%summary. + +%prep +%autosetup -n gravity-%version +%cargo_prep_online + +%build + +%install +%define __cargo_common_opts %{?_smp_mflags} -Z avoid-dev-deps --locked +%cargo_install +%{cargo_license_online} > LICENSE.dependencies + +%files +%_bindir/gravity +%license LICENSE +%license LICENSE.dependencies +%doc README.md + +%changelog +* Sat Jan 10 2026 Owen Zimmerman +- Switch to version based + +* Wed Sep 11 2024 Owen-sz +- Package StardustXR gravity diff --git a/anda/desktops/stardust/gravity/stable/update.rhai b/anda/desktops/stardust/gravity/stable/update.rhai new file mode 100644 index 0000000000..7a3f8d3240 --- /dev/null +++ b/anda/desktops/stardust/gravity/stable/update.rhai @@ -0,0 +1 @@ +rpm.version(gh_tag("StardustXR/gravity")); diff --git a/anda/stardust/magnetar/anda.hcl b/anda/desktops/stardust/magnetar/anda.hcl similarity index 100% rename from anda/stardust/magnetar/anda.hcl rename to anda/desktops/stardust/magnetar/anda.hcl diff --git a/anda/stardust/magnetar/stardust-magnetar.spec b/anda/desktops/stardust/magnetar/stardust-magnetar.spec similarity index 71% rename from anda/stardust/magnetar/stardust-magnetar.spec rename to anda/desktops/stardust/magnetar/stardust-magnetar.spec index 5df1f08241..56e3011baa 100644 --- a/anda/stardust/magnetar/stardust-magnetar.spec +++ b/anda/desktops/stardust/magnetar/stardust-magnetar.spec @@ -6,11 +6,11 @@ Name: stardust-xr-magnetar Version: %commit_date.%shortcommit -Release: 1%?dist +Release: 3%?dist Summary: Workspaces client for Stardust XR URL: https://github.com/StardustXR/magnetar Source0: %url/archive/%commit/magnetar-%commit.tar.gz -License: MIT +License: MIT AND Apache-2.0 AND (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND (BSD-3-Clause OR MIT OR Apache-2.0) AND BSD-3-Clause AND (MIT OR Apache-2.0) AND (MIT OR Zlib OR Apache-2.0) AND MPL-2.0 AND (Unlicense OR MIT) BuildRequires: cargo cmake anda-srpm-macros cargo-rpm-macros mold libudev-devel g++ libinput-devel libxkbcommon-x11-devel Provides: magnetar stardust-magnetar @@ -28,11 +28,12 @@ Packager: Owen Zimmerman %install %define __cargo_common_opts %{?_smp_mflags} -Z avoid-dev-deps --locked %cargo_install - +%{cargo_license_online} > LICENSE.dependencies %files %_bindir/magnetar %license LICENSE +%license LICENSE.dependencies %doc README.md %changelog diff --git a/anda/stardust/magnetar/update.rhai b/anda/desktops/stardust/magnetar/update.rhai similarity index 100% rename from anda/stardust/magnetar/update.rhai rename to anda/desktops/stardust/magnetar/update.rhai diff --git a/anda/desktops/stardust/non-spatial-input/nightly/anda.hcl b/anda/desktops/stardust/non-spatial-input/nightly/anda.hcl new file mode 100644 index 0000000000..69772b9c59 --- /dev/null +++ b/anda/desktops/stardust/non-spatial-input/nightly/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "stardust-non-spatial-input-nightly.spec" + } + labels { + nightly = 1 + } +} diff --git a/anda/desktops/stardust/non-spatial-input/nightly/stardust-non-spatial-input-nightly.spec b/anda/desktops/stardust/non-spatial-input/nightly/stardust-non-spatial-input-nightly.spec new file mode 100644 index 0000000000..5f58c41449 --- /dev/null +++ b/anda/desktops/stardust/non-spatial-input/nightly/stardust-non-spatial-input-nightly.spec @@ -0,0 +1,51 @@ +%global commit f14a78e4c572f24a63aa4e06629e42929f097388 +%global commit_date 20260320 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +# Exclude input files from mangling +%global __brp_mangle_shebangs_exclude_from ^/usr/src/.*$ + +Name: stardust-xr-non-spatial-input-nightly +Version: 0~%{commit_date}git.%{shortcommit} +Release: 1%{?dist} +Summary: Tools you can easily snap together to get non-spatial input into Stardust XR +URL: https://github.com/StardustXR/non-spatial-input +Source0: %url/archive/%commit/non-spatial-input-%commit.tar.gz +License: MIT AND (MIT OR Apache-2.0) AND BSD-3-Clause AND Unicode-3.0 AND (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND Apache-2.0 AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND BSD-2-Clause AND (BSD-3-Clause OR MIT OR Apache-2.0) AND BSD-3-Clause AND GPL-2.0-only AND ISC 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 (Unlicense OR MIT) AND (Zlib OR Apache-2.0 OR MIT) +BuildRequires: cargo cmake anda-srpm-macros cargo-rpm-macros mold libudev-devel g++ libinput-devel libxkbcommon-x11-devel + +Provides: non-spatial-input-nightly stardust-non-spatial-input-nightly +Conflicts: stardust-xr-non-spatial-input +Packager: Owen Zimmerman + +%description +%summary. + +%prep +%autosetup -n non-spatial-input-%commit +%cargo_prep_online + +%build + +%install +%define __cargo_common_opts %{?_smp_mflags} -Z avoid-dev-deps --locked +(cd azimuth && %cargo_install) & +(cd eclipse && %cargo_install) & +(cd manifold && %cargo_install) & +(cd simular && %cargo_install) & + +wait + +%{cargo_license_online} > LICENSE.dependencies + +%files +%_bindir/azimuth +%_bindir/eclipse +%_bindir/manifold +%_bindir/simular +%license LICENSE +%license LICENSE.dependencies +%doc README.md + +%changelog +* Sun Jan 11 2026 Owen Zimmerman +- Initial commit (port from stable) diff --git a/anda/stardust/non-spatial-input/update.rhai b/anda/desktops/stardust/non-spatial-input/nightly/update.rhai similarity index 100% rename from anda/stardust/non-spatial-input/update.rhai rename to anda/desktops/stardust/non-spatial-input/nightly/update.rhai diff --git a/anda/stardust/non-spatial-input/anda.hcl b/anda/desktops/stardust/non-spatial-input/stable/anda.hcl similarity index 68% rename from anda/stardust/non-spatial-input/anda.hcl rename to anda/desktops/stardust/non-spatial-input/stable/anda.hcl index 4d5828157f..7a6951f46a 100644 --- a/anda/stardust/non-spatial-input/anda.hcl +++ b/anda/desktops/stardust/non-spatial-input/stable/anda.hcl @@ -2,7 +2,4 @@ project pkg { rpm { spec = "stardust-non-spatial-input.spec" } - labels { - nightly = 1 - } } diff --git a/anda/stardust/non-spatial-input/stardust-non-spatial-input.spec b/anda/desktops/stardust/non-spatial-input/stable/stardust-non-spatial-input.spec similarity index 53% rename from anda/stardust/non-spatial-input/stardust-non-spatial-input.spec rename to anda/desktops/stardust/non-spatial-input/stable/stardust-non-spatial-input.spec index 5253334f22..4256a30d11 100644 --- a/anda/stardust/non-spatial-input/stardust-non-spatial-input.spec +++ b/anda/desktops/stardust/non-spatial-input/stable/stardust-non-spatial-input.spec @@ -1,16 +1,14 @@ -%global commit 5ac7f04f6876097aa8c3cf9af033d609a8a49944 -%global commit_date 20240824 -%global shortcommit %(c=%{commit}; echo ${c:0:7}) # Exclude input files from mangling %global __brp_mangle_shebangs_exclude_from ^/usr/src/.*$ Name: stardust-xr-non-spatial-input -Version: %commit_date.%shortcommit -Release: 1%?dist +Version: 0.51.1 +Release: 1%{?dist} +Epoch: 1 Summary: Tools you can easily snap together to get non-spatial input into Stardust XR URL: https://github.com/StardustXR/non-spatial-input -Source0: %url/archive/%commit/non-spatial-input-%commit.tar.gz -License: MIT +Source0: %url/archive/refs/tags/%version.tar.gz +License: MIT AND (MIT OR Apache-2.0) AND BSD-3-Clause AND Unicode-3.0 AND (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND Apache-2.0 AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND BSD-2-Clause AND (BSD-3-Clause OR MIT OR Apache-2.0) AND BSD-3-Clause AND GPL-2.0-only AND ISC 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 (Unlicense OR MIT) AND (Zlib OR Apache-2.0 OR MIT) BuildRequires: cargo cmake anda-srpm-macros cargo-rpm-macros mold libudev-devel g++ libinput-devel libxkbcommon-x11-devel Provides: non-spatial-input stardust-non-spatial-input @@ -20,7 +18,7 @@ Packager: Owen Zimmerman %summary. %prep -%autosetup -n non-spatial-input-%commit +%autosetup -n non-spatial-input-%version %cargo_prep_online %build @@ -34,14 +32,20 @@ Packager: Owen Zimmerman wait +%{cargo_license_online} > LICENSE.dependencies + %files %_bindir/azimuth %_bindir/eclipse %_bindir/manifold %_bindir/simular %license LICENSE +%license LICENSE.dependencies %doc README.md %changelog +* Sat Jan 10 2026 Owen Zimmerman +- Switch to version based + * Mon Sep 9 2024 Owen-sz - Package StardustXR non-spatial-input diff --git a/anda/desktops/stardust/non-spatial-input/stable/update.rhai b/anda/desktops/stardust/non-spatial-input/stable/update.rhai new file mode 100644 index 0000000000..4273f88736 --- /dev/null +++ b/anda/desktops/stardust/non-spatial-input/stable/update.rhai @@ -0,0 +1 @@ +rpm.version(gh_tag("StardustXR/non-spatial-input")); diff --git a/anda/desktops/stardust/protostar/nightly/anda.hcl b/anda/desktops/stardust/protostar/nightly/anda.hcl new file mode 100644 index 0000000000..1bc430c7f8 --- /dev/null +++ b/anda/desktops/stardust/protostar/nightly/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "stardust-protostar-nightly.spec" + } + labels { + nightly = 1 + } +} diff --git a/anda/desktops/stardust/protostar/nightly/stardust-protostar-nightly.spec b/anda/desktops/stardust/protostar/nightly/stardust-protostar-nightly.spec new file mode 100644 index 0000000000..68b1b6ad70 --- /dev/null +++ b/anda/desktops/stardust/protostar/nightly/stardust-protostar-nightly.spec @@ -0,0 +1,55 @@ +%global commit 4f2f5b032280ea391bf5e7af9b13ab5e0eb21340 +%global commit_date 20260425 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +# Exclude input files from mangling +%global __brp_mangle_shebangs_exclude_from ^/usr/src/.*$ + +Name: stardust-xr-protostar-nightly +Version: 0~%{commit_date}git.%{shortcommit} +Release: 1%{?dist} +Summary: Prototype application launcher for Stardust XR +URL: https://github.com/StardustXR/protostar +Source0: %url/archive/%commit/protostar-%commit.tar.gz +License: MIT AND (MIT OR Apache-2.0) AND Unicode-3.0 AND (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND Apache-2.0 AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND BSD-2-Clause-Patent AND BSD-2-Clause AND (BSD-3-Clause OR MIT OR Apache-2.0) AND BSD-3-Clause AND ISC AND (MIT AND BSD-3-Clause) AND (MIT OR Apache-2.0 OR LGPL-2.1-or-later) AND (MIT OR Apache-2.0 OR Zlib) AND MPL-2.0 AND Unicode-3.0 AND (Unlicense OR MIT) AND (Zlib OR Apache-2.0 OR MIT) AND Zlib +BuildRequires: cargo cmake anda-srpm-macros cargo-rpm-macros mold libudev-devel g++ libinput-devel libxkbcommon-x11-devel + +Provides: protostar-nightly stardust-protostar-nightly +Conflicts: stardust-xr-protostar +Packager: Owen Zimmerman + +%description +Prototype application launcher for StardustXR, providing an easy to use crate to write applications launchers. + +%prep +%autosetup -n protostar-%commit +%cargo_prep_online + +%build + +%install +%define __cargo_common_opts %{?_smp_mflags} -Z avoid-dev-deps --locked +export STARDUST_RES_PREFIXES=%_datadir +(cd app_grid && %cargo_install) & +(cd hexagon_launcher && %cargo_install) & +(cd single && %cargo_install) & +(cd sirius && %cargo_install) & + +wait + +mkdir -p %buildroot%_datadir +cp -r res/* %buildroot%_datadir/ + +%{cargo_license_online} > LICENSE.dependencies + +%files +%doc README.md +%license LICENSE +%license LICENSE.dependencies +%_bindir/hexagon_launcher +%_bindir/single +%_bindir/sirius +%_datadir/protostar/ + +%changelog +* Sun Jan 11 2026 Owen Zimmerman +- Initial commit (port from stable) diff --git a/anda/stardust/protostar/update.rhai b/anda/desktops/stardust/protostar/nightly/update.rhai similarity index 100% rename from anda/stardust/protostar/update.rhai rename to anda/desktops/stardust/protostar/nightly/update.rhai diff --git a/anda/stardust/protostar/anda.hcl b/anda/desktops/stardust/protostar/stable/anda.hcl similarity index 65% rename from anda/stardust/protostar/anda.hcl rename to anda/desktops/stardust/protostar/stable/anda.hcl index ad23b47645..8ec6b361dd 100644 --- a/anda/stardust/protostar/anda.hcl +++ b/anda/desktops/stardust/protostar/stable/anda.hcl @@ -2,7 +2,4 @@ project pkg { rpm { spec = "stardust-protostar.spec" } - labels { - nightly = 1 - } } diff --git a/anda/stardust/protostar/stardust-protostar.spec b/anda/desktops/stardust/protostar/stable/stardust-protostar.spec similarity index 57% rename from anda/stardust/protostar/stardust-protostar.spec rename to anda/desktops/stardust/protostar/stable/stardust-protostar.spec index 92bb200db5..726945aa74 100644 --- a/anda/stardust/protostar/stardust-protostar.spec +++ b/anda/desktops/stardust/protostar/stable/stardust-protostar.spec @@ -1,16 +1,14 @@ -%global commit 9b73eb1e128b49a6d40a27a4cde7715d8cbd2674 -%global commit_date 20241230 -%global shortcommit %(c=%{commit}; echo ${c:0:7}) # Exclude input files from mangling %global __brp_mangle_shebangs_exclude_from ^/usr/src/.*$ Name: stardust-xr-protostar -Version: %commit_date.%shortcommit -Release: 1%?dist +Version: 0.51.1 +Release: 1%{?dist} +Epoch: 1 Summary: Prototype application launcher for Stardust XR URL: https://github.com/StardustXR/protostar -Source0: %url/archive/%commit/protostar-%commit.tar.gz -License: MIT +Source0: %url/archive/refs/tags/%version.tar.gz +License: MIT AND (MIT OR Apache-2.0) AND Unicode-3.0 AND (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND Apache-2.0 AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND BSD-2-Clause-Patent AND BSD-2-Clause AND (BSD-3-Clause OR MIT OR Apache-2.0) AND BSD-3-Clause AND ISC AND (MIT AND BSD-3-Clause) AND (MIT OR Apache-2.0 OR LGPL-2.1-or-later) AND (MIT OR Apache-2.0 OR Zlib) AND MPL-2.0 AND Unicode-3.0 AND (Unlicense OR MIT) AND (Zlib OR Apache-2.0 OR MIT) AND Zlib BuildRequires: cargo cmake anda-srpm-macros cargo-rpm-macros mold libudev-devel g++ libinput-devel libxkbcommon-x11-devel Provides: protostar stardust-protostar @@ -20,7 +18,7 @@ Packager: Owen Zimmerman Prototype application launcher for StardustXR, providing an easy to use crate to write applications launchers. %prep -%autosetup -n protostar-%commit +%autosetup -n protostar-%version %cargo_prep_online %build @@ -38,15 +36,20 @@ wait mkdir -p %buildroot%_datadir cp -r res/* %buildroot%_datadir/ +%{cargo_license_online} > LICENSE.dependencies + %files %doc README.md %license LICENSE -%_bindir/app_grid +%license LICENSE.dependencies %_bindir/hexagon_launcher %_bindir/single %_bindir/sirius %_datadir/protostar/ %changelog +* Sat Jan 10 2026 Owen Zimmerman +- Switch to version based + * Tue Sep 10 2024 Owen-sz - Package StardustXR protostar diff --git a/anda/desktops/stardust/protostar/stable/update.rhai b/anda/desktops/stardust/protostar/stable/update.rhai new file mode 100644 index 0000000000..952a8ea260 --- /dev/null +++ b/anda/desktops/stardust/protostar/stable/update.rhai @@ -0,0 +1 @@ +rpm.version(gh_tag("StardustXR/protostar")); diff --git a/anda/desktops/stardust/server/nightly/anda.hcl b/anda/desktops/stardust/server/nightly/anda.hcl new file mode 100644 index 0000000000..58fe8b14c2 --- /dev/null +++ b/anda/desktops/stardust/server/nightly/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + rpm { + spec = "stardust-server-nightly.spec" + } + labels { + nightly = 1 + large = 1 + } +} diff --git a/anda/desktops/stardust/server/nightly/stardust-server-nightly.spec b/anda/desktops/stardust/server/nightly/stardust-server-nightly.spec new file mode 100644 index 0000000000..fd37192095 --- /dev/null +++ b/anda/desktops/stardust/server/nightly/stardust-server-nightly.spec @@ -0,0 +1,55 @@ +%global commit 08092c3376e809190b349083497fb8c96c637c82 +%global commit_date 20260429 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +# Exclude input files from mangling +%global __brp_mangle_shebangs_exclude_from ^/usr/src/.*$ + +Name: stardust-xr-server-nightly +Version: 0~%{commit_date}git.%{shortcommit} +Release: 1%{?dist} +Summary: Usable Linux display server that reinvents human-computer interaction for all kinds of XR +URL: https://github.com/StardustXR/server +Source0: %url/archive/%commit/server-%commit.tar.gz +License: GPL-2.0-only AND (Apache-2.0 OR MIT) AND BSD-3-Clause AND (MIT OR Apache-2.0) AND Unicode-3.0 AND (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 AND MIT) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR GPL-2.0-only) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND Apache-2.0 AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND (BSD-2-Clause OR MIT OR Apache-2.0) AND BSD-2-Clause AND (BSD-3-Clause OR Apache-2.0) AND (BSD-3-Clause OR MIT OR Apache-2.0) AND BSD-3-Clause AND (CC0-1.0 OR Apache-2.0 OR Apache-2.0 WITH LLVM-exception) AND (CC0-1.0 OR MIT-0 OR Apache-2.0) AND CC0-1.0 GPL-2.0-only AND ISC AND (MIT AND BSD-3-Clause) AND (MIT OR Apache-2.0 OR LGPL-2.1-or-later) AND (MIT OR Apache-2.0 OR Zlib) AND (MIT OR Zlib OR Apache-2.0) AND MIT-0 AND MPL-2.0 AND (Unlicense OR MIT) AND Zlib AND (MIT OR Apache-2.0) AND (Zlib OR Apache-2.0 OR MIT) + +BuildRequires: cargo +BuildRequires: cmake +BuildRequires: gcc-c++ +BuildRequires: mold +BuildRequires: anda-srpm-macros +BuildRequires: cargo-rpm-macros + +BuildRequires: fontconfig-devel +BuildRequires: glibc +BuildRequires: openxr-devel +BuildRequires: alsa-lib-devel +BuildRequires: wayland-devel + +Provides: stardust-server-nightly +Conflicts: stardust-xr-server + +Packager: Owen Zimmerman + +%description +Usable Linux display server that reinvents human-computer interaction for all kinds of XR, from putting 2D/XR apps into various 3D shells for varying uses to SDF-based interaction. + +%prep +%autosetup -n server-%commit +%cargo_prep_online + +%build +%cargo_build + +%install +install -Dm755 target/rpm/stardust-xr-server %{buildroot}%{_bindir}/stardust-xr-server +%{cargo_license_online} > LICENSE.dependencies + +%files +%{_bindir}/stardust-xr-server +%license LICENSE +%license LICENSE.dependencies +%doc README.md + +%changelog +* Sun Jan 11 2026 Owen Zimmerman +- Initial commit (port from stable) diff --git a/anda/stardust/server/update.rhai b/anda/desktops/stardust/server/nightly/update.rhai similarity index 100% rename from anda/stardust/server/update.rhai rename to anda/desktops/stardust/server/nightly/update.rhai diff --git a/anda/stardust/server/anda.hcl b/anda/desktops/stardust/server/stable/anda.hcl similarity index 81% rename from anda/stardust/server/anda.hcl rename to anda/desktops/stardust/server/stable/anda.hcl index 2da1dd957b..626fcb7281 100644 --- a/anda/stardust/server/anda.hcl +++ b/anda/desktops/stardust/server/stable/anda.hcl @@ -3,6 +3,6 @@ project pkg { spec = "stardust-server.spec" } labels { - nightly = 1 + large = 1 } } diff --git a/anda/desktops/stardust/server/stable/stardust-server.spec b/anda/desktops/stardust/server/stable/stardust-server.spec new file mode 100644 index 0000000000..40df6f0957 --- /dev/null +++ b/anda/desktops/stardust/server/stable/stardust-server.spec @@ -0,0 +1,58 @@ +# Exclude input files from mangling +%global __brp_mangle_shebangs_exclude_from ^/usr/src/.*$ + +Name: stardust-xr-server +Version: 0.51.1 +Release: 1%{?dist} +Epoch: 1 +Summary: Usable Linux display server that reinvents human-computer interaction for all kinds of XR +URL: https://github.com/StardustXR/server +Source0: %url/archive/refs/tags/%version.tar.gz +License: GPL-2.0-only AND (Apache-2.0 OR MIT) AND BSD-3-Clause AND (MIT OR Apache-2.0) AND Unicode-3.0 AND (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 AND MIT) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR GPL-2.0-only) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND Apache-2.0 AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND (BSD-2-Clause OR MIT OR Apache-2.0) AND BSD-2-Clause AND (BSD-3-Clause OR Apache-2.0) AND (BSD-3-Clause OR MIT OR Apache-2.0) AND BSD-3-Clause AND (CC0-1.0 OR Apache-2.0 OR Apache-2.0 WITH LLVM-exception) AND (CC0-1.0 OR MIT-0 OR Apache-2.0) AND CC0-1.0 GPL-2.0-only AND ISC AND (MIT AND BSD-3-Clause) AND (MIT OR Apache-2.0 OR LGPL-2.1-or-later) AND (MIT OR Apache-2.0 OR Zlib) AND (MIT OR Zlib OR Apache-2.0) AND MIT-0 AND MPL-2.0 AND (Unlicense OR MIT) AND Zlib AND (MIT OR Apache-2.0) AND (Zlib OR Apache-2.0 OR MIT) + +BuildRequires: cargo +BuildRequires: cmake +BuildRequires: gcc-c++ +BuildRequires: mold +BuildRequires: anda-srpm-macros +BuildRequires: cargo-rpm-macros + +BuildRequires: fontconfig-devel +BuildRequires: glibc +BuildRequires: openxr-devel +BuildRequires: alsa-lib-devel +BuildRequires: wayland-devel + +Provides: stardust-server + +Packager: Owen Zimmerman + +%description +Usable Linux display server that reinvents human-computer interaction for all kinds of XR, from putting 2D/XR apps into various 3D shells for varying uses to SDF-based interaction. + +%prep +%autosetup -n server-%version +%cargo_prep_online + +%build +%cargo_build + +%install +install -Dm755 target/rpm/stardust-xr-server %{buildroot}%{_bindir}/stardust-xr-server +%{cargo_license_online} > LICENSE.dependencies + +%files +%{_bindir}/stardust-xr-server +%license LICENSE +%license LICENSE.dependencies +%doc README.md + +%changelog +* Sat Jan 10 2026 Owen Zimmerman +- Switch to version based + +* Tue Dec 02 2025 Owen Zimmerman +- Update spec to reflect upstream changes, add LICENSE.dependencies + +* Sat Sep 14 2024 Owen-sz +- Package StardustXR Server diff --git a/anda/desktops/stardust/server/stable/update.rhai b/anda/desktops/stardust/server/stable/update.rhai new file mode 100644 index 0000000000..7f16117e80 --- /dev/null +++ b/anda/desktops/stardust/server/stable/update.rhai @@ -0,0 +1 @@ +rpm.version(gh_tag("StardustXR/server")); diff --git a/anda/desktops/stardust/solar-sailer/nightly/anda.hcl b/anda/desktops/stardust/solar-sailer/nightly/anda.hcl new file mode 100644 index 0000000000..1af8e28476 --- /dev/null +++ b/anda/desktops/stardust/solar-sailer/nightly/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "stardust-solar-sailer-nightly.spec" + } + labels { + nightly = 1 + } +} diff --git a/anda/desktops/stardust/solar-sailer/nightly/stardust-solar-sailer-nightly.spec b/anda/desktops/stardust/solar-sailer/nightly/stardust-solar-sailer-nightly.spec new file mode 100644 index 0000000000..a3e7260c3b --- /dev/null +++ b/anda/desktops/stardust/solar-sailer/nightly/stardust-solar-sailer-nightly.spec @@ -0,0 +1,46 @@ +%global commit e0b27dda48f204883c52ecb3e1f436e31200f6e5 +%global commit_date 20260320 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) + +# Exclude input files from mangling +%global __brp_mangle_shebangs_exclude_from ^/usr/src/.*$ + +Name: stardust-xr-solar-sailer-nightly +Version: 0~%{commit_date}git.%{shortcommit} +Release: 1%{?dist} +Summary: Glide through space! This play space mover allows you to fly by dragging the space with momentum! +URL: https://github.com/StardustXR/solar-sailer +Source0: %url/archive/%commit.tar.gz +License: MIT AND (MIT OR Apache-2.0) AND Unicode-3.0 AND (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND Apache-2.0 AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND (BSD-3-Clause OR MIT OR Apache-2.0) AND BSD-3-Clause AND (MIT AND BSD-3-Clause) AND (MIT OR Apache-2.0 OR LGPL-2.1-or-later) AND (MIT OR Apache-2.0) AND (MIT OR Zlib OR Apache-2.0) AND MPL-2.0 AND Unicode-3.0 AND (Unlicense OR MIT) +BuildRequires: cargo anda-srpm-macros cargo-rpm-macros mold python3-devel + +Provides: solar-sailer-nightly stardust-solar-sailer-nightly +Conflicts: stardust-xr-solar-sailer +Packager: Owen Zimmerman + +%description +%summary + +%prep +%autosetup -n solar-sailer-%commit +%cargo_prep_online + +%build +%cargo_build + +%install +mkdir -p %{buildroot}%{_datadir}/%{name}/solar_sailer +%cargo_install +install -Dm644 res/solar_sailer/move_icon.glb %{buildroot}%{_datadir}/%{name}/solar_sailer/move_icon.glb +%{cargo_license_online} > LICENSE.dependencies + +%files +%doc README.md +%license LICENSE +%license LICENSE.dependencies +%_bindir/solar-sailer +%{_datadir}/%{name}/solar_sailer/move_icon.glb + +%changelog +* Sun Jan 11 2026 Owen Zimmerman +- Initial commit (port from stable) diff --git a/anda/desktops/stardust/solar-sailer/nightly/update.rhai b/anda/desktops/stardust/solar-sailer/nightly/update.rhai new file mode 100644 index 0000000000..9f0a8a6e6b --- /dev/null +++ b/anda/desktops/stardust/solar-sailer/nightly/update.rhai @@ -0,0 +1,5 @@ +rpm.global("commit", gh_commit("StardustXR/solar-sailer")); +if rpm.changed() { + rpm.release(); + rpm.global("commit_date", date()); +} diff --git a/anda/desktops/stardust/solar-sailer/stable/anda.hcl b/anda/desktops/stardust/solar-sailer/stable/anda.hcl new file mode 100644 index 0000000000..74c19c817d --- /dev/null +++ b/anda/desktops/stardust/solar-sailer/stable/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "stardust-solar-sailer.spec" + } +} diff --git a/anda/desktops/stardust/solar-sailer/stable/stardust-solar-sailer.spec b/anda/desktops/stardust/solar-sailer/stable/stardust-solar-sailer.spec new file mode 100644 index 0000000000..5d20e0584a --- /dev/null +++ b/anda/desktops/stardust/solar-sailer/stable/stardust-solar-sailer.spec @@ -0,0 +1,41 @@ +# Exclude input files from mangling +%global __brp_mangle_shebangs_exclude_from ^/usr/src/.*$ + +Name: stardust-xr-solar-sailer +Version: 0.51.1 +Release: 1%{?dist} +Summary: Glide through space! This play space mover allows you to fly by dragging the space with momentum! +URL: https://github.com/StardustXR/solar-sailer +Source0: %url/archive/refs/tags/%version.tar.gz +License: MIT AND (MIT OR Apache-2.0) AND Unicode-3.0 AND (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND Apache-2.0 AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND (BSD-3-Clause OR MIT OR Apache-2.0) AND BSD-3-Clause AND (MIT AND BSD-3-Clause) AND (MIT OR Apache-2.0 OR LGPL-2.1-or-later) AND (MIT OR Apache-2.0) AND (MIT OR Zlib OR Apache-2.0) AND MPL-2.0 AND Unicode-3.0 AND (Unlicense OR MIT) +BuildRequires: cargo anda-srpm-macros cargo-rpm-macros mold python3-devel + +Provides: solar-sailer stardust-solar-sailer +Packager: Owen Zimmerman + +%description +%summary + +%prep +%autosetup -n solar-sailer-%version +%cargo_prep_online + +%build +%cargo_build + +%install +mkdir -p %{buildroot}%{_datadir}/%{name}/solar_sailer +%cargo_install +install -Dm644 res/solar_sailer/move_icon.glb %{buildroot}%{_datadir}/%{name}/solar_sailer/move_icon.glb +%{cargo_license_online} > LICENSE.dependencies + +%files +%doc README.md +%license LICENSE +%license LICENSE.dependencies +%_bindir/solar-sailer +%{_datadir}/%{name}/solar_sailer/move_icon.glb + +%changelog +* Sat Jan 03 2026 Owen Zimmerman +- Initial commit diff --git a/anda/desktops/stardust/solar-sailer/stable/update.rhai b/anda/desktops/stardust/solar-sailer/stable/update.rhai new file mode 100644 index 0000000000..e68539b6aa --- /dev/null +++ b/anda/desktops/stardust/solar-sailer/stable/update.rhai @@ -0,0 +1 @@ +rpm.version(gh_tag("StardustXR/solar-sailer")); diff --git a/anda/desktops/stardust/telescope/nightly/anda.hcl b/anda/desktops/stardust/telescope/nightly/anda.hcl new file mode 100644 index 0000000000..5ef65d9402 --- /dev/null +++ b/anda/desktops/stardust/telescope/nightly/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "stardust-telescope-nightly.spec" + } + labels { + nightly = 1 + } +} diff --git a/anda/desktops/stardust/telescope/nightly/libexec.patch b/anda/desktops/stardust/telescope/nightly/libexec.patch new file mode 100644 index 0000000000..27ebc95c44 --- /dev/null +++ b/anda/desktops/stardust/telescope/nightly/libexec.patch @@ -0,0 +1,9 @@ +diff --git a/scripts/telescope b/scripts/telescope +index bad4436..50f7983 100644 +--- a/scripts/telescope ++++ b/scripts/telescope +@@ -1,3 +1,3 @@ + #!/bin/bash + +-stardust-xr-server -o 6 -e "$(which _telescope_startup)" "$@" ++stardust-xr-server -o 6 -e "/usr/libexec/telescope_startup" "$@" diff --git a/anda/desktops/stardust/telescope/nightly/stardust-telescope-nightly.spec b/anda/desktops/stardust/telescope/nightly/stardust-telescope-nightly.spec new file mode 100644 index 0000000000..6b47023a04 --- /dev/null +++ b/anda/desktops/stardust/telescope/nightly/stardust-telescope-nightly.spec @@ -0,0 +1,58 @@ +%global commit 7cc4ad218557200e7cef53da48dc62ff9d0571ca +%global commit_date 20260318 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) + +Name: stardust-xr-telescope-nightly +Version: 0~%{commit_date}git.%{shortcommit} +Release: 1%{?dist} +Summary: See the stars! Easy stardust setups to run on your computer +License: MIT +URL: https://github.com/StardustXR/telescope +Source0: %url/archive/%commit.tar.gz +Patch0: libexec.patch + +Requires: bash +Requires: xwayland-satellite +Requires: stardust-xr-armillary-nightly +Requires: stardust-xr-atmosphere-nightly +Requires: stardust-xr-black-hole-nightly +Requires: stardust-xr-comet-nightly +Requires: stardust-xr-flatland-nightly +Requires: stardust-xr-gravity-nightly +Requires: stardust-xr-magnetar +Requires: stardust-xr-non-spatial-input-nightly +Requires: stardust-xr-protostar-nightly +Requires: stardust-xr-server-nightly +Requires: stardust-xr-solar-sailer-nightly + +BuildArch: noarch +Provides: telescope-nightly stardust-telescope-nightly +Conflicts: stardust-xr-telescope + +Packager: Owen Zimmerman + +%description +See the stars! Easy stardust setups to run on your computer. + +%prep +%autosetup -n telescope-%commit -p1 + +%build + +%install +install -Dm755 scripts/telescope %buildroot%_bindir/telescope +install -Dm755 scripts/_telescope_startup %buildroot%_libexecdir/telescope_startup +install -Dm644 org.stardustxr.Telescope.desktop %buildroot%_appsdir/org.stardustxr.Telescope.desktop +install -Dm644 org.stardustxr.Telescope.png %buildroot%_hicolordir/512x512/apps/org.stardustxr.Telescope.png + +%files +%doc README.md +%license LICENSE +%_bindir/telescope +%_libexecdir/telescope_startup +%_appsdir/org.stardustxr.Telescope.desktop +%_hicolordir/512x512/apps/org.stardustxr.Telescope.png + +%changelog +* Sun Jan 11 2026 Owen Zimmerman +- Initial commit (port from stable) diff --git a/anda/stardust/telescope/update.rhai b/anda/desktops/stardust/telescope/nightly/update.rhai similarity index 100% rename from anda/stardust/telescope/update.rhai rename to anda/desktops/stardust/telescope/nightly/update.rhai diff --git a/anda/stardust/telescope/anda.hcl b/anda/desktops/stardust/telescope/stable/anda.hcl similarity index 71% rename from anda/stardust/telescope/anda.hcl rename to anda/desktops/stardust/telescope/stable/anda.hcl index 7448b15f3f..9cbbb2e14d 100644 --- a/anda/stardust/telescope/anda.hcl +++ b/anda/desktops/stardust/telescope/stable/anda.hcl @@ -3,7 +3,4 @@ project pkg { rpm { spec = "stardust-telescope.spec" } - labels { - nightly = 1 - } } diff --git a/anda/desktops/stardust/telescope/stable/libexec.patch b/anda/desktops/stardust/telescope/stable/libexec.patch new file mode 100644 index 0000000000..27ebc95c44 --- /dev/null +++ b/anda/desktops/stardust/telescope/stable/libexec.patch @@ -0,0 +1,9 @@ +diff --git a/scripts/telescope b/scripts/telescope +index bad4436..50f7983 100644 +--- a/scripts/telescope ++++ b/scripts/telescope +@@ -1,3 +1,3 @@ + #!/bin/bash + +-stardust-xr-server -o 6 -e "$(which _telescope_startup)" "$@" ++stardust-xr-server -o 6 -e "/usr/libexec/telescope_startup" "$@" diff --git a/anda/desktops/stardust/telescope/stable/stardust-telescope.spec b/anda/desktops/stardust/telescope/stable/stardust-telescope.spec new file mode 100644 index 0000000000..d68b57651e --- /dev/null +++ b/anda/desktops/stardust/telescope/stable/stardust-telescope.spec @@ -0,0 +1,54 @@ +Name: stardust-xr-telescope +Version: 0.51.0 +Release: 1%{?dist} +Epoch: 1 +Summary: See the stars! Easy stardust setups to run on your computer +License: MIT +URL: https://github.com/StardustXR/telescope +Source0: %url/archive/refs/tags/%version.tar.gz +Patch0: libexec.patch + +Requires: bash +Requires: xwayland-satellite +Requires: stardust-xr-armillary +Requires: stardust-xr-atmosphere +Requires: stardust-xr-black-hole +Requires: stardust-xr-comet +Requires: stardust-xr-flatland +Requires: stardust-xr-gravity +Requires: stardust-xr-magnetar +Requires: stardust-xr-non-spatial-input +Requires: stardust-xr-protostar +Requires: stardust-xr-server +Requires: stardust-xr-solar-sailer + +BuildArch: noarch +Provides: telescope stardust-telescope + +Packager: Owen Zimmerman + +%description +See the stars! Easy stardust setups to run on your computer. + +%prep +%autosetup -n telescope-%version -p1 + +%build + +%install +install -Dm755 scripts/telescope %buildroot%_bindir/telescope +install -Dm755 scripts/_telescope_startup %buildroot%_libexecdir/telescope_startup +install -Dm644 org.stardustxr.Telescope.desktop %buildroot%_appsdir/org.stardustxr.Telescope.desktop +install -Dm644 org.stardustxr.Telescope.png %buildroot%_hicolordir/512x512/apps/org.stardustxr.Telescope.png + +%files +%doc README.md +%license LICENSE +%_bindir/telescope +%_libexecdir/telescope_startup +%_appsdir/org.stardustxr.Telescope.desktop +%_hicolordir/512x512/apps/org.stardustxr.Telescope.png + +%changelog +* Sat Jan 10 2026 Owen Zimmerman +- Switch to version based diff --git a/anda/desktops/stardust/telescope/stable/update.rhai b/anda/desktops/stardust/telescope/stable/update.rhai new file mode 100644 index 0000000000..0eca1dfedf --- /dev/null +++ b/anda/desktops/stardust/telescope/stable/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("StardustXR/telescope")); diff --git a/anda/desktops/sway/nwg-look/anda.hcl b/anda/desktops/sway/nwg-look/anda.hcl new file mode 100644 index 0000000000..6a10bf106a --- /dev/null +++ b/anda/desktops/sway/nwg-look/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "nwg-look.spec" + } +} diff --git a/anda/desktops/sway/nwg-look/nwg-look.spec b/anda/desktops/sway/nwg-look/nwg-look.spec new file mode 100644 index 0000000000..bb7365db4a --- /dev/null +++ b/anda/desktops/sway/nwg-look/nwg-look.spec @@ -0,0 +1,55 @@ +%dnl %define debug_package %{nil} + +%global goipath github.com/nwg-piotr/nwg-look +Version: 1.1.0 + +%gometa -f + +Name: nwg-look +Release: 1%{?dist} +Summary: GTK3 settings editor adapted to work in the wlroots environment + +License: MIT +URL: https://github.com/nwg-piotr/nwg-look +Source0: https://github.com/nwg-piotr/nwg-look/archive/refs/tags/v%version.tar.gz + +Packager: Owen Zimmerman + +BuildRequires: golang +BuildRequires: gcc +BuildRequires: go-rpm-macros +BuildRequires: make +BuildRequires: pkgconfig(gio-2.0) +BuildRequires: pkgconfig(glib-2.0) +BuildRequires: pkgconfig(gobject-2.0) +BuildRequires: pkgconfig(gdk-3.0) +BuildRequires: pkgconfig(cairo) +BuildRequires: pkgconfig(cairo-gobject) +Requires: glibc + +%description +%{summary}. + +%gopkg + +%prep +%autosetup -n %{name}-%{version} + +%build +%make_build +%make_build build + +%install +%make_install + +%files +%license LICENSE +%doc README.md +%{_bindir}/%{name} +%{_appsdir}/%{name}.desktop +%{_datadir}/%{name}/ +%{_datadir}/pixmaps/%{name}.svg + +%changelog +* Fri Dec 05 2025 Owen Zimmerman +- Initial commit diff --git a/anda/desktops/sway/nwg-look/update.rhai b/anda/desktops/sway/nwg-look/update.rhai new file mode 100644 index 0000000000..e58beeeb92 --- /dev/null +++ b/anda/desktops/sway/nwg-look/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("nwg-piotr/nwg-look")); diff --git a/anda/desktops/sway/swayosd/anda.hcl b/anda/desktops/sway/swayosd/anda.hcl new file mode 100644 index 0000000000..f12f991705 --- /dev/null +++ b/anda/desktops/sway/swayosd/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "swayosd.spec" + } + labels { + mock = 1 + } +} diff --git a/anda/desktops/sway/swayosd/swayosd.spec b/anda/desktops/sway/swayosd/swayosd.spec new file mode 100644 index 0000000000..76cf36b4b1 --- /dev/null +++ b/anda/desktops/sway/swayosd/swayosd.spec @@ -0,0 +1,85 @@ +Name: SwayOSD +Version: 0.3.1 +Release: 1%{?dist} +Summary: A GTK based on screen display for keyboard shortcuts like caps-lock and volume +License: GPL-3.0-only +URL: https://github.com/ErikReider/SwayOSD +Source0: %{url}/archive/refs/tags/v%{version}.tar.gz + +Packager: Owen Zimmerman + +BuildRequires: meson +BuildRequires: ninja-build +BuildRequires: gtk3-devel +BuildRequires: gcc +BuildRequires: systemd-rpm-macros +BuildRequires: rust +BuildRequires: cargo +BuildRequires: sassc +BuildRequires: libevdev-devel +BuildRequires: gtk4-devel +BuildRequires: gtk4-layer-shell-devel +BuildRequires: pulseaudio-libs-devel +BuildRequires: libinput-devel +BuildRequires: louvre + +Requires: cairo +Requires: gtk4 +Requires: cairo +Requires: dbus +Requires: gdk-pixbuf2 +Requires: glib2 +Requires: glibc +Requires: gtk4-layer-shell +Requires: libevdev +Requires: libinput +Requires: pulseaudio-libs +Requires: pango +Requires: systemd-libs + +Provides: swayosd + +%description +%{summary}. + +%prep +%autosetup -n SwayOSD-%{version} + +%build +%meson +%meson_build + +%install +%meson_install + +%post +%systemd_post swayosd-libinput-backend.service +%systemd_post org.erikreider.swayosd.service + +%preun +%systemd_preun swayosd-libinput-backend.service +%systemd_preun org.erikreider.swayosd.service + +%postun +%systemd_postun_with_restart swayosd-libinput-backend.service +%systemd_postun_with_restart org.erikreider.swayosd.service + +%files +%doc README.md +%license LICENSE +%{_bindir}/swayosd-client +%{_bindir}/swayosd-server +%{_bindir}/swayosd-libinput-backend +%config(noreplace) %{_sysconfdir}/xdg/swayosd/backend.toml +%config(noreplace) %{_sysconfdir}/xdg/swayosd/config.toml +%config(noreplace) %{_sysconfdir}/xdg/swayosd/style.css +%{_usr}/lib64/systemd/system/swayosd-libinput-backend.service +%{_usr}/lib64/udev/rules.d/99-swayosd.rules +%{_datadir}/dbus-1/system-services/org.erikreider.swayosd.service +%{_datadir}/dbus-1/system.d/org.erikreider.swayosd.conf +%{_datadir}/polkit-1/actions/org.erikreider.swayosd.policy +%{_datadir}/polkit-1/rules.d/org.erikreider.swayosd.rules + +%changelog +* Thu Nov 13 2025 Owen Zimmerman +- Initial commit diff --git a/anda/desktops/sway/swayosd/update.rhai b/anda/desktops/sway/swayosd/update.rhai new file mode 100644 index 0000000000..a8632d0fb6 --- /dev/null +++ b/anda/desktops/sway/swayosd/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("ErikReider/SwayOSD")); diff --git a/anda/desktops/swayfx/swayfx.spec b/anda/desktops/swayfx/swayfx.spec index 06f88fbff5..1fb8767b37 100644 --- a/anda/desktops/swayfx/swayfx.spec +++ b/anda/desktops/swayfx/swayfx.spec @@ -1,8 +1,8 @@ -%global swayVersion 1.10.1 +%global swayVersion 1.11 Name: swayfx Version: 0.5.2 -Release: 1%?dist +Release: 2%?dist Summary: SwayFX: Sway, but with eye candy! URL: https://github.com/WillPower3309/swayfx diff --git a/anda/desktops/swayfx/update.rhai b/anda/desktops/swayfx/update.rhai index 86957d3c78..21a9ca66e5 100644 --- a/anda/desktops/swayfx/update.rhai +++ b/anda/desktops/swayfx/update.rhai @@ -1 +1,3 @@ -rpm.version(gh("willPower3309/swayfx")); \ No newline at end of file +rpm.version(gh("willPower3309/swayfx")); + +rpm.global("swayVersion", gh("swaywm/sway")); diff --git a/anda/desktops/waylands/clipse/golang-github-savedra1-clipse.spec b/anda/desktops/waylands/clipse/golang-github-savedra1-clipse.spec index 5df0deb132..22de8f1237 100644 --- a/anda/desktops/waylands/clipse/golang-github-savedra1-clipse.spec +++ b/anda/desktops/waylands/clipse/golang-github-savedra1-clipse.spec @@ -12,7 +12,7 @@ # https://github.com/savedra1/clipse %global goipath github.com/savedra1/clipse -Version: 1.1.0 +Version: 1.2.1 %gometa -f @@ -24,7 +24,7 @@ Configurable TUI clipboard manager for Unix.} resources/test_data/top_secret_credentials.txt Name: clipse -Release: 3%?dist +Release: 1%?dist Summary: Configurable TUI clipboard manager for Unix Provides: golang-github-savedra1-clipse = %evr Obsoletes: golang-github-savedra1-clipse < 1.1.0-2 diff --git a/anda/desktops/waylands/eww/eww.spec b/anda/desktops/waylands/eww/eww.spec index 1a8d9634df..6928e6078b 100644 --- a/anda/desktops/waylands/eww/eww.spec +++ b/anda/desktops/waylands/eww/eww.spec @@ -1,13 +1,13 @@ # Generated by rust2rpm 27 -%global commit fddb4a09b107237819e661151e007b99b5cab36d +%global commit 865cf631d5bbb5f9fccc99b3f4cc80b9eeada18c %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commit_date 20250630 +%global commit_date 20260305 %global ver v0.6.0 %bcond check 0 Name: eww Version: %ver^%commit_date.git~%shortcommit -Release: 1%?dist +Release: 1%{?dist} Summary: Widgets for everyone! SourceLicense: MIT diff --git a/anda/desktops/waylands/hyprgraphics/update.rhai b/anda/desktops/waylands/hyprgraphics/update.rhai deleted file mode 100644 index 6a9cc301c7..0000000000 --- a/anda/desktops/waylands/hyprgraphics/update.rhai +++ /dev/null @@ -1,5 +0,0 @@ -rpm.global("commit", gh_commit("hyprwm/hyprgraphics")); -if rpm.changed() { - rpm.global("ver", gh_rawfile("hyprwm/hyprgraphics", "main", "VERSION")); - rpm.global("commit_date", date()); -} diff --git a/anda/desktops/waylands/hyprlang/update.rhai b/anda/desktops/waylands/hyprlang/update.rhai deleted file mode 100644 index bc8ee477cb..0000000000 --- a/anda/desktops/waylands/hyprlang/update.rhai +++ /dev/null @@ -1,5 +0,0 @@ -rpm.global("commit", gh_commit("hyprwm/hyprlang")); -if rpm.changed() { - rpm.global("ver", gh_rawfile("hyprwm/hyprlang", "main", "VERSION")); - rpm.global("commit_date", date()); -} diff --git a/anda/desktops/waylands/hyprlock/update.rhai b/anda/desktops/waylands/hyprlock/update.rhai deleted file mode 100644 index 05b9c25c0c..0000000000 --- a/anda/desktops/waylands/hyprlock/update.rhai +++ /dev/null @@ -1,3 +0,0 @@ -let v = gh_rawfile("hyprwm/hyprlock", "main", "VERSION"); -v.trim(); -rpm.version(v); diff --git a/anda/desktops/waylands/matugen/rust-matugen.spec b/anda/desktops/waylands/matugen/rust-matugen.spec index d662ac89c4..b5221cff5c 100644 --- a/anda/desktops/waylands/matugen/rust-matugen.spec +++ b/anda/desktops/waylands/matugen/rust-matugen.spec @@ -2,13 +2,16 @@ %global crate matugen Name: rust-matugen -Version: 3.0.0 -Release: 1%?dist +Version: 4.1.0 +Release: 1%{?dist} Summary: Material you color generation tool with templates -License: GPL-2.0 +License: GPL-2.0-or-later URL: https://crates.io/crates/matugen Source: %{crates_source} +Source1: https://raw.githubusercontent.com/InioX/matugen/refs/tags/v%version/README.md +Source2: https://raw.githubusercontent.com/InioX/matugen/refs/tags/v%version/CHANGELOG.md +Source3: https://raw.githubusercontent.com/InioX/matugen/refs/tags/v%version/LICENSE BuildRequires: cargo-rpm-macros >= 24 BuildRequires: anda-srpm-macros @@ -24,7 +27,7 @@ A material you color generation tool with templates.} %package -n %{crate} Summary: %{summary} -License: GPL-2.0 +License: GPL-2.0-or-later AND Zlib AND MPL-2.0 AND Unlicense AND (Unlicense OR MIT) AND (MIT OR Apache-2.0 OR Zlib) AND (MIT OR Apache-2.0 OR NCSA) AND MIT AND (MIT OR Apache-2.0 OR CC0-1.0) AND (MIT OR Apache-2.0) AND Unicode-DFS-2016 AND (0BSD OR MIT OR Apache-2.0) AND Apache-2.0 AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (CC0-1.0 OR Apache-2.0) AND BSD-3-Clause AND BSD-2-Clause AND (Zlib OR Apache-2.0 OR MIT) AND (BSD-2-Clause OR Apache-2.0 OR MIT) (Apache-2.0 WITH LLVM-exception) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) # LICENSE.dependencies contains a full license breakdown %description -n %{crate} %{_description} @@ -36,30 +39,14 @@ License: GPL-2.0 %doc README.md %{_bindir}/matugen - -%package devel -Summary: %{summary} -BuildArch: noarch - -%description devel %{_description} - -This package contains library source intended for building other packages which -use the "%{crate}" crate. - -%files devel -%license %{crate_instdir}/LICENSE -%doc %{crate_instdir}/CHANGELOG.md -%doc %{crate_instdir}/README.md -%{crate_instdir}/ - - %prep %autosetup -n %{crate}-%{version} -p1 %cargo_prep_online +install -Dpm0644 -t . %{S:1} %{S:2} %{S:3} %build -%{cargo_license_summary_online} -%{cargo_license} > LICENSE.dependencies +%cargo_license_summary_online +%{cargo_license_online} > LICENSE.dependencies %install %cargo_install diff --git a/anda/desktops/waylands/sway-audio-idle-inhibit/sway-audio-idle-inhibit.spec b/anda/desktops/waylands/sway-audio-idle-inhibit/sway-audio-idle-inhibit.spec index c33d4645fd..cd2b269a99 100644 --- a/anda/desktops/waylands/sway-audio-idle-inhibit/sway-audio-idle-inhibit.spec +++ b/anda/desktops/waylands/sway-audio-idle-inhibit/sway-audio-idle-inhibit.spec @@ -15,8 +15,10 @@ BuildRequires: pkgconfig(libsystemd) %prep %autosetup -n SwayAudioIdleInhibit-%version -%build +%conf %meson -Dlogind-provider=systemd + +%build %meson_build %install diff --git a/anda/desktops/waylands/swaylock-effects/swaylock-effects.spec b/anda/desktops/waylands/swaylock-effects/swaylock-effects.spec index e159f77edf..d4bd582c65 100644 --- a/anda/desktops/waylands/swaylock-effects/swaylock-effects.spec +++ b/anda/desktops/waylands/swaylock-effects/swaylock-effects.spec @@ -30,23 +30,20 @@ Conflicts: swaylock %description swaylock-effects is a fork of swaylock which adds built-in screenshots and image manipulation effects like blurring. - %pkg_completion -Bfz %binary_name - %prep %autosetup -n %{name}-%{commit} +%conf +%meson %build -%meson %meson_build - %install %meson_install - %files %license LICENSE %doc README.md @@ -54,7 +51,6 @@ swaylock-effects is a fork of swaylock which adds built-in screenshots and image %{_mandir}/man1/%{binary_name}.1.gz %config(noreplace) %{_sysconfdir}/pam.d/%{binary_name} - %changelog * Tue Feb 04 2025 sadlerm - Initial package diff --git a/anda/desktops/waylands/walker/walker.spec b/anda/desktops/waylands/walker/walker.spec index d5b219497d..9f7167f839 100644 --- a/anda/desktops/waylands/walker/walker.spec +++ b/anda/desktops/waylands/walker/walker.spec @@ -4,7 +4,7 @@ # prevent library files from being installed %global cargo_install_lib 0 -%global upstream_version v2.7.1 +%global upstream_version v2.16.2 %global ver %{sub %upstream_version 2} Name: walker diff --git a/anda/desktops/waypaper/anda.hcl b/anda/desktops/waypaper/anda.hcl new file mode 100644 index 0000000000..b41682ebbe --- /dev/null +++ b/anda/desktops/waypaper/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "waypaper.spec" + } +} diff --git a/anda/desktops/waypaper/update.rhai b/anda/desktops/waypaper/update.rhai new file mode 100644 index 0000000000..e9b7275f2a --- /dev/null +++ b/anda/desktops/waypaper/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("waypaper")); diff --git a/anda/desktops/waypaper/waypaper.spec b/anda/desktops/waypaper/waypaper.spec new file mode 100644 index 0000000000..9620b83659 --- /dev/null +++ b/anda/desktops/waypaper/waypaper.spec @@ -0,0 +1,56 @@ +%global pypi_name waypaper +%global _desc GUI wallpaper manager for Wayland and Xorg Linux systems. + +%define _python_dist_allow_version_zero 1 + +Name: python-%{pypi_name} +Version: 2.8 +Release: 1%{?dist} +Summary: GUI wallpaper manager for Wayland and Xorg Linux systems +License: GPL-3.0-only +URL: https://github.com/anufrievroman/waypaper +Source0: %url/archive/refs/tags/%version.tar.gz +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-wheel +BuildRequires: python3-pip +BuildRequires: python3-setuptools +BuildRequires: python3-setuptools_scm + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +Provides: waypaper +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n waypaper-%version + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files waypaper + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md +%license LICENSE +%{_bindir}/waypaper +%{_datadir}/applications/waypaper.desktop +%{_datadir}/icons/hicolor/scalable/apps/waypaper.svg +%{_mandir}/man1/waypaper.1.gz +%dnl %python3_sitelib/__pycache__/*.cpython-*.pyc +%dnl %python3_sitelib/waypaper/subcommands/__pycache__/*.cpython-*.pyc + +%changelog +* Sun Nov 09 2025 Owen Zimmerman +- Initial commit diff --git a/anda/devs/android-studio/canary/anda.hcl b/anda/devs/android-studio/canary/anda.hcl new file mode 100644 index 0000000000..f3910da03e --- /dev/null +++ b/anda/devs/android-studio/canary/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "android-studio-canary.spec" + } +} diff --git a/anda/devs/android-studio/canary/android-studio-canary.spec b/anda/devs/android-studio/canary/android-studio-canary.spec new file mode 100644 index 0000000000..d21d87ed59 --- /dev/null +++ b/anda/devs/android-studio/canary/android-studio-canary.spec @@ -0,0 +1,95 @@ +%undefine __brp_add_determinism +# disable debuginfo subpackage +%global debug_package %{nil} +# Disable build-id symlinks to avoid conflicts +%global _build_id_links none +# don't strip bundled binaries because pycharm checks length (!!!) of binary fsnotif +# and if you strip debug stuff from it, it will complain +%global __strip /bin/true +# dont repack jars +%global __jar_repack %{nil} +# disable rpath checks +%define __brp_check_rpaths %{nil} + +%define __requires_exclude_from ^/usr/libexec/android-studio-canary/.*$ +%define __provides_exclude_from ^/usr/libexec/android-studio-canary/.*|libedit\\so.*$ +%global __requires_exclude ^libaaudio\\.so.*|^libandroid\\.so.*|^libmediandk\\.so.*|^liblog\\.so.*|^libc\\.so.*|^libm\\.so.*|^libdl\\.so.*|^libcrypt\\.so.*|^libstdc\\+\\+\\.so.*|^libncursesw\\.so.*|^libtinfo\\.so.*|^libnsl\\.so.*|^libpanelw\\.so.*$ + +Name: android-studio-canary +Version: 2026.1.1.3 +Release: 1%{?dist} +Summary: Official IDE for Android development (Canary build) +License: Apache-2.0 +Packager: veuxit +ExclusiveArch: x86_64 +URL: https://developer.android.com/studio/preview + +%define suffixS quail1-canary3 + +Source0: https://dl.google.com/dl/android/studio/ide-zips/%{version}/android-studio-%{suffixS}-linux.tar.gz + +Requires: alsa-lib +Requires: freetype +Requires: which +Requires: libXrender +Requires: libXtst +Requires: glibc +Requires: libsecret + +BuildRequires: desktop-file-utils + +%description +Android Studio is the official IDE for Android development, and includes everything you need to build Android apps. + +%prep +%autosetup -n android-studio + +%install +mkdir -p %{buildroot}%{_libexecdir}/%{name} + +cp -a * %{buildroot}%{_libexecdir}/%{name} + +mkdir -p %{buildroot}%{_bindir} +ln -s %{_libexecdir}/%{name}/bin/studio %{buildroot}%{_bindir}/%{name} + +mkdir -p %{buildroot}%{_licensedir}/%{name} +install -Dm644 LICENSE.txt %{buildroot}%{_licensedir}/%{name}/LICENSE.txt + +install -d %{buildroot}%{_datadir}/pixmaps +install -m 0644 -p bin/studio.png %{buildroot}%{_datadir}/pixmaps/%{name}.png +install -d %{buildroot}%{_datadir}/icons/hicolor/scalable/apps +install -m 0644 -p bin/studio.svg %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/%{name}.svg + +mkdir -p %{buildroot}%{_datadir}/applications +cat > %{buildroot}%{_datadir}/applications/%{name}.desktop << 'EOF' +[Desktop Entry] +Version=1.0 +Type=Application +Name=Android Studio Canary +Exec=android-studio-canary +Icon=android-studio-canary +Comment=Official IDE for Android development (Canary build) +Categories=Development;IDE; +Terminal=false +StartupNotify=true +StartupWMClass=jetbrains-studio-canary +MimeType=application/x-extension-iml; +EOF + +%check +%desktop_file_validate %{buildroot}%{_datadir}/applications/%{name}.desktop + +%files +%license %{_licensedir}/%{name}/LICENSE.txt +%{_libexecdir}/%{name} +%{_bindir}/%{name} +%{_datadir}/pixmaps/android-studio-canary.png +%{_datadir}/icons/hicolor/scalable/apps/android-studio-canary.svg +%{_datadir}/applications/%{name}.desktop + +%changelog +* Wed Feb 18 2026 veuxit - 2025.3.2.4 +- Update .spec file + +* Sun Feb 15 2026 veuxit - 2025.3.2.4 +- Initial package release \ No newline at end of file diff --git a/anda/devs/android-studio/canary/update.rhai b/anda/devs/android-studio/canary/update.rhai new file mode 100644 index 0000000000..b7e06a1039 --- /dev/null +++ b/anda/devs/android-studio/canary/update.rhai @@ -0,0 +1,10 @@ +let html = get("https://developer.android.com/studio/preview"); +let pattern = `ide-zips/([^/]+)/android-studio-(.*?)-linux\.tar\.gz`; +let nofilter = find(pattern, html, 0); +let version = find(pattern, html, 1); +let suffixS = find(pattern, html, 2); +print(nofilter); +print(version); +print(suffixS); +rpm.version(version); +rpm.define("suffixS", suffixS); \ No newline at end of file diff --git a/anda/devs/android-studio/stable/anda.hcl b/anda/devs/android-studio/stable/anda.hcl index 25dfdd9494..d518888a39 100644 --- a/anda/devs/android-studio/stable/anda.hcl +++ b/anda/devs/android-studio/stable/anda.hcl @@ -1,4 +1,5 @@ project pkg { + arches = ["x86_64"] rpm { spec = "android-studio.spec" } diff --git a/anda/devs/android-studio/stable/android-studio.spec b/anda/devs/android-studio/stable/android-studio.spec index 5e81dc05ed..bff2ed2638 100644 --- a/anda/devs/android-studio/stable/android-studio.spec +++ b/anda/devs/android-studio/stable/android-studio.spec @@ -1,16 +1,32 @@ +%undefine __brp_add_determinism +# disable debuginfo subpackage %global debug_package %{nil} +# Disable build-id symlinks to avoid conflicts +%global _build_id_links none +# don't strip bundled binaries because pycharm checks length (!!!) of binary fsnotif +# and if you strip debug stuff from it, it will complain +%global __strip /bin/true +# dont repack jars +%global __jar_repack %{nil} +# disable rpath checks +%define __brp_check_rpaths %{nil} + %define __requires_exclude_from ^/usr/libexec/android-studio/.*$ %define __provides_exclude_from ^/usr/libexec/android-studio/.*|libedit\\so.*$ %global __requires_exclude ^libaaudio\\.so.*|^libandroid\\.so.*|^libmediandk\\.so.*|^liblog\\.so.*|^libc\\.so.*|^libm\\.so.*|^libdl\\.so.*|^libcrypt\\.so.*|^libstdc\\+\\+\\.so.*|^libncursesw\\.so.*|^libtinfo\\.so.*|^libnsl\\.so.*|^libpanelw\\.so.*$ Name: android-studio -Version: 2025.1.4.8 -Release: 1%?dist +Version: 2025.3.4.7 +Release: 1%{?dist} Summary: Official IDE for Android development License: Apache-2.0 -Packager: like-engels +Packager: veuxit , like-engels +ExclusiveArch: x86_64 URL: https://developer.android.com/studio -Source0: https://dl.google.com/dl/android/studio/ide-zips/%{version}/android-studio-%{version}-linux.tar.gz + +%define suffixS panda4-patch1 + +Source0: https://dl.google.com/dl/android/studio/ide-zips/%{version}/android-studio-%{suffixS}-linux.tar.gz Requires: alsa-lib Requires: freetype @@ -20,11 +36,13 @@ Requires: libXtst Requires: glibc Requires: libsecret +BuildRequires: desktop-file-utils + %description Android Studio is the official IDE for Android development, and includes everything you need to build Android apps. %prep -%setup -q -n android-studio +%autosetup -n android-studio %install mkdir -p %{buildroot}%{_libexecdir}/%{name} @@ -37,7 +55,10 @@ ln -s %{_libexecdir}/%{name}/bin/studio %{buildroot}%{_bindir}/%{name} mkdir -p %{buildroot}%{_licensedir}/%{name} install -Dm644 LICENSE.txt %{buildroot}%{_licensedir}/%{name}/LICENSE.txt -install -Dm644 bin/studio.png %{buildroot}%{_datadir}/pixmaps/%{name}.png +install -d %{buildroot}%{_datadir}/pixmaps +install -m 0644 -p bin/studio.png %{buildroot}%{_datadir}/pixmaps/%{name}.png +install -d %{buildroot}%{_datadir}/icons/hicolor/scalable/apps +install -m 0644 -p bin/studio.svg %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/%{name}.svg mkdir -p %{buildroot}%{_datadir}/applications cat > %{buildroot}%{_datadir}/applications/%{name}.desktop << 'EOF' @@ -45,9 +66,9 @@ cat > %{buildroot}%{_datadir}/applications/%{name}.desktop << 'EOF' Version=1.0 Type=Application Name=Android Studio -Exec=android-studio %f +Exec=android-studio Icon=android-studio -Comment=The official Android IDE +Comment=Official IDE for Android development Categories=Development;IDE; Terminal=false StartupNotify=true @@ -55,12 +76,17 @@ StartupWMClass=jetbrains-studio MimeType=application/x-extension-iml; EOF +%check +%desktop_file_validate %{buildroot}%{_datadir}/applications/%{name}.desktop + %files %license %{_licensedir}/%{name}/LICENSE.txt %{_libexecdir}/%{name} %{_bindir}/%{name} -%{_datadir}/pixmaps/%{name}.png +%{_datadir}/pixmaps/android-studio.png +%{_datadir}/icons/hicolor/scalable/apps/android-studio.svg %{_datadir}/applications/%{name}.desktop %changelog -%autochangelog +* Fri Feb 20 2026 veuxit - 2025.3.1.8 +- Package update to 2025.3.1.8 panda1-patch1 \ No newline at end of file diff --git a/anda/devs/android-studio/stable/update.rhai b/anda/devs/android-studio/stable/update.rhai index ef1c8dc082..d3e757294a 100644 --- a/anda/devs/android-studio/stable/update.rhai +++ b/anda/devs/android-studio/stable/update.rhai @@ -1 +1,10 @@ -rpm.version(find(`https://redirector.gvt1.com/edgedl/android/studio/ide-zips/([\d.]+)/android-studio-[\d.]+-linux.tar.gz`, get("https://developer.android.com/studio"), 1)); +let html = get("https://developer.android.com/studio"); +let pattern = `ide-zips/([^/]+)/android-studio-(.*?)-linux\.tar\.gz`; +let nofilter = find(pattern, html, 0); +let version = find(pattern, html, 1); +let suffixS = find(pattern, html, 2); +print(nofilter); +print(version); +print(suffixS); +rpm.version(version); +rpm.define("suffixS", suffixS); \ No newline at end of file diff --git a/anda/devs/asar/asar.spec b/anda/devs/asar/asar.spec index bd4143cd8b..2064b61085 100644 --- a/anda/devs/asar/asar.spec +++ b/anda/devs/asar/asar.spec @@ -7,8 +7,8 @@ %global __provides_exclude_from %{_datadir}/%{name}/.*\\.so Name: asar -Version: 4.0.1 -Release: 1%?dist +Version: 4.2.0 +Release: 1%{?dist} Summary: Simple extensive tar-like archive format with indexing License: MIT URL: https://github.com/electron/asar diff --git a/anda/devs/asdf/asdf.spec b/anda/devs/asdf/asdf.spec index 2185fbc043..30e9053806 100644 --- a/anda/devs/asdf/asdf.spec +++ b/anda/devs/asdf/asdf.spec @@ -12,7 +12,7 @@ # https://github.com/asdf-vm/asdf %global goipath github.com/asdf-vm/asdf -Version: 0.18.0 +Version: 0.19.0 %gometa -f @@ -25,7 +25,7 @@ more.} SECURITY.md ballad-of-asdf.md help.txt version.txt Name: asdf -Release: %autorelease +Release: 1%{?dist} Summary: Extendable version manager with support for Ruby, Node.js, Elixir, Erlang & more License: MIT diff --git a/anda/devs/atac/atac.spec b/anda/devs/atac/atac.spec index 872864b2d8..32eb76b7bb 100644 --- a/anda/devs/atac/atac.spec +++ b/anda/devs/atac/atac.spec @@ -6,7 +6,7 @@ %global __brp_mangle_shebangs %{nil} Name: atac -Version: 0.22.1 +Version: 0.23.0 Release: 1%?dist Summary: Arguably a Terminal API Client diff --git a/anda/devs/backport/anda.hcl b/anda/devs/backport/anda.hcl index 4ba8d7de29..fa16c40570 100644 --- a/anda/devs/backport/anda.hcl +++ b/anda/devs/backport/anda.hcl @@ -1,6 +1,6 @@ project pkg { + arches = ["x86_64"] rpm { spec = "nodejs-backport.spec" - pre_script = "setup.sh" } } diff --git a/anda/devs/backport/nodejs-backport.spec b/anda/devs/backport/nodejs-backport.spec index 6b1e45bbb2..03e66f6320 100644 --- a/anda/devs/backport/nodejs-backport.spec +++ b/anda/devs/backport/nodejs-backport.spec @@ -1,60 +1,61 @@ -%global debug_package %{nil} -%global module backport -%bcond test 1 +%global npm_name backport +# Requires Jest so currently disabled +%bcond test 0 -Name: node-%{module} -Version: 10.1.0 -Release: 1%?dist +Name: nodejs-%{npm_name} +Version: 12.0.0 +Release: 2%{?dist} Summary: Backport GitHub commits SourceLicense: Apache-2.0 -License: Apache-2.0 AND -URL: https://github.com/sorenlouv/%{module} -%dnl Source0: http://registry.npmjs.org/%{module}/-/%{module}-%{version}.tgz -# Source the tests -Source1: tests-%{version}.tar.bz2 -BuildRequires: bsdtar -BuildRequires: nodejs-devel +License: MIT AND ISC AND Apache-2.0 AND BSD-2-Clause AND BSD-3-Clause +URL: https://github.com/sorenlouv/%{npm_name} +Source0: http://registry.npmjs.org/%{npm_name}/-/%{npm_name}-%{version}.tgz +BuildRequires: anda-srpm-macros >= 0.3.0 BuildRequires: nodejs-packaging BuildRequires: nodejs-npm -ExclusiveArch: %{nodejs_arches} noarch -Packager: Gilver E. +BuildRequires: nodejs-license-checker +%if %{with test} +BuildRequires: yarnpkg +%endif +Requires: git-core +Obsoletes: node-backport <= 10.2.0 +BuildArch: noarch +Packager: Gilver E. %description A simple CLI tool that automates the process of backporting commits on a GitHub repo. %prep -# Maybe I should make some NodeJS online macros... -# Global flag is needed or the module WILL NOT WORK via commandline without some manual intervention -npm install -g %{module}@%{version} --prefix=. -%setup -T -D -n lib/node_modules/%{module} -tar xjf %{SOURCE1} +%npm_prep +%if %{with test} +%fetch_node_tests /src/test/ /tests/ +%endif %build # Empty build section, because RPM reasons %install -mkdir -p %{buildroot}%{nodejs_sitelib}/%{module} -mkdir -p %{buildroot}%{_bindir} -cp -r ./* -t %{buildroot}%{nodejs_sitelib}/%{module} -ln -sf %{nodejs_sitelib}/%{module}/bin/%{module} %{buildroot}%{_bindir}/%{module} +%npm_install -# Should maybe package this so it's easier to call... -npm install -g license-checker --prefix=. -# This could also be made into a macro maybe? -bin/license-checker | sed '/.*repository:.*/d;/.*publisher:.*/d;/.*email:.*/d;/.*url:.*/d;/.*path:.*/d;/.*licenseFile:.*/d;/.*noticeFile:.*/d' > LICENSE.modules +%npm_license_summary +%npm_license -o LICENSE.modules -%check %if %{with test} -NODE_ENV=test %{builddir}/bin/%{module} -R tests +%check +%yarn_test %endif %files %doc README.md %license LICENSE.txt %license LICENSE.modules -%{nodejs_sitelib}/%{module}/ -%{_bindir}/%{module} +%{nodejs_sitelib}/%{npm_name}/ +%{_bindir}/%{npm_name} %changelog +* Sun May 3 2026 Gilver E. - 12.0.0-2 +- Added explicit dependency on git-core +* Wed Jan 21 2026 Gilver E. - 10.2.0-3 +- Fixed package name and licenses * Wed Jul 2 2025 Gilver E. - 9.6.6-1 - Initial package diff --git a/anda/devs/backport/post.rhai b/anda/devs/backport/post.rhai deleted file mode 100644 index 7ec2290326..0000000000 --- a/anda/devs/backport/post.rhai +++ /dev/null @@ -1 +0,0 @@ -sh("rm -rfv anda/devs/backport/*.tar.bz2", #{}); diff --git a/anda/devs/backport/setup.sh b/anda/devs/backport/setup.sh deleted file mode 100755 index a6a7359998..0000000000 --- a/anda/devs/backport/setup.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/bash - -## Some sources need to be fetched BEFORE the build process -# Also I'm just better at scripting in Bash and calling the Rhai sh function hundreds of times times sounded like hell -# Have I mentioned I hate runtime languages? - -node=backport -# Enable logs for debugging -set -x -# I guess just $PWD doesn't work for this -builddir=$(pwd)/anda/devs/$node - -# We only need the tests folder so sourcing the whole repo is overkill, Git can make a tarball of specific directories - -pushd $builddir -ver=$(cat ./*.spec | grep -P -m1 'Version:' | sed -e 's/Version://g' -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//') -url=$(sed -n 's/^URL:\s\(.*\)$/\1/p' ./*.spec | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//' -e "s/%{module}/$node/") -dir=$node - -git clone --recurse-submodules -j$(nproc) $url.git - -pushd $dir -# I'm not sure why .tar.bz2 is the tar format of choice for this but it's also what Fedora does so it's what I'm doing -git archive --format=tar --prefix=tests/ v${ver}:src/test/ | bzip2 > ../tests-${ver}.tar.bz2 -popd -rm -rf $dir - -exit 0 diff --git a/anda/devs/bun/bun-bin.spec b/anda/devs/bun/bun-bin.spec index 3db8d6405b..fe199d63b4 100644 --- a/anda/devs/bun/bun-bin.spec +++ b/anda/devs/bun/bun-bin.spec @@ -5,14 +5,17 @@ %global a aarch64 %endif +%global appid sh.oven.bun + Name: bun-bin -Version: 1.3.1 -Release: 1%?dist +Version: 1.3.13 +Release: 1%{?dist} Summary: Incredibly fast JavaScript runtime, bundler, test runner, and package manager – all in one License: MIT URL: https://bun.sh Source0: https://github.com/oven-sh/bun/releases/download/bun-v%version/bun-linux-%a.zip -BuildRequires: unzip +Source1: sh.oven.bun.metainfo.xml +BuildRequires: unzip anda-srpm-macros terra-appstream-helper %description %summary. @@ -57,7 +60,10 @@ install -Dm644 bun.bash -t %buildroot%bash_completions_dir install -Dm644 bun.fish -t %buildroot%fish_completions_dir ln -s bun %buildroot%_bindir/bunx +%terra_appstream -o %{SOURCE1} + %files %license LICENSE %_bindir/bun %_bindir/bunx +%{_datadir}/metainfo/sh.oven.bun.metainfo.xml diff --git a/anda/devs/bun/sh.oven.bun.metainfo.xml b/anda/devs/bun/sh.oven.bun.metainfo.xml new file mode 100644 index 0000000000..f8aa2cda17 --- /dev/null +++ b/anda/devs/bun/sh.oven.bun.metainfo.xml @@ -0,0 +1,26 @@ + + + sh.oven.bun + CC0-1.0 + MIT + applications-development + + Bun + Incredibly fast JavaScript runtime, bundler, test runner, and package manager – all in one + + +

+ Incredibly fast JavaScript runtime, bundler, test runner, and package manager – all in one +

+
+ https://bun.sh + + text/javascript + text/typescript + + + + + + +
diff --git a/anda/devs/codium/codium.spec b/anda/devs/codium/codium.spec index ec1c49bf8e..767121b07a 100644 --- a/anda/devs/codium/codium.spec +++ b/anda/devs/codium/codium.spec @@ -1,36 +1,30 @@ -%define debug_package %nil -%global _build_id_links none +%global appid com.vscodium.VSCodium -# Exclude private libraries -%global __requires_exclude libffmpeg.so -%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so - -%ifarch x86_64 -%define a x64 -%elifarch aarch64 -%define a arm64 -%endif - -Name: codium -Version: 1.105.17075 -Release: 1%?dist -Summary: Code editing. Redefined. -License: MIT -URL: https://vscodium.com/ -Source0: https://github.com/VSCodium/vscodium/releases/download/%version/VSCodium-linux-%a-%version.tar.gz -Source1: https://raw.githubusercontent.com/VSCodium/vscodium/%version/README.md -Source2: https://raw.githubusercontent.com/VSCodium/vscodium/%version/LICENSE -Requires: at-spi2-atk cairo expat gtk3 xrandr mesa-libgbm nspr nss nss-util xdg-utils +Name: codium +Version: 1.116.02821 +%electronmeta -D +%global __requires_exclude %{__requires_exclude}|libcurl.so|libmsalruntime.so +Release: 1%{?dist} +Summary: Code editing. Redefined. +License: %{electron_license} +URL: https://vscodium.com/ +Source0: https://github.com/VSCodium/vscodium/releases/download/%{version}/VSCodium-linux-%{_electron_cpu}-%{version}.tar.gz +Source1: https://raw.githubusercontent.com/VSCodium/vscodium/%{version}/README.md +Source2: https://raw.githubusercontent.com/VSCodium/vscodium/%{version}/LICENSE +Requires: at-spi2-atk cairo expat gtk3 xrandr mesa-libgbm nspr nss nss-util xdg-utils +Provides: vscodium = %{evr} BuildRequires: rpm_macro(fdupes) %description VSCodium is a new choice of tool that combines the simplicity of a code editor with what developers need for the core edit-build-debug cycle. +%pkg_completion -Bz + %prep mkdir stuff cd stuff -tar xf %SOURCE0 +tar xf %{SOURCE0} cat < vscodium-bin-uri-handler.desktop [Desktop Entry] @@ -73,46 +67,45 @@ EOF %install cd stuff -mkdir -p %buildroot%_datadir/doc/%name/ %buildroot%_datadir/licenses/%name -install -Dm644 %SOURCE1 %buildroot%_docdir/%name/ -install -Dm644 %SOURCE2 %buildroot%_datadir/licenses/%name/ -install -dm755 %buildroot%_datadir/%name -install -dm755 %buildroot%_bindir -install -dm755 %buildroot%_datadir/{applications,pixmaps} -cp -r * %buildroot%_datadir/%name -rm -rf %buildroot%_datadir/%name/*.desktop -ln -s %_datadir/%name/bin/codium %buildroot%_bindir/codium -ln -s %_datadir/%name/bin/codium %buildroot%_bindir/vscodium -install -D -m644 vscodium-bin.desktop %buildroot%_datadir/applications/codium.desktop -install -D -m644 vscodium-bin-uri-handler.desktop %buildroot%_datadir/applications/codium-uri-handler.desktop -install -D -m644 resources/app/resources/linux/code.png %buildroot%_datadir/pixmaps/vscodium.png +mkdir -p %{buildroot}%{_datadir}/doc/%{name}/ %{buildroot}%{_datadir}/licenses/%{name} +install -Dm644 %{SOURCE1} %{buildroot}%{_docdir}/%{name}/ +install -Dm644 %{SOURCE2} %{buildroot}%{_datadir}/licenses/%{name}/ +install -dm755 %{buildroot}%{_datadir}/%{name} +install -dm755 %{buildroot}%{_bindir} +install -dm755 %{buildroot}%{_datadir}/{applications,pixmaps} +cp -r * %{buildroot}%{_datadir}/%{name} +rm -rf %{buildroot}%{_datadir}/%{name}/*.desktop +ln -s %{_datadir}/%{name}/bin/codium %{buildroot}%{_bindir}/codium +ln -s %{_datadir}/%{name}/bin/codium %{buildroot}%{_bindir}/vscodium +install -D -m644 vscodium-bin.desktop %{buildroot}%{_datadir}/applications/codium.desktop +install -D -m644 vscodium-bin-uri-handler.desktop %{buildroot}%{_datadir}/applications/codium-uri-handler.desktop +install -D -m644 resources/app/resources/linux/code.png %{buildroot}%{_datadir}/pixmaps/vscodium.png # Symlink shell completions -install -dm755 %buildroot%_datadir/zsh/site-functions -install -dm755 %buildroot%_datadir/bash-completion/completions -ln -s %_datadir/%name/resources/completions/zsh/_codium %buildroot%_datadir/zsh/site-functions -ln -s %_datadir/%name/resources/completions/bash/codium %buildroot%_datadir/bash-completion/completions +install -dm755 %{buildroot}%{_datadir}/zsh/site-functions +install -dm755 %{buildroot}%{_datadir}/bash-completion/completions +ln -s %{_datadir}/%{name}/resources/completions/zsh/_codium %{buildroot}%{_datadir}/zsh/site-functions +ln -s %{_datadir}/%{name}/resources/completions/bash/codium %{buildroot}%{_datadir}/bash-completion/completions -%fdupes %_datadir/%name/resources/app/extensions/ +%fdupes %{_datadir}/%{name}/resources/app/extensions/ +#terra_appstream %files %doc README.md %license LICENSE -%_datadir/%name -%_bindir/codium -%_bindir/vscodium -%_datadir/applications/codium.desktop -%_datadir/applications/codium-uri-handler.desktop -%_datadir/pixmaps/vscodium.png -%_datadir/zsh/site-functions/_codium -%_datadir/bash-completion/completions/codium +%{_datadir}/%{name} +%{_bindir}/codium +%{_bindir}/vscodium +%{_datadir}/applications/codium.desktop +%{_datadir}/applications/codium-uri-handler.desktop +%{_datadir}/pixmaps/vscodium.png +%dnl %{_metainfodir}/%{appid}.metainfo.xml %changelog -* Sat Jun 17 2023 windowsboy111 - 1.79.2.23166-2 +* Sat Jun 17 2023 madonuko - 1.79.2.23166-2 - Use /usr/share/ instead of /opt/. - Remove lib dependencies. -* Sun Apr 2 2023 windowsboy111 - 1.77.3.23102-1 +* Sun Apr 2 2023 madonuko - 1.77.3.23102-1 - Initial package. - diff --git a/anda/devs/create-tauri-app/anda.hcl b/anda/devs/create-tauri-app/anda.hcl new file mode 100644 index 0000000000..57a6357d0d --- /dev/null +++ b/anda/devs/create-tauri-app/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "create-tauri-app.spec" + } +} diff --git a/anda/devs/create-tauri-app/create-tauri-app.spec b/anda/devs/create-tauri-app/create-tauri-app.spec new file mode 100644 index 0000000000..b50b73344d --- /dev/null +++ b/anda/devs/create-tauri-app/create-tauri-app.spec @@ -0,0 +1,49 @@ +%global crate create-tauri-app + +Name: rust-create-tauri-app +Version: 4.7.0 +Release: 2%?dist +Summary: Rapidly scaffold out a new tauri app project +License: Apache-2.0 OR MIT +URL: https://crates.io/crates/create-tauri-app +Source: %{crates_source} +BuildRequires: anda-srpm-macros +BuildRequires: cargo-rpm-macros +BuildRequires: mold +Suggests: tauri +Packager: Gilver E. + +%description +%{summary}. + +%package -n %{crate} +Summary: %{summary} +License: Apache-2.0 AND (Apache-2.0 OR BSL-1.0 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 MIT AND (MIT OR Apache-2.0) AND (Unlicense OR MIT) AND Zlib + +%description -n %{crate} +%{summary}. + +%prep +%autosetup -n %{crate}-%{version} -p1 +%cargo_prep_online + +%build +%cargo_build + +%install +install -Dpm755 target/rpm/cargo-%{crate} %{buildroot}%{_bindir}/%{crate} +%{cargo_license_online} > LICENSE.dependencies + +%files -n %{crate} +%license LICENSE.spdx +%license LICENSE_APACHE-2.0 +%license LICENSE_MIT +%license LICENSE.dependencies +%doc CHANGELOG.md +%doc CONTRIBUTING.md +%doc README.md +%{_bindir}/%{crate} + +%changelog +* Fri Dec 26 2025 Gilver E. - 4.6.2-1 +- Initial package diff --git a/anda/devs/create-tauri-app/update.rhai b/anda/devs/create-tauri-app/update.rhai new file mode 100644 index 0000000000..89771ec6c1 --- /dev/null +++ b/anda/devs/create-tauri-app/update.rhai @@ -0,0 +1 @@ +rpm.version(crates("create-tauri-app")); diff --git a/anda/devs/deno/anda.hcl b/anda/devs/deno/anda.hcl new file mode 100644 index 0000000000..6ccf5d1146 --- /dev/null +++ b/anda/devs/deno/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "rust-deno.spec" + } + labels { + large = 1 + } +} diff --git a/anda/devs/deno/deno-fix-metadata-auto.diff b/anda/devs/deno/deno-fix-metadata-auto.diff new file mode 100644 index 0000000000..84f73bcc4f --- /dev/null +++ b/anda/devs/deno/deno-fix-metadata-auto.diff @@ -0,0 +1,27 @@ +--- deno-2.7.4/Cargo.toml 1970-01-01T00:00:01+00:00 ++++ deno-2.7.4/Cargo.toml 2026-03-05T14:17:34.447378+00:00 +@@ -659,24 +659,3 @@ + [target."cfg(unix)".dependencies.shell-escape] + version = "=0.1.5" + +-[target."cfg(windows)".dependencies.deno_subprocess_windows] +-version = "0.32.0" +- +-[target."cfg(windows)".dependencies.winapi] +-version = "=0.3.9" +-features = [ +- "knownfolders", +- "mswsock", +- "objbase", +- "shlobj", +- "tlhelp32", +- "winbase", +- "winerror", +- "winsock2", +-] +- +-[target."cfg(windows)".build-dependencies.winapi] +-version = "=0.3.9" +- +-[target."cfg(windows)".build-dependencies.winres] +-version = "=0.1.12" diff --git a/anda/devs/deno/gcc-wrapper.sh b/anda/devs/deno/gcc-wrapper.sh new file mode 100755 index 0000000000..f28bf41905 --- /dev/null +++ b/anda/devs/deno/gcc-wrapper.sh @@ -0,0 +1,6 @@ +#!/bin/bash +if [[ " $@ " =~ "jitterentropy" ]]; then + exec gcc $(echo "$@" | sed 's/-O[0-9s]//g') +else + exec gcc "$@" +fi diff --git a/anda/devs/deno/land.deno.deno.metainfo.xml b/anda/devs/deno/land.deno.deno.metainfo.xml new file mode 100644 index 0000000000..2299102822 --- /dev/null +++ b/anda/devs/deno/land.deno.deno.metainfo.xml @@ -0,0 +1,27 @@ + + + land.deno.deno + CC0-1.0 + MIT + + Deno + A modern runtime for JavaScript and TypeScript. + + https://deno.com/logo.svg + +

+ Deno (/ˈdiːnoʊ/, pronounced dee-no) is a JavaScript, TypeScript, and WebAssembly runtime with secure defaults and a great developer experience. + It's built on V8, Rust, and Tokio. +

+
+ https://deno.com + + text/javascript + text/typescript + + + + + + +
diff --git a/anda/devs/deno/rust-deno.spec b/anda/devs/deno/rust-deno.spec new file mode 100644 index 0000000000..7e39eab1ac --- /dev/null +++ b/anda/devs/deno/rust-deno.spec @@ -0,0 +1,82 @@ +%undefine __brp_mangle_shebangs +# Generated by rust2rpm 27 +%bcond check 0 +%global appid land.deno.deno +%global appstream_component runtime +%global crate deno + +Name: rust-deno +Version: 2.7.14 +Release: 1%{?dist} +Summary: Deno executable + +License: MIT +URL: https://crates.io/crates/deno +Source: %{crates_source} +Source1: https://raw.githubusercontent.com/denoland/deno/refs/tags/v%version/LICENSE.md +Source2: gcc-wrapper.sh +Source3: land.deno.deno.metainfo.xml +# Automatically generated patch to strip dependencies and normalize metadata +Patch: deno-fix-metadata-auto.diff + +BuildRequires: cargo-rpm-macros >= 24 +BuildRequires: anda-srpm-macros +BuildRequires: protobuf-compiler +BuildRequires: llvm17-devel +BuildRequires: python3 +BuildRequires: cmake +BuildRequires: gcc +BuildRequires: clang +BuildRequires: clang-devel +# Why did Deno name their NPX equivalent this? At least OpenDX is pretty much dead. +Conflicts: dx + +%global _description %{expand: +Provides the deno executable.} + +%description %{_description} + +%package -n %{crate} +Summary: %{summary} +License: ((Apache-2.0 OR MIT) AND BSD-3-Clause) AND ((MIT OR Apache-2.0) AND Unicode-DFS-2016) AND (0BSD OR MIT OR Apache-2.0) AND Apache-2.0 AND (Apache-2.0 AND ISC) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR BSL-1.0 OR MIT) AND (Apache-2.0 OR ISC OR MIT) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND BSD-2-Clause AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND BSD-3-Clause AND (BSD-3-Clause OR MIT) AND BSL-1.0 AND CC0-1.0 AND ISC AND (ISC AND (Apache-2.0 OR ISC)) AND (ISC AND (Apache-2.0 OR ISC) AND OpenSSL) AND MIT AND (MIT AND BSD-3-Clause) AND (MIT OR Apache-2.0) AND (MIT OR Apache-2.0 OR BSD-1-Clause) AND (MIT OR Apache-2.0 OR LGPL-2.1-or-later) AND (MIT OR Apache-2.0 OR Zlib) AND (MIT OR Zlib OR Apache-2.0) AND MPL-2.0 AND MPL-2.0+ AND Unicode-3.0 AND (Unlicense OR MIT) AND Zlib AND (Zlib OR Apache-2.0 OR MIT) +# LICENSE.dependencies contains a full license breakdown + +%description -n %{crate} %{_description} + +%files -n %{crate} +%license LICENSE.md +%license LICENSE.dependencies +%doc README.md +%{_metainfodir}/%{appid}.metainfo.xml +%{_bindir}/deno +%{_bindir}/dx + +%pkg_completion -Bfzn %crate + +%prep +%autosetup -n %{crate}-%{version} -p1 +%cargo_prep_online + +cp %{S:1} . +cp %{S:2} gcc + + +%global __cc %_builddir/%buildsubdir/gcc +%dnl sed '/\[env\]/a CC="%__cc"' -i .cargo/config + +%build +%{cargo_license_summary_online} +%{cargo_license_online} > LICENSE.dependencies +%{cargo_build} --locked + +%install +%crate_install_bin +mkdir -p %buildroot{%bash_completions_dir,%elvish_completions_dir,%fish_completions_dir,%zsh_completions_dir} +target/rpm/deno completions bash > %buildroot%bash_completions_dir/deno +%dnl target/rpm/deno completions elvish > %buildroot%elvish_completions_dir/deno.elv +target/rpm/deno completions fish > %buildroot%fish_completions_dir/deno.fish +target/rpm/deno completions zsh > %buildroot%zsh_completions_dir/_deno +pushd %{buildroot}%{_bindir} +./deno x --install-alias +popd +%terra_appstream -o %{SOURCE3} diff --git a/anda/devs/deno/update.rhai b/anda/devs/deno/update.rhai new file mode 100644 index 0000000000..a564f8eee7 --- /dev/null +++ b/anda/devs/deno/update.rhai @@ -0,0 +1 @@ +rpm.version(crates("deno")); diff --git a/anda/devs/devpod/golang-github-loft-sh-devpod.spec b/anda/devs/devpod/golang-github-loft-sh-devpod.spec index f540d06c83..e55ea0f47e 100644 --- a/anda/devs/devpod/golang-github-loft-sh-devpod.spec +++ b/anda/devs/devpod/golang-github-loft-sh-devpod.spec @@ -17,7 +17,7 @@ and lets you use any cloud, kubernetes or just localhost docker.} loadtest/README.md Name: devpod -Release: 2%?dist +Release: 3%?dist Summary: Spin up dev environments in any infra Provides: golang-github-loft-sh-devpod BuildRequires: anda-srpm-macros mold @@ -41,6 +41,7 @@ BuildRequires: pkgconfig(gdk-3.0) BuildRequires: pkgconfig(javascriptcoregtk-4.1) BuildRequires: pkgconfig(libsoup-3.0) BuildRequires: pkgconfig(webkit2gtk-4.1) +BuildRequires: desktop-file-utils Requires: libappindicator-gtk3 %description desktop %{common_description} @@ -86,9 +87,12 @@ install -m 0755 -vd %{buildroot}%{_bindir} install -m 0755 -vp bin/devpod %{buildroot}%{_bindir}/devpod-cli # tauri install -Dm755 "desktop/src-tauri/target/rpm/DevPod Desktop" %buildroot%_bindir/dev-pod-desktop -install -Dm644 %{S:1} -t %buildroot%_datadir/applications/ +install -Dm644 %{S:1} %buildroot%_appsdir/DevPod.desktop install -Dm644 desktop/devpod.png %buildroot%_datadir/pixmaps/dev-pod-desktop.png +%check +desktop-file-validate %buildroot%_appsdir/DevPod.desktop + %files %license LICENSE %doc README.md SECURITY.md @@ -96,5 +100,5 @@ install -Dm644 desktop/devpod.png %buildroot%_datadir/pixmaps/dev-pod-desktop.pn %files desktop %_bindir/dev-pod-desktop -%_datadir/applications/DevPod.desktop +%_appsdir/DevPod.desktop %_datadir/pixmaps/dev-pod-desktop.png diff --git a/anda/devs/edit/com.microsoft.edit.metainfo.xml b/anda/devs/edit/com.microsoft.edit.metainfo.xml new file mode 100644 index 0000000000..33cc838d57 --- /dev/null +++ b/anda/devs/edit/com.microsoft.edit.metainfo.xml @@ -0,0 +1,24 @@ + + + com.microsoft.edit + CC0-1.0 + MIT + Microsoft Edit + We all edit + + https://github.com/microsoft/edit/blob/main/assets/edit_hero_image.png + + +

A simple editor for simple needs.

+

+ This editor pays homage to the classic MS-DOS Editor, but with a modern interface and input controls similar to VS Code. + The goal is to provide an accessible editor that even users largely unfamiliar with terminals can easily use. +

+
+ https://github.com/microsoft/edit + https://github.com/microsoft/edit + + Microsoft Corporation + + com.microsoft.edit +
diff --git a/anda/devs/edit/edit.spec b/anda/devs/edit/edit.spec index 1a04a7b9a9..5125c59d42 100644 --- a/anda/devs/edit/edit.spec +++ b/anda/devs/edit/edit.spec @@ -2,22 +2,26 @@ An editor that pays homage to the classic MS-DOS Editor, but with a modern interface and input controls similar to VS Code.} %global crate edit %bcond rust_nightly 0 +%global appid com.microsoft.edit +%global org com.microsoft +%global appstream_component console-application Name: %{crate} -Version: 1.2.1 -Release: 1%?dist +Version: 2.0.0 +Release: 1%{?dist} Summary: A simple editor for simple needs. SourceLicense: MIT License: MIT AND (MIT OR Apache-2.0) URL: https://github.com/microsoft/edit Source0: %{url}/archive/refs/tags/v%{version}.tar.gz +Source1: %{appid}.metainfo.xml BuildRequires: anda-srpm-macros BuildRequires: cargo-rpm-macros %if %{with rust_nightly} BuildRequires: rustup %endif BuildRequires: mold -Packager: Gilver E. +Packager: Gilver E. %description %_description @@ -34,6 +38,11 @@ Packager: Gilver E. %install %crate_install_bin %{cargo_license_online} > LICENSE.dependencies +install -Dm644 assets/edit.svg %{buildroot}%{_iconsdir}/hicolor/scalable/apps/%{appid}.svg + +sed -i "s|^Icon=edit$|Icon=%{appid}|g" assets/%{appid}.desktop +install -Dm644 assets/%{appid}.desktop %{buildroot}%{_datadir}/applications/%{appid}.desktop +%terra_appstream -o %{SOURCE1} %files %doc CODE_OF_CONDUCT.md @@ -42,8 +51,10 @@ Packager: Gilver E. %license LICENSE %license LICENSE.dependencies %{_bindir}/%{name} +%{_metainfodir}/%{appid}.metainfo.xml +%{_iconsdir}/hicolor/scalable/apps/%{appid}.svg +%{_datadir}/applications/%{appid}.desktop %changelog * Thu May 22 2025 Gilver E. - 1.0.0-1 - Initial package - diff --git a/anda/devs/flow/flow-control.spec b/anda/devs/flow/flow-control.spec index 08807ad404..571c97f5f4 100644 --- a/anda/devs/flow/flow-control.spec +++ b/anda/devs/flow/flow-control.spec @@ -1,6 +1,6 @@ Name: flow-control Epoch: 1 -Version: 0.5.0 +Version: 0.7.2 Release: 1%?dist Summary: A programmer's text editor License: MIT diff --git a/anda/devs/flutter/flutter.spec b/anda/devs/flutter/flutter.spec index e74f7e9f2f..45948f29f3 100644 --- a/anda/devs/flutter/flutter.spec +++ b/anda/devs/flutter/flutter.spec @@ -1,6 +1,6 @@ Name: flutter -Version: 3.35.7 -Release: 1%?dist +Version: 3.41.9 +Release: 1%{?dist} Summary: SDK for crafting beautiful, fast user experiences from a single codebase License: BSD-3-Clause URL: https://flutter.dev diff --git a/anda/devs/ghostty/nightly/ghostty-nightly.spec b/anda/devs/ghostty/nightly/ghostty-nightly.spec index ac8dea751d..41a92b3f7f 100644 --- a/anda/devs/ghostty/nightly/ghostty-nightly.spec +++ b/anda/devs/ghostty/nightly/ghostty-nightly.spec @@ -1,15 +1,15 @@ -%global commit 7d7c0bf5cdb591238225d33c0b5088b94a8a65bc +%global commit 0deaac08ed1a95330346afabbad03da701708331 %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global fulldate 2025-10-26 +%global fulldate 2026-05-06 %global commit_date %(echo %{fulldate} | sed 's/-//g') %global public_key RWQlAjJC23149WL2sEpT/l0QKy7hMIFhYdQOFy0Z7z7PbneUgvlsnYcV -%global ver 1.3.0 +%global ver 1.3.2 %global base_name ghostty %global appid com.mitchellh.%{base_name} Name: %{base_name}-nightly Version: %{ver}~tip^%{commit_date}git%{shortcommit} -Release: 1%?dist +Release: 1%{?dist} %if 0%{?fedora} <= 41 Epoch: 1 %endif @@ -55,7 +55,7 @@ Provides: %{base_name}-tip = %{ver}^%{commit_date}git%{shortcommit} Provides: %{name} = %{commit_date}.%{shortcommit} %endif Obsoletes: %{name} = 20250130.04d3636 -Packager: Gilver E. +Packager: Gilver E. %description 👻 Ghostty is a fast, feature-rich, and cross-platform terminal emulator that uses platform-native UI and GPU acceleration. @@ -118,6 +118,7 @@ This package allows Ghostty to interact with KIO. Summary: Nautilus menu support for Ghostty Supplements: (%{name} and nautilus) Requires: %{name} = %{evr} +Requires: nautilus-python BuildArch: noarch %description nautilus @@ -180,6 +181,19 @@ BuildArch: noarch %description terminfo Ghostty's terminfo. Needed for basic terminal function. +%package -n libghostty-vt-nightly +Summary: The libghostty-vt libraries + +%description -n libghostty-vt-nightly +This package contains the libghostty-vt libraries, the first of many libghostty libaries in development. + +%package -n libghostty-vt-nightly-devel +Summary: Development files for libghostty-vt +Requires: libghostty-vt-nightly = %{evr} + +%description -n libghostty-vt-nightly-devel +This package contains the libraries and header files that are needed for developing with libghostty-vt. + %prep /usr/bin/minisign -V -m %{SOURCE0} -x %{SOURCE1} -P %{public_key} %autosetup -n %{base_name}-%{ver}-main+%{shortcommit} @@ -196,7 +210,8 @@ DESTDIR="%{buildroot}" \ -Dversion-string="%{ver}-dev+%{shortcommit}" \ -Dstrip=false \ -Dpie=true \ - -Demit-docs + -Demit-docs \ + -Demit-themes=false # Don't conflict with ncurses-term on F42 and up %if 0%{?fedora} >= 42 @@ -212,7 +227,6 @@ rm -rf %{buildroot}%{_datadir}/terminfo/g/%{base_name} %{_datadir}/applications/%{appid}.desktop %dir %{_datadir}/%{base_name} %{_datadir}/%{base_name}/doc -%{_datadir}/%{base_name}/themes %{_datadir}/metainfo/%{appid}.metainfo.xml %{_datadir}/dbus-1/services/%{appid}.service %{_iconsdir}/hicolor/16x16/apps/%{appid}.png @@ -240,8 +254,6 @@ rm -rf %{buildroot}%{_datadir}/terminfo/g/%{base_name} %files devel %{_includedir}/ghostty/ -%{_libdir}/libghostty-vt.so -%{_datadir}/pkgconfig/libghostty-vt.pc %files kio %{_datadir}/kio/servicemenus/%{appid}.desktop @@ -270,6 +282,7 @@ rm -rf %{buildroot}%{_datadir}/terminfo/g/%{base_name} %{_datadir}/%{base_name}/shell-integration/bash/%{base_name}.bash %{_datadir}/%{base_name}/shell-integration/elvish/lib/%{base_name}-integration.elv %{_datadir}/%{base_name}/shell-integration/fish/vendor_conf.d/%{base_name}-shell-integration.fish +%{_datadir}/%{base_name}/shell-integration/nushell/vendor/autoload/%{base_name}.nu %{_datadir}/%{base_name}/shell-integration/zsh/.zshenv %{_datadir}/%{base_name}/shell-integration/zsh/%{base_name}-integration @@ -279,6 +292,13 @@ rm -rf %{buildroot}%{_datadir}/terminfo/g/%{base_name} %endif %{_datadir}/terminfo/x/xterm-%{base_name} +%files -n libghostty-vt-nightly +%{_libdir}/libghostty-vt.so.* + +%files -n libghostty-vt-nightly-devel +%{_libdir}/libghostty-vt.so +%{_datadir}/pkgconfig/libghostty-vt.pc + %post %systemd_user_post app-%{appid}.service @@ -289,14 +309,20 @@ rm -rf %{buildroot}%{_datadir}/terminfo/g/%{base_name} %systemd_user_postun app-%{appid}.service %changelog +* Sat Nov 29 2025 Gilver E. - 1.3.0~tip^20251128git9baf37a-1 +- Initial libghostty-vt packages +* Tue Oct 28 2025 Gilver E. - 1.3.0~tip^20251027gitd40321a-2 +- Disabled bundled themes + * This is necessary to address licensing issues in the themes repo Ghostty uses + * See: https://github.com/mbadolato/iTerm2-Color-Schemes/issues/638 * Sat May 31 2025 Gilver E. - 1.1.4~tip^20250531git1ff9162 - Updated for Zig 0.14.0 - Updated for ncurses-term compatibility in Fedora 42 and Rawhide * Wed Mar 05 2025 Gilver E. -- Update to 1.1.3~tip^20250305git66e8d91-2%{?dist} +- Update to 1.1.3~tip^20250305git66e8d91-2 * Ghostty now has localization support via gettext as well as corresponding localization files * Fri Jan 31 2025 Gilver E. -- Update to 1.1.1~tip^20250131git5508e7-1%{?dist} +- Update to 1.1.1~tip^20250131git5508e7-1 * Low GHSA-98wc-794w-gjx3: Ghostty leaked file descriptors allowing the shell and any of its child processes to impact other Ghostty terminal instances * Better Git versioning scheme * Ghostty terminfo source files are now a subpackage diff --git a/anda/devs/ghostty/stable/ghostty.spec b/anda/devs/ghostty/stable/ghostty.spec index bfb2521b2a..02c26afca1 100644 --- a/anda/devs/ghostty/stable/ghostty.spec +++ b/anda/devs/ghostty/stable/ghostty.spec @@ -3,8 +3,8 @@ %global appid com.mitchellh.ghostty Name: ghostty -Version: 1.2.3 -Release: 1%?dist +Version: 1.3.1 +Release: 1%{?dist} Summary: A fast, native terminal emulator written in Zig. License: MIT AND MPL-2.0 AND OFL-1.1 AND (WTFPL OR CC0-1.0) AND Apache-2.0 URL: https://ghostty.org/ @@ -41,7 +41,7 @@ Requires: gtk4 Requires: gtk4-layer-shell Requires: libadwaita Conflicts: ghostty-nightly -Packager: Gilver E. +Packager: Gilver E. %description 👻 Ghostty is a fast, feature-rich, and cross-platform terminal emulator that uses platform-native UI and GPU acceleration. @@ -76,6 +76,13 @@ BuildArch: noarch %description zsh-completion Zsh shell completion for Ghostty. +%package devel +Summary: Development files for Ghostty. +Requires: %{name} = %{evr} + +%description devel +This package includes the development files for Ghostty. + %package kio Summary: KIO support for Ghostty Requires: %{name} = %{evr} @@ -88,6 +95,7 @@ This package allows Ghostty to interact with KIO. Summary: Nautilus menu support for Ghostty Supplements: (%{name} and nautilus) Requires: %{name} = %{evr} +Requires: nautilus-python BuildArch: noarch %description nautilus @@ -144,6 +152,19 @@ BuildArch: noarch %description terminfo Ghostty's terminfo. Needed for basic terminal function. +%package -n libghostty-vt +Summary: The libghostty-vt libraries + +%description -n libghostty-vt +This package contains the libghostty-vt libraries, the first of many libghostty libaries in development. + +%package -n libghostty-vt-devel +Summary: Development files for libghostty-vt +Requires: libghostty-vt = %{evr} + +%description -n libghostty-vt-devel +This package contains the libraries and header files that are needed for developing with libghostty-vt. + %prep /usr/bin/minisign -V -m %{SOURCE0} -x %{SOURCE1} -P %{public_key} %autosetup @@ -160,7 +181,8 @@ DESTDIR="%{buildroot}" \ -Dversion-string="%{version}" \ -Dstrip=false \ -Dpie=true \ - -Demit-docs + -Demit-docs \ + -Demit-themes=false # Don't conflict with ncurses-term on F42 and up %if 0%{?fedora} >= 42 @@ -176,7 +198,6 @@ rm -rf %{buildroot}%{_datadir}/terminfo/g/%{name} %{_datadir}/applications/%{appid}.desktop %dir %{_datadir}/%{name} %{_datadir}/%{name}/doc -%{_datadir}/%{name}/themes %{_datadir}/metainfo/%{appid}.metainfo.xml %{_datadir}/dbus-1/services/%{appid}.service %{_iconsdir}/hicolor/16x16/apps/%{appid}.png @@ -202,6 +223,9 @@ rm -rf %{buildroot}%{_datadir}/terminfo/g/%{name} %files zsh-completion %{zsh_completions_dir}/_%{name} +%files devel +%{_includedir}/ghostty/ + %files kio %{_datadir}/kio/servicemenus/%{appid}.desktop @@ -229,6 +253,7 @@ rm -rf %{buildroot}%{_datadir}/terminfo/g/%{name} %{_datadir}/%{name}/shell-integration/bash/%{name}.bash %{_datadir}/%{name}/shell-integration/elvish/lib/%{name}-integration.elv %{_datadir}/%{name}/shell-integration/fish/vendor_conf.d/%{name}-shell-integration.fish +%{_datadir}/%{name}/shell-integration/nushell/vendor/autoload/%{name}.nu %{_datadir}/%{name}/shell-integration/zsh/.zshenv %{_datadir}/%{name}/shell-integration/zsh/%{name}-integration @@ -247,9 +272,20 @@ rm -rf %{buildroot}%{_datadir}/terminfo/g/%{name} %postun %systemd_user_postun app-%{appid}.service +%files -n libghostty-vt +%{_libdir}/libghostty-vt.so.* + +%files -n libghostty-vt-devel +%{_libdir}/libghostty-vt.so +%{_datadir}/pkgconfig/libghostty-vt.pc + %changelog +* Tue Oct 28 2025 Gilver E. - 1.2.3-2 +- Disabled bundled themes + * This is necessary to address licensing issues in the themes repo Ghostty uses + * See: https://github.com/mbadolato/iTerm2-Color-Schemes/issues/638 * Fri Jan 31 2025 Gilver E. -- Update to 1.1.0-1%{?dist} +- Update to 1.1.0-1 * Low GHSA-98wc-794w-gjx3: Ghostty leaked file descriptors allowing the shell and any of its child processes to impact other Ghostty terminal instances * Ghostty terminfo source files are now a subpackage * Shell integration and completion and terminfo subpackages are now properly noarch diff --git a/anda/devs/kvrocks/kvrocks.spec b/anda/devs/kvrocks/kvrocks.spec index 063f438a6f..eac6b8437d 100644 --- a/anda/devs/kvrocks/kvrocks.spec +++ b/anda/devs/kvrocks/kvrocks.spec @@ -1,5 +1,5 @@ Name: kvrocks -Version: 2.13.0 +Version: 2.15.0 Release: 1%?dist Summary: Distributed key value NoSQL database that uses RocksDB License: Apache-2.0 diff --git a/anda/devs/lowfi/rust-lowfi.spec b/anda/devs/lowfi/rust-lowfi.spec index 4d9c86af11..994e1c3922 100644 --- a/anda/devs/lowfi/rust-lowfi.spec +++ b/anda/devs/lowfi/rust-lowfi.spec @@ -2,8 +2,8 @@ %global crate lowfi Name: rust-lowfi -Version: 1.7.2 -Release: 1%?dist +Version: 2.0.6 +Release: 1%{?dist} Summary: Extremely simple lofi player License: MIT diff --git a/anda/devs/micro/micro-nightly.spec b/anda/devs/micro/micro-nightly.spec index 4e964e857e..adbec0f99f 100644 --- a/anda/devs/micro/micro-nightly.spec +++ b/anda/devs/micro/micro-nightly.spec @@ -12,10 +12,10 @@ # Naming variable as something other than "commit" is necessary # to stop %%gometa from putting commit hash in release -%global commit_hash ccf0a9f6d6ca755725e35863abbca896635c8c1c -%global commit_date 20251022 +%global commit_hash 253065a4af5a417e3b13d62ec5f5f722457f4a53 +%global commit_date 20260505 %global shortcommit %{sub %{commit_hash} 1 7} -%global ver 2.0.14 +%global ver 2.0.15 # https://github.com/zyedidia/micro %global goipath github.com/zyedidia/micro diff --git a/anda/devs/neovide/neovide.spec b/anda/devs/neovide/neovide.spec index b6b13b242d..3bb5eb17cc 100644 --- a/anda/devs/neovide/neovide.spec +++ b/anda/devs/neovide/neovide.spec @@ -2,8 +2,8 @@ %global raw_forgeurl https://raw.githubusercontent.com/%{crate}/%{crate} Name: rust-neovide -Version: 0.15.2 -Release: 1%?dist +Version: 0.16.2 +Release: 1%{?dist} Summary: No Nonsense Neovim Client in Rust License: MIT diff --git a/anda/devs/powershell/Microsoft.PowerShell.SDK.csproj.TypeCatalog.targets b/anda/devs/powershell/Microsoft.PowerShell.SDK.csproj.TypeCatalog.targets new file mode 100644 index 0000000000..65d52cfcb5 --- /dev/null +++ b/anda/devs/powershell/Microsoft.PowerShell.SDK.csproj.TypeCatalog.targets @@ -0,0 +1,9 @@ + + + + <_RefAssemblyPath Include="%(_ReferencesFromRAR.OriginalItemSpec)%3B" Condition=" '%(_ReferencesFromRAR.NuGetPackageId)' != 'Microsoft.Management.Infrastructure' "/> + + + + diff --git a/anda/devs/powershell/anda.hcl b/anda/devs/powershell/anda.hcl new file mode 100644 index 0000000000..46a5bcc5b0 --- /dev/null +++ b/anda/devs/powershell/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "powershell.spec" + } +} diff --git a/anda/devs/powershell/com.microsoft.PowerShell.metainfo.xml b/anda/devs/powershell/com.microsoft.PowerShell.metainfo.xml new file mode 100644 index 0000000000..5d25a7bc29 --- /dev/null +++ b/anda/devs/powershell/com.microsoft.PowerShell.metainfo.xml @@ -0,0 +1,22 @@ + + + com.microsoft.PowerShell + CC0-1.0 + MIT + Microsoft PowerShell + PowerShell for every system! + + https://github.com/PowerShell/PowerShell/blob/master/assets/Powershell_256.png + + +

+ PowerShell is a cross-platform (Windows, Linux, and macOS) automation and configuration tool/framework that works well with your existing tools and is optimized for dealing with structured data (e.g. JSON, CSV, XML, etc.), REST APIs, and object models. It includes a command-line shell, an associated scripting language, and a framework for processing cmdlets. +

+
+ https://microsoft.com/PowerShell + + Microsoft Corporation + + com.microsoft.PowerShell + https://microsoft.com/PowerShell +
diff --git a/anda/devs/powershell/powershell.spec b/anda/devs/powershell/powershell.spec new file mode 100644 index 0000000000..ee438b1f97 --- /dev/null +++ b/anda/devs/powershell/powershell.spec @@ -0,0 +1,239 @@ +%global debug_package %{nil} +# It's Electron all over again +%global __requires_exclude_from %{_libdir}/%{name}/.* +%global __provides_exclude_from %{_libdir}/%{name}/.* +%global git_name PowerShell +# Not currently tracked, all PowerShell specifies is a version under 4.99 +%global pester_version 4.10.1 +%global dotnet_version 10.0 +# Arch defined by .NET +%ifarch %{x86_64} +%global darch x64 +%elifarch %{arm64} +%global darch arm64 +%endif +%global appid com.microsoft.PowerShell +%global org com.microsoft +%global appstream_component console-application +%bcond test 1 + +Name: powershell +Version: 7.6.1 +Release: 1%{?dist} +Summary: A cross-platform automation and configuration tool/framework +SourceLicense: MIT +License: Apache-2.0 AND BSD-2-Clause AND MIT +URL: https://microsoft.com/PowerShell +Source0: https://github.com/%{git_name}/%{git_name}/archive/refs/tags/v%{version}.tar.gz +Source1: https://globalcdn.nuget.org/packages/pester.%{pester_version}.nupkg +# For some reason the build doesn't provide this information to itself +Source2: Microsoft.PowerShell.SDK.csproj.TypeCatalog.targets +Source3: %{appid}.metainfo.xml +BuildRequires: dotnet-host +BuildRequires: dotnet-sdk-%{dotnet_version} +BuildRequires: git-core +BuildRequires: jq +BuildRequires: nuget +BuildRequires: unzip +%if %{with test} +BuildRequires: glibc-all-langpacks +BuildRequires: iputils +BuildRequires: langpacks-en +%endif +Requires: dotnet-hostfxr-%{dotnet_version} +Requires: dotnet-runtime-%{dotnet_version} +# .NET versioning +Provides: mono(pwsh) = %{version}.0 +Packager: Gilver E. + +%description +%{git_name} is a cross-platform automation and configuration tool/framework. + +%package doc +Summary: Documentation files for PowerShell +Requires: %{name} = %{evr} + +%description doc +This package contains documentation for PowerShell. + +%prep +%git_clone https://github.com/%{git_name}/%{git_name}.git v%{version} + +# Patch sources to fetch from upstream NuGet otherwise some fail +sed -i 's|add key=.*"|add key="nuget.org" value="https://api.nuget.org/v3/index.json"|g' nuget.config + +jq '.sdk.version = "%{dotnet_version}.0" | .sdk.rollForward = "feature"' global.json > _global.json + mv _global.json global.json + +%build +export NUGET_PACKAGES="$PWD/nuget" +export DOTNET_NOLOGO=true +export DOTNET_CLI_TELEMETRY_OPTOUT=true + +dotnet restore src/powershell-unix -p:PublishReadyToRun=true +dotnet restore src/TypeCatalogGen +dotnet restore src/ResGen +dotnet restore src/Modules +dotnet restore src/Microsoft.PowerShell.GlobalTool.Shim +dotnet restore test/tools/TestAlc +dotnet restore test/tools/TestExe +dotnet restore test/tools/UnixSocket +dotnet restore test/tools/Modules +dotnet restore test/tools/TestService -p:RuntimeIdentifiers=linux-%{darch} +dotnet restore test/tools/WebListener -p:RuntimeIdentifiers=linux-%{darch} +dotnet restore test/tools/NamedPipeConnection/src/code + +pushd src/ResGen +dotnet run --no-restore +popd + +cp -t src/Microsoft.PowerShell.SDK/obj \ + "%{SOURCE2}" + +INCFILE="$PWD/src/TypeCatalogGen/powershell_linux-%{darch}.inc" +dotnet msbuild \ + src/Microsoft.PowerShell.SDK \ + -t:_GetDependencies \ + -p:DesignTimeBuild=true \ + -p:_DependencyFile="$INCFILE" \ + -nologo + +dotnet run \ + --no-restore \ + --project src/TypeCatalogGen \ + src/System.Management.Automation/CoreCLR/CorePsTypeCatalog.cs \ + "$INCFILE" + +dotnet publish \ + --no-restore \ + --runtime linux-%{darch} \ + --no-self-contained \ + --configuration Release \ + --output lib \ + src/powershell-unix/ + +grep 'Microsoft.NETCore.App' "$INCFILE" | sed 's/;//' | while read -r assembly; do + install -Dm755 -t lib/ref "$assembly" +done + +cp -a $NUGET_PACKAGES/microsoft.powershell.archive/1.2.5/. lib/Modules/Microsoft.PowerShell.Archive +cp -a $NUGET_PACKAGES/microsoft.powershell.psresourceget/1.1.1/. lib/Modules/Microsoft.PowerShell.PSResourceGet +cp -a $NUGET_PACKAGES/packagemanagement/1.4.8.1/. lib/Modules/PackageManagement +cp -a $NUGET_PACKAGES/powershellget/2.2.5/. lib/Modules/PowerShellGet +cp -a $NUGET_PACKAGES/psreadline/2.3.6/. lib/Modules/PSReadLine +cp -a $NUGET_PACKAGES/threadjob/2.0.3/. lib/Modules/ThreadJob + +# Restore-PSPester +unzip -ud temp_pester %{SOURCE1} +cp -a temp_pester/tools lib/Modules/Pester + +# Generate manpage +lib/pwsh -noprofile -command ' + Import-Module ./build.psm1 -ArgumentList $true + Import-Module ./tools/packaging/packaging.psm1 + New-ManGzip +' + +%install +mkdir -p %{buildroot}%{_libdir}/%{name} +cp -a lib/* -t %{buildroot}%{_libdir}/%{name} +mkdir -p %{buildroot}%{_bindir} +ln -s %{_libdir}/%{name}/pwsh %{buildroot}%{_bindir}/pwsh +install -Dpm644 assets/manpage/pwsh.1.gz -t %{buildroot}%{_mandir}/man1 +install -Dpm644 assets/powershell_128.svg %{buildroot}%{_scalableiconsdir}/%{name}.svg + +%terra_appstream -o %{SOURCE3} + +%if %{with test} +%check +export NUGET_PACKAGES="$PWD/nuget" +export DOTNET_NOLOGO=true +export DOTNET_CLI_TELEMETRY_OPTOUT=true + +# Remove tests that fail in CIs +rm test/powershell/engine/Help/HelpSystem.Tests.ps1 +rm test/powershell/Modules/Microsoft.PowerShell.Management/Start-Process.Tests.ps1 +rm test/powershell/Modules/Microsoft.PowerShell.Utility/Format-Table.Tests.ps1 +rm test/powershell/Language/Parser/RedirectionOperator.Tests.ps1 +rm test/powershell/Language/Scripting/NativeExecution/NativeWindowsTildeExpansion.Tests.ps1 +rm test/powershell/Modules/Microsoft.PowerShell.Utility/WebCmdlets.Tests.ps1 +rm test/powershell/Modules/Microsoft.PowerShell.PSResourceGet/Microsoft.PowerShell.PSResourceGet.Tests.ps1 + +# Fails on timezone format +rm test/powershell/Modules/Microsoft.PowerShell.Management/TimeZone.Tests.ps1 + +# Opens browser +rm test/powershell/Language/Scripting/NativeExecution/NativeCommandProcessor.Tests.ps1 +rm test/powershell/Modules/Microsoft.PowerShell.Utility/Invoke-Item.Tests.ps1 + +# Creates directories in $HOME +rm test/powershell/Language/Parser/ParameterBinding.Tests.ps1 +rm test/powershell/Language/Scripting/ScriptHelp.Tests.ps1 +rm test/powershell/Modules/Microsoft.PowerShell.Utility/Add-Type.Tests.ps1 +rm test/powershell/Modules/Microsoft.PowerShell.Utility/Set-PSBreakpoint.Tests.ps1 +rm test/powershell/engine/Basic/Assembly.LoadFrom.Tests.ps1 +rm test/powershell/engine/Basic/Assembly.LoadNative.Tests.ps1 + +unzip -ud test/tools/Modules/SelfSignedCertificate \ +"$NUGET_PACKAGES/selfsignedcertificate/0.0.4/selfsignedcertificate.0.0.4.nupkg" + +dotnet publish \ + --no-restore \ + --configuration Debug \ + test/tools/TestAlc + +for project in TestExe TestService UnixSocket WebListener; do + dotnet publish \ + --no-restore \ + --runtime linux-%{darch} \ + --self-contained \ + --configuration Debug \ + --output test/tools/$project/bin \ + test/tools/$project + export PATH="$PATH:$PWD/test/tools/$project/bin/Debug/net%{dotnet_version}/linux-%{darch}" + done + +dotnet publish \ + --no-restore \ + --configuration Debug \ + --framework net%{dotnet_version} \ + --output test/tools/Modules/Microsoft.PowerShell.NamedPipeConnection \ + test/tools/NamedPipeConnection/src/code + +install -Dm644 -t test/tools/Modules/Microsoft.PowerShell.NamedPipeConnection \ + test/tools/NamedPipeConnection/src/Microsoft.PowerShell.NamedPipeConnection.psd1 + +export LANG="en_US.UTF-8" +export LC_ALL="$LANG" + +# shellcheck disable=SC2016 +lib/pwsh -noprofile -command ' + $env:PSModulePath = "$(Get-Location)/test/tools/Modules:" + $env:PSModulePath + Import-Module "Pester" + Invoke-Pester -Show Header,Failed,Summary -EnableExit ` + -OutputFormat NUnitXml -OutputFile pester-tests.xml ` + -ExcludeTag @("Slow", "RequireSudoOnUnix") ` + -Tag @("CI", "Feature") ` + "test/powershell" + ' +%endif + +%files +%license LICENSE.txt +%license assets/additionalAttributions.txt +%doc README.md +%doc CODE_OF_CONDUCT.md +%{_bindir}/pwsh +%{_libdir}/%{name}/ +%{_mandir}/man1/pwsh.1.* +%{_scalableiconsdir}/%{name}.svg +%{_metainfodir}/%{appid}.metainfo.xml + +%files doc +%doc docs/* +%doc CHANGELOG +%doc ADOPTERS.md + +%changelog +* Wed Dec 24 2025 Gilver E. - 7.5.4-1 +- Initial package diff --git a/anda/devs/powershell/update.rhai b/anda/devs/powershell/update.rhai new file mode 100644 index 0000000000..385dc2813b --- /dev/null +++ b/anda/devs/powershell/update.rhai @@ -0,0 +1,6 @@ +let v = gh("PowerShell/PowerShell"); + +if `[\d.]+-preview\.\d+`.find_all(v).len == 0 { + rpm.version(v); + rpm.global("dotnet_version", (find(`\"version\": \"([\d.]+)\.\d.+\"`, get(`https://github.com/PowerShell/PowerShell/raw/refs/tags/${v}/global.json`), 1))); +} diff --git a/anda/devs/rio/rio.spec b/anda/devs/rio/rio.spec index 25480f27d6..9f7276b44e 100644 --- a/anda/devs/rio/rio.spec +++ b/anda/devs/rio/rio.spec @@ -1,11 +1,11 @@ %global crate rioterm +%global appid com.rioterm.Rio %global _description %{expand: A hardware-accelerated terminal emulator focusing to run in desktops and browsers.} -%bcond docs 1 Name: rio -Version: 0.2.32 -Release: 1%?dist +Version: 0.4.2 +Release: 1%{?dist} Summary: A hardware-accelerated terminal written in Rust. SourceLicense: MIT License: ((Apache-2.0 OR MIT) AND BSD-3-Clause) AND ((MIT OR Apache-2.0) AND Unicode-3.0) AND (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND Apache-2.0 AND BSD-2-Clause AND BSL-1.0 AND (CC0-1.0 OR Apache-2.0 OR Apache-2.0 WITH LLVM-exception) AND (CC0-1.0 OR MIT-0 OR Apache-2.0) AND CC0-1.0 AND ISC AND (MIT OR Apache-2.0 OR Zlib) AND (MIT OR Apache-2.0) AND (MIT OR Zlib OR Apache-2.0) AND MIT AND (MPL-2.0 OR GPL-3.0-only) AND MPL-2.0+ AND MPL-2.0 AND Unicode-3.0 AND (Unlicense OR MIT) AND (Zlib OR Apache-2.0 OR MIT) AND Zlib @@ -17,6 +17,7 @@ BuildRequires: desktop-file-utils BuildRequires: freetype-devel BuildRequires: cmake BuildRequires: gcc-c++ +BuildRequires: glslc BuildRequires: libxcb-devel BuildRequires: libxkbcommon-devel BuildRequires: mold @@ -25,11 +26,10 @@ BuildRequires: pkgconfig(alsa) Requires: freetype Requires: fontconfig Requires: hicolor-icon-theme +Requires: ncurses-term Obsoletes: %{crate} < %{version}-%{release} -%if %{with docs} -Suggests: %{name}-doc = %{version}-%{release} -%endif -Packager: Gilver E. +Obsoletes: %{name}-doc < %{evr} +Packager: Gilver E. %description %_description @@ -40,14 +40,6 @@ Requires: %{name} = %{version}-%{release} %description devel This package contains the development libraries for Rio. -%if %{with docs} -%package doc -Summary: Documentation for Rio - -%description doc -This package contains all official documentation files for the Rio terminal. -%endif - %prep %autosetup -n %{name}-%{version} %cargo_prep_online @@ -59,7 +51,8 @@ sed -i 's/Exec=.*/Exec=%{crate}/g' misc/%{name}.desktop %install install -Dm755 target/rpm/%{name} %{buildroot}%{_bindir}/%{crate} install -Dm755 target/rpm/*.so -t %{buildroot}%{_libdir} -install -Dm644 docs/static/assets/%{name}-logo.svg %{buildroot}%{_iconsdir}/hicolor/scalable/apps/%{name}.svg +install -Dm644 misc/logo.svg %{buildroot}%{_scalableiconsdir}/%{name}.svg +install -Dm644 misc/%{appid}.metainfo.xml -t %{buildroot}%{_metainfodir} desktop-file-install misc/%{name}.desktop %{cargo_license_online -a} > LICENSE.dependencies @@ -73,17 +66,13 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/%{name}.desktop %{_bindir}/%{crate} %{_datadir}/applications/%{name}.desktop %{_iconsdir}/hicolor/scalable/apps/%{name}.svg +%{_metainfodir}/%{appid}.metainfo.xml %files devel %{_libdir}/librio_backend.so %{_libdir}/librio_proc_macros.so %{_libdir}/libsugarloaf.so -%if %{with docs} -%files doc -%doc docs/docs/* -%endif - %changelog * Mon May 5 2025 Gilver E. - 0.2.13-1 - Added doc package diff --git a/anda/devs/shibuya/python-shibuya.spec b/anda/devs/shibuya/python-shibuya.spec index bb7c3b4eda..952c478d16 100644 --- a/anda/devs/shibuya/python-shibuya.spec +++ b/anda/devs/shibuya/python-shibuya.spec @@ -5,8 +5,8 @@ A responsive, good looking with modern design documentation theme for Sphinx, wi %bcond docs 0 Name: python-%{pypi_name} -Version: 2025.10.21 -Release: 1%?dist +Version: 2026.1.9 +Release: 2%{?dist} Summary: A clean, responsive, and customizable Sphinx documentation theme with light/dark mode License: BSD-3-Clause URL: https://shibuya.lepture.com @@ -30,7 +30,7 @@ BuildRequires: python3dist(sphinx-design) BuildRequires: python3dist(sphinx-togglebutton) %endif BuildArch: noarch -Packager: Gilver E. +Packager: Gilver E. %description %_description diff --git a/anda/devs/tracy/tracy.spec b/anda/devs/tracy/tracy.spec index 7ec991aa9c..6605a44ea7 100644 --- a/anda/devs/tracy/tracy.spec +++ b/anda/devs/tracy/tracy.spec @@ -1,36 +1,70 @@ -%global _desc Tracy is a real time, nanosecond resolution, remote telemetry, hybrid frame and sampling profiler for games and other applications. +%if 0%{?fedora} >= 44 +%global gcc_compat 15 +%global __cc gcc-%{gcc_compat} +%global __cxx g++-%{gcc_compat} +%endif Name: tracy -Version: 0.12.2 -Release: 1%?dist -Summary: A real time, nanosecond resolution, remote telemetry, hybrid frame and sampling profiler for games and other applications. +Version: 0.13.1 +Release: 4%?dist +Summary: A real time, nanosecond resolution, remote telemetry, hybrid frame and sampling profiler for games and other applications License: BSD-3-Clause URL: https://github.com/wolfpld/tracy Source0: https://github.com/wolfpld/tracy/archive/refs/tags/v%version.tar.gz -BuildRequires: pkgconfig(egl) pkgconfig(glfw3) pkgconfig(freetype2) pkgconfig(dbus-1) pkgconfig(libunwind) pkgconfig(libdebuginfod) pkgconfig(tbb) pkgconfig(wayland-client) pkgconfig(wayland-protocols) pkgconfig(xkbcommon) pkgconfig(capstone) -BuildRequires: cmake gcc gcc-c++ meson +BuildRequires: pkgconfig(egl) +BuildRequires: pkgconfig(glfw3) +BuildRequires: pkgconfig(freetype2) +BuildRequires: pkgconfig(dbus-1) +BuildRequires: pkgconfig(libunwind) +BuildRequires: pkgconfig(libdebuginfod) +BuildRequires: pkgconfig(tbb) +BuildRequires: pkgconfig(wayland-client) +BuildRequires: pkgconfig(wayland-protocols) +BuildRequires: pkgconfig(xkbcommon) +BuildRequires: pkgconfig(capstone) +BuildRequires: pkgconfig(openssl) +BuildRequires: pkgconfig(pugixml) +BuildRequires: pkgconfig(libcurl) +BuildRequires: pkgconfig(libxslt) +BuildRequires: pkgconfig(libnghttp2) +BuildRequires: pkgconfig(libidn2) +BuildRequires: pkgconfig(libssh2) +BuildRequires: tbb +BuildRequires: expat +BuildRequires: libxml2 +BuildRequires: openssl-libs +BuildRequires: cmake +BuildRequires: meson +BuildRequires: gcc%{?gcc_compat} +BuildRequires: gcc%{?gcc_compat}-c++ + +Packager: Owen Zimmerman %description -%_desc +Tracy is a real time, nanosecond resolution, remote telemetry, hybrid frame and sampling profiler for games and other applications. %package devel Summary: Development files for the tracy package +Requires: tracy = %{evr} %description devel -%_desc -This package contains the development files for the tracy package. +Development files for the tracy package. %prep -%autosetup -p1 +%autosetup + +%conf +%meson -Dcpp_std=c++17 %build -%meson %meson_build - for project in capture csvexport import update profiler do pushd $project - %cmake -DDOWNLOAD_CAPSTONE=0 + %cmake -DDOWNLOAD_CAPSTONE=1 \ + -DCMAKE_CXX_STANDARD=17 \ + -DCMAKE_SKIP_RPATH=ON \ + -DCMAKE_SKIP_INSTALL_RPATH=ON %cmake_build popd done @@ -68,10 +102,14 @@ install -Dm644 icon/application-tracy.svg %buildroot%_iconsdir/hicolor/scalable/ %files devel %_libdir/pkgconfig/tracy.pc -%_includedir/common -%_includedir/tracy -%_includedir/client +%_includedir/tracy/* %changelog +* Tue Apr 21 2026 Owen Zimmerman - 0.13.1-2 +- Make gcc15 the default compiler on Fedora 44+ + +* Mon Jan 19 2026 Owen Zimmerman - 0.13.1-1 +- Fix compile issues, update for 0.13.1 + * Wed Jul 24 2024 Owen Zimmerman - 0.11-1 - Initial package. diff --git a/anda/devs/turbowarp/anda.hcl b/anda/devs/turbowarp/anda.hcl new file mode 100644 index 0000000000..87f8ab6de5 --- /dev/null +++ b/anda/devs/turbowarp/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "turbowarp.spec" + } +} diff --git a/anda/devs/turbowarp/turbowarp.spec b/anda/devs/turbowarp/turbowarp.spec new file mode 100644 index 0000000000..6fb36cd822 --- /dev/null +++ b/anda/devs/turbowarp/turbowarp.spec @@ -0,0 +1,116 @@ +%define appid org.turbowarp.TurboWarp + +Name: turbowarp-desktop +%electronmeta -D +Version: 1.15.5 +Release: 1%{?dist} +Summary: A better offline editor for Scratch 3 +URL: https://desktop.turbowarp.org/ +License: GPL-3.0-only AND %{electron_license} + +BuildRequires: anda-srpm-macros +BuildRequires: terra-appstream-helper + +Requires: glibc +Requires: glib2 +Requires: nss-util +Requires: nss +Requires: atk +Requires: gtk3 +Requires: cups-libs +Requires: libX11 +Requires: libXcomposite +Requires: libXfixes +Requires: libXrandr +Requires: mesa-libgbm +Requires: expat +Requires: libxcb +Requires: libxkbcommon +Requires: systemd-libs +Requires: alsa-lib +Requires: at-spi2-core +Requires: pcre2 +Requires: libffi +Requires: zlib-ng +Requires: libmount +Requires: libselinux +Requires: nspr +Requires: avahi-libs +Requires: gnutls +Requires: libpng +Requires: fontconfig +Requires: freetype +Requires: libXrender +Requires: pixman +Requires: pango +Requires: harfbuzz +Requires: fribidi +Requires: cairo-gobject +Requires: gdk-pixbuf2 +Requires: libepoxy +Requires: libXi +Requires: libcloudproviders +Requires: libtinysparql +Requires: libwayland-client +Requires: libthai +Requires: libdrm +Requires: libXau +Requires: libcap +Requires: libblkid +Requires: krb5-libs +Requires: libcom_err +Requires: keyutils-libs +Requires: openssl-libs +Requires: p11-kit +Requires: libidn2 +Requires: libunistring +Requires: libtasn1 +Requires: nettle +Requires: gmp +Requires: libxml2 +Requires: bzip2-libs +Requires: libbrotli +Requires: libwayland-cursor +Requires: libwayland-egl +Requires: libXcursor +Requires: libXinerama +Requires: graphite2 +Requires: glycin-libs +Requires: json-glib +Requires: sqlite-libs +Requires: libdatrie +Requires: xz-libs +Requires: lcms2 +Requires: libseccomp + +Packager: junefish + +%description +%summary. + +%prep +%git_clone https://github.com/TurboWarp/desktop %version +%__desktop_file_edit linux-files/%appid.desktop --set-key=Exec --set-value=%{_bindir}/turbowarp-desktop + +%build +%npm_build -c -B -r fetch,webpack:prod + +%install +%electron_install -i %appid -I build/ + +%terra_appstream -o linux-files/%appid.metainfo.xml + +%__desktop_file_install linux-files/%appid.desktop + +%files +%license LICENSE +%doc README.md +%{_bindir}/turbowarp-desktop +%{_libdir}/turbowarp-desktop/ +%{_appsdir}/%appid.desktop +%{_hicolordir}/512x512/apps/%appid.png +%{_metainfodir}/%appid.metainfo.xml + +%changelog +* Sat Jan 24 2026 june-fish - 1.15.2 +- Initial Package diff --git a/anda/devs/turbowarp/update.rhai b/anda/devs/turbowarp/update.rhai new file mode 100644 index 0000000000..7db05c5753 --- /dev/null +++ b/anda/devs/turbowarp/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("TurboWarp/desktop")); diff --git a/anda/devs/yarn-berry/anda.hcl b/anda/devs/yarn-berry/anda.hcl new file mode 100644 index 0000000000..5eb0a578b2 --- /dev/null +++ b/anda/devs/yarn-berry/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "yarnpkg-berry.spec" + } + labels { + subrepo = "extras" + } +} diff --git a/anda/devs/yarn-berry/setup-ts-cache.patch b/anda/devs/yarn-berry/setup-ts-cache.patch new file mode 100644 index 0000000000..009069aac7 --- /dev/null +++ b/anda/devs/yarn-berry/setup-ts-cache.patch @@ -0,0 +1,21 @@ +# Quick and dirty patch to make Yarn Berry's build cache system work when installed as a system package. +# This patch is created for and maintained solely for Terra. +--- a/scripts/setup-ts-cache.js 2025-11-22 00:36:54.889317752 -0600 ++++ b/scripts/setup-ts-cache.js 2025-11-22 00:44:29.823498920 -0600 +@@ -1,6 +1,7 @@ + const crypto = require(`crypto`); + const esbuild = require(`esbuild`); + const fs = require(`fs`); ++const os = require('os'); + const path = require(`path`); + const v8 = require(`v8`); + const zlib = require(`zlib`); +@@ -25,7 +26,7 @@ + isDirty: false, + }; + +-const cachePath = path.join(__dirname, `../node_modules/.cache/yarn/esbuild-transpile-cache.bin`); ++const cachePath = path.join(os.homedir(), `.cache/yarn/esbuild-transpile-cache.bin`); + try { + const cacheData = v8.deserialize(zlib.brotliDecompressSync(fs.readFileSync(cachePath))); + if (cacheData.version === cache.version) { diff --git a/anda/devs/yarn-berry/update.rhai b/anda/devs/yarn-berry/update.rhai new file mode 100644 index 0000000000..d169d849fa --- /dev/null +++ b/anda/devs/yarn-berry/update.rhai @@ -0,0 +1 @@ +rpm.version(npm("@yarnpkg/cli")); diff --git a/anda/devs/yarn-berry/yarnpkg-berry.spec b/anda/devs/yarn-berry/yarnpkg-berry.spec new file mode 100644 index 0000000000..4ddefbf63e --- /dev/null +++ b/anda/devs/yarn-berry/yarnpkg-berry.spec @@ -0,0 +1,68 @@ +%bcond bootstrap 0 + +Name: yarnpkg-berry +Version: 4.14.1 +Release: 1%{?dist} +Summary: Active development version of Yarn +License: BSD-2-Clause +URL: https://yarnpkg.com +Source0: https://github.com/yarnpkg/berry/archive/refs/tags/@yarnpkg/cli/%{version}.tar.gz +Patch0: setup-ts-cache.patch +BuildRequires: anda-srpm-macros +BuildRequires: nodejs +BuildRequires: nodejs-packaging +%if %{with bootstrap} +BuildRequires: yarnpkg +%else +BuildRequires: %{name} +%endif +Provides: yarn-berry +Conflicts: yarnpkg +BuildArch: noarch +Packager: Gilver E. + +%description +The next, actively developed version of Yarn. + +%package doc +Summary: Extra documentation and contributor guides for Yarn Berry. + +%description doc +This package contains extra doc files as well as contributor material for Yarn Berry. + +%prep +%autosetup -p1 -n berry--yarnpkg-cli-%{version} + +%build +%{__yarn} build:cli + +%install +# Yarn cannot be installed in nodejs_sitelib due to using TypeScript runtimes and NodeJS changes disallowing TypeScript in node_modules +mkdir -p {%{buildroot}%{_bindir},%{buildroot}%{_libdir}/yarn-berry} +cp -pr {scripts,packages,.pnp.cjs,.pnp.loader.mjs,.yarn} -t %{buildroot}%{_libdir}/yarn-berry + +for bin in yarn yarnpkg; do + ln -sfr %{buildroot}%{_libdir}/yarn-berry/scripts/bin/$bin %{buildroot}%{_bindir}/$bin +done + +%files +%license LICENSE.md +%license CODEOWNERS +%doc README.md +%doc CHANGELOG.md +%doc SECURITY.md +%{_bindir}/yarn +%{_bindir}/yarnpkg +%{_libdir}/yarn-berry/ + +%files doc +%doc CODE_OF_CONDUCT.md +%doc CONTRIBUTING.md +%doc HISTORY.md +%doc GOVERNANCE.md + +%changelog +* Sun Nov 23 2025 Gilver E. - 4.12.0-3 +- First build without bootstrap +* Thu Nov 20 2025 Gilver E. - 4.11.0-1 +- Initial build diff --git a/anda/devs/zed/nightly/override.xml b/anda/devs/zed/nightly/override.xml new file mode 100644 index 0000000000..0f0e40f8e2 --- /dev/null +++ b/anda/devs/zed/nightly/override.xml @@ -0,0 +1,7 @@ + + + + Zed + dev.zed.Zed + dev.zed.Zed-nightly + diff --git a/anda/devs/zed/nightly/zed-nightly.spec b/anda/devs/zed/nightly/zed-nightly.spec index 385a00d06d..365fc2b3a8 100644 --- a/anda/devs/zed/nightly/zed-nightly.spec +++ b/anda/devs/zed/nightly/zed-nightly.spec @@ -1,27 +1,35 @@ -%global commit 2919e1976aad1a66ba2fbd137a1230ca6c0b52f0 +%global commit 5dd9082d05e4c9eb13623c1281fb7c4b0071b3a3 %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commit_date 20251027 -%global ver 0.211.0 +%global commit_date 20260507 +%global ver 1.3.0 %bcond_with check -%bcond nightly 1 +%bcond_with debug_no_build +%bcond nightly 0 + +%if 0%{?with_debug_no_build} +%global debug_package %{nil} +%endif # Exclude input files from mangling %global __brp_mangle_shebangs_exclude_from ^/usr/src/.*$ %global crate zed -%global app_id dev.zed.Zed-Nightly +%global appid dev.zed.Zed-Nightly +%global appstream_component desktop-application %global rustflags_debuginfo 0 +%global toolchain clang Name: zed-nightly Version: %ver^%commit_date.%shortcommit -Release: 1%?dist +Release: 1%{?dist} Summary: Zed is a high-performance, multiplayer code editor SourceLicense: AGPL-3.0-only AND Apache-2.0 AND GPL-3.0-or-later License: ((Apache-2.0 OR MIT) AND BSD-3-Clause) AND ((MIT OR Apache-2.0) AND Unicode-3.0) AND (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 AND ISC) AND AGPL.3.0-only AND AGPL-3.0-or-later AND (Apache-2.0 OR BSL-1.0 OR 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 (Apache-2.0 WITH LLVM-exception) AND Apache-2.0 AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND (BSD-2-Clause OR MIT OR Apache-2.0) AND BSD-2-Clause AND (CC0-1.0 OR Apache-2.0 OR Apache-2.0 WITH LLVM-exception) AND (CC0-1.0 OR Apache-2.0) AND (CC0-1.0 OR MIT-0 OR Apache-2.0) AND CC0-1.0 AND GPL-3.0-or-later AND (ISC AND (Apache-2.0 OR ISC) AND OpenSSL) AND (ISC AND (Apache-2.0 OR ISC)) AND ISC AND (MIT AND (MIT OR Apache-2.0)) AND (MIT AND BSD-3-Clause) AND (MIT OR Apache-2.0 OR CC0-1.0) AND (MIT OR Apache-2.0 OR NCSA) AND (MIT OR Apache-2.0 OR Zlib) AND (MIT OR Apache-2.0) AND (MIT OR Zlib OR Apache-2.0) AND MIT AND MPL-2.0 AND Unicode-3.0 AND (Unlicense OR MIT) AND (Zlib OR Apache-2.0 OR MIT) AND Zlib URL: https://zed.dev/ Source0: https://github.com/zed-industries/zed/archive/%{commit}.tar.gz +Source1: override.xml Conflicts: zed Conflicts: zed-preview @@ -56,7 +64,7 @@ BuildRequires: perl-lib BuildRequires: rustup %endif BuildRequires: vulkan-loader -Requires: (%name-rename-zeditor if zfs else %name-cli) +Requires: (%name-cli-compat-zfs if zfs else %name-cli) Suggests: %name-cli %description @@ -66,36 +74,34 @@ Code at the speed of thought - Zed is a high-performance, multiplayer code edito Summary: Provides the /usr/bin/zed binary Conflicts: zfs Supplements: (%name unless zfs) -%description cli -This package provides the /usr/bin/zed binary. If you use zfs, install %name-rename-zeditor instead. -%files cli -%_bindir/zed -%{_datadir}/applications/%app_id.desktop -%package rename-zeditor +%description cli +This package provides the /usr/bin/zed binary. If you use zfs, install %name-cli-compat-zfs instead. + +%package cli-compat-zfs Summary: Rename zed to zeditor to prevent collision with zfs Provides: %name-cli Conflicts: %name-cli +Obsoletes: %{name}-rename-zeditor <= 0.217.3 Supplements: (%name and zfs) RemovePathPostFixes: .zeditor -%description rename-zeditor + +%description cli-compat-zfs This package provides the %_bindir/zeditor binary instead of %_bindir/zed. This avoids conflicts with the zfs package. The normal package is %name-cli. -%files rename-zeditor -%_bindir/zeditor -%_datadir/applications/%app_id.desktop.zeditor - %prep %autosetup -n %{crate}-%{commit} -p1 +%if %{without debug_no_build} %if %{with nightly} %rustup_nightly %endif %cargo_prep_online +%endif export DO_STARTUP_NOTIFY="true" -export APP_ID="%app_id" -export APP_ICON="%app_id" +export APP_ID="%appid" +export APP_ICON="%appid" export APP_NAME="Zed Nightly" export APP_CLI="zed" export APP="%{_libexecdir}/zed-editor" @@ -105,34 +111,39 @@ export ZED_RELEASE_CHANNEL=nightly export BRANDING_LIGHT="#e9aa6a" export BRANDING_DARK="#1a5fb4" -echo "StartupWMClass=$APP_ID" >> crates/zed/resources/zed.desktop.in -envsubst < "crates/zed/resources/zed.desktop.in" > $APP_ID.desktop # from https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=zed-git#n52 +envsubst < "crates/zed/resources/zed.desktop.in" > %{appid}.desktop # from https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=zed-git#n52 +sed -i "s|@release_info@||g" "crates/zed/resources/flatpak/zed.metainfo.xml.in" -envsubst < "crates/zed/resources/flatpak/zed.metainfo.xml.in" > $APP_ID.metainfo.xml +envsubst < "crates/zed/resources/flatpak/zed.metainfo.xml.in" > %{appid}.metainfo.xml %build +%if %{without debug_no_build} export ZED_UPDATE_EXPLANATION="Run dnf up to update Zed Nightly from Terra." echo "nightly" > crates/zed/RELEASE_CHANNEL %cargo_build -- --package zed --package cli ALLOW_MISSING_LICENSES=1 script/generate-licenses +%endif %install +%if %{without debug_no_build} install -Dm755 target/rpm/zed %{buildroot}%{_libexecdir}/zed-editor install -Dm755 target/rpm/cli %{buildroot}%{_bindir}/zeditor install -Dm755 target/rpm/cli %{buildroot}%{_bindir}/zed %__cargo clean +%endif -install -Dm644 %app_id.desktop %{buildroot}%{_datadir}/applications/%app_id.desktop -sed 's/Exec=zed/Exec=zeditor/' %app_id.desktop > %app_id.desktop.zeditor -install -Dm644 %app_id.desktop.zeditor -t %buildroot%_datadir/applications/ -install -Dm644 crates/zed/resources/app-icon-nightly.png %{buildroot}%{_datadir}/pixmaps/%app_id.png +install -Dm644 %appid.desktop %{buildroot}%{_datadir}/applications/%appid.desktop +sed 's/Exec=zed/Exec=zeditor/' %appid.desktop > %appid.desktop.zeditor +install -Dm644 %appid.desktop.zeditor -t %buildroot%_datadir/applications/ +install -Dm644 crates/zed/resources/app-icon-nightly.png %{buildroot}%{_datadir}/icons/hicolor/512x512/apps/%appid.png -install -Dm644 %app_id.metainfo.xml %{buildroot}%{_metainfodir}/%app_id.metainfo.xml +install -Dm644 %appid.metainfo.xml %{buildroot}%{_metainfodir}/%appid.metainfo.xml # The license generation script doesn't generate licenses for ALL compiled dependencies, just direct deps of Zed, and it does not "group" licenses # Zed also needs a special approach to fetch the dep licenses +%if %{without debug_no_build} %{__cargo} tree \ -Z avoid-dev-deps \ --workspace \ @@ -145,14 +156,21 @@ install -Dm644 %app_id.metainfo.xml %{buildroot}%{_metainfodir}/%app_id.metainfo | sed -e '/.*(\*).*/d' -e '/^: pet/ s/./MIT&/' \ | sort -u \ > LICENSE.dependencies +%endif mv assets/icons/LICENSES LICENSE.icons mv assets/themes/LICENSES LICENSE.themes mv assets/fonts/ibm-plex-sans/license.txt LICENSE.fonts +%terra_appstream -o %{SOURCE1} %if %{with check} %check +appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/%appid.metainfo.xml +desktop-file-validate %{buildroot}%{_datadir}/applications/%appid.desktop + +%if %{without debug_no_build} %cargo_test %endif +%endif %files %doc CODE_OF_CONDUCT.md @@ -160,14 +178,34 @@ mv assets/fonts/ibm-plex-sans/license.txt LICENSE.fonts %license LICENSE-AGPL %license LICENSE-APACHE %license LICENSE-GPL +%if %{without debug_no_build} %license LICENSE.dependencies +%endif %license LICENSE.fonts %license LICENSE.icons %license LICENSE.themes +%if %{without debug_no_build} %license assets/licenses.md +%endif +%if %{without debug_no_build} %{_libexecdir}/zed-editor -%{_datadir}/pixmaps/%app_id.png -%{_metainfodir}/%app_id.metainfo.xml +%endif + +%files cli +%if %{without debug_no_build} +%_bindir/zed +%endif +%{_datadir}/icons/hicolor/512x512/apps/%appid.png +%{_datadir}/applications/%appid.desktop +%{_metainfodir}/%appid.metainfo.xml + +%files cli-compat-zfs +%if %{without debug_no_build} +%_bindir/zeditor +%endif +%{_datadir}/icons/hicolor/512x512/apps/%appid.png +%_datadir/applications/%appid.desktop.zeditor +%{_metainfodir}/%appid.metainfo.xml %changelog %autochangelog diff --git a/anda/devs/zed/preview/override.xml b/anda/devs/zed/preview/override.xml new file mode 100644 index 0000000000..ca4f0b51ff --- /dev/null +++ b/anda/devs/zed/preview/override.xml @@ -0,0 +1,6 @@ + + + Zed (Preview) + dev.zed.Zed-preview + dev.zed.Zed-preview + diff --git a/anda/devs/zed/preview/update.rhai b/anda/devs/zed/preview/update.rhai index 26d0a43273..3b854ed072 100644 --- a/anda/devs/zed/preview/update.rhai +++ b/anda/devs/zed/preview/update.rhai @@ -3,8 +3,6 @@ for release in releases { let tag = release.tag_name; tag.crop(1); // remove "v" rpm.global("ver", tag); + rpm.release(); break; - if rpm.changed() { - rpm.release(); - } } diff --git a/anda/devs/zed/preview/zed-preview.spec b/anda/devs/zed/preview/zed-preview.spec index 843e1f13b4..7b4cb744ce 100644 --- a/anda/devs/zed/preview/zed-preview.spec +++ b/anda/devs/zed/preview/zed-preview.spec @@ -1,22 +1,31 @@ -%bcond_with check +%global toolchain clang -%global ver 0.210.1-pre +%bcond_with check +%bcond_with debug_no_build + +%if 0%{?with_debug_no_build} +%global debug_package %{nil} +%endif + +%global ver 1.2.1-pre # Exclude input files from mangling %global __brp_mangle_shebangs_exclude_from ^/usr/src/.*$ %global crate zed -%global app_id dev.zed.Zed-Preview +%global appid dev.zed.Zed-Preview +%global appstream_component desktop-application %global rustflags_debuginfo 0 Name: zed-preview Version: %(echo %ver | sed 's/-/~/') -Release: 4%?dist +Release: 1%{?dist} Summary: Zed is a high-performance, multiplayer code editor SourceLicense: AGPL-3.0-only AND Apache-2.0 AND GPL-3.0-or-later License: ((Apache-2.0 OR MIT) AND BSD-3-Clause) AND ((MIT OR Apache-2.0) AND Unicode-3.0) AND (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 AND ISC) AND AGPL.3.0-only AND AGPL-3.0-or-later AND (Apache-2.0 OR BSL-1.0 OR 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 (Apache-2.0 WITH LLVM-exception) AND Apache-2.0 AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND (BSD-2-Clause OR MIT OR Apache-2.0) AND BSD-2-Clause AND (CC0-1.0 OR Apache-2.0 OR Apache-2.0 WITH LLVM-exception) AND (CC0-1.0 OR Apache-2.0) AND (CC0-1.0 OR MIT-0 OR Apache-2.0) AND CC0-1.0 AND GPL-3.0-or-later AND (ISC AND (Apache-2.0 OR ISC) AND OpenSSL) AND (ISC AND (Apache-2.0 OR ISC)) AND ISC AND (MIT AND (MIT OR Apache-2.0)) AND (MIT AND BSD-3-Clause) AND (MIT OR Apache-2.0 OR CC0-1.0) AND (MIT OR Apache-2.0 OR NCSA) AND (MIT OR Apache-2.0 OR Zlib) AND (MIT OR Apache-2.0) AND (MIT OR Zlib OR Apache-2.0) AND MIT AND MPL-2.0 AND Unicode-3.0 AND (Unlicense OR MIT) AND (Zlib OR Apache-2.0 OR MIT) AND Zlib URL: https://zed.dev/ Source0: https://github.com/zed-industries/zed/archive/refs/tags/v%{ver}.tar.gz +Source1: override.xml Conflicts: zed Conflicts: zed-nightly @@ -48,7 +57,7 @@ BuildRequires: perl-File-Compare BuildRequires: perl-File-Copy BuildRequires: perl-lib BuildRequires: vulkan-loader -Requires: (%name-rename-zeditor if zfs else %name-cli) +Requires: (%name-cli-compat-zfs if zfs else %name-cli) Suggests: %name-cli %description @@ -58,33 +67,31 @@ Code at the speed of thought - Zed is a high-performance, multiplayer code edito Summary: Provides the /usr/bin/zed binary Conflicts: zfs Supplements: (%name unless zfs) -%description cli -This package provides the /usr/bin/zed binary. If you use zfs, install %name-rename-zeditor instead. -%files cli -%_bindir/zed -%{_datadir}/applications/%app_id.desktop -%package rename-zeditor +%description cli +This package provides the /usr/bin/zed binary. If you use zfs, install %name-cli-compat-zfs instead. + +%package cli-compat-zfs Summary: Rename zed to zeditor to prevent collision with zfs Provides: %name-cli Conflicts: %name-cli +Obsoletes: %{name}-rename-zeditor <= 0.217.3 Supplements: (%name and zfs) RemovePathPostFixes: .zeditor -%description rename-zeditor + +%description cli-compat-zfs This package provides the %_bindir/zeditor binary instead of %_bindir/zed. This avoids conflicts with the zfs package. The normal package is %name-cli. -%files rename-zeditor -%_bindir/zeditor -%_datadir/applications/%app_id.desktop.zeditor - %prep %autosetup -n %{crate}-%{ver} -p1 +%if %{without debug_no_build} %cargo_prep_online +%endif export DO_STARTUP_NOTIFY="true" -export APP_ID="%app_id" -export APP_ICON="%app_id" +export APP_ID="%appid" +export APP_ICON="%appid" export APP_NAME="Zed Preview" export APP_CLI="zed" export APP="%{_libexecdir}/zed-editor" @@ -94,34 +101,39 @@ export ZED_RELEASE_CHANNEL=preview export BRANDING_LIGHT="#99c1f1" export BRANDING_DARK="#1a5fb4" -echo "StartupWMClass=$APP_ID" >> crates/zed/resources/zed.desktop.in -envsubst < "crates/zed/resources/zed.desktop.in" > $APP_ID.desktop # from https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=zed-git#n52 +envsubst < "crates/zed/resources/zed.desktop.in" > %{appid}.desktop # from https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=zed-git#n52 +sed -i "s|@release_info@||g" "crates/zed/resources/flatpak/zed.metainfo.xml.in" -envsubst < "crates/zed/resources/flatpak/zed.metainfo.xml.in" > $APP_ID.metainfo.xml +envsubst < "crates/zed/resources/flatpak/zed.metainfo.xml.in" > %{appid}.metainfo.xml %build +%if %{without debug_no_build} export ZED_UPDATE_EXPLANATION="Run dnf up to update Zed Preview from Terra." echo "preview" > crates/zed/RELEASE_CHANNEL %cargo_build -- --package zed --package cli ALLOW_MISSING_LICENSES=1 script/generate-licenses +%endif %install +%if %{without debug_no_build} install -Dm755 target/rpm/zed %{buildroot}%{_libexecdir}/zed-editor install -Dm755 target/rpm/cli %{buildroot}%{_bindir}/zeditor install -Dm755 target/rpm/cli %{buildroot}%{_bindir}/zed %__cargo clean +%endif -install -Dm644 %app_id.desktop %{buildroot}%{_datadir}/applications/%app_id.desktop -sed 's/Exec=zed/Exec=zeditor/' %app_id.desktop > %app_id.desktop.zeditor -install -Dm644 %app_id.desktop.zeditor -t %buildroot%_datadir/applications/ -install -Dm644 crates/zed/resources/app-icon-preview.png %{buildroot}%{_datadir}/pixmaps/%app_id.png +install -Dm644 %appid.desktop %{buildroot}%{_datadir}/applications/%appid.desktop +sed 's/Exec=zed/Exec=zeditor/' %appid.desktop > %appid.desktop.zeditor +install -Dm644 %appid.desktop.zeditor -t %buildroot%_datadir/applications/ +install -Dm644 crates/zed/resources/app-icon-preview.png %{buildroot}%{_datadir}/icons/hicolor/512x512/apps/%appid.png -install -Dm644 %app_id.metainfo.xml %{buildroot}%{_metainfodir}/%app_id.metainfo.xml +install -Dm644 %appid.metainfo.xml %{buildroot}%{_metainfodir}/%appid.metainfo.xml # The license generation script doesn't generate licenses for ALL compiled dependencies, just direct deps of Zed, and it does not "group" licenses # Zed also needs a special approach to fetch the dep licenses +%if %{without debug_no_build} %{__cargo} tree \ -Z avoid-dev-deps \ --workspace \ @@ -134,14 +146,22 @@ install -Dm644 %app_id.metainfo.xml %{buildroot}%{_metainfodir}/%app_id.metainfo | sed -e '/.*(\*).*/d' -e '/^: pet/ s/./MIT&/' \ | sort -u \ > LICENSE.dependencies +%endif mv assets/icons/LICENSES LICENSE.icons mv assets/themes/LICENSES LICENSE.themes mv assets/fonts/ibm-plex-sans/license.txt LICENSE.fonts +%terra_appstream -o %{SOURCE1} + %if %{with check} %check +appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/%appid.metainfo.xml +desktop-file-validate %{buildroot}%{_datadir}/applications/%appid.desktop + +%if %{without debug_no_build} %cargo_test %endif +%endif %files %doc CODE_OF_CONDUCT.md @@ -149,14 +169,34 @@ mv assets/fonts/ibm-plex-sans/license.txt LICENSE.fonts %license LICENSE-AGPL %license LICENSE-APACHE %license LICENSE-GPL +%if %{without debug_no_build} %license LICENSE.dependencies +%endif %license LICENSE.fonts %license LICENSE.icons %license LICENSE.themes +%if %{without debug_no_build} %license assets/licenses.md +%endif +%if %{without debug_no_build} %{_libexecdir}/zed-editor -%{_datadir}/pixmaps/%app_id.png -%{_metainfodir}/%app_id.metainfo.xml +%endif + +%files cli +%if %{without debug_no_build} +%_bindir/zed +%endif +%{_datadir}/icons/hicolor/512x512/apps/%appid.png +%{_datadir}/applications/%appid.desktop +%{_metainfodir}/%appid.metainfo.xml + +%files cli-compat-zfs +%if %{without debug_no_build} +%_bindir/zeditor +%endif +%{_datadir}/icons/hicolor/512x512/apps/%appid.png +%_datadir/applications/%appid.desktop.zeditor +%{_metainfodir}/%appid.metainfo.xml %changelog %autochangelog diff --git a/anda/devs/zed/stable/override.xml b/anda/devs/zed/stable/override.xml new file mode 100644 index 0000000000..e5fd73a6c1 --- /dev/null +++ b/anda/devs/zed/stable/override.xml @@ -0,0 +1,6 @@ + + + Zed + dev.zed.Zed + dev.zed.Zed + diff --git a/anda/devs/zed/stable/zed.spec b/anda/devs/zed/stable/zed.spec index effee2e6e7..2a989cf88c 100644 --- a/anda/devs/zed/stable/zed.spec +++ b/anda/devs/zed/stable/zed.spec @@ -1,21 +1,30 @@ +%global toolchain clang + %bcond_with check +%bcond_with debug_no_build + +%if %{with debug_no_build} +%global debug_package %{nil} +%endif # Exclude input files from mangling %global __brp_mangle_shebangs_exclude_from ^/usr/src/.*$ %global crate zed -%global app_id dev.zed.Zed +%global appid dev.zed.Zed +%global appstream_component desktop-application %global rustflags_debuginfo 0 Name: zed -Version: 0.209.6 -Release: 1%?dist +Version: 1.1.6 +Release: 1%{?dist} Summary: Zed is a high-performance, multiplayer code editor SourceLicense: AGPL-3.0-only AND Apache-2.0 AND GPL-3.0-or-later License: ((Apache-2.0 OR MIT) AND BSD-3-Clause) AND ((MIT OR Apache-2.0) AND Unicode-3.0) AND (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 AND ISC) AND AGPL.3.0-only AND AGPL-3.0-or-later AND (Apache-2.0 OR BSL-1.0 OR 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 (Apache-2.0 WITH LLVM-exception) AND Apache-2.0 AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND (BSD-2-Clause OR MIT OR Apache-2.0) AND BSD-2-Clause AND (CC0-1.0 OR Apache-2.0 OR Apache-2.0 WITH LLVM-exception) AND (CC0-1.0 OR Apache-2.0) AND (CC0-1.0 OR MIT-0 OR Apache-2.0) AND CC0-1.0 AND GPL-3.0-or-later AND (ISC AND (Apache-2.0 OR ISC) AND OpenSSL) AND (ISC AND (Apache-2.0 OR ISC)) AND ISC AND (MIT AND (MIT OR Apache-2.0)) AND (MIT AND BSD-3-Clause) AND (MIT OR Apache-2.0 OR CC0-1.0) AND (MIT OR Apache-2.0 OR NCSA) AND (MIT OR Apache-2.0 OR Zlib) AND (MIT OR Apache-2.0) AND (MIT OR Zlib OR Apache-2.0) AND MIT AND MPL-2.0 AND Unicode-3.0 AND (Unlicense OR MIT) AND (Zlib OR Apache-2.0 OR MIT) AND Zlib URL: https://zed.dev/ Source0: https://github.com/zed-industries/zed/archive/refs/tags/v%{version}.tar.gz +Source1: override.xml Conflicts: zed-nightly Conflicts: zed-preview @@ -48,7 +57,7 @@ BuildRequires: perl-File-Copy BuildRequires: perl-lib BuildRequires: vulkan-loader BuildRequires: libcurl-devel -Requires: (%name-rename-zeditor if zfs else %name-cli) +Requires: (%name-cli-compat-zfs if zfs else %name-cli) Suggests: %name-cli %description @@ -58,34 +67,32 @@ Code at the speed of thought - Zed is a high-performance, multiplayer code edito Summary: Provides the /usr/bin/zed binary Conflicts: zfs Supplements: (%name unless zfs) -%description cli -This package provides the /usr/bin/zed binary. If you use zfs, install %name-rename-zeditor instead. -%files cli -%_bindir/zed -%{_datadir}/applications/%app_id.desktop -%package rename-zeditor +%description cli +This package provides the /usr/bin/zed binary. If you use zfs, install %name-cli-compat-zfs instead. + +%package cli-compat-zfs Summary: Rename zed to zeditor to prevent collision with zfs Provides: %name-cli Conflicts: %name-cli +Obsoletes: %{name}-rename-zeditor <= 0.217.3 Supplements: (%name and zfs) RemovePathPostFixes: .zeditor -%description rename-zeditor + +%description cli-compat-zfs This package provides the %_bindir/zeditor binary instead of %_bindir/zed. This avoids conflicts with the zfs package. The normal package is %name-cli. -%files rename-zeditor -%_bindir/zeditor -%_datadir/applications/%app_id.desktop.zeditor - %prep %autosetup -n %{crate}-%{version} -p1 +%if %{without debug_no_build} %cargo_prep_online +%endif export DO_STARTUP_NOTIFY="true" -export APP_ID="%app_id" -export APP_ICON="%app_id" -export APP_NAME="Zed Editor" +export APP_ID="%appid" +export APP_ICON="%appid" +export APP_NAME="Zed" export APP_CLI="zed" export APP="%{_libexecdir}/zed-editor" export APP_ARGS="%U" @@ -94,34 +101,39 @@ export ZED_RELEASE_CHANNEL=stable export BRANDING_LIGHT="#e9aa6a" export BRANDING_DARK="#1a5fb4" -echo "StartupWMClass=$APP_ID" >> crates/zed/resources/zed.desktop.in -envsubst < "crates/zed/resources/zed.desktop.in" > $APP_ID.desktop # from https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=zed-git#n52 +envsubst < "crates/zed/resources/zed.desktop.in" > %{appid}.desktop # from https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=zed-git#n52 +sed -i "s|@release_info@||g" "crates/zed/resources/flatpak/zed.metainfo.xml.in" -envsubst < "crates/zed/resources/flatpak/zed.metainfo.xml.in" > $APP_ID.metainfo.xml +envsubst < "crates/zed/resources/flatpak/zed.metainfo.xml.in" > %{appid}.metainfo.xml %build +%if %{without debug_no_build} export ZED_UPDATE_EXPLANATION="Run dnf up to update Zed from Terra." echo "stable" > crates/zed/RELEASE_CHANNEL %cargo_build -- --package zed --package cli ALLOW_MISSING_LICENSES=1 script/generate-licenses +%endif %install +%if %{without debug_no_build} install -Dm755 target/rpm/zed %{buildroot}%{_libexecdir}/zed-editor install -Dm755 target/rpm/cli %{buildroot}%{_bindir}/zeditor install -Dm755 target/rpm/cli %{buildroot}%{_bindir}/zed %__cargo clean +%endif -install -Dm644 %app_id.desktop %{buildroot}%{_datadir}/applications/%app_id.desktop -sed 's/Exec=zed/Exec=zeditor/' %app_id.desktop > %app_id.desktop.zeditor -install -Dm644 %app_id.desktop.zeditor -t %buildroot%_datadir/applications/ -install -Dm644 crates/zed/resources/app-icon.png %{buildroot}%{_datadir}/pixmaps/%app_id.png +install -Dm644 %appid.desktop %{buildroot}%{_datadir}/applications/%appid.desktop +sed 's/Exec=zed/Exec=zeditor/' %appid.desktop > %appid.desktop.zeditor +install -Dm644 %appid.desktop.zeditor -t %buildroot%_datadir/applications/ +install -Dm644 crates/zed/resources/app-icon.png %{buildroot}%{_datadir}/icons/hicolor/512x512/apps/%appid.png -install -Dm644 %app_id.metainfo.xml %{buildroot}%{_metainfodir}/%app_id.metainfo.xml +install -Dm644 %appid.metainfo.xml %{buildroot}%{_metainfodir}/%appid.metainfo.xml # The license generation script doesn't generate licenses for ALL compiled dependencies, just direct deps of Zed, and it does not "group" licenses # Zed also needs a special approach to fetch the dep licenses +%if %{without debug_no_build} %{__cargo} tree \ -Z avoid-dev-deps \ --workspace \ @@ -134,14 +146,22 @@ install -Dm644 %app_id.metainfo.xml %{buildroot}%{_metainfodir}/%app_id.metainfo | sed -e '/.*(\*).*/d' -e '/^: pet/ s/./MIT&/' \ | sort -u \ > LICENSE.dependencies +%endif mv assets/icons/LICENSES LICENSE.icons mv assets/themes/LICENSES LICENSE.themes mv assets/fonts/ibm-plex-sans/license.txt LICENSE.fonts +%terra_appstream -o %{SOURCE1} + %if %{with check} %check +appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/%appid.metainfo.xml +desktop-file-validate %{buildroot}%{_datadir}/applications/%appid.desktop + +%if %{without debug_no_build} %cargo_test %endif +%endif %files %doc CODE_OF_CONDUCT.md @@ -149,14 +169,33 @@ mv assets/fonts/ibm-plex-sans/license.txt LICENSE.fonts %license LICENSE-AGPL %license LICENSE-APACHE %license LICENSE-GPL +%if %{without debug_no_build} %license LICENSE.dependencies +%license assets/licenses.md +%endif %license LICENSE.fonts %license LICENSE.icons %license LICENSE.themes -%license assets/licenses.md +%if %{without debug_no_build} %{_libexecdir}/zed-editor -%{_datadir}/pixmaps/%app_id.png -%{_metainfodir}/%app_id.metainfo.xml +%endif + +%files cli +%if %{without debug_no_build} +%_bindir/zed +%endif +%{_datadir}/icons/hicolor/512x512/apps/%appid.png +%{_datadir}/applications/%appid.desktop +%{_metainfodir}/%appid.metainfo.xml + +%files cli-compat-zfs +%if %{without debug_no_build} +%_bindir/zeditor +%endif +%{_datadir}/icons/hicolor/512x512/apps/%appid.png +%_datadir/applications/%appid.desktop.zeditor +%{_metainfodir}/%appid.metainfo.xml + %changelog %autochangelog diff --git a/anda/fonts/arphic-ukai/arphic-ukai-fonts.spec b/anda/fonts/arphic-ukai/arphic-ukai-fonts.spec index 4004ec9a50..2cc0351828 100644 --- a/anda/fonts/arphic-ukai/arphic-ukai-fonts.spec +++ b/anda/fonts/arphic-ukai/arphic-ukai-fonts.spec @@ -26,5 +26,5 @@ install -D -m644 ukai.ttc %{buildroot}/%{_datadir}/fonts/arphic-ukai/ukai.ttc /%{_datadir}/fonts/arphic-ukai/ukai.ttc %changelog -* Mon Nov 21 2022 windowsboy111 - 0.2.20080216.2-1 +* Mon Nov 21 2022 madonuko - 0.2.20080216.2-1 - Initial package diff --git a/anda/fonts/arphic-uming/arphic-uming-fonts.spec b/anda/fonts/arphic-uming/arphic-uming-fonts.spec index cfe482f2cd..a7007374d4 100644 --- a/anda/fonts/arphic-uming/arphic-uming-fonts.spec +++ b/anda/fonts/arphic-uming/arphic-uming-fonts.spec @@ -27,5 +27,5 @@ install -D -m644 uming.ttc %{buildroot}/%{_datadir}/fonts/arphic-uming/uming.ttc /%{_datadir}/fonts/arphic-uming/uming.ttc %changelog -* Mon Nov 21 2022 windowsboy111 - 0.2.20080216.2-1 +* Mon Nov 21 2022 madonuko - 0.2.20080216.2-1 - Initial package diff --git a/anda/fonts/cleartype/cleartype-fonts.spec b/anda/fonts/cleartype/cleartype-fonts.spec index 33ac58305e..b5bd49c143 100644 --- a/anda/fonts/cleartype/cleartype-fonts.spec +++ b/anda/fonts/cleartype/cleartype-fonts.spec @@ -89,7 +89,7 @@ in the PowerPointViewer package, still available on the Microsoft website. Name: %{fontname}-fonts Version: 1.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Package containing ClearType fonts. License: LicenseRef-MS-Core-Fonts URL: https://mscorefonts2.sourceforge.net @@ -113,7 +113,7 @@ Requires: %{fontname}-constantia-fonts Requires: %{fontname}-corbel-fonts Requires(post): fontconfig BuildArch: noarch -Packager: Gilver E. +Packager: Gilver E. %fontpkg -a diff --git a/anda/fonts/fakepearl/fakepearl-fonts.spec b/anda/fonts/fakepearl/fakepearl-fonts.spec index 32c3b184df..5e71da57eb 100644 --- a/anda/fonts/fakepearl/fakepearl-fonts.spec +++ b/anda/fonts/fakepearl/fakepearl-fonts.spec @@ -28,5 +28,5 @@ install -Dm644 tw/*.ttf %buildroot/%_datadir/fonts/fakepearl/ %changelog -* Mon May 22 2023 windowsboy111 - 1.1 +* Mon May 22 2023 madonuko - 1.1 - Initial package diff --git a/anda/fonts/geist/geist.spec b/anda/fonts/geist/geist.spec index dda198f477..577d99b9b2 100644 --- a/anda/fonts/geist/geist.spec +++ b/anda/fonts/geist/geist.spec @@ -1,8 +1,10 @@ +%global ver 1.8.0 + Name: geist-font -Version: 1.5.1 +Version: %(echo %ver | sed 's/^geist@//') Release: 1%?dist URL: https://vercel.com/font -Source0: https://github.com/vercel/geist-font/archive/refs/tags/%version.tar.gz +Source0: https://github.com/vercel/geist-font/archive/refs/tags/%ver.tar.gz License: OFL-1.1 Summary: Geist is a new font family for Vercel, created by Vercel in collaboration with Basement Studio BuildRequires: make python3 python3.10 python3.10-devel meson cairo cairo-devel gcc @@ -18,7 +20,7 @@ that is based on the principles of classic Swiss typography. It is designed to b headlines, logos, posters, and other large display sizes. %package mono -Requires: %{name} = %{version}-%{release} +Requires: %{name} = %{evr} Summary: Geist Mono is a monospaced typeface that has been crafted to be the perfect partner to Geist Sans Provides: geist-mono = %evr Provides: geist-mono-fonts = %evr @@ -28,7 +30,7 @@ Geist Mono is a monospaced typeface that has been crafted to be the perfect part It is designed to be used in code editors, diagrams, terminals, and other textbased interfaces where code is represented. %prep -%autosetup -n %name-%version +%autosetup %build %make_build diff --git a/anda/fonts/geist/update.rhai b/anda/fonts/geist/update.rhai index 0740bc084d..320e0e7e86 100644 --- a/anda/fonts/geist/update.rhai +++ b/anda/fonts/geist/update.rhai @@ -1 +1 @@ -rpm.version(gh("vercel/geist-font")); +rpm.global("ver", gh("vercel/geist-font")); diff --git a/anda/fonts/hannom/hannom-fonts.spec b/anda/fonts/hannom/hannom-fonts.spec index f651f64092..097d11d2d0 100644 --- a/anda/fonts/hannom/hannom-fonts.spec +++ b/anda/fonts/hannom/hannom-fonts.spec @@ -28,5 +28,5 @@ install -Dm644 %{SOURCE1} "%{buildroot}/%{_datadir}/licenses/%{name}/COPYING" /%{_datadir}/fonts/hannom/ %changelog -* Mon Nov 21 2022 windowsboy111 - 4.004 +* Mon Nov 21 2022 madonuko - 4.004 - Initial package diff --git a/anda/fonts/iosevka/anda.hcl b/anda/fonts/iosevka/anda.hcl new file mode 100644 index 0000000000..baf031df6b --- /dev/null +++ b/anda/fonts/iosevka/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "iosevka-fonts.spec" + } + # labels { + # large = 1 + # } +} diff --git a/anda/fonts/iosevka/iosevka-fonts.spec b/anda/fonts/iosevka/iosevka-fonts.spec new file mode 100644 index 0000000000..8e5bce94a3 --- /dev/null +++ b/anda/fonts/iosevka/iosevka-fonts.spec @@ -0,0 +1,146 @@ +%define _iosevka_families Iosevka IosevkaAile IosevkaCurly IosevkaCurlySlab IosevkaEtoile IosevkaSS01 IosevkaSS02 IosevkaSS03 IosevkaSS04 IosevkaSS05 IosevkaSS06 IosevkaSS07 IosevkaSS08 IosevkaSS09 IosevkaSS10 IosevkaSS11 IosevkaSS12 IosevkaSS13 IosevkaSS14 IosevkaSS15 IosevkaSS16 IosevkaSlab + +# HACK: Download prebuilt binaries instead of building from source +# +# XXX: Use `--without bins` only if you enjoy waiting 33+ hours and death by +# a thousand JavaScript apps, or you use Gentoo. +%bcond_without bins + +%bcond_without smt +%bcond_with ttc + +# this runs at macro expansion time, not build time +%{lua: + local families = rpm.expand("%{_iosevka_families}") + local i = 0 + local function prettify(name) + -- insert space before uppercase letters (except first) + local spaced = name:gsub("(%l)(%u)", "%1 %2") + -- fix "SSxx" into "SSxx" (with space before) + spaced = spaced:gsub("(%a)(SS%d+)", "%1 %2") + return spaced + end + for family in string.gmatch(families, "%S+") do + local pretty = prettify(family) + rpm.define(string.format("fontfamily%d %s", i, pretty)) + if rpm.expand("%{with bins}") == "1" then + -- PkgTTC-Iosevka-33.3.3 + rpm.define(string.format("fonts%d %s/*.ttc", i, family)) + else + if rpm.expand("%{with ttc}") == "1" then + rpm.define(string.format("fonts%d dist/.ttc/%s/*.ttc", i, family)) + else + rpm.define(string.format("fonts%d dist/%s/TTF/*.ttf", i, family)) + end + end + rpm.define(string.format("fontdescription%d %%fontdescription (%s)", i, pretty)) + i = i + 1 + end + rpm.define(string.format("iosevka_family_count %d", i)) +} + + + +%global fontorg io.github.be5invis +%global fontlicense OFL-1.1 +%if %{with bins} +%global fontlicenses Iosevka-%{version}/LICENSE.md +%else +%global fontlicenses LICENSE.md +%endif +%global foundry Belleve Invis +%global fontdescription %{expand: +Versatile typeface for code, from code.} + +Version: 34.4.0 +Release: 1%{?dist} +Packager: Cappy Ishihara +Summary: Versatile typeface for code, from code. +BuildRequires: rpm_macro(fontpkg) +URL: https://github.com/be5invis/Iosevka +Source0: %{url}/archive/refs/tags/v%{version}.tar.gz +%if %{with bins} +BuildRequires: curl +BuildRequires: jq +BuildRequires: aria2 +BuildRequires: unzip +%else +BuildRequires: bun-bin +BuildRequires: ttfautohint +%endif + +%fontpkg -a +%fontmetapkg + +%prep +%if %{with bins} +%setup -c + +# TODO: Probably enhance by scripting RPM to add a `SourceN` directive instead +# download prebuilt binaries instead of building from source +# NOTE: May invite the ire of GitHub rate limiting since this pulls +# a LOT of assets in one go +curl https://api.github.com/repos/be5invis/Iosevka/releases/tags/v%{version} \ + | jq -r ".assets[] | .browser_download_url" | grep PkgTTC-Iosevka \ + | aria2c -i - + +%else + +%autosetup -n Iosevka-%{version} +bun i +%endif + +%build + +# XXX: Verda is VERY expensive when building fonts from source, +# which might be fine if you're building on a supercomputer with +# many cores and tons of RAM and lots of time to spare. +# +# By default the SMT build is enabled in case you want to +# melt your computer by literally building fonts from source, see +# the `--with bin` option to disable prebuilt binaries +# +# The build time is roughly ~1.5h * 22 = 33 hours on a quad-core +# machine with 32GB of RAM when building with maximum parallelism, +# so be warned. +# +%if %{with smt} +%define _font_smp_flags --jCmd=%{_smp_build_ncpus} +%else +# However, we will be doing only 1 thread here to avoid +# thrashing builders +%define _font_smp_flags --jCmd=1 +%endif + + +collections="%{_iosevka_families}" + +%if %{with bins} +build_font() { + local style=$1 + local zipfile="PkgTTC-${style}-%{version}.zip" + unzip -d ${style}/ ${zipfile} +} +%else +build_font() { + local style=$1 + bun run --bun build -- ttc::${style} %{_font_smp_flags} +} +%endif + +for collection in $collections; do + build_font "$collection" +done + +%fontbuild -a + +%install +%fontinstall -a + +%check +%fontcheck -a + +%fontfiles -a + +%changelog +%autochangelog diff --git a/anda/fonts/iosevka/update.rhai b/anda/fonts/iosevka/update.rhai new file mode 100644 index 0000000000..e9a39b4a9e --- /dev/null +++ b/anda/fonts/iosevka/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("be5invis/Iosevka")); diff --git a/anda/fonts/juliamono/anda.hcl b/anda/fonts/juliamono/anda.hcl new file mode 100644 index 0000000000..204fca5610 --- /dev/null +++ b/anda/fonts/juliamono/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "juliamono.spec" + } +} \ No newline at end of file diff --git a/anda/fonts/juliamono/juliamono.spec b/anda/fonts/juliamono/juliamono.spec new file mode 100644 index 0000000000..c16492e87e --- /dev/null +++ b/anda/fonts/juliamono/juliamono.spec @@ -0,0 +1,36 @@ +Name: juliamono-fonts +Version: 0.062 +Release: 2%?dist +URL: https://juliamono.netlify.app/ +Source0: https://github.com/cormullion/juliamono/archive/refs/tags/v%{version}.tar.gz +License: OFL-1.1 +Summary: A monospaced font with reasonable unicode support +Requires: xorg-x11-font-utils +BuildArch: noarch +Provides: JuliaMono-fonts +Packager: Its-J + + +%description +JuliaMono is a monospaced typeface designed for programming in text editing environments that require a wide range of specialist and technical unicode characters. + +%prep +%autosetup -n juliamono-%{version} + +%build + +%install +mkdir -p %{buildroot}%{_fontbasedir}/juliamono/ +install -Dm644 *.ttf %{buildroot}%{_fontbasedir}/juliamono/ + +%files +%doc README.md +%license LICENSE +%{_fontbasedir}/juliamono/*.ttf + +%changelog +* Tue Apr 14 2026 Its-J +- Add email to my previous contributor attributions + +* Fri Nov 21 2025 Its-J +- Package JuliaMono diff --git a/anda/fonts/juliamono/update.rhai b/anda/fonts/juliamono/update.rhai new file mode 100644 index 0000000000..63aaa24b21 --- /dev/null +++ b/anda/fonts/juliamono/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("cormullion/juliamono")); \ No newline at end of file diff --git a/anda/fonts/kanjistrokeorders/kanjistrokeorders-fonts.spec b/anda/fonts/kanjistrokeorders/kanjistrokeorders-fonts.spec index b0e4438a21..623ab47103 100644 --- a/anda/fonts/kanjistrokeorders/kanjistrokeorders-fonts.spec +++ b/anda/fonts/kanjistrokeorders/kanjistrokeorders-fonts.spec @@ -26,5 +26,5 @@ install -D -m644 KanjiStrokeOrders_v%{version}.ttf %{buildroot}/%{_datadir}/font /%{_datadir}/fonts/TTF/KanjiStrokeOrders_v%{version}.ttf %changelog -* Mon Nov 21 2022 windowsboy111 - 4.004 +* Mon Nov 21 2022 madonuko - 4.004 - Initial package diff --git a/anda/fonts/maple/maple-fonts.spec b/anda/fonts/maple/maple-fonts.spec index 7fd41919fe..a2badeb0f9 100644 --- a/anda/fonts/maple/maple-fonts.spec +++ b/anda/fonts/maple/maple-fonts.spec @@ -1,6 +1,6 @@ %define debug_package %nil %define _ttfontsdir %{_datadir}/fonts/maple -%global upstream_ver v7.8 +%global upstream_ver v7.9 %define sanitized_ver %(echo "$( sed 's/^.//;s/-/~/' <<< "%{upstream_ver}" )") Name: maple-fonts diff --git a/anda/fonts/mini-wakuwaku/mini-wakuwaku-fonts.spec b/anda/fonts/mini-wakuwaku/mini-wakuwaku-fonts.spec index ca342299e8..bc39532a8c 100644 --- a/anda/fonts/mini-wakuwaku/mini-wakuwaku-fonts.spec +++ b/anda/fonts/mini-wakuwaku/mini-wakuwaku-fonts.spec @@ -28,5 +28,5 @@ install -D -m644 mini-wakuwaku.otf %{buildroot}/%{_datadir}/fonts/mini-wakuwaku/ /%{_datadir}/fonts/mini-wakuwaku/ %changelog -* Mon Nov 21 2022 windowsboy111 - 1.0-1 +* Mon Nov 21 2022 madonuko - 1.0-1 - Initial package diff --git a/anda/fonts/ms-core-tahoma/ms-core-tahoma-fonts.spec b/anda/fonts/ms-core-tahoma/ms-core-tahoma-fonts.spec index a48b4a7b70..d3c8d2789d 100644 --- a/anda/fonts/ms-core-tahoma/ms-core-tahoma-fonts.spec +++ b/anda/fonts/ms-core-tahoma/ms-core-tahoma-fonts.spec @@ -18,7 +18,7 @@ package. ### Different name because of font package and setup macro weirdness Name: mscore-tahoma-fonts Version: 1.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Microsoft core Tahoma fonts for better Windows compatibility License: LicenseRef-MS-Core-Fonts URL: https://mscorefonts2.sourceforge.net @@ -30,7 +30,7 @@ BuildRequires: fontpackages-devel Requires: xorg-x11-font-utils Requires: fontconfig BuildArch: noarch -Packager: Gilver E. +Packager: Gilver E. %fontpkg -a diff --git a/anda/fonts/ms-core/ms-core-fonts.spec b/anda/fonts/ms-core/ms-core-fonts.spec index 8362b87c0d..e9e33f3d2a 100644 --- a/anda/fonts/ms-core/ms-core-fonts.spec +++ b/anda/fonts/ms-core/ms-core-fonts.spec @@ -153,7 +153,7 @@ http://www.microsoft.com/typography/fontpack. Name: ms-core-fonts Version: 2.2 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Microsoft core fonts License: LicenseRef-MS-Core-Fonts URL: https://mscorefonts2.sourceforge.net @@ -192,7 +192,7 @@ Requires: %{fontname}-webdings-fonts Requires: xorg-x11-font-utils Requires(post): fontconfig BuildArch: noarch -Packager: Gilver E. +Packager: Gilver E. %fontpkg -a diff --git a/anda/fonts/naikai/naikai-fonts.spec b/anda/fonts/naikai/naikai-fonts.spec index 6a173d91c5..d3f2f0ce17 100644 --- a/anda/fonts/naikai/naikai-fonts.spec +++ b/anda/fonts/naikai/naikai-fonts.spec @@ -46,5 +46,5 @@ install -Dm644 tw/*.ttf %{buildroot}/%{_datadir}/fonts/%{name}-tw/ /%{_datadir}/fonts/%{name}-tw %changelog -* Tue Nov 22 2022 windowsboy111 - 1.87 +* Tue Nov 22 2022 madonuko - 1.87 - Initial package diff --git a/anda/fonts/nerd-fonts/nerd-fonts.spec b/anda/fonts/nerd-fonts/nerd-fonts.spec index 7060558edc..bce92fb036 100644 --- a/anda/fonts/nerd-fonts/nerd-fonts.spec +++ b/anda/fonts/nerd-fonts/nerd-fonts.spec @@ -86,5 +86,5 @@ end %changelog -* Wed Jan 4 2023 windowsboy111 - 2.2.2-1 +* Wed Jan 4 2023 madonuko - 2.2.2-1 - Initial package diff --git a/anda/fonts/open-huninn/open-huninn-fonts.spec b/anda/fonts/open-huninn/open-huninn-fonts.spec index 761789dff0..afaa472c6f 100644 --- a/anda/fonts/open-huninn/open-huninn-fonts.spec +++ b/anda/fonts/open-huninn/open-huninn-fonts.spec @@ -28,5 +28,5 @@ install -Dm644 font/jf-openhuninn-%version.ttf %buildroot/%_datadir/fonts/open-h %changelog -* Mon May 22 2023 windowsboy111 - 1.1 +* Mon May 22 2023 madonuko - 1.1 - Initial package diff --git a/anda/fonts/sarasa-gothic/sarasa-gothic-fonts.spec b/anda/fonts/sarasa-gothic/sarasa-gothic-fonts.spec index f64b849e95..a435e105fd 100644 --- a/anda/fonts/sarasa-gothic/sarasa-gothic-fonts.spec +++ b/anda/fonts/sarasa-gothic/sarasa-gothic-fonts.spec @@ -1,6 +1,6 @@ Name: sarasa-gothic-fonts -Version: 1.0.33 -Release: 1%?dist +Version: 1.0.37 +Release: 1%{?dist} URL: https://github.com/be5invis/Sarasa-Gothic Source0: %url/releases/download/v%version/Sarasa-TTC-%version.7z Source1: %url/releases/download/v%version/Sarasa-SuperTTC-%version.7z diff --git a/anda/fonts/seto/seto-fonts.spec b/anda/fonts/seto/seto-fonts.spec index 1f487fe20b..995fe43e3a 100644 --- a/anda/fonts/seto/seto-fonts.spec +++ b/anda/fonts/seto/seto-fonts.spec @@ -1,7 +1,7 @@ Name: seto-fonts Version: 6.20 -Release: 3%?dist -URL: https://ja.osdn.net/projects/setofont/ +Release: 4%?dist +URL: https://web.archive.org/web/20240226230836/https://ja.osdn.net/projects/setofont/ Source0: https://github.com/terrapkg/pkg-seto-fonts/archive/refs/tags/%version.tar.gz License: OFL-1.1 Summary: A handwritten font that contains kanji up to JIS 4th level and difficult kanji diff --git a/anda/fonts/sipa/15-supercede-sarabun.conf b/anda/fonts/sipa/15-supercede-sarabun.conf deleted file mode 100644 index 4253ad5d76..0000000000 --- a/anda/fonts/sipa/15-supercede-sarabun.conf +++ /dev/null @@ -1,22 +0,0 @@ - - - - Redirect requests for Sarabun to Sarabun New for proper cross-platform rendering - - - - Sarabun - - - TH Sarabun New - - - - - TH Sarabun - - - TH Sarabun New - - - diff --git a/anda/fonts/sipa/sipa-fonts.spec b/anda/fonts/sipa/sipa-fonts.spec index b4867433a7..68948332bf 100644 --- a/anda/fonts/sipa/sipa-fonts.spec +++ b/anda/fonts/sipa/sipa-fonts.spec @@ -5,7 +5,7 @@ # namespace %global fontorg th.or.sipa Version: 20200217 -Release: 6%{?dist} +Release: 8%{?dist} URL: https://www.nstda.or.th/home/news_post/thai-font/ %global fontlicense LicenseRef-DIP-SIPA AND OFL-1.1-RFN %global fontlicenses LICENSE @@ -22,7 +22,7 @@ Obsoletes: sipa-fonts < 20200217-5 Packager: Cappy Ishihara Summary: Thai National Fonts collection Source0: https://waa.inter.nstda.or.th/stks/pub/%(x=%version;echo ${x:0:4})/%version-13Fonts.zip - +Requires: tlwg-laksaman-fonts # The packages were renamed Obsoletes: th-baijam-fonts @@ -48,7 +48,6 @@ Requires: %{name}-all # and these fonts are an open-source, state-sponsored package # required for official Thai documentation License: LicenseRef-DIP-SIPA -Source1: 15-supercede-sarabun.conf Source2: SIPA-LICENSE BuildRequires: rpm_macro(fontpkg) Supplements: (default-fonts-th) @@ -60,13 +59,13 @@ BuildArch: noarch %global fontfamily1 TH Sarabun PSK %global foundry1 Suppakit Chalermlarp -%global fonts1 'TH Sarabun'*.ttf +%global fonts1 'TH Sarabun'.ttf 'TH Sarabun Italic.ttf' 'TH Sarabun Bold.ttf' 'TH Sarabun BoldItalic.ttf' %global fontsummary1 %{fontfamily1} font family %global fontdescription1 %{common_description} %global fontfamily2 TH Sarabun New %global foundry2 %foundry1 -%global fontlicense OFL-1.1-RFN +%global fontlicense2 OFL-1.1-RFN %global fonts2 'TH Sarabun New'*.ttf %global fontsummary2 Revision of the %{fontfamily1} font family %global fontdescription2 %{common_description} @@ -95,7 +94,6 @@ BuildArch: noarch %global fontsummary6 %{fontfamily6} font family %global fontdescription6 %{common_description} - %global fontfamily7 TH Charm of AU %global foundry7 Kanlayanamit Noraratphutthi %global fonts7 'TH Charm of AU'*.ttf @@ -147,12 +145,17 @@ BuildArch: noarch %fontpkg -a %fontmetapkg +# pull in tlwg-laksaman-fonts +# since this actually provides a fix for TH Sarabun +# (#6929) (#2482) + %prep %autosetup -n Fonts cp -v %{SOURCE2} LICENSE %build +touch METAPKG mv "THSarabun Bold Italic.ttf" "TH Sarabun Bold Italic.ttf" mv "THSarabun Bold.ttf" "TH Sarabun Bold.ttf" mv "THSarabun BoldItalic.ttf" "TH Sarabun BoldItalic.ttf" @@ -166,13 +169,14 @@ mv "THSarabunNew.ttf" "TH Sarabun New.ttf" %install %fontinstall -a -install -Dm644 %{SOURCE1} %buildroot/%{_sysconfdir}/fonts/conf.d/15-supercede-sarabun.conf %check %fontcheck -a +%files +%license LICENSE + %fontfiles -a -%config(noreplace) %{_sysconfdir}/fonts/conf.d/15-supercede-sarabun.conf %changelog @@ -180,5 +184,5 @@ install -Dm644 %{SOURCE1} %buildroot/%{_sysconfdir}/fonts/conf.d/15-supercede-sa - Use Fedora macros to build and install fonts - Auto-generate AppStream metadata for fonts -* Sun Jun 11 2023 windowsboy111 - 20200217-1 +* Sun Jun 11 2023 madonuko - 20200217-1 - Initial package diff --git a/anda/fonts/spleen/spleen-fonts.spec b/anda/fonts/spleen/spleen-fonts.spec index e00030259e..7369ab76ea 100644 --- a/anda/fonts/spleen/spleen-fonts.spec +++ b/anda/fonts/spleen/spleen-fonts.spec @@ -3,7 +3,7 @@ %global fontcontact security@fyralabs.com %global fontorg com.fyralabs.terra -Version: 2.1.0 +Version: 2.2.0 Release: 1%?dist URL: https://www.cambus.net/spleen-monospaced-bitmap-fonts/ diff --git a/anda/games/8bitdo-udev-rules/71-8bitdo.rules b/anda/games/8bitdo-udev-rules/71-8bitdo.rules index d758f7f5a2..218abe085d 100644 --- a/anda/games/8bitdo-udev-rules/71-8bitdo.rules +++ b/anda/games/8bitdo-udev-rules/71-8bitdo.rules @@ -1,4 +1,4 @@ # 2.4GHz/Dongle KERNEL=="hidraw*", ATTRS{idVendor}=="2dc8", MODE="0660", TAG+="uaccess" # Bluetooth -KERNEL=="hidraw*", KERNELS=="*2DC8:*", MODE="0660", TAG+="uaccess" +KERNEL=="hidraw*", KERNELS=="0005:2DC8:*", MODE="0660", TAG+="uaccess" diff --git a/anda/games/8bitdo-udev-rules/8bitdo-udev-rules.spec b/anda/games/8bitdo-udev-rules/8bitdo-udev-rules.spec index 3500a34f68..708cfb97f6 100644 --- a/anda/games/8bitdo-udev-rules/8bitdo-udev-rules.spec +++ b/anda/games/8bitdo-udev-rules/8bitdo-udev-rules.spec @@ -1,13 +1,17 @@ +%global appid com.8bitdo.Udev + Name: 8bitdo-udev-rules -Version: 1.0 -Release: 1%{?dist} +Version: 1.1 +Release: 2%{?dist} Summary: Udev rules for 8Bitdo controllers Provides: 8bitdo-udev = %{version}-%{release} License: Unlicense Source0: 71-8bitdo.rules +Source1: com.8bitdo.Udev.metainfo.xml BuildArch: noarch BuildRequires: systemd +BuildRequires: anda-srpm-macros Requires: systemd-udev %global udev_order 71 @@ -22,6 +26,7 @@ and generic gamepad support in Linux. %install install -D -p -m 644 %SOURCE0 %{buildroot}%{_udevrulesdir}/%{udev_order}-8bitdo.rules +%terra_appstream -o %{SOURCE1} %post %udev_rules_update @@ -31,6 +36,7 @@ install -D -p -m 644 %SOURCE0 %{buildroot}%{_udevrulesdir}/%{udev_order}-8bitdo. %files %_udevrulesdir/%{udev_order}-8bitdo.rules +%{_metainfodir}/%{appid}.metainfo.xml diff --git a/anda/games/8bitdo-udev-rules/com.8bitdo.Udev.metainfo.xml b/anda/games/8bitdo-udev-rules/com.8bitdo.Udev.metainfo.xml new file mode 100644 index 0000000000..0da650ff41 --- /dev/null +++ b/anda/games/8bitdo-udev-rules/com.8bitdo.Udev.metainfo.xml @@ -0,0 +1,16 @@ + + + com.8bitdo.Udev + 8BitDo Controller Support + +

Enables proper functionality and device access for 8BitDo devices.

+
+ + Shenzhen 8BitDo Tech Co., Ltd. + + + hid:v00002DC8p* + hid:b0003v00002DC8p* + hid:b0005v00002DC8p* + +
\ No newline at end of file diff --git a/anda/games/ScopeBuddy/ScopeBuddy.spec b/anda/games/ScopeBuddy/ScopeBuddy.spec new file mode 100644 index 0000000000..f8483abe3c --- /dev/null +++ b/anda/games/ScopeBuddy/ScopeBuddy.spec @@ -0,0 +1,42 @@ +Name: ScopeBuddy +Version: 1.4.0 +Release: 2%?dist +Summary: A manager script to make gamescope easier to use on desktop +License: Apache-2.0 +URL: https://github.com/OpenGamingCollective/ScopeBuddy +Source0: %url/archive/refs/tags/%version.tar.gz +BuildArch: noarch + +Requires: bash +Requires: perl +Requires: (gamescope or terra-gamescope) +Suggests: (kscreen-doctor or gnome-randr) +Suggests: jq +Provides: scopebuddy +Provides: scb + +Packager: Owen Zimmerman + +%description +A manager script to make gamescope easier to use on the desktop (or if you use it in desktop mode and gamemode). + +%prep +%autosetup + +%install +install -Dpm0755 -t %{buildroot}%{_bindir}/ bin/scopebuddy bin/scb + +%post + +%files +%doc README.md +%license LICENSE +%{_bindir}/scopebuddy +%{_bindir}/scb + +%changelog +* Thu Feb 05 2025 Tulip Blossom +- Move sources to OpenGamingCollective repository instead of personal HikariKnight repo + +* Tue Dec 16 2025 Owen Zimmerman +- Initial commit diff --git a/anda/games/ScopeBuddy/anda.hcl b/anda/games/ScopeBuddy/anda.hcl new file mode 100644 index 0000000000..8d92359486 --- /dev/null +++ b/anda/games/ScopeBuddy/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "ScopeBuddy.spec" + } +} diff --git a/anda/games/ScopeBuddy/update.rhai b/anda/games/ScopeBuddy/update.rhai new file mode 100644 index 0000000000..8836c4c208 --- /dev/null +++ b/anda/games/ScopeBuddy/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("HikariKnight/ScopeBuddy")); diff --git a/anda/games/chess-tui/rust-chess-tui.spec b/anda/games/chess-tui/rust-chess-tui.spec index 46fea93570..dec9550868 100644 --- a/anda/games/chess-tui/rust-chess-tui.spec +++ b/anda/games/chess-tui/rust-chess-tui.spec @@ -4,8 +4,8 @@ %global crate chess-tui Name: rust-chess-tui -Version: 1.6.2 -Release: 1%?dist +Version: 2.6.2 +Release: 1%{?dist} Summary: Rusty chess game in your terminal 🦀 License: MIT @@ -13,6 +13,7 @@ URL: https://crates.io/crates/chess-tui Source: %{crates_source} BuildRequires: cargo-rpm-macros >= 24 +BuildRequires: pkgconfig(openssl) %global _description %{expand: A rusty chess game in your terminal 🦀.} diff --git a/anda/games/emulationstation-de/emulationstation-de.spec b/anda/games/emulationstation-de/emulationstation-de.spec index 93d073b2f1..6f7b5681f2 100644 --- a/anda/games/emulationstation-de/emulationstation-de.spec +++ b/anda/games/emulationstation-de/emulationstation-de.spec @@ -8,8 +8,8 @@ %bcond_with kms Name: emulationstation-de -Version: 3.3.0 -Release: 1%?dist +Version: 3.4.1 +Release: 1%{?dist} Summary: ES-DE is a frontend for browsing and launching games from your multi-platform collection. Packager: Cappy Ishihara License: MIT diff --git a/anda/games/gamescope-session-ogui-steam/anda.hcl b/anda/games/gamescope-session-ogui-steam/anda.hcl new file mode 100644 index 0000000000..3a68f04b2f --- /dev/null +++ b/anda/games/gamescope-session-ogui-steam/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "gamescope-session-ogui-steam.spec" + } + labels { + nightly = 1 + } +} diff --git a/anda/games/gamescope-session-ogui-steam/gamescope-session-ogui-steam.spec b/anda/games/gamescope-session-ogui-steam/gamescope-session-ogui-steam.spec new file mode 100644 index 0000000000..b1d6b2dd0c --- /dev/null +++ b/anda/games/gamescope-session-ogui-steam/gamescope-session-ogui-steam.spec @@ -0,0 +1,43 @@ +%define debug_package %nil + +%global commit fbdc7682f39088b4fe480a9285808ca81b3f9d03 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global commit_date 20260325 + +Name: gamescope-session-ogui-steam +Version: 0~%{commit_date}git.%{shortcommit} +Release: 1%?dist +Summary: gamescope-session-steam +License: GPL-3.0-only +URL: https://github.com/OpenGamingCollective/gamescope-session-ogui-steam +Source0: %url/archive/%commit.tar.gz +Requires: gamescope-session-steam +Requires: opengamepadui +Packager: Tulip Blossom +BuildArch: noarch + +%description +Gamescope Session for OpenGamepadUI in overlay mode with Steam + +%prep +%autosetup -n %name-%commit + +%build + +%install +install -Dpm0755 -t "%buildroot%_datadir/gamescope-session-plus/sessions.d/" ".%_datadir/gamescope-session-plus/sessions.d/ogui-steam" +install -Dpm0644 -t "%buildroot%_datadir/wayland-sessions/" ".%_datadir/wayland-sessions/gamescope-session-ogui-steam.desktop" +install -Dpm0644 -t "%buildroot%_datadir/wayland-sessions/" ".%_datadir/wayland-sessions/gamescope-session-steam-plus.desktop" +install -Dpm0644 -t "%buildroot%_datadir/wayland-sessions/" ".%_datadir/wayland-sessions/gamepadui-with-qam-session.desktop" + +%files +%doc README.md +%license LICENSE +%{_datadir}/gamescope-session-plus/sessions.d/ogui-steam +%{_datadir}/wayland-sessions/gamescope-session-ogui-steam.desktop +%{_datadir}/wayland-sessions/gamescope-session-steam-plus.desktop +%{_datadir}/wayland-sessions/gamepadui-with-qam-session.desktop + +%changelog +* Mon Feb 02 2026 Tulip Blossom - 20231030.6835776-1 +- Initial package diff --git a/anda/games/gamescope-session-ogui-steam/update.rhai b/anda/games/gamescope-session-ogui-steam/update.rhai new file mode 100644 index 0000000000..f9fc5cf225 --- /dev/null +++ b/anda/games/gamescope-session-ogui-steam/update.rhai @@ -0,0 +1,7 @@ +if filters.contains("nightly") { + rpm.global("commit", gh_commit("OpenGamingCollective/gamescope-session-ogui-steam")); + if rpm.changed() { + rpm.release(); + rpm.global("commit_date", date()); + } +} diff --git a/anda/games/gamescope-session-opengamepadui/anda.hcl b/anda/games/gamescope-session-opengamepadui/anda.hcl new file mode 100644 index 0000000000..0b8ab1e056 --- /dev/null +++ b/anda/games/gamescope-session-opengamepadui/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "gamescope-session-opengamepadui.spec" + } + labels { + nightly = 1 + } +} diff --git a/anda/games/gamescope-session-opengamepadui/gamescope-session-opengamepadui.spec b/anda/games/gamescope-session-opengamepadui/gamescope-session-opengamepadui.spec new file mode 100644 index 0000000000..43dbae5a53 --- /dev/null +++ b/anda/games/gamescope-session-opengamepadui/gamescope-session-opengamepadui.spec @@ -0,0 +1,43 @@ +%global commit 88087a086ab732211c466b41f5d64229ce51c050 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global commit_date 20260411 + +Name: gamescope-session-opengamepadui +Version: 0~%{commit_date}git.%{shortcommit} +Release: 1%{?dist} +Summary: Gamescope session for OpenGamepadUI +License: GPL-3.0-only +URL: https://github.com/OpenGamingCollective/gamescope-session-opengamepadui +Source0: %url/archive/%commit.tar.gz +Packager: Tulip Blossom +Requires: gamescope-session +Requires: opengamepadui +BuildArch: noarch + +%description +%summary. + +%prep +%autosetup -n %name-%commit + +%build + +%install +install -Dpm0755 -t "%buildroot%_bindir/" ".%_bindir/opengamepadui-session-select" +install -Dpm0755 -t "%buildroot%_datadir/gamescope-session-plus/sessions.d/" ".%_datadir/gamescope-session-plus/sessions.d/opengamepadui" +install -Dpm0644 -t "%buildroot%_datadir/polkit-1/actions/" ".%_datadir/polkit-1/actions/org.shadowblip.opengamepadui-session.policy" +install -Dpm0644 -t "%buildroot%_datadir/wayland-sessions/" ".%_datadir/wayland-sessions/gamescope-session-opengamepadui.desktop" +install -Dpm0644 -t "%buildroot%_datadir/wayland-sessions/" ".%_datadir/wayland-sessions/opengamepadui-session.desktop" + +%files +%doc README.md +%license LICENSE +%{_bindir}/opengamepadui-session-select +%{_datadir}/gamescope-session-plus/sessions.d/opengamepadui +%{_datadir}/polkit-1/actions/org.shadowblip.opengamepadui-session.policy +%{_datadir}/wayland-sessions/gamescope-session-opengamepadui.desktop +%{_datadir}/wayland-sessions/opengamepadui-session.desktop + +%changelog +* Wed Feb 04 2026 Tulip Blossom - 20260204.88087a08-1 +- Initial package diff --git a/anda/games/gamescope-session-opengamepadui/update.rhai b/anda/games/gamescope-session-opengamepadui/update.rhai new file mode 100644 index 0000000000..5dc68937a3 --- /dev/null +++ b/anda/games/gamescope-session-opengamepadui/update.rhai @@ -0,0 +1,5 @@ +rpm.global("commit", gh_commit("OpenGamingCollective/gamescope-session-opengamepadui")); +if rpm.changed() { + rpm.release(); + rpm.global("commit_date", date()); +} diff --git a/anda/games/gamescope-session-steam/anda.hcl b/anda/games/gamescope-session-steam/anda.hcl index 557b0d83d2..daef42bbf6 100644 --- a/anda/games/gamescope-session-steam/anda.hcl +++ b/anda/games/gamescope-session-steam/anda.hcl @@ -1,4 +1,5 @@ project pkg { + arches = ["x86_64"] rpm { spec = "gamescope-session-steam.spec" } diff --git a/anda/games/gamescope-session-steam/gamescope-session-steam.spec b/anda/games/gamescope-session-steam/gamescope-session-steam.spec index ffa56da88a..b98e8117e1 100644 --- a/anda/games/gamescope-session-steam/gamescope-session-steam.spec +++ b/anda/games/gamescope-session-steam/gamescope-session-steam.spec @@ -1,16 +1,20 @@ %define debug_package %nil -%global commit ba967fd8c5de7dc6c623b614296b3872255996b0 +%global commit 72df08d154fefb6354f6bb1a8d8cf587e86ee227 %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commit_date 20250904 +%global commit_date 20260325 Name: gamescope-session-steam -Version: %commit_date.%shortcommit -Release: 1%?dist +Version: 0~%{commit_date}git.%{shortcommit} +Release: 2%{?dist} Summary: gamescope-session-steam License: MIT -URL: https://github.com/bazzite-org/gamescope-session-steam +URL: https://github.com/OpenGamingCollective/gamescope-session-steam Source0: %url/archive/%commit.tar.gz +Requires: gamescope-session +Requires: steam +Packager: Tulip Blossom +BuildArch: noarch %description %summary. @@ -21,25 +25,36 @@ Source0: %url/archive/%commit.tar.gz %build %install -mkdir -p %{buildroot}%{_bindir}/ -mkdir -p %{buildroot}%{_datadir}/ -cp -rv usr/bin/* %{buildroot}%{_bindir} -cp -rv usr/share/* %{buildroot}%{_datadir} -rm -rf %{buildroot}%{_bindir}/steamos-polkit-helpers -rm %{buildroot}%{_bindir}/jupiter-biosupdate -# We want to actually keep this for drop-in scripts -# rm %{buildroot}%{_bindir}/steamos-session-select -rm %{buildroot}%{_bindir}/steamos-update - +install -Dpm0755 -t "%buildroot%_bindir/" ".%_bindir/steam-http-loader" +install -Dpm0755 -t "%buildroot%_bindir/" ".%_bindir/steamos-select-branch" +install -Dpm0755 -t "%buildroot%_bindir/" ".%_bindir/steamos-session-select" +install -Dpm0755 -t "%buildroot%_bindir/" ".%_bindir/steamos-update" +install -Dpm0755 -t "%buildroot%_bindir/steamos-polkit-helpers/" ".%_bindir/steamos-polkit-helpers/jupiter-biosupdate" +install -Dpm0755 -t "%buildroot%_bindir/steamos-polkit-helpers/" ".%_bindir/steamos-polkit-helpers/steamos-select-branch" +install -Dpm0755 -t "%buildroot%_bindir/steamos-polkit-helpers/" ".%_bindir/steamos-polkit-helpers/steamos-update" +install -Dpm0644 -t "%buildroot%_datadir/applications/" ".%_datadir/applications/steam_http_loader.desktop" +install -Dpm0644 -t "%buildroot%_datadir/applications/" ".%_datadir/applications/gamescope-mimeapps.list" +install -Dpm0755 -t "%buildroot%_datadir/gamescope-session-plus/sessions.d/" ".%_datadir/gamescope-session-plus/sessions.d/steam" +install -Dpm0644 -t "%buildroot%_datadir/polkit-1/actions/" ".%_datadir/polkit-1/actions/org.chimeraos.update.policy" +install -Dpm0644 -t "%buildroot%_datadir/wayland-sessions/" ".%_datadir/wayland-sessions/gamescope-session-steam.desktop" +install -Dpm0644 -t "%buildroot%_datadir/wayland-sessions/" ".%_datadir/wayland-sessions/gamescope-session.desktop" %files %license LICENSE %{_bindir}/steam-http-loader %{_bindir}/steamos-select-branch %{_bindir}/steamos-session-select +%{_bindir}/steamos-update +%{_bindir}/steamos-polkit-helpers/jupiter-biosupdate +%{_bindir}/steamos-polkit-helpers/steamos-select-branch +%{_bindir}/steamos-polkit-helpers/steamos-update %{_datadir}/applications/gamescope-mimeapps.list %{_datadir}/applications/steam_http_loader.desktop %{_datadir}/gamescope-session-plus/sessions.d/steam %{_datadir}/polkit-1/actions/org.chimeraos.update.policy %{_datadir}/wayland-sessions/gamescope-session-steam.desktop -%{_datadir}/wayland-sessions/gamescope-session.desktop \ No newline at end of file +%{_datadir}/wayland-sessions/gamescope-session.desktop + +%changelog +* Mon Feb 03 2026 Tulip Blossom - 20241205.1a3fdb7f-1 +- Move to OGC source and clean up diff --git a/anda/games/gamescope-session-steam/update.rhai b/anda/games/gamescope-session-steam/update.rhai index 570f56cdff..ad1104c154 100644 --- a/anda/games/gamescope-session-steam/update.rhai +++ b/anda/games/gamescope-session-steam/update.rhai @@ -1,5 +1,5 @@ if filters.contains("nightly") { - rpm.global("commit", gh_commit("bazzite-org/gamescope-session-steam")); + rpm.global("commit", gh_commit("OpenGamingCollective/gamescope-session-steam")); if rpm.changed() { rpm.release(); rpm.global("commit_date", date()); diff --git a/anda/games/gamescope-session/anda.hcl b/anda/games/gamescope-session/anda.hcl index e2d33a48b1..8fba0756b1 100644 --- a/anda/games/gamescope-session/anda.hcl +++ b/anda/games/gamescope-session/anda.hcl @@ -1,4 +1,5 @@ project pkg { + arches = ["x86_64"] rpm { spec = "gamescope-session.spec" } diff --git a/anda/games/gamescope-session/gamescope-session.spec b/anda/games/gamescope-session/gamescope-session.spec index b298558ab4..ad86d77583 100644 --- a/anda/games/gamescope-session/gamescope-session.spec +++ b/anda/games/gamescope-session/gamescope-session.spec @@ -1,17 +1,21 @@ %define debug_package %nil -%global commit 7887b2941dd1ec70bf002e8ea3cd6007859131ec +%global commit b5c2d0d3ebcefa7450d9d4336dd5802aa96d8513 %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commit_date 20251012 +%global commit_date 20260202 Name: gamescope-session -Version: %commit_date.%shortcommit -Release: 1%?dist +Version: 0~%{commit_date}git.%{shortcommit} +Release: 3%?dist Summary: Gamescope session based on Valve's gamescope License: MIT -URL: https://github.com/bazzite-org/gamescope-session +URL: https://github.com/OpenGamingCollective/gamescope-session Source0: %url/archive/%commit.tar.gz +Requires: gamescope +Recommends: switcheroo-control BuildRequires: systemd-rpm-macros +Packager: Tulip Blossom +BuildArch: noarch %description Gamescope session plus based on Valve's gamescope. @@ -22,8 +26,13 @@ Gamescope session plus based on Valve's gamescope. %build %install -mkdir -p %buildroot -cp -r usr %buildroot/ +install -Dpm0755 -t "%buildroot%_bindir/" ".%_bindir/export-gpu" +install -Dpm0755 -t "%buildroot%_bindir/" ".%_bindir/gamescope-session-plus" +install -Dpm0644 -t "%buildroot%_userunitdir/" ".%_userunitdir/gamescope-session-plus@.service" +install -Dpm0644 -t "%buildroot%_userunitdir/" ".%_userunitdir/gamescope-session.target" +install -Dpm0644 -t "%buildroot%_datadir/gamescope-session-plus/" ".%_datadir/gamescope-session-plus/device-quirks" +install -Dpm0755 -t "%buildroot%_datadir/gamescope-session-plus/" ".%_datadir/gamescope-session-plus/gamescope-session-plus" +install -Dpm0644 -t "%buildroot%_datadir/gamescope/scripts/50-custom/50-disable-explicit-sync.lua" ".%_datadir/gamescope/scripts/50-custom/50-disable-explicit-sync.lua" %files %doc README.md @@ -32,9 +41,9 @@ cp -r usr %buildroot/ %{_bindir}/gamescope-session-plus %{_datadir}/gamescope-session-plus/device-quirks %{_datadir}/gamescope-session-plus/gamescope-session-plus +%{_datadir}/gamescope/scripts/50-custom/50-disable-explicit-sync.lua %{_userunitdir}/gamescope-session-plus@.service %{_userunitdir}/gamescope-session.target - %changelog %autochangelog diff --git a/anda/games/gamescope-session/update.rhai b/anda/games/gamescope-session/update.rhai index 08c489e27a..e7a36decec 100644 --- a/anda/games/gamescope-session/update.rhai +++ b/anda/games/gamescope-session/update.rhai @@ -1,5 +1,5 @@ if filters.contains("nightly") { - rpm.global("commit", gh_commit("bazzite-org/gamescope-session")); + rpm.global("commit", gh_commit("OpenGamingCollective/gamescope-session")); if rpm.changed() { rpm.release(); rpm.global("commit_date", date()); diff --git a/anda/games/gmodpatchtool/anda.hcl b/anda/games/gmodpatchtool/anda.hcl new file mode 100644 index 0000000000..d659be9067 --- /dev/null +++ b/anda/games/gmodpatchtool/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "gmodpatchtool.spec" + } +} diff --git a/anda/games/gmodpatchtool/gmodpatchtool.spec b/anda/games/gmodpatchtool/gmodpatchtool.spec new file mode 100644 index 0000000000..95344b2db8 --- /dev/null +++ b/anda/games/gmodpatchtool/gmodpatchtool.spec @@ -0,0 +1,53 @@ +%global _description %{expand: +Automatically patches Garry's Mod's internal Chromium Embedded Framework to: + +- Bring CEF up to date +- Fix GMod missing menu/launch issues on macOS and Linux +- Enable Proprietary Video/Audio codec, like H.264 (MP4) and AAC, support +- Enable Widevine support (but no VMP) +- Enable Software WebGL +- Enable partial GPU acceleration} +%global git_name GModPatchTool +%undefine __brp_mangle_shebangs + +Name: gmodpatchtool +Version: 20251102 +Release: 1%{?dist} +SourceLicense: GPL-3.0-only +License: ((MIT OR Apache-2.0) AND Unicode-3.0) 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 GPL-2.0-only) 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 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 MIT) AND (BSD-3-Clause OR MIT OR Apache-2.0) AND BSL-1.0 AND CC0-1.0 AND (CC0-1.0 OR Apache-2.0 OR Apache-2.0 WITH LLVM-exception) AND (CC0-1.0 OR MIT-0 OR Apache-2.0) AND GPL-3.0-only AND ISC AND MIT AND (MIT OR Apache-2.0) AND (MIT OR Apache-2.0 OR CC0-1.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) AND bzip2-1.0.6 +Summary: Automatic Patching/Updating of GMod CEF. Fixes macOS/Linux launch issues. +URL: https://solsticegamestudios.com/fixmedia +Source0: https://github.com/solsticegamestudios/%{git_name}/archive/refs/tags/%{version}.tar.gz +BuildRequires: anda-srpm-macros +BuildRequires: cargo-rpm-macros +BuildRequires: git-lfs +BuildRequires: mold +Provides: %{git_name} +Packager: Gilver E. + +%description %_description + +%prep +%git_clone https://github.com/solsticegamestudios/%{git_name}.git %{version} +git-lfs checkout +%cargo_prep_online + +%build +%cargo_build + +%install +find target/rpm \ + -maxdepth 1 -type f -executable ! -name '*.so' \ + -exec install -Dm755 -t %{buildroot}%{_bindir} {} + +%cargo_license_summary_online +%{cargo_license_online} > LICENSE.dependencies + +%files +%doc README.md +%license LICENSE.txt +%license LICENSE.dependencies +%{_bindir}/%{name} + +%changelog +* Tue Feb 24 2026 Gilver E. +- Initial package diff --git a/anda/games/gmodpatchtool/update.rhai b/anda/games/gmodpatchtool/update.rhai new file mode 100644 index 0000000000..a06e03928e --- /dev/null +++ b/anda/games/gmodpatchtool/update.rhai @@ -0,0 +1 @@ +rpm.version(gh_rawfile("solsticegamestudios/GModPatchTool", "master", "version.txt")); diff --git a/anda/games/heroic-games-launcher/heroic-games-launcher.spec b/anda/games/heroic-games-launcher/heroic-games-launcher.spec index faee1d53ec..7f6b706c42 100644 --- a/anda/games/heroic-games-launcher/heroic-games-launcher.spec +++ b/anda/games/heroic-games-launcher/heroic-games-launcher.spec @@ -1,36 +1,20 @@ -%global debug_package %{nil} -%global __provides_exclude ^((libffmpeg[.]so.*)|(lib.*\\.so.*))$ -%ifnarch aarch64 -%global __requires_exclude ^((libffmpeg[.]so.*)|(lib.*\\.so.*)|(.*\\aarch64*\\.so.*))$ -%elifarch aarch64 -%global __requires_exclude ^((libffmpeg[.]so.*)|(lib.*\\.so.*)|(.*\\x86_64*\\.so.*)|(.*\\x86-64*\\.so.*))$ -%endif %global org_name Heroic-Games-Launcher %global git_name %(echo %{org_name} | sed 's/-//g') -%global reverse_dns com.heroicgameslauncher.hgl +%global appid com.heroicgameslauncher.hgl %global shortname heroic -%global legendary_version 0.20.37 -%global gogdl_version 1.1.2 +%global legendary_version 0.20.43 +%global gogdl_version 1.2.1 %global nile_version 1.1.2 %global comet_version 0.2.0 Name: %{shortname}-games-launcher -Version: 2.18.1 -Release: 1%?dist +Version: 2.21.0 +Release: 1%{?dist} Summary: A games launcher for GOG, Amazon, and Epic Games License: GPL-3.0-only AND MIT AND BSD-3-Clause URL: https://heroicgameslauncher.com BuildRequires: anda-srpm-macros -BuildRequires: desktop-file-utils -# Electron builder builds some things with GCC(++), Git, and Make -BuildRequires: gcc -BuildRequires: gcc-c++ -BuildRequires: git -BuildRequires: make -BuildRequires: nodejs -BuildRequires: nodejs-npm BuildRequires: pnpm -BuildRequires: python3 Requires: alsa-lib Requires: gtk3 Requires: hicolor-icon-theme @@ -44,7 +28,9 @@ Provides: bundled(comet) = %{comet_version} Provides: bundled(gogdl) = %{gogdl_version} Provides: bundled(legendary) = %{legendary_version} Provides: bundled(nile) = %{nile_version} -Packager: Gilver E. +Packager: Gilver E. + +%electronmeta -D %description Heroic is a Free and Open Source Epic, GOG, and Amazon Prime Games launcher for Linux, Windows, and macOS. @@ -53,60 +39,44 @@ Heroic is a Free and Open Source Epic, GOG, and Amazon Prime Games launcher for %git_clone https://github.com/%{org_name}/%{git_name} v%{version} %build -pnpm install -pnpm run download-helper-binaries -pnpm dist:linux -wait +%pnpm_build -r download-helper-binaries -v %install -mkdir -p %{buildroot}%{_datadir}/%{shortname} -mv $(find . -iname "*LICENSE*" -not -path "./node_modules/*" -and -not -path "./public/*") . +rm -rf dist/linux-unpacked/resources/app.asar.unpacked/node_modules/font-list/libs/{darwin,win32} rm -rf dist/linux-unpacked/resources/app.asar.unpacked/node_modules/font-list/libs/{darwin,win32} %ifarch aarch64 # Keep the x86_64 Windows binaries run through Wine just in case rm -rf dist/linux-unpacked/resources/app.asar.unpacked/build/bin/x64/{darwin,linux} -mv dist/linux-arm64-unpacked/* %{buildroot}%{_datadir}/%{shortname} %else rm -rf dist/linux-unpacked/resources/app.asar.unpacked/build/bin/arm64 -mv dist/linux-unpacked/* %{buildroot}%{_datadir}/%{shortname} %endif -mkdir -p %{buildroot}%{_bindir} -# Make names executable -ln -sr %{_datadir}/%{shortname}/%{shortname} %{buildroot}%{_bindir}/%{name} -ln -sr %{_datadir}/%{shortname}/%{shortname} %{buildroot}%{_bindir}/%{shortname} -install -Dm644 dist/.icon-set/icon_16x16.png %{buildroot}%{_iconsdir}/hicolor/16x16/apps/%{reverse_dns}.png -install -Dm644 dist/.icon-set/icon_32x32.png %{buildroot}%{_iconsdir}/hicolor/32x32/apps/%{reverse_dns}.png -install -Dm644 dist/.icon-set/icon_48x48.png %{buildroot}%{_iconsdir}/hicolor/48x48/apps/%{reverse_dns}.png -install -Dm644 dist/.icon-set/icon_64x64.png %{buildroot}%{_iconsdir}/hicolor/64x64/apps/%{reverse_dns}.png -install -Dm644 dist/.icon-set/icon_128x128.png %{buildroot}%{_iconsdir}/hicolor/128x128/apps/%{reverse_dns}.png -install -Dm644 dist/.icon-set/icon_256x256.png %{buildroot}%{_iconsdir}/hicolor/256x256/apps/%{reverse_dns}.png -install -Dm644 dist/.icon-set/icon_512x512.png %{buildroot}%{_iconsdir}/hicolor/512x512/apps/%{reverse_dns}.png -install -Dm644 dist/.icon-set/icon_1024.png %{buildroot}%{_iconsdir}/hicolor/1024x1024/apps/%{reverse_dns}.png -desktop-file-install --set-key=Exec --set-value="/usr/share/%{shortname}/%{shortname} %u" flatpak/%{reverse_dns}.desktop + +%electron_install -d heroic -b heroic -S heroic -I -i %{appid} -l +%desktop_file_install -k Exec -v %{_libdir}/%{shortname}/%{shortname} -u %u flatpak/%{appid}.desktop + +install -Dpm644 flatpak/templates/%{appid}.metainfo.xml.template %{buildroot}%{_metainfodir}/%{appid}.metainfo.xml %check -desktop-file-validate %{buildroot}%{_datadir}/applications/%{reverse_dns}.desktop +%desktop_file_validate %{buildroot}%{_datadir}/applications/%{appid}.desktop %files %doc README.md %doc CODE_OF_CONDUCT.md %license COPYING -%license legendary.LICENSE -%license LICENSES.chromium.html -%license LICENSE.electron.txt -%dir %{_datadir}/%{shortname} -%{_datadir}/%{shortname}/* +%license bundled_licenses/* +%{_libdir}/%{shortname}/ %{_bindir}/%{shortname} %{_bindir}/%{name} -%{_datadir}/applications/%{reverse_dns}.desktop -%{_iconsdir}/hicolor/16x16/apps/%{reverse_dns}.png -%{_iconsdir}/hicolor/32x32/apps/%{reverse_dns}.png -%{_iconsdir}/hicolor/48x48/apps/%{reverse_dns}.png -%{_iconsdir}/hicolor/64x64/apps/%{reverse_dns}.png -%{_iconsdir}/hicolor/128x128/apps/%{reverse_dns}.png -%{_iconsdir}/hicolor/256x256/apps/%{reverse_dns}.png -%{_iconsdir}/hicolor/512x512/apps/%{reverse_dns}.png -%{_iconsdir}/hicolor/1024x1024/apps/%{reverse_dns}.png +%{_appsdir}/%{appid}.desktop +%{_metainfodir}/%{appid}.metainfo.xml +%{_hicolordir}/16x16/apps/%{appid}.png +%{_hicolordir}/32x32/apps/%{appid}.png +%{_hicolordir}/48x48/apps/%{appid}.png +%{_hicolordir}/64x64/apps/%{appid}.png +%{_hicolordir}/128x128/apps/%{appid}.png +%{_hicolordir}/256x256/apps/%{appid}.png +%{_hicolordir}/512x512/apps/%{appid}.png +%{_hicolordir}/1024x1024/apps/%{appid}.png %changelog * Sun Mar 02 2025 Gilver E. diff --git a/anda/games/inputplumber/inputplumber.spec b/anda/games/inputplumber/inputplumber.spec index 94f8056c9c..a01cdf5d36 100644 --- a/anda/games/inputplumber/inputplumber.spec +++ b/anda/games/inputplumber/inputplumber.spec @@ -1,8 +1,8 @@ %global __brp_mangle_shebangs %{nil} Name: inputplumber -Version: 0.66.0 -Release: 1%?dist +Version: 0.76.1 +Release: 1%{?dist} Summary: Open source input router and remapper daemon for Linux License: GPL-3.0-or-later URL: https://github.com/ShadowBlip/InputPlumber @@ -51,3 +51,10 @@ keyboards) and translate their input to a variety of virtual device formats. %_udevrulesdir/90-inputplumber-autostart.rules %_datadir/dbus-1/system.d/org.shadowblip.InputPlumber.conf %_datadir/inputplumber/ +%{_udevrulesdir}/99-inputplumber-device-setup.rules +%{_datadir}/polkit-1/actions/org.shadowblip.InputPlumber.policy +%{_datadir}/polkit-1/rules.d/org.shadowblip.InputPlumber.rules + +%changelog +* Sun Feb 01 2026 Owen Zimmerman +- Add more files from 0.73.0 release diff --git a/anda/games/launcher.moe/anime-game-launcher/anime-game-launcher.spec b/anda/games/launcher.moe/anime-game-launcher/anime-game-launcher.spec index 958affb802..d23368af50 100644 --- a/anda/games/launcher.moe/anime-game-launcher/anime-game-launcher.spec +++ b/anda/games/launcher.moe/anime-game-launcher/anime-game-launcher.spec @@ -2,8 +2,8 @@ %global crate anime-game-launcher %global appid moe.launcher.an-anime-game-launcher Name: %{crate} -Version: 3.17.0 -Release: 1%?dist +Version: 3.19.1 +Release: 2%{?dist} Summary: An Anime Game Launcher for Linux with automatic patching and telemetry disabling License: GPL-3.0-or-later @@ -53,6 +53,7 @@ BuildRequires: protobuf-devel protobuf-compiler %install %crate_install_bin +install -Dm644 assets/moe.launcher.an-anime-game-launcher.metainfo.xml %{buildroot}%{_metainfodir}/moe.launcher.an-anime-game-launcher.metainfo.xml install -Dm644 assets/images/icon.png %{buildroot}%{_datadir}/icons/hicolor/512x512/apps/%{appid}.png desktop-file-install \ --set-icon="%{appid}" \ @@ -70,7 +71,11 @@ desktop-file-validate %{buildroot}/%{_datadir}/applications/anime-game-launcher. %{_datadir}/applications/anime-game-launcher.desktop %{_bindir}/%{crate} %{_datadir}/icons/hicolor/512x512/apps/%{appid}.png +%{_metainfodir}/moe.launcher.an-anime-game-launcher.metainfo.xml %changelog +* Mon Dec 08 2025 Owen Zimmerman +- Install metainfo + * Sat Sep 20 2025 Cappy Ishihara - Initial package diff --git a/anda/games/launcher.moe/honkers-launcher/anda.hcl b/anda/games/launcher.moe/honkers-launcher/anda.hcl new file mode 100644 index 0000000000..af7d2ac7e5 --- /dev/null +++ b/anda/games/launcher.moe/honkers-launcher/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "honkers-launcher.spec" + } +} diff --git a/anda/games/launcher.moe/honkers-launcher/honkers-launcher.spec b/anda/games/launcher.moe/honkers-launcher/honkers-launcher.spec new file mode 100644 index 0000000000..b7903ba9dd --- /dev/null +++ b/anda/games/launcher.moe/honkers-launcher/honkers-launcher.spec @@ -0,0 +1,75 @@ +%global cargo_install_lib 0 +%global crate honkers-launcher +%global appid moe.launcher.honkers-launcher +Name: %{crate} +Version: 1.13.0 +Release: 1%?dist +Summary: Honkers Launcher for Linux with automatic patching and telemetry disabling + +License: GPL-3.0-or-later +URL: https://github.com/an-anime-team/honkers-launcher +Source0: %{url}/archive/refs/tags/%{version}.tar.gz +Packager: Cappy Ishihara + + +# Allow migrate path from Maroxy's OBS repo +Provides: honkers-launcher = %{version}-%{release} + +Requires: unzip +Requires: cabextract +Requires: tar +Requires: git +Requires: p7zip +Requires: curl +Requires: xdelta +BuildRequires: gtk4 +BuildRequires: git +BuildRequires: rust +BuildRequires: cargo +BuildRequires: gtk4-devel +BuildRequires: openssl-devel +BuildRequires: python3 +BuildRequires: python3-gobject +BuildRequires: libadwaita-devel +BuildRequires: cmake +BuildRequires: gcc clang-devel mold +BuildRequires: rust-packaging +BuildRequires: desktop-file-utils +BuildRequires: anda-srpm-macros +BuildRequires: cargo-rpm-macros + + +%description +%{summary}. + +%prep +%autosetup -n honkers-launcher-%{version} +%cargo_prep_online + +%build +%cargo_build + +%install +%crate_install_bin + +install -Dm644 assets/images/icon.png %{buildroot}%{_datadir}/icons/hicolor/512x512/apps/%{appid}.png +desktop-file-install \ + --set-icon="%{appid}" \ + --set-key="Exec" --set-value="%{name}" \ + --dir=%{buildroot}%{_datadir}/applications \ + assets/honkers-launcher.desktop + +%check +desktop-file-validate %{buildroot}/%{_datadir}/applications/honkers-launcher.desktop + + +%files +%license LICENSE +%doc README.md CHANGELOG.md +%{_datadir}/applications/honkers-launcher.desktop +%{_bindir}/%{crate} +%{_datadir}/icons/hicolor/512x512/apps/%{appid}.png + +%changelog +* Sat Sep 20 2025 Cappy Ishihara +- Initial package diff --git a/anda/games/launcher.moe/honkers-launcher/update.rhai b/anda/games/launcher.moe/honkers-launcher/update.rhai new file mode 100644 index 0000000000..97dcc4cede --- /dev/null +++ b/anda/games/launcher.moe/honkers-launcher/update.rhai @@ -0,0 +1 @@ +rpm.version(gh_tag("an-anime-team/honkers-launcher")); diff --git a/anda/games/launcher.moe/honkers-railway-launcher/honkers-railway-launcher.spec b/anda/games/launcher.moe/honkers-railway-launcher/honkers-railway-launcher.spec index 35674eeeda..930e89ce82 100644 --- a/anda/games/launcher.moe/honkers-railway-launcher/honkers-railway-launcher.spec +++ b/anda/games/launcher.moe/honkers-railway-launcher/honkers-railway-launcher.spec @@ -2,8 +2,8 @@ %global crate honkers-railway-launcher %global appid moe.launcher.the-honkers-railway-launcher Name: %{crate} -Version: 1.12.1 -Release: 1%?dist +Version: 1.14.5 +Release: 1%{?dist} Summary: The Honkers Railway launcher for Linux with automatic patching and telemetry disabling License: GPL-3.0-or-later diff --git a/anda/games/launcher.moe/sleepy-launcher/sleepy-launcher.spec b/anda/games/launcher.moe/sleepy-launcher/sleepy-launcher.spec index bbba667c01..8ee3aaded9 100644 --- a/anda/games/launcher.moe/sleepy-launcher/sleepy-launcher.spec +++ b/anda/games/launcher.moe/sleepy-launcher/sleepy-launcher.spec @@ -2,7 +2,7 @@ %global crate sleepy-launcher %global appid moe.launcher.sleepy-launcher Name: %{crate} -Version: 1.5.0 +Version: 1.6.2 Release: 1%?dist Summary: Sleepy Game Launcher for Linux with automatic patching and telemetry disabling diff --git a/anda/games/minecraft-java/.gitignore b/anda/games/minecraft-java/.gitignore new file mode 100644 index 0000000000..6131751955 --- /dev/null +++ b/anda/games/minecraft-java/.gitignore @@ -0,0 +1 @@ +*.svg \ No newline at end of file diff --git a/anda/games/minecraft-java/com.mojang.Minecraft.metainfo.xml b/anda/games/minecraft-java/com.mojang.Minecraft.metainfo.xml new file mode 100644 index 0000000000..237e962b0c --- /dev/null +++ b/anda/games/minecraft-java/com.mojang.Minecraft.metainfo.xml @@ -0,0 +1,59 @@ + + + com.mojang.Minecraft + Minecraft + https://minecraft.wiki/images/Minecraft_social_icon.png?fcb53 + ماين كرافت + মাইনক্রাফ্ট + Minecraft + Minecraft + Minecraft + Minecraft + Minecraft + Minecraft + Minecraft + Minecraft + Minecraft + Minecraft + CC0-1.0 + Create your own world in one of the most popular video games + أنشئ عالمك الخاص في واحدة من ألعاب الفيديو الأكثر شعبية + Crea tu propio mundo en este videojuego popular + Créez votre propre univers dans l'un des jeux vidéo les plus populaires + सर्वाधिक लोकप्रिय वीडियो गेम में अपनी खुद की दुनिया बनाएँ + Ciptakan duniamu sendiri di salah satu permainan paling populer ini. + Crie seu próprio mundo em um dos videogames mais populares + Creeaza-ti propria lume in unul dintre cele mai populare jocuri video + สร้างโลกของคุณขึ้นมาใหม่ในหนึ่งในวิดีโอเกมที่เป็นที่นิยมมากที่สุด + Kiến tạo thế giới của riêng bạn trên một trong những trò chơi điện tử phổ biến nhất + 在这款风靡全球的视频游戏中打造属于自己的世界 + 在最受歡迎的電玩遊戲中打造自己的世界 + +

Join people all over the world playing Minecraft, one of the most popular videogames around! Your own imagination is the limit in this fun game where you get to build the world around you. Play with friends, or alone, as you adventure, gather, build, and battle in an incredible land of your very own. For the best experience, we recommend you create an account and purchase online at minecraft.net/en-us/store before installing this app. ** Requires internet.

NOTE: This wrapper is not verified by, affiliated with, or supported by Mojang or Microsoft.

+

انضم للأشخاص الذين يلعبون لُعبة ماين كرافت من جميع أنحاء العالم، وهي واحدة من ألعاب الفيديو الأكثر شعبية الموجودة الآن! خيالك الخاص هو الحد في هذه اللعبة المُمتعة حيث يمكنك بناء العالم من حولك. العب مع الأصدقاء، أو منفرداً، حيث أنك تغامر وتجمع الموارد وتبني وتحارب في أراضٍ مذهلة خاصة بك للغاية. لأفضل تجربة، فإننا ننصح بإنشاء حساب والشراء عبر الإنترنت من خلال minecraft.net/en-us/store/ قبل تثبيت هذا التطبيق. ** يتطلب الإنترنت.

NOTE: This wrapper is not verified by, affiliated with, or supported by Mojang or Microsoft.

+

¡Todo el mundo esta jugando Minecraft, uno de los videojuegos más populares de hoy día! Tu imaginación es el límite en este juego divertido en donde puedes construir el mundo que te rodea. Juega con tus amigos, o solo, y aventura, recolecta, construye y batalla. Para obtener la mejor experiencia, recomendamos crear una cuenta y comprar el juego en línea antes de instalarlo minecraft.net/es-es/store ** Requiere internet.

NOTE: This wrapper is not verified by, affiliated with, or supported by Mojang or Microsoft.

+

Rejoignez les joueurs du monde entier avec Minecraft, l'un des jeux vidéo les plus populaires qui existent ! Testez les limites de votre propre imagination dans ce jeu récréatif où vous devrez construire l'univers qui vous entoure. Jouez seul ou avec des amis, et partez à l'aventure en amassant, construisant et combattant dans ce monde incroyable qui est le vôtre. Pour vivre une expérience parfaite, nous vous recommandons de créer un compte et d'acheter en ligne sur minecraft.net/en-us/store avant d'installer cette appli. ** Nécessite internet.

NOTE: This wrapper is not verified by, affiliated with, or supported by Mojang or Microsoft.

+

दुनियाभर में Minecraft खेलने वाले लोगों से मिलें, जो सर्वाधिक लोकप्रिय वीडियो गेम में से एक है! इस मज़ेदार गेम में आपकी अपनी कल्पना ही सीमा है जहाँ आप अपने आसपास की दुनिया बनाते हैं. अपने मित्रों के साथ या अकेले खेलें, चूँकि आपकी रोमांच यात्रा आपकी अपनी सीमाओं में ही निर्मित होती है. श्रेष्ठ अनुभव के लिए, हम आपको यह ऐप स्थापित करने से पहले एक खाता निर्मित करने और minecraft.net/en-us/store पर इसे खरीदने की सलाह देते हैं. ** इंटरनेट आवश्यक.

NOTE: This wrapper is not verified by, affiliated with, or supported by Mojang or Microsoft.

+

Bergabung dengan orang lain di dunia yang juga memainkan Minecraft, salah satu permainan yang paling populer di dunia. Anda bisa membangun dunia sendiri di game seru ini, satu-satunya batasan adalah imajinasi Anda. Bermain bersama dengan teman, atau sendiri, dimana Anda bisa berpetualang, mengumpulkan, membangun, dan bertarung di tanah ciptaan Anda sendiri. Untuk pengalaman yang paling optimal, sebelum mengunduh game ini, kami sarankan Anda membuat akun dan membeli permainan ini di minecraft.net/en-us/store. **Membutuhkan koneksi internet

NOTE: This wrapper is not verified by, affiliated with, or supported by Mojang or Microsoft.

+

Junte-se a pessoas de todas as partes do mundo jogando Minecraft, um dos videogames mais populares do momento! A sua imaginação é o limite neste jogo divertido que permite construir um mundo próprio. Jogue com amigos ou sozinho, enquanto parte em uma aventura de construções e batalhas nas suas terras incríveis. Para obter a melhor experiência, antes de instalar este app, recomendamos que você crie uma conta e adquira o jogo no site oficial do Minecraft: minecraft.net/pt-br/store ** Necessita internet

NOTE: This wrapper is not verified by, affiliated with, or supported by Mojang or Microsoft.

+

Alatura-te lumii jucand Minecraft, unul dintre cele mai populare jocuri video din jur! Imaginatia ta este limita in acest joc distractiv unde poti construi o lume in jurul tau. Joaca cu prietenii, sau singur, cand te aventurezi, aduni, construiesti, si te lupti in incredibilul taram al tau. Pentru o mai buna experienta, iti recomandam sa iti creezi un cont si sa cumperi online jocul la adresa minecraft.net/en-us/store inainte sa instalezi aplicatia. **Necesita internet.

NOTE: This wrapper is not verified by, affiliated with, or supported by Mojang or Microsoft.

+

ร่วมสนุกสนานไปพร้อมกันกับผู้คนทั่วโลกในการเล่นเกม Minecraft หนึ่งในวิดีโอเกมที่เป็นที่นิยมมากที่สุดในตอนนี้! จินตนาการของคุณคือขีดจำกัดเพียงอย่างเดียวในเกมแสนสนุกนี้ ที่คุณจะได้มีโอกาสสร้างโลกขึ้นมาใหม่รอบตัวคุณ เล่นกับเพื่อนฝูง (หรือจะเล่นคนเดียวก็ได้เช่นกัน) ในขณะที่คุณออกผจญภัย เก็บของป่า ปลูกสิ่งก่อสร้าง และต่อสู้ท่ามกลางผืนดินสุดอัศจรรย์ที่คุณสร้างขึ้นมาด้วยตัวเอง หากต้องการสัมผัสประสบการณ์การเล่นเกมที่ดีที่สุด เราขอแนะนำให้คุณสร้างบัญชีผู้ใช้ขึ้นมาและซื้อออนไลน์ที่ minecraft.net/en-us/store ก่อนที่จะติดตั้งแอปนี้ ** ต้องต่ออินเทอร์เน็ต

NOTE: This wrapper is not verified by, affiliated with, or supported by Mojang or Microsoft.

+

Hãy cùng chơi Minecraft, một trong những trò chơi điện tử phổ biến nhất, với toàn thế giới! Không điều gì có thể giới hạn trí tưởng tượng của riêng bạn trong trò chơi vui nhộn này, nơi bạn sẽ xây dựng thế giới xung quanh mình. Hãy chơi cùng bạn bè hoặc chơi một mình, và hãy phiêu lưu, tụ họp, xây dựng và chiến đấu trên mảnh đất kỳ diệu của riêng mình. Để có trải nghiệm tốt nhất, chúng tôi khuyên bạn nên tạo một tài khoản và mua hàng trực tuyến tại địa chỉ minecraft.net/en-us/store trước khi cài đặt ứng dụng này. **Cần có Internet.

NOTE: This wrapper is not verified by, affiliated with, or supported by Mojang or Microsoft.

+

Minecraft 是一款火爆的视频游戏,在全球有无数的狂热玩家,快来加入他们!在这款充满趣味的游戏中,你可以随心所欲打造属于自己的世界,唯一能够限制你的只有你的想象力。这个神奇的世界完全属于你自己,你可以去冒险、收集资源、建造房屋,还可以跟敌对生物战斗,你可以单人娱乐,也可以多人联机。为了玩得尽兴,建议在线购买并创建一个帐户,网址为:minecraft.net/en-us/store,然后安装此应用** 需要 Internet 连接。

NOTE: This wrapper is not verified by, affiliated with, or supported by Mojang or Microsoft.

+

加入在世界各地遊玩 Minecraft 的人們吧,這是最受歡迎的電玩遊戲之一!在這款有趣的遊戲中,唯有自己的想像力是極限,您必須打造自己週邊的世界。可與好友一起或獨自遊玩,在屬於自己的絕妙世界中探索、收集、建造及戰鬥。為了獲得最佳體驗,建議在安裝此 app 前在 minecraft.net/en-us/store/ 建立帳號並線上購買。** 需要網路

NOTE: This wrapper is not verified by, affiliated with, or supported by Mojang or Microsoft.

+
+ https://minecraft.net + + https://raw.githubusercontent.com/flathub/com.mojang.Minecraft/master/screenshots/minecraft1.png + https://raw.githubusercontent.com/flathub/com.mojang.Minecraft/master/screenshots/minecraft2.png + + + https://d3lapyynmdp1i9.cloudfront.net/thumbnails/com.mojang.Minecraft/com.mojang.minecraft-thumb.jpg + + com.mojang.Minecraft.desktop + LicenseRef-proprietary + + moderate + intense + +
diff --git a/anda/games/minecraft-java/minecraft-java.spec b/anda/games/minecraft-java/minecraft-java.spec index 2df0e94b45..85205d5349 100644 --- a/anda/games/minecraft-java/minecraft-java.spec +++ b/anda/games/minecraft-java/minecraft-java.spec @@ -1,8 +1,12 @@ %global debug_package %{nil} +%global appid com.mojang.Minecraft +%global developer Mojang Studios +%global org com.mojang + Name: minecraft-launcher -Version: 2.1.3 -Release: 1%{?dist} +Version: 2.3.2 +Release: 4%{?dist} Summary: Official launcher for Minecraft License: https://www.minecraft.net/en-us/eula @@ -10,10 +14,12 @@ URL: https://minecraft.net Source0: https://launcher.mojang.com/download/Minecraft.tar.gz Source1: minecraft-launcher.desktop Source2: https://launcher.mojang.com/download/minecraft-launcher.svg +Source3: com.mojang.Minecraft.metainfo.xml Packager: Cappy Ishihara ExclusiveArch: x86_64 +BuildRequires: terra-appstream-helper anda-srpm-macros desktop-file-utils Requires: java >= 1.8.0 Requires: gtk3 Requires: libgpg-error @@ -28,20 +34,21 @@ The official Linux release of the launcher for Minecraft, a game about placing b %build %install -mkdir -p %{buildroot}%{_bindir} -mkdir -p %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps/ -mkdir -p %{buildroot}%{_datadir}/applications/ +install -Dm755 %{_builddir}/minecraft-launcher/minecraft-launcher %{buildroot}%{_bindir}/minecraft-launcher +install -Dm644 %{SOURCE1} %{buildroot}%{_appsdir}/%{appid}.desktop +install -Dm644 %{SOURCE2} %{buildroot}%{_scalableiconsdir}/%{appid}.svg -mv %{_builddir}/minecraft-launcher/minecraft-launcher %{buildroot}%{_bindir}/minecraft-launcher -chmod 755 %{buildroot}%{_bindir}/minecraft-launcher +%terra_appstream -o %{SOURCE3} +cat %{buildroot}%{_metainfodir}/%{appid}.metainfo.xml -install -Dm644 %{SOURCE1} %{buildroot}%{_datadir}/applications/minecraft-launcher.desktop -install -Dm644 %{SOURCE2} %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps/minecraft-launcher.svg +%check +desktop-file-validate %{buildroot}%{_appsdir}/%{appid}.desktop %files %{_bindir}/minecraft-launcher -%{_datadir}/applications/minecraft-launcher.desktop -%{_datadir}/icons/hicolor/symbolic/apps/minecraft-launcher.svg +%{_appsdir}/%{appid}.desktop +%{_scalableiconsdir}/%{appid}.svg +%{_metainfodir}/%{appid}.metainfo.xml %changelog * Tue Mar 08 2022 Thomas Batten - 1121-2 diff --git a/anda/games/minecraft-java/minecraft-launcher.desktop b/anda/games/minecraft-java/minecraft-launcher.desktop index 762c9a8e46..78634f260e 100644 --- a/anda/games/minecraft-java/minecraft-launcher.desktop +++ b/anda/games/minecraft-java/minecraft-launcher.desktop @@ -1,10 +1,9 @@ [Desktop Entry] Type=Application -Version=2.0 +Version=1.0 Name=Minecraft Launcher Comment=Official Minecraft Launcher Exec=/usr/bin/minecraft-launcher -Path=/usr/bin -Icon=minecraft-launcher +Icon=com.mojang.Minecraft Terminal=false -Categories=Game;Application; +Categories=Game diff --git a/anda/games/opengamepadui/opengamepadui.spec b/anda/games/opengamepadui/opengamepadui.spec index a368cb3780..363e086b68 100644 --- a/anda/games/opengamepadui/opengamepadui.spec +++ b/anda/games/opengamepadui/opengamepadui.spec @@ -1,6 +1,6 @@ Name: opengamepadui -Version: 0.42.0 -Release: 1%?dist +Version: 0.45.0 +Release: 1%{?dist} Summary: Open source gamepad-native game launcher and overlay License: GPLv3 diff --git a/anda/games/opsu/opsu.spec b/anda/games/opsu/opsu.spec index 031bfa7551..f6e454fd49 100644 --- a/anda/games/opsu/opsu.spec +++ b/anda/games/opsu/opsu.spec @@ -55,5 +55,5 @@ install -Dm644 %{SOURCE3} "%{buildroot}/%{_datadir}/doc/%{name}/README.md" /usr/share/applications/%{name}.desktop %changelog -* Tue Feb 7 2023 windowsboy111 - 0.16.1-1 +* Tue Feb 7 2023 madonuko - 0.16.1-1 - Initial package diff --git a/anda/games/osu-lazer/osu-lazer-uri-handler.desktop b/anda/games/osu-lazer/osu-lazer-uri-handler.desktop index 97492edf61..d9000f43bb 100644 --- a/anda/games/osu-lazer/osu-lazer-uri-handler.desktop +++ b/anda/games/osu-lazer/osu-lazer-uri-handler.desktop @@ -3,7 +3,7 @@ Type=Application NoDisplay=true Name=osu!lazer - uri handler MimeType=x-scheme-handler/osu; -Icon=/usr/share/pixmaps/osu-lazer.png +Icon=osu-lazer Comment=Open source free-to-win rhythm game Exec=/usr/bin/osu-lazer %u -Categories=Game; \ No newline at end of file +Categories=Game; diff --git a/anda/games/osu-lazer/osu-lazer.desktop b/anda/games/osu-lazer/osu-lazer.desktop index 2376814087..cc6fc5c643 100644 --- a/anda/games/osu-lazer/osu-lazer.desktop +++ b/anda/games/osu-lazer/osu-lazer.desktop @@ -2,7 +2,7 @@ Type=Application Name=osu!lazer MimeType=application/x-osu-skin-archive;application/x-osu-replay;application/x-osu-beatmap-archive; -Icon=/usr/share/pixmaps/osu-lazer.png +Icon=osu-lazer Comment=Open source free-to-win rhythm game Exec=/usr/bin/osu-lazer -Categories=Game; \ No newline at end of file +Categories=Game; diff --git a/anda/games/osu-lazer/osu-lazer.spec b/anda/games/osu-lazer/osu-lazer.spec index 18aadbd975..b766cef540 100644 --- a/anda/games/osu-lazer/osu-lazer.spec +++ b/anda/games/osu-lazer/osu-lazer.spec @@ -1,14 +1,15 @@ -%define osuresver 2025.911.0 +%define osuresver 2026.427.0 %global debug_package %{nil} %define __strip /bin/true Name: osu-lazer -Version: 2025.912.0 -Release: 1%?dist +Version: 2026.429.0 +Release: 1%{?dist} Summary: The future of osu! and the beginning of an open era! Commonly known by the codename osu!lazer. Pew pew. ExclusiveArch: x86_64 URL: https://osu.ppy.sh/ License: MIT AND CC-BY-NC-4.0 +BuildRequires: desktop-file-utils Requires: osu-mime fuse Source0: https://github.com/ppy/osu/releases/download/%{version}-lazer/osu.AppImage Source1: https://raw.githubusercontent.com/ppy/osu/%{version}-lazer/assets/lazer.png @@ -20,7 +21,7 @@ Source4: osu-lazer-uri-handler.desktop %{summary} %prep -cat < osu-lazer +cat <<'EOF' > osu-lazer #!/bin/sh env OSU_EXTERNAL_UPDATE_PROVIDER=1 /opt/osu-lazer/osu.AppImage "$@" EOF @@ -30,23 +31,28 @@ EOF %install install -Dm755 %{SOURCE0} %{buildroot}/opt/osu-lazer/osu.AppImage -install -Dm755 -t %{buildroot}/usr/bin osu-lazer +install -Dm755 -t %{buildroot}%{_bindir} osu-lazer # Install pixmap, desktop and license file mkdir -p %{buildroot}/%{_datadir}/licenses/%{name}/ -install -Dm644 %{SOURCE1} %{buildroot}/usr/share/pixmaps/osu-lazer.png -install -Dm644 %{SOURCE2} %{buildroot}/%{_datadir}/licenses/%{name}/LICENSE.md -install -Dm644 -t %{buildroot}/usr/share/applications %{SOURCE3} -install -Dm644 -t %{buildroot}/usr/share/applications %{SOURCE4} +install -Dm644 %{SOURCE1} %{buildroot}%{_datadir}/pixmaps/osu-lazer.png +install -Dm644 %{SOURCE2} %{buildroot}%{_datadir}/licenses/%{name}/LICENSE.md +install -Dm644 %{SOURCE3} %{buildroot}%{_appsdir}/osu-lazer.desktop +install -Dm644 %{SOURCE4} %{buildroot}%{_appsdir}/osu-lazer-uri-handler.desktop + +%check +desktop-file-validate %{buildroot}%{_appsdir}/osu-lazer.desktop +desktop-file-validate %{buildroot}%{_appsdir}/osu-lazer-uri-handler.desktop %files %license LICENSE.md -/usr/share/applications/osu-lazer*.desktop -/usr/bin/osu-lazer +%{_appsdir}/osu-lazer*.desktop +%{_bindir}/osu-lazer /opt/osu-lazer/osu.AppImage -/usr/share/pixmaps/osu-lazer.png - +%{_datadir}/pixmaps/osu-lazer.png %changelog -* Mon Feb 13 2023 windowsboy111 - 2023.207.0-1 +* Wed Dec 24 2025 Owen Zimmerman +- Use macros, add %check, clean up %install +* Mon Feb 13 2023 madonuko - 2023.207.0-1 - Initial package diff --git a/anda/games/osu-mime/osu-mime.spec b/anda/games/osu-mime/osu-mime.spec index 4009d5796c..190ca7a8ab 100644 --- a/anda/games/osu-mime/osu-mime.spec +++ b/anda/games/osu-mime/osu-mime.spec @@ -56,5 +56,5 @@ update-desktop-database -q /usr/share/mime/packages/osu-file-extensions.xml %changelog -* Mon Feb 13 2023 windowsboy111 +* Mon Feb 13 2023 madonuko - Initial package diff --git a/anda/games/powerbuttond/anda.hcl b/anda/games/powerbuttond/anda.hcl new file mode 100644 index 0000000000..a6776ffd5c --- /dev/null +++ b/anda/games/powerbuttond/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "powerbuttond.spec" + } +} diff --git a/anda/games/powerbuttond/powerbuttond.spec b/anda/games/powerbuttond/powerbuttond.spec new file mode 100644 index 0000000000..2da9358a08 --- /dev/null +++ b/anda/games/powerbuttond/powerbuttond.spec @@ -0,0 +1,60 @@ +%define debug_package %nil + +Name: powerbuttond +Version: 4.2 +Release: 1%?dist +Summary: Steam Deck power button daemon + +License: BSD-2-clause +URL: https://gitlab.steamos.cloud/holo/powerbuttond +Source: %{url}/-/archive/v%{version}/powerbuttond-v%{version}.tar.gz +Packager: madonuko +BuildRequires: systemd-rpm-macros +BuildRequires: pkgconfig(libudev) +BuildRequires: pkgconfig(libevdev) +BuildRequires: make gcc + +Provides: steam-powerbuttond +Obsoletes: steam-powerbuttond < 3.3 +Provides: steamos-powerbuttond +Obsoletes: steamos-powerbuttond < 3.3 +Provides: powerbuttond = %evr + +%description +Steam Deck power button daemon. + +%prep +%autosetup -n powerbuttond-v%{version} -p1 + +%build +%make_build CFLAGS="$CFLAGS -I%_includedir/libevdev-1.0" LDFLAGS="$LDFLAGS" + +%install +%make_install +sed -i 's/Requisite=gamescope-session.service//g' %{buildroot}%{_userunitdir}/steamos-powerbuttond.service +rm -r %{buildroot}/%{_userunitdir}/gamescope-session.service.wants +rm %buildroot%_datadir/licenses/steamos-%name/LICENSE + +%post +udevadm control --reload-rules +udevadm trigger +%systemd_user_post steamos-%{name}.service + +%preun +%systemd_user_preun steamos-%{name}.service + +%postun +%systemd_user_postun steamos-%{name}.service + +%files +%license LICENSE +%dir %{_prefix}/lib/hwsupport +%{_prefix}/lib/hwsupport/steamos-%{name} +%{_userunitdir}/steamos-%{name}.service +%{_prefix}/lib/udev/rules.d/70-steamos-power-button.rules +%dir %{_prefix}/lib/udev/hwdb.d +%{_prefix}/lib/udev/hwdb.d/70-steamos-power-button.hwdb + +%changelog +* Fri Jan 30 2026 madonuko - 4.0-1 +- Ported from https://copr-dist-git.fedorainfracloud.org/packages/gloriouseggroll/nobara-43/steamos-powerbuttond.git/tree/steamos-powerbuttond.spec?h=f43&id=071012e4c4b4a1eda8606753615c9f4ceef33458 diff --git a/anda/games/powerbuttond/update.rhai b/anda/games/powerbuttond/update.rhai new file mode 100644 index 0000000000..40c200c1ae --- /dev/null +++ b/anda/games/powerbuttond/update.rhai @@ -0,0 +1 @@ +rpm.version(gitlab_tag("gitlab.steamos.cloud", "995")); diff --git a/anda/games/powerstation/anda.hcl b/anda/games/powerstation/anda.hcl new file mode 100644 index 0000000000..d679f1e19e --- /dev/null +++ b/anda/games/powerstation/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "powerstation.spec" + } +} diff --git a/anda/games/powerstation/powerstation.spec b/anda/games/powerstation/powerstation.spec new file mode 100644 index 0000000000..7fc7036557 --- /dev/null +++ b/anda/games/powerstation/powerstation.spec @@ -0,0 +1,67 @@ +Name: powerstation +Version: 0.8.1 +Release: 1%?dist +Summary: Daemon for controlling TDP and performance over DBus + +SourceLicense: GPL-3.0-or-later +License: ((MIT OR Apache-2.0) AND Unicode-3.0) AND (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND (BSD-3-Clause OR MIT OR Apache-2.0) AND GPL-3.0-or-later AND ISC AND LGPL-3.0 AND MIT AND (MIT OR Apache-2.0) AND (MIT OR Zlib OR Apache-2.0) AND MPL-2.0 AND (Unlicense OR MIT) +URL: https://github.com/ShadowBlip/PowerStation +Source0: %{url}/archive/refs/tags/v%{version}.tar.gz +Packager: madonuko + +ExcludeArch: %{ix86} + +BuildRequires: rust-packaging +BuildRequires: pciutils-devel +BuildRequires: systemd-devel +BuildRequires: clang cmake +Requires: dbus +Requires: zlib-ng-compat + +%description +Powerstation is a daemon for controlling TDP and performance over DBus. +It is designed for use on AMD platforms with access to libryzenadj. + +%prep +%autosetup -n PowerStation-%{version} +%cargo_prep_online + +%build +%{cargo_build} --locked +%cargo_license_summary_online +%{cargo_license_online} > LICENSE.dependencies + +%install +%crate_install_bin + +# DBus system policy +install -Dm644 rootfs%_datadir/dbus-1/system.d/org.shadowblip.PowerStation.conf \ + -t %buildroot%_datadir/dbus-1/system.d + +install -Dm644 rootfs%_unitdir/powerstation.service -t %buildroot%_unitdir + +sed -i 's/After=graphical-session.target//g' %buildroot%_unitdir/powerstation.service + +echo 'enable powerstation.service' | install -Dm644 /dev/stdin %buildroot%_presetdir/95-enable-powerstation.preset + +%files +%license LICENSE LICENSE.dependencies +%doc README.md +%_bindir/powerstation +%_datadir/dbus-1/system.d/org.shadowblip.PowerStation.conf +%_unitdir/powerstation.service +%_presetdir/95-enable-powerstation.preset + +%post +%systemd_post powerstation.service + +%preun +%systemd_preun powerstation.service + +%postun +%systemd_postun_with_restart powerstation.service + + +%changelog +* Fri Jan 30 2026 madonuko - 0.7.0-1 +- Ported from https://copr-dist-git.fedorainfracloud.org/packages/gloriouseggroll/nobara-43/powerstation.git/tree/powerstation.spec?h=f43 diff --git a/anda/games/powerstation/update.rhai b/anda/games/powerstation/update.rhai new file mode 100644 index 0000000000..bc76d06a2b --- /dev/null +++ b/anda/games/powerstation/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("ShadowBlip/PowerStation")); diff --git a/anda/games/prismlauncher-nightly/0001-find-cmark-with-pkgconfig.patch b/anda/games/prismlauncher-nightly/0001-find-cmark-with-pkgconfig.patch deleted file mode 100644 index d41ef66bec..0000000000 --- a/anda/games/prismlauncher-nightly/0001-find-cmark-with-pkgconfig.patch +++ /dev/null @@ -1,79 +0,0 @@ -From 5a38fc2c9a329e88c8337af541dfeccaeff1fefb Mon Sep 17 00:00:00 2001 -From: seth -Date: Sun, 15 Jan 2023 14:47:49 -0500 -Subject: [PATCH] find cmark with pkgconfig - -Signed-off-by: seth ---- - cmake/Findcmark.cmake | 59 +++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 59 insertions(+) - create mode 100755 cmake/Findcmark.cmake - -diff --git a/cmake/Findcmark.cmake b/cmake/Findcmark.cmake -new file mode 100755 -index 00000000..9858e5df ---- /dev/null -+++ b/cmake/Findcmark.cmake -@@ -0,0 +1,59 @@ -+# SPDX-FileCopyrightText: 2019 Black Hat -+# SPDX-License-Identifier: GPL-3.0-only -+ -+# -+# CMake module to search for the cmark library -+# -+ -+# first try to find cmark-config.cmake -+# path to a file not in the search path can be set with 'cmake -Dcmark_DIR=some/path/' -+find_package(cmark CONFIG QUIET) -+if(cmark_FOUND AND TARGET cmark::cmark) -+ # found it! -+ return() -+endif() -+ -+find_package(PkgConfig QUIET) -+if(PKG_CONFIG_FOUND) -+ pkg_check_modules(PC_CMARK QUIET cmark) -+endif() -+ -+if(NOT CMARK_INCLUDE_DIR) -+ find_path(CMARK_INCLUDE_DIR -+ NAMES cmark.h -+ PATHS -+ ${PC_CMARK_INCLUDEDIR} -+ ${PC_CMARK_INCLUDE_DIRS} -+ /usr/include -+ /usr/local/include) -+endif() -+ -+if(NOT CMARK_LIBRARY) -+ find_library(CMARK_LIBRARY -+ NAMES cmark -+ HINTS -+ ${PC_CMARK_LIBDIR} -+ ${PC_CMARK_LIBRARY_DIRS} -+ /usr/lib -+ /usr/local/lib) -+endif() -+ -+if(NOT TARGET cmark::cmark) -+ add_library(cmark::cmark UNKNOWN IMPORTED) -+ set_target_properties(cmark::cmark -+ PROPERTIES INTERFACE_INCLUDE_DIRECTORIES -+ ${CMARK_INCLUDE_DIR}) -+ set_property(TARGET cmark::cmark APPEND -+ PROPERTY IMPORTED_LOCATION ${CMARK_LIBRARY}) -+endif() -+ -+include(FindPackageHandleStandardArgs) -+find_package_handle_standard_args(cmark -+ DEFAULT_MSG -+ CMARK_INCLUDE_DIR -+ CMARK_LIBRARY) -+ -+mark_as_advanced(CMARK_LIBRARY CMARK_INCLUDE_DIR) -+ -+set(CMARK_LIBRARIES ${CMARK_LIBRARY}) -+set(CMARK_INCLUDE_DIRS ${CMARK_INCLUDE_DIR}) --- -2.39.0 - diff --git a/anda/games/prismlauncher-nightly/anda.hcl b/anda/games/prismlauncher-nightly/anda.hcl index 061a1307db..fdc18bbc52 100644 --- a/anda/games/prismlauncher-nightly/anda.hcl +++ b/anda/games/prismlauncher-nightly/anda.hcl @@ -1,7 +1,7 @@ project pkg { rpm { spec = "prismlauncher-nightly.spec" - extra_repos = ["https://packages.adoptium.net/artifactory/rpm/fedora/\\$releasever/\\$basearch"] + extra_repos = ["https://packages.adoptium.net/artifactory/rpm/fedora/rawhide/\\$basearch"] } labels { nightly = 1 diff --git a/anda/games/prismlauncher-nightly/nightly.xml b/anda/games/prismlauncher-nightly/nightly.xml new file mode 100644 index 0000000000..d88cff52b2 --- /dev/null +++ b/anda/games/prismlauncher-nightly/nightly.xml @@ -0,0 +1,4 @@ + + org.prismlauncher.PrismLauncher-nightly + Prism Launcher (Nightly) + diff --git a/anda/games/prismlauncher-nightly/prismlauncher-nightly.spec b/anda/games/prismlauncher-nightly/prismlauncher-nightly.spec index e38ba4b7e1..e661bbc430 100644 --- a/anda/games/prismlauncher-nightly/prismlauncher-nightly.spec +++ b/anda/games/prismlauncher-nightly/prismlauncher-nightly.spec @@ -1,60 +1,51 @@ %global real_name prismlauncher %global nice_name PrismLauncher +%global name_pretty %{quote:Prism Launcher (Nightly)} +%global appid org.prismlauncher.PrismLauncher-nightly -%global commit 3c5431176bc000808bc6e720f201db520e858e4d +%global commit 4f58197edb50eeef29438378671f764e62144f80 %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commit_date 20251021 +%global commit_date 20260506 %global snapshot_info %{commit_date}.%{shortcommit} -%bcond_without qt6 - # Change this variables if you want to use custom keys # Leave blank if you want to build Prism Launcher without MSA id or curseforge api key %define msa_id default %define curseforge_key default -%if %{with qt6} %global qt_version 6 %global min_qt_version 6 -%else -%global qt_version 5 -%global min_qt_version 5.12 -%endif %global build_platform terra -%if %{with qt6} Name: prismlauncher-nightly -%else -Name: prismlauncher-qt5-nightly -%endif -Version: 10.0^%{snapshot_info} -Release: 1%?dist +Version: 12.0^%{snapshot_info} +Release: 1%{?dist} Summary: Minecraft launcher with ability to manage multiple instances License: GPL-3.0-only AND Apache-2.0 AND LGPL-3.0-only AND GPL-3.0-or-later AND GPL-2.0-or-later AND ISC AND OFL-1.1 AND LGPL-2.1-only AND MIT AND BSD-2-Clause-FreeBSD AND BSD-3-Clause AND LGPL-3.0-or-later Group: Amusements/Games URL: https://prismlauncher.org/ -Patch0: 0001-find-cmark-with-pkgconfig.patch +Source2: nightly.xml BuildRequires: cmake >= 3.15 BuildRequires: extra-cmake-modules BuildRequires: gcc-c++ +BuildRequires: terra-appstream-helper # JDKs less than the most recent release & LTS are no longer in the default # Fedora repositories # Make sure you have Adoptium's repositories enabled # https://fedoraproject.org/wiki/Changes/ThirdPartyLegacyJdks # https://adoptium.net/installation/linux/#_centosrhelfedora_instructions -%if 0%{?fedora} > 41 BuildRequires: temurin-17-jdk -%else -BuildRequires: java-17-openjdk-devel -%endif BuildRequires: anda-srpm-macros BuildRequires: desktop-file-utils BuildRequires: libappstream-glib BuildRequires: tomlplusplus-devel -BuildRequires: cmake(ghc_filesystem) +BuildRequires: vulkan-headers +BuildRequires: pkgconfig(libqrencode) +BuildRequires: pkgconfig(libarchive) +BuildRequires: pkgconfig(gamemode) BuildRequires: cmake(Qt%{qt_version}Concurrent) >= %{min_qt_version} BuildRequires: cmake(Qt%{qt_version}Core) >= %{min_qt_version} BuildRequires: cmake(Qt%{qt_version}Gui) >= %{min_qt_version} @@ -64,17 +55,7 @@ BuildRequires: cmake(Qt%{qt_version}Widgets) >= %{min_qt_version} BuildRequires: cmake(Qt%{qt_version}Xml) >= %{min_qt_version} BuildRequires: cmake(Qt%{qt_version}NetworkAuth) >= %{min_qt_version} -%if %{with qt6} -BuildRequires: cmake(Qt6Core5Compat) -BuildRequires: quazip-qt6-devel -%else -BuildRequires: quazip-qt5-devel -%endif - BuildRequires: pkgconfig(libcmark) -%if 0%{fedora} < 38 -BuildRequires: cmark -%endif BuildRequires: pkgconfig(scdoc) BuildRequires: pkgconfig(zlib) @@ -84,11 +65,6 @@ Requires(postun): desktop-file-utils Requires: qt%{qt_version}-qtimageformats Requires: qt%{qt_version}-qtsvg Requires: javapackages-filesystem -# See note above -%if 0%{?fedora} && 0%{?fedora} < 42 -Recommends: java-17-openjdk -Suggests: java-1.8.0-openjdk -%endif # xrandr needed for LWJGL [2.9.2, 3) https://github.com/LWJGL/lwjgl/issues/128 Recommends: xrandr @@ -98,11 +74,8 @@ Recommends: flite Suggests: gamemode Conflicts: %{real_name} -Conflicts: %{real_name}-qt5 -%if %{without qt6} -Conflicts: %{real_name}-nightly -%endif +Obsoletes: %{real_name}-qt5 <= 9.4 %description A custom launcher for Minecraft that allows you to easily manage @@ -112,13 +85,11 @@ multiple installations of Minecraft at once (Fork of MultiMC) %prep %git_clone https://github.com/%{nice_name}/%{nice_name}.git %{commit} -rm -rf libraries/{extra-cmake-modules,zlib}/ - # Do not set RPATH sed -i "s|\$ORIGIN/||" CMakeLists.txt -%build +%conf %cmake \ -DLauncher_QT_VERSION_MAJOR="%{qt_version}" \ -DLauncher_BUILD_PLATFORM="%{build_platform}" \ @@ -131,14 +102,19 @@ sed -i "s|\$ORIGIN/||" CMakeLists.txt %if "%{curseforge_key}" != "default" -DLauncher_CURSEFORGE_API_KEY="%{curseforge_key}" \ %endif - -DBUILD_TESTING=OFF - + -DBUILD_TESTING=OFF \ +%if 0%{?fedora} > 43 + -DCMAKE_CXX_FLAGS="$CXXFLAGS -Wno-error=sfinae-incomplete" +%endif + +%build %cmake_build %install %cmake_install - +%terra_appstream -o %{SOURCE2} +rm -f %{buildroot}%{_datadir}/metainfo/org.prismlauncher.PrismLauncher.metainfo.xml %check %ctest @@ -153,15 +129,19 @@ sed -i "s|\$ORIGIN/||" CMakeLists.txt %{_datadir}/%{nice_name}/JavaCheck.jar %{_datadir}/%{nice_name}/qtlogging.ini %{_datadir}/%{nice_name}/NewLaunchLegacy.jar -%{_datadir}/applications/org.prismlauncher.PrismLauncher.desktop -%{_metainfodir}/org.prismlauncher.PrismLauncher.metainfo.xml -%{_datadir}/icons/hicolor/scalable/apps/org.prismlauncher.PrismLauncher.svg -%{_datadir}/mime/packages/modrinth-mrpack-mime.xml +%{_appsdir}/org.prismlauncher.PrismLauncher.desktop +%{_metainfodir}/%{appid}.metainfo.xml +%{_scalableiconsdir}/org.prismlauncher.PrismLauncher.svg +%{_hicolordir}/256x256/apps/org.prismlauncher.PrismLauncher.png +%{_datadir}/mime/packages/org.prismlauncher.PrismLauncher.xml %{_datadir}/qlogging-categories%{qt_version}/prismlauncher.categories %{_mandir}/man?/prismlauncher.* %changelog +* Tue Jan 06 2026 Owen Zimmerman - 10.0.0-1 +- Remove Qt5 version + * Wed Jun 19 2024 Trung Lê <8 at tle dot id dot au> - 9.0^20240619.8014283-1 - use system quazip-qt and tomlplusplus diff --git a/anda/games/prismlauncher/anda.hcl b/anda/games/prismlauncher/anda.hcl index 3a35d4fe52..fc4ef0f47c 100644 --- a/anda/games/prismlauncher/anda.hcl +++ b/anda/games/prismlauncher/anda.hcl @@ -1,7 +1,7 @@ project pkg { rpm { spec = "prismlauncher.spec" - extra_repos = ["https://packages.adoptium.net/artifactory/rpm/fedora/\\$releasever/\\$basearch"] + extra_repos = ["https://packages.adoptium.net/artifactory/rpm/fedora/rawhide/\\$basearch"] } labels { mock = 1 diff --git a/anda/games/prismlauncher/prismlauncher.spec b/anda/games/prismlauncher/prismlauncher.spec index 817e6063de..8afe76fe12 100644 --- a/anda/games/prismlauncher/prismlauncher.spec +++ b/anda/games/prismlauncher/prismlauncher.spec @@ -1,29 +1,20 @@ %global real_name prismlauncher %global nice_name PrismLauncher -%bcond_without qt6 +%global appid org.prismlauncher.PrismLauncher # Change this variables if you want to use custom keys # Leave blank if you want to build Prism Launcher without MSA id or curseforge api key %define msa_id default %define curseforge_key default -%if %{with qt6} %global qt_version 6 %global min_qt_version 6 -%else -%global qt_version 5 -%global min_qt_version 5.12 -%endif %global build_platform terra -%if %{with qt6} Name: prismlauncher -%else -Name: prismlauncher-qt5 -%endif -Version: 9.4 -Release: 1%?dist +Version: 11.0.2 +Release: 2%{?dist} Summary: Minecraft launcher with ability to manage multiple instances # see COPYING.md for more information # each file in the source also contains a SPDX-License-Identifier header that declares its license @@ -40,14 +31,10 @@ BuildRequires: gcc-c++ # Make sure you have Adoptium's repositories enabled # https://fedoraproject.org/wiki/Changes/ThirdPartyLegacyJdks # https://adoptium.net/installation/linux/#_centosrhelfedora_instructions -%if 0%{?fedora} > 41 BuildRequires: temurin-17-jdk -%else -BuildRequires: java-17-openjdk-devel -%endif +BuildRequires: anda-srpm-macros BuildRequires: desktop-file-utils BuildRequires: libappstream-glib -BuildRequires: cmake(ghc_filesystem) BuildRequires: cmake(Qt%{qt_version}Concurrent) >= %{min_qt_version} BuildRequires: cmake(Qt%{qt_version}Core) >= %{min_qt_version} BuildRequires: cmake(Qt%{qt_version}Gui) >= %{min_qt_version} @@ -57,14 +44,10 @@ BuildRequires: cmake(Qt%{qt_version}Widgets) >= %{min_qt_version} BuildRequires: cmake(Qt%{qt_version}Xml) >= %{min_qt_version} BuildRequires: cmake(Qt%{qt_version}NetworkAuth) >= %{min_qt_version} BuildRequires: tomlplusplus-devel - -%if %{with qt6} -BuildRequires: cmake(Qt6Core5Compat) -BuildRequires: quazip-qt6-devel -%else -BuildRequires: quazip-qt5-devel -%endif - +BuildRequires: vulkan-headers +BuildRequires: pkgconfig(libqrencode) +BuildRequires: pkgconfig(libarchive) +BuildRequires: pkgconfig(gamemode) BuildRequires: pkgconfig(libcmark) BuildRequires: pkgconfig(scdoc) @@ -76,12 +59,7 @@ Requires(postun): desktop-file-utils Requires: qt%{qt_version}-qtimageformats Requires: qt%{qt_version}-qtsvg Requires: javapackages-filesystem -Recommends: java-21-openjdk -# See note above -%if 0%{?fedora} && 0%{?fedora} < 42 -Recommends: java-17-openjdk -Suggests: java-1.8.0-openjdk -%endif +Recommends: java-25-openjdk # xrandr needed for LWJGL [2.9.2, 3) https://github.com/LWJGL/lwjgl/issues/128 Recommends: xrandr @@ -91,9 +69,7 @@ Recommends: flite # Prism supports enabling gamemode Suggests: gamemode -%if %{without qt6} -Conflicts: %{real_name} -%endif +Obsoletes: %{real_name}-qt5-nightly <= 9.4 %description A custom launcher for Minecraft that allows you to easily manage @@ -103,13 +79,10 @@ multiple installations of Minecraft at once (Fork of MultiMC) %prep %autosetup -n PrismLauncher-%{version} -rm -rf libraries/{extra-cmake-modules,filesystem,zlib} - # Do not set RPATH sed -i "s|\$ORIGIN/||" CMakeLists.txt - -%build +%conf %cmake \ -DLauncher_QT_VERSION_MAJOR="%{qt_version}" \ -DLauncher_BUILD_PLATFORM="%{build_platform}" \ @@ -122,14 +95,18 @@ sed -i "s|\$ORIGIN/||" CMakeLists.txt %if "%{curseforge_key}" != "default" -DLauncher_CURSEFORGE_API_KEY="%{curseforge_key}" \ %endif - -DBUILD_TESTING=OFF + -DBUILD_TESTING=OFF \ +%if 0%{?fedora} > 43 + -DCMAKE_CXX_FLAGS="$CXXFLAGS -Wno-error=sfinae-incomplete" +%endif +%build %cmake_build %install %cmake_install - +%terra_appstream %check %ctest @@ -144,15 +121,19 @@ sed -i "s|\$ORIGIN/||" CMakeLists.txt %{_datadir}/%{nice_name}/JavaCheck.jar %{_datadir}/%{nice_name}/qtlogging.ini %{_datadir}/%{nice_name}/NewLaunchLegacy.jar -%{_datadir}/applications/org.prismlauncher.PrismLauncher.desktop -%{_datadir}/icons/hicolor/scalable/apps/org.prismlauncher.PrismLauncher.svg -%{_datadir}/mime/packages/modrinth-mrpack-mime.xml +%{_appsdir}/org.prismlauncher.PrismLauncher.desktop +%{_scalableiconsdir}/org.prismlauncher.PrismLauncher.svg +%{_hicolordir}/256x256/apps/org.prismlauncher.PrismLauncher.png +%{_datadir}/mime/packages/org.prismlauncher.PrismLauncher.xml %{_datadir}/qlogging-categories%{qt_version}/prismlauncher.categories %{_mandir}/man?/prismlauncher.* %{_metainfodir}/org.prismlauncher.PrismLauncher.metainfo.xml %changelog +* Tue Jan 06 2026 Owen Zimmerman - 10.0.0-1 +- Update to 10.0.0, remove Qt5 version + * Sun Jun 23 2024 Trung Lê <8@tle.id.au> - 8.2-2 - update to 8.4. Add quazip-qt deps diff --git a/anda/games/protonplus/anda.hcl b/anda/games/protonplus/anda.hcl new file mode 100644 index 0000000000..a199943121 --- /dev/null +++ b/anda/games/protonplus/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "protonplus.spec" + } +} diff --git a/anda/games/protonplus/protonplus.spec b/anda/games/protonplus/protonplus.spec new file mode 100644 index 0000000000..0f1c31c546 --- /dev/null +++ b/anda/games/protonplus/protonplus.spec @@ -0,0 +1,56 @@ +%define appid com.vysp3r.ProtonPlus + +Name: protonplus +Version: 0.5.20 +Release: 1%{?dist} +Summary: A modern compatibility tools manager +License: GPL-3.0-or-later +URL: https://github.com/Vysp3r/ProtonPlus +Source0: %{url}/archive/refs/tags/v%{version}.tar.gz +Packager: Owen Zimmerman + +BuildRequires: meson +BuildRequires: ninja-build +BuildRequires: gcc +BuildRequires: vala +BuildRequires: pkgconfig(gtk4) +BuildRequires: pkgconfig(libadwaita-1) +BuildRequires: pkgconfig(json-glib-1.0) +BuildRequires: pkgconfig(libsoup-3.0) +BuildRequires: pkgconfig(gee-0.8) +BuildRequires: pkgconfig(libarchive) +BuildRequires: desktop-file-utils + +Provides: ProtonPlus + +%description +ProtonPlus is a modern compatibility tools manager for Linux. +It allows you to easily manage and update various compatibility +tools like Proton, Wine, DXVK, and VKD3D across different launchers. + +%prep +%autosetup -n ProtonPlus-%{version} + +%conf +%meson + +%build +%meson_build + +%install +%meson_install + +%find_lang %{appid} + +%files -f %{appid}.lang +%doc README.md CODE_OF_CONDUCT.md CONTRIBUTING.md SECURITY.md +%license LICENSE.md +%{_bindir}/protonplus +%{_metainfodir}/%{appid}.metainfo.xml +%{_appsdir}/%{appid}.desktop +%{_datadir}/glib-2.0/schemas/%{appid}.gschema.xml +%{_hicolordir}/*/apps/%{appid}.png + +%changelog +* Mon May 04 2026 Owen Zimmerman +- Initial commit diff --git a/anda/games/protonplus/update.rhai b/anda/games/protonplus/update.rhai new file mode 100644 index 0000000000..6f494c1fc0 --- /dev/null +++ b/anda/games/protonplus/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("Vysp3r/ProtonPlus")); diff --git a/anda/games/rom-properties/anda.hcl b/anda/games/rom-properties/anda.hcl new file mode 100644 index 0000000000..28bc44a710 --- /dev/null +++ b/anda/games/rom-properties/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "rom-properties.spec" + } +} diff --git a/anda/games/rom-properties/rom-properties.spec b/anda/games/rom-properties/rom-properties.spec new file mode 100644 index 0000000000..51a4f0790b --- /dev/null +++ b/anda/games/rom-properties/rom-properties.spec @@ -0,0 +1,199 @@ +Name: rom-properties +Version: 2.7.1 +Release: 1%{?dist} +Summary: File browser extension for managing video game ROM and disc images +License: GPL-2.0-only +URL: https://github.com/GerbilSoft/%{name} +Packager: Kyle Gospodnetich + +Source0: %{url}/archive/refs/tags/v%{version}.tar.gz + +BuildRequires: cmake +BuildRequires: gcc +BuildRequires: gcc-c++ +BuildRequires: pkgconf +BuildRequires: gettext-devel +BuildRequires: libseccomp-devel +BuildRequires: libcurl-devel +BuildRequires: nettle-devel +BuildRequires: zlib-devel +BuildRequires: lz4-devel +BuildRequires: lzo-devel +BuildRequires: libzstd-devel +BuildRequires: tinyxml2-devel +BuildRequires: libpng-devel +BuildRequires: libjpeg-turbo-devel +BuildRequires: pugixml-devel +BuildRequires: qt5-qtbase-devel +BuildRequires: qt6-qtbase-devel +BuildRequires: qt6-qttools +BuildRequires: extra-cmake-modules +BuildRequires: kf6-kio-devel +BuildRequires: kf6-kwidgetsaddons-devel +BuildRequires: kf6-kfilemetadata-devel +BuildRequires: kf6-kcrash-devel +BuildRequires: glib2-devel +BuildRequires: gtk4-devel +BuildRequires: gdk-pixbuf2-devel +BuildRequires: nautilus-devel +BuildRequires: cairo-devel +BuildRequires: gsound-devel +BuildRequires: gtk3-devel + +Requires: %{name}-common = %{version}-%{release} +Recommends: %{name}-utils = %{version}-%{release} +Recommends: lz4 +Recommends: lzo + +%description +This shell extension adds a few nice features to file browsers for managing +video game ROM and disc images. + +%prep +%autosetup -p1 -n %{name}-%{version} + +%build +%cmake \ + -DBUILD_GTK3=ON \ + -DBUILD_GTK4=ON \ + -DBUILD_KDE4=OFF \ + -DBUILD_KF5=OFF \ + -DBUILD_KF6=ON \ + -DBUILD_XFCE=OFF \ + -DSPLIT_DEBUG=OFF \ + -DUSE_INTERNAL_XML=OFF +%cmake_build + +%install +%cmake_install + +%files +%{_defaultdocdir}/%{name}/ +%{_libdir}/libromdata.* + +%package cli +Summary: CLI tools for rom-properties +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description cli +Command-line interface tools for rom-properties. + +%files cli +%{_bindir}/rpcli + +%package common +Summary: Common files for rom-properties +BuildArch: noarch + +%description common +Common files for rom-properties. + +%files common +%{_datadir}/%{name}/amiibo-data.bin +%{_datadir}/applications/com.gerbilsoft.rom-properties.rp-config.desktop +%{_datadir}/metainfo/com.gerbilsoft.rom-properties.metainfo.xml +%{_datadir}/mime/packages/rom-properties.xml +%{_datadir}/locale/*/LC_MESSAGES/rom-properties.mo + +%package gtk4 +Summary: GTK4 integration for rom-properties +Requires: %{name}%{?_isa} = %{version}-%{release} +Recommends: %{name}-localsearch3 = %{version}-%{release} + +%description gtk4 +GNOME/Nautilus file manager integration for rom-properties. + +%files gtk4 +%{_libdir}/nautilus/extensions-4/rom-properties-gtk4.so + +%package gtk3 +Summary: GTK3 integration for rom-properties +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description gtk3 +GTK3 file manager integration for rom-properties. Provides extensions +for Nautilus, Caja, Nemo, and Thunar. + +%files gtk3 +%{_libdir}/nautilus/extensions-3.0/rom-properties-gtk3.so +%{_libdir}/caja/extensions-2.0/rom-properties-gtk3.so +%{_datadir}/caja/extensions/rom-properties-gtk3.caja-extension +%{_libdir}/nemo/extensions-3.0/rom-properties-gtk3.so +%{_libdir}/thunarx-3/rom-properties-gtk3.so + +%package kf6 +Summary: KDE6 integration for rom-properties +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description kf6 +KDE Plasma 6 file manager integration for rom-properties. + +%files kf6 +%{_datadir}/kio/servicemenus/rp-convert-to-png.desktop +%{_libdir}/qt6/plugins/kf6/propertiesdialog/xattrview-kf6.so +%{_libdir}/qt6/plugins/kf6/kfilemetadata/kfilemetadata_rom-properties-kf6.so +%{_libdir}/qt6/plugins/kf6/overlayicon/overlayiconplugin_rom-properties-kf6.so +%{_libdir}/qt6/plugins/kf6/propertiesdialog/rom-properties-kf6.so +%{_libdir}/qt6/plugins/kf6/thumbcreator/RomThumbnailCreator-kf6.so + +%package utils +Summary: Utilities for rom-properties +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description utils +Utility programs for rom-properties including the thumbnail generator +and configuration tool. + +%files utils +%{_libexecdir}/rp-download +%{_libexecdir}/rp-thumbnail +%{_datadir}/thumbnailers/rom-properties.thumbnailer +%{_bindir}/rp-stub +%{_bindir}/rp-config + +%package localsearch3 +Summary: GNOME localsearch3 integration for rom-properties +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description localsearch3 +GNOME localsearch 3.0 extract modules for rom-properties, providing +full-text search integration for ROM and disc image metadata. + +%files localsearch3 +%{_libdir}/localsearch-3.0/extract-modules/libextract-rom-properties.so +%{_datadir}/localsearch3/extract-rules/14-rp-application-packages.rule +%{_datadir}/localsearch3/extract-rules/14-rp-audio.rule +%{_datadir}/localsearch3/extract-rules/14-rp-banners.rule +%{_datadir}/localsearch3/extract-rules/14-rp-cd-images.rule +%{_datadir}/localsearch3/extract-rules/14-rp-disk-images.rule +%{_datadir}/localsearch3/extract-rules/14-rp-executables.rule +%{_datadir}/localsearch3/extract-rules/14-rp-rom-images.rule +%{_datadir}/localsearch3/extract-rules/14-rp-save-files.rule +%{_datadir}/localsearch3/extract-rules/14-rp-textures.rule + +%package thumbnailer-dbus +Summary: D-Bus thumbnailer service for rom-properties +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description thumbnailer-dbus +D-Bus specialized thumbnailer service for rom-properties. + +%files thumbnailer-dbus +%{_bindir}/rp-thumbnailer-dbus +%{_datadir}/dbus-1/services/com.gerbilsoft.rom-properties.SpecializedThumbnailer1.service +%{_datadir}/thumbnailers/com.gerbilsoft.rom-properties.SpecializedThumbnailer1.service + +%package apparmor +Summary: AppArmor profiles for rom-properties +Requires: %{name}%{?_isa} = %{version}-%{release} +BuildArch: noarch + +%description apparmor +AppArmor profiles for rom-properties utilities. + +%files apparmor +%{_sysconfdir}/apparmor.d/ + +%changelog +* Fri Apr 03 2026 Kyle Gospodnetich +- Initial package diff --git a/anda/games/rom-properties/update.rhai b/anda/games/rom-properties/update.rhai new file mode 100644 index 0000000000..8d59fb7019 --- /dev/null +++ b/anda/games/rom-properties/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("GerbilSoft/rom-properties")); diff --git a/anda/games/rpcs3/anda.hcl b/anda/games/rpcs3/anda.hcl index f17fc5aed0..e2064da106 100644 --- a/anda/games/rpcs3/anda.hcl +++ b/anda/games/rpcs3/anda.hcl @@ -2,7 +2,8 @@ project pkg { rpm { spec = "rpcs3.spec" } - labels { - mock = 1 - } + labels { + mock = 1 + large = 1 + } } diff --git a/anda/games/rpcs3/rpcs3.spec b/anda/games/rpcs3/rpcs3.spec index 6603bff63f..2165c4e70b 100644 --- a/anda/games/rpcs3/rpcs3.spec +++ b/anda/games/rpcs3/rpcs3.spec @@ -1,28 +1,27 @@ -%global _distro_extra_cflags -Wno-uninitialized -%global _distro_extra_cxxflags -include %_includedir/c++/*/cstdint +# RPCS3 builds often break with GCC +%global toolchain clang # Define which LLVM/Clang version RPCS3 needs -%if %{?fedora} >= 43 -%global llvm_major 20 -%bcond llvm_compat 1 +%if 0%{?fedora} >= 46 +%global llvm_major 21 +%global __cc clang-%{llvm_major} +%global __cxx clang++-%{llvm_major} %endif # GLIBCXX_ASSERTIONS is known to break RPCS3 -%global build_cflags %(echo %{__build_flags_lang_c} | sed 's/-Wp,-D_GLIBCXX_ASSERTIONS//g') %{?_distro_extra_cflags} -%global build_cxxflags %(echo %{__build_flags_lang_cxx} | sed 's/-Wp,-D_GLIBCXX_ASSERTIONS//g') %{?_distro_extra_cxxflags} -# Need to get rid of everything Clang can't use and undefine -Wunused-command-line-argument where possible due to the project's build flags -%global build_cflags %(echo %{build_cflags} | sed 's:-Werror ::g' | sed 's:-Wunused-command-line-argument ::g' | sed 's:-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 ::g' | sed 's:-specs=/usr/lib/rpm/redhat/redhat-hardened-ld ::g' | sed 's:-specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors ::g' | sed 's:-specs=/usr/lib/rpm/redhat/redhat-package-notes ::g') -Wno-unused-command-line-argument -%global build_cxxflags %(echo %{build_cxxflags} | sed 's:-Werror ::g' | sed 's:-Wunused-command-line-argument ::g' | sed 's:-specs\=/usr/lib/rpm/redhat/redhat-annobin-cc1 ::g' | sed 's:-specs=/usr/lib/rpm/redhat/redhat-hardened-ld ::g' | sed 's:-specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors ::g' | sed 's:-specs=/usr/lib/rpm/redhat/redhat-package-notes ::g') -Wno-unused-command-line-argument -%global commit 3c401e7b3dee35cffeef464f66ddf1afa93cacc3 -%global ver 0.0.38-18263 +%global build_cflags %(echo "%{__build_flags_lang_c}" | sed 's|-Wp,-D_GLIBCXX_ASSERTIONS ||g') %{?_distro_extra_cflags} +%global build_cxxflags %(echo "%{__build_flags_lang_cxx}" | sed 's|-Wp,-D_GLIBCXX_ASSERTIONS ||g') %{?_distro_extra_cflags} +%global commit 026297334f28500c8cbf6a5f48f395196700d6d7 +%global ver 0.0.40-19335 Name: rpcs3 Version: %(echo %{ver} | sed 's/-/^/g') -Release: 1%?dist +Release: 1%{?dist} Summary: PlayStation 3 emulator and debugger License: GPL-2.0-only URL: https://github.com/RPCS3/rpcs3 -%dnl Source0: %url/archive/refs/tags/v%version.tar.gz +Source0: %{url}/archive/%{commit}/%{name}-%{commit}.tar.gz BuildRequires: anda-srpm-macros glew openal-soft cmake vulkan-validation-layers git-core mold BuildRequires: llvm%{?llvm_major}-devel +# Looking at the CMakeLists.txt, this is the intended compiler and there are no fixes for GCC on aarch64 BuildRequires: clang%{?llvm_major} BuildRequires: cmake(FAudio) BuildRequires: cmake(OpenAL) @@ -66,43 +65,39 @@ BuildRequires: qt6-qtbase-private-devel vulkan-devel jack-audio-connection-kit- %prep %git_clone %url %commit -%build -# Looking at the CMakeLists.txt, this is the intended compiler and there are no fixes for GCC on aarch64 -%if %{with llvm_compat} +%conf +%if %{defined llvm_major} export LLVM_DIR=%{_libdir}/llvm%{?llvm_major}/%{_lib}/cmake %endif -%cmake -DDISABLE_LTO=TRUE \ - -DZSTD_BUILD_STATIC=ON \ - -DCMAKE_SKIP_RPATH=ON \ - -DBUILD_SHARED_LIBS:BOOL=OFF \ - -DUSE_NATIVE_INSTRUCTIONS=OFF \ - -DCMAKE_C_FLAGS="$CFLAGS" \ - -DCMAKE_CXX_FLAGS="$CXXFLAGS" \ - -DSTATIC_LINK_LLVM=OFF \ - -DUSE_SYSTEM_FAUDIO=ON \ - -DUSE_SDL=ON \ - -DUSE_SYSTEM_SDL=ON \ - -DBUILD_LLVM=OFF \ - -DUSE_PRECOMPILED_HEADERS=OFF \ - -DUSE_DISCORD_RPC=ON \ - -DUSE_SYSTEM_FFMPEG=ON \ - -DUSE_SYSTEM_LIBPNG=ON \ - -DUSE_SYSTEM_ZLIB=ON \ - -DUSE_SYSTEM_OPENCV=ON \ - -DUSE_SYSTEM_CURL=ON \ - -DUSE_SYSTEM_FLATBUFFERS=OFF \ - -DUSE_SYSTEM_PUGIXML=OFF \ - -DUSE_SYSTEM_WOLFSSL=OFF \ -%if %{with llvm_compat} - -DCMAKE_C_COMPILER=clang-%{?llvm_major} \ - -DCMAKE_CXX_COMPILER=clang++-%{?llvm_major} \ -%else - -DCMAKE_C_COMPILER=clang \ - -DCMAKE_CXX_COMPILER=clang++ \ -%endif - -DCMAKE_LINKER=mold \ - -DCMAKE_SHARED_LINKER_FLAGS="$LDFLAGS -fuse-ld=mold" \ - -DCMAKE_EXE_LINKER_FLAGS="$LDFLAGS -fuse-ld=mold" +%cmake -DDISABLE_LTO=TRUE \ + -DZSTD_BUILD_STATIC=ON \ + -DCMAKE_SKIP_RPATH=ON \ + -DBUILD_SHARED_LIBS:BOOL=OFF \ + -DUSE_NATIVE_INSTRUCTIONS=OFF \ + -DCMAKE_C_FLAGS="$CFLAGS" \ + -DCMAKE_CXX_FLAGS="$CXXFLAGS" \ + -DSTATIC_LINK_LLVM=OFF \ + -DUSE_SYSTEM_FAUDIO=ON \ + -DUSE_SDL=ON \ + -DUSE_SYSTEM_SDL=ON \ + -DBUILD_LLVM=OFF \ + -DUSE_PRECOMPILED_HEADERS=OFF \ + -DUSE_DISCORD_RPC=ON \ + -DUSE_SYSTEM_FFMPEG=ON \ + -DUSE_SYSTEM_LIBPNG=ON \ + -DUSE_SYSTEM_ZLIB=ON \ + -DUSE_SYSTEM_OPENCV=ON \ + -DUSE_SYSTEM_CURL=ON \ + -DUSE_SYSTEM_FLATBUFFERS=OFF \ + -DUSE_SYSTEM_PUGIXML=OFF \ + -DUSE_SYSTEM_WOLFSSL=OFF \ + -DCMAKE_C_COMPILER="$CC" \ + -DCMAKE_CXX_COMPILER="$CXX" \ + -DCMAKE_LINKER=mold \ + -DCMAKE_SHARED_LINKER_FLAGS="$LDFLAGS -fuse-ld=mold" \ + -DCMAKE_EXE_LINKER_FLAGS="$LDFLAGS -fuse-ld=mold" + +%build %cmake_build %install diff --git a/anda/games/rpcs3/update.rhai b/anda/games/rpcs3/update.rhai index 9387eb5f79..aaf2b7c806 100644 --- a/anda/games/rpcs3/update.rhai +++ b/anda/games/rpcs3/update.rhai @@ -1,9 +1,9 @@ -let html = get("https://rpcs3.net/download"); -let v = find("Build ([\\d.]+-[\\d.]+)\\s+", html, 1); -rpm.global("ver", v); +let release = get("https://api.github.com/repos/RPCS3/rpcs3-binaries-linux/releases/latest").json(); +rpm.global("ver", release.name); if rpm.changed () { - let c = find("Commit = 44 +%triggerin -- ca-certificates +# Workaround for https://fedoraproject.org/wiki/Changes/droppingOfCertPemFile#Temporary_fix +update-ca-trust extract --rhbz2387674 +%endif + %files %license COPYING steam_subscriber_agreement.txt %doc debian/changelog README.Fedora @@ -206,9 +201,6 @@ appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/%{appstream_id %dir %{_prefix}/lib/systemd/user.conf.d/ %{_prefix}/lib/systemd/user.conf.d/01-steam.conf -%files device-rules -%{_udevrulesdir}/51-these-are-not-joysticks-rm.rules - %changelog * Sun Sep 01 2024 Simone Caronni - 1.0.0.81-1 - Update to 1.0.0.81. diff --git a/anda/games/steamos-manager-powerstation/anda.hcl b/anda/games/steamos-manager-powerstation/anda.hcl new file mode 100644 index 0000000000..654ab9ce40 --- /dev/null +++ b/anda/games/steamos-manager-powerstation/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "steamos-manager-powerstation.spec" + } +} diff --git a/anda/games/steamos-manager-powerstation/steamos-manager-powerstation.spec b/anda/games/steamos-manager-powerstation/steamos-manager-powerstation.spec new file mode 100644 index 0000000000..c0578c4844 --- /dev/null +++ b/anda/games/steamos-manager-powerstation/steamos-manager-powerstation.spec @@ -0,0 +1,114 @@ +%global commit 7b4d0f49351a60d1f93d48f081b4c0e35e10fa6d +%global shortcommit %{sub %{commit} 0 7} +%global commitdate 20260325 + +Name: steamos-manager-powerstation +Version: 0~%{commitdate}.git%{shortcommit} +Release: 3%{?dist} +Summary: SteamOS Manager is a system daemon that aims to abstract Steam's interactions with the operating system +License: MIT AND (MIT OR Apache-2.0) AND Unicode-3.0 AND (Apache-2.0 OR BSL-1.0) AND Apache-2.0 OR MIT AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND (BSD-3-Clause OR MIT OR Apache-2.0) AND ISC AND (LGPL-2.1 OR MIT OR Apache-2.0) AND MIT AND (MIT OR Apache-2.0) AND (MIT OR Apache-2.0 OR LGPL-2.1-or-later) AND (Unlicense OR MIT) AND (Zlib OR Apache-2.0 OR MIT) +URL: https://github.com/OpenGamingCollective/steamos-manager +Source0: %{url}/archive/%{commit}.tar.gz +Source1: steamos_manager.te +Source2: steamos_manager.if +Source3: steamos_manager.fc +BuildRequires: anda-srpm-macros +BuildRequires: cargo-rpm-macros +BuildRequires: clang-devel +BuildRequires: rust +BuildRequires: mold +BuildRequires: glib2-devel +BuildRequires: speech-dispatcher-devel +BuildRequires: pkgconfig(libudev) +BuildRequires: selinux-policy-devel +Packager: Kyle Gospodnetich + +Provides: steamos-manager +Conflicts: steamos-manager +Requires: powerstation +Requires: gamescope-session-ogui-steam +Requires: selinux-policy +Requires(post): policycoreutils +Requires(postun): policycoreutils + +%description +SteamOS Manager is a system daemon that aims to abstract Steam's interactions +with the operating system. The goal is to have a standardized interface so that +SteamOS specific features in the Steam client, e.g. TDP management, can be +exposed in any Linux distro that provides an implementation of this DBus API. +This version has been patched with additional compatibility with powerstation +and OGC gamescope-sessions. + +%package gamescope-session-plus +Summary: Compatibility symlink service for starting steamos-manager on gamescope-session-plus +Requires: %{name} = %{evr} + +%description gamescope-session-plus +%summary. + +%prep +%autosetup -n steamos-manager-%{commit} +install -Dp -m644 -t data/selinux %{SOURCE1} %{SOURCE2} %{SOURCE3} +%cargo_prep_online + +%build +%cargo_build +make -f /usr/share/selinux/devel/Makefile -C data/selinux steamos_manager.pp + +%install +%{cargo_license_online -a} > LICENSE.dependencies +%make_install +rm %{buildroot}%{_unitdir}/sddm.service.d/reset-oneshot-boot.conf # steamOS specific +rm %{buildroot}%{_userunitdir}/orca.service # not used by anyone apparently, steamOS specific(?) +install -D -m644 data/selinux/steamos_manager.pp %{buildroot}%{_datadir}/selinux/packages/steamos_manager.pp +install -d %{buildroot}%{_userunitdir}/gamescope-session-plus.service.wants/steamos-manager.service +ln -s %{_userunitdir}/steamos-manager.service %{buildroot}%{_userunitdir}/gamescope-session-plus.service.wants/steamos-manager.service + +%post +%systemd_post steamos-manager.service +%systemd_user_post steamos-manager.service +%systemd_user_post steamos-manager-configure-cecd.service +%systemd_user_post steamos-manager-session-cleanup.service +semodule -i %{_datadir}/selinux/packages/steamos_manager.pp 2>/dev/null || : +restorecon -R /usr/lib/steamos-manager /usr/bin/steamosctl /usr/share/steamos-manager /etc/steamos-manager 2>/dev/null || : + +%preun +%systemd_preun steamos-manager.service +%systemd_user_preun steamos-manager.service +%systemd_user_preun steamos-manager-configure-cecd.service +%systemd_user_preun steamos-manager-session-cleanup.service + +%postun +%systemd_postun_with_restart steamos-manager.service +%systemd_user_postun steamos-manager.service +%systemd_user_postun steamos-manager-configure-cecd.service +%systemd_user_postun steamos-manager-session-cleanup.service +if [ $1 -eq 0 ]; then + semodule -r steamos_manager 2>/dev/null || : +fi + +%files +%license %{_datadir}/licenses/steamos-manager/LICENSE +%license LICENSE.dependencies +%doc README.md +%{_bindir}/steamosctl +#{_datadir}/dbus-1/interfaces/com.steampowered.SteamOSManager1.Manager.xml +%{_datadir}/dbus-1/interfaces/com.steampowered.SteamOSManager1.xml +%{_datadir}/dbus-1/services/com.steampowered.SteamOSManager1.service +%{_datadir}/dbus-1/system.d/com.steampowered.SteamOSManager1.conf +%{_datadir}/dbus-1/system-services/com.steampowered.SteamOSManager1.service +%{_datadir}/steamos-manager/devices/*.toml +%{_datadir}/steamos-manager/platform.toml +%{_prefix}/lib/steamos-manager +%{_unitdir}/steamos-manager.service +%{_userunitdir}/steamos-manager.service +%{_userunitdir}/steamos-manager-configure-cecd.service +%{_userunitdir}/steamos-manager-session-cleanup.service +%{_datadir}/selinux/packages/steamos_manager.pp + +%files gamescope-session-plus +%{_userunitdir}/gamescope-session-plus.service.wants/steamos-manager.service + +%changelog +* Wed Mar 18 2026 Kyle Gospodnetich - 26.0.1-1 +- Intial Commit diff --git a/anda/games/steamos-manager-powerstation/steamos_manager.fc b/anda/games/steamos-manager-powerstation/steamos_manager.fc new file mode 100644 index 0000000000..cc11e34e07 --- /dev/null +++ b/anda/games/steamos-manager-powerstation/steamos_manager.fc @@ -0,0 +1,13 @@ +# steamos-manager SELinux file contexts + +# Daemon binary +/usr/lib/steamos-manager -- gen_context(system_u:object_r:steamos_manager_exec_t,s0) + +# CLI tool +/usr/bin/steamosctl -- gen_context(system_u:object_r:steamos_manager_exec_t,s0) + +# Data directory +/usr/share/steamos-manager(/.*)? gen_context(system_u:object_r:steamos_manager_data_t,s0) + +# Configuration directory +/etc/steamos-manager(/.*)? gen_context(system_u:object_r:steamos_manager_conf_t,s0) diff --git a/anda/games/steamos-manager-powerstation/steamos_manager.if b/anda/games/steamos-manager-powerstation/steamos_manager.if new file mode 100644 index 0000000000..bb44dae7cf --- /dev/null +++ b/anda/games/steamos-manager-powerstation/steamos_manager.if @@ -0,0 +1,20 @@ +## policy for steamos_manager + +######################################## +## +## Execute steamos_manager in the steamos_manager domain. +## +## +## +## Domain allowed to transition. +## +## +# +interface(`steamos_manager_domtrans',` + gen_require(` + type steamos_manager_t, steamos_manager_exec_t; + ') + + corecmd_search_bin($1) + domtrans_pattern($1, steamos_manager_exec_t, steamos_manager_t) +') diff --git a/anda/games/steamos-manager-powerstation/steamos_manager.te b/anda/games/steamos-manager-powerstation/steamos_manager.te new file mode 100644 index 0000000000..6a4cf229c2 --- /dev/null +++ b/anda/games/steamos-manager-powerstation/steamos_manager.te @@ -0,0 +1,194 @@ +policy_module(steamos_manager, 1.0.0) + +######################################## +# Init +######################################## + +type steamos_manager_t; +type steamos_manager_exec_t; +type steamos_manager_data_t; +type steamos_manager_conf_t; + +# Mark as a domain and entry point +init_daemon_domain(steamos_manager_t, steamos_manager_exec_t) + +# Mark data and config as file types +files_type(steamos_manager_data_t) +files_config_file(steamos_manager_conf_t) + +# Allow systemd to manage the service (start/stop/status) +init_dbus_chat(steamos_manager_t) + +######################################## +# Process permissions +######################################## + +# Standard process operations +allow steamos_manager_t self:process { signal signull getsched setsched }; + +# Forking for script execution +allow steamos_manager_t self:fifo_file { read write getattr }; + +# Notify socket for Type=notify-reload (sd_notify) +init_dgram_send(steamos_manager_t) + +######################################## +# DBus access +######################################## + +dbus_system_bus_client(steamos_manager_t) +dbus_session_bus_client(steamos_manager_t) +dbus_connect_system_bus(steamos_manager_t) +dbus_connect_session_bus(steamos_manager_t) + +# Own the service name +allow steamos_manager_t self:dbus { send_msg acquire_svc }; + +# Talk to systemd +optional_policy(` + systemd_dbus_chat_logind(steamos_manager_t) +') + +######################################## +# Sysfs access (hardware management) +######################################## + +# Read/write sysfs for TDP, GPU, backlight, power_supply, CPU scaling, +# hwmon, firmware-attributes, platform-profile, hidraw, drm, DMI +dev_read_sysfs(steamos_manager_t) +dev_rw_sysfs(steamos_manager_t) + +######################################## +# Procfs access +######################################## + +# Read /proc/cpuinfo +kernel_read_system_state(steamos_manager_t) + +# Read /proc/{pid}/comm, environ, stat, fd/ for display sleep inhibition +domain_read_all_domains_state(steamos_manager_t) + +######################################## +# Tracefs and debugfs +######################################## + +# ftrace access: /sys/kernel/tracing/instances/steamos-manager/ +# debugfs access: /sys/kernel/debug/ath11k/ +kernel_read_debugfs(steamos_manager_t) +kernel_manage_debugfs(steamos_manager_t) + +######################################## +# Device access +######################################## + +# /dev/uinput — virtual input devices +optional_policy(` + gen_require(` + type uinput_device_t; + ') + allow steamos_manager_t uinput_device_t:chr_file { open read write ioctl getattr }; +') + +# /dev/hidraw* — DualSense controller inhibitor +optional_policy(` + gen_require(` + type hidraw_device_t; + ') + allow steamos_manager_t hidraw_device_t:chr_file { open read write getattr ioctl }; +') + +# /dev/input/event* — inputplumber +dev_rw_input_dev(steamos_manager_t) + +# Udev events via netlink socket +allow steamos_manager_t self:netlink_kobject_uevent_socket { create bind getattr read setopt }; + +# Watch /dev/ directory via inotify for device creation +dev_list_all_dev_nodes(steamos_manager_t) +allow steamos_manager_t device_t:dir { watch }; + +######################################## +# Configuration & Data Files +######################################## + +# Data Files +allow steamos_manager_t steamos_manager_data_t:dir list_dir_perms; +allow steamos_manager_t steamos_manager_data_t:file read_file_perms; + +# Config files +allow steamos_manager_t steamos_manager_conf_t:dir list_dir_perms; +allow steamos_manager_t steamos_manager_conf_t:file read_file_perms; + +######################################## +# System configuration writes +######################################## + +# /etc/sddm.conf.d/, /etc/NetworkManager/conf.d/ +allow steamos_manager_t etc_t:dir { add_name remove_name write search create }; +allow steamos_manager_t etc_t:file { create write unlink open getattr rename }; + +# /etc/systemd/system/iwd.service.d/ +optional_policy(` + systemd_manage_all_unit_files(steamos_manager_t) +') + +######################################## +# User state and runtime files +######################################## + +# XDG_STATE_HOME +userdom_manage_user_home_content_files(steamos_manager_t) +userdom_manage_user_home_content_dirs(steamos_manager_t) + +# XDG_RUNTIME_DIR +# XDG_CONFIG_HOME +userdom_manage_user_tmp_dirs(steamos_manager_t) +userdom_manage_user_tmp_files(steamos_manager_t) + +# /usr/share/wayland-sessions/ and /usr/share/xsessions/ +files_read_usr_files(steamos_manager_t) + +# /tmp/ +files_manage_generic_tmp_files(steamos_manager_t) +files_tmp_filetrans(steamos_manager_t, tmp_t, file) + +# /var/lib/steamos-log-submitter/data/ +files_search_var_lib(steamos_manager_t) +files_manage_var_lib_files(steamos_manager_t) +files_manage_var_lib_dirs(steamos_manager_t) + +######################################## +# External command execution +######################################## + +# Execute system binaries +corecmd_exec_bin(steamos_manager_t) +corecmd_exec_shell(steamos_manager_t) + +# Execute libraries/scripts under /usr/lib/ paths +libs_exec_lib_files(steamos_manager_t) + +######################################## +# Network and IPC +######################################## + +# Unix domain sockets for DBus +allow steamos_manager_t self:unix_stream_socket { create connect read write getattr shutdown }; +allow steamos_manager_t self:unix_dgram_socket { create connect read write getattr sendto }; + +# Speech-dispatcher and dconf-service connections +corenet_tcp_connect_all_ports(steamos_manager_t) + +######################################## +# Logging +######################################## + +logging_send_syslog_msg(steamos_manager_t) + +######################################## +# Miscellaneous +######################################## + +# Read locale and system state +miscfiles_read_localization(steamos_manager_t) +kernel_read_kernel_sysctls(steamos_manager_t) diff --git a/anda/games/steamos-manager-powerstation/update.rhai b/anda/games/steamos-manager-powerstation/update.rhai new file mode 100644 index 0000000000..d3b859cf52 --- /dev/null +++ b/anda/games/steamos-manager-powerstation/update.rhai @@ -0,0 +1,6 @@ +rpm.global("commit", get("https://api.github.com/repos/OpenGamingCollective/steamos-manager/commits/dev").json().sha); +if rpm.changed() { + rpm.global("ver", gh("OpenGamingCollective/steamos-manager")); + rpm.global("commit_date", date()); + rpm.release(); +} diff --git a/anda/games/steamos-manager/anda.hcl b/anda/games/steamos-manager/anda.hcl new file mode 100644 index 0000000000..2097164487 --- /dev/null +++ b/anda/games/steamos-manager/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "steamos-manager.spec" + } +} diff --git a/anda/games/steamos-manager/steamos-manager.spec b/anda/games/steamos-manager/steamos-manager.spec new file mode 100644 index 0000000000..a4d65309f6 --- /dev/null +++ b/anda/games/steamos-manager/steamos-manager.spec @@ -0,0 +1,84 @@ +Name: steamos-manager +Version: 26.1.0 +Release: 1%{?dist} +Summary: SteamOS Manager is a system daemon that aims to abstract Steam's interactions with the operating system. +License: MIT AND (MIT OR Apache-2.0) AND Unicode-3.0 AND Apache-2.0 OR BSL-1.0 AND Apache-2.0 OR MIT AND Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT AND BSD-3-Clause OR MIT OR Apache-2.0 AND ISC AND LGPL-2.1 OR MIT OR Apache-2.0 AND MIT AND MIT OR Apache-2.0 AND MIT OR Apache-2.0 OR LGPL-2.1-or-later AND Unlicense OR MIT AND Zlib OR Apache-2.0 OR MIT +URL: https://gitlab.steamos.cloud/holo/steamos-manager +Source0: %url/-/archive/v%version/steamos-manager-v%version.tar.gz +BuildRequires: anda-srpm-macros +BuildRequires: cargo-rpm-macros +BuildRequires: clang-devel +BuildRequires: rust +BuildRequires: mold +BuildRequires: glib2-devel +BuildRequires: speech-dispatcher-devel +BuildRequires: pkgconfig(libudev) +Packager: Tulip Blossom + +%description +SteamOS Manager is a system daemon that aims to abstract Steam's interactions +with the operating system. The goal is to have a standardized interface so that +SteamOS specific features in the Steam client, e.g. TDP management, can be +exposed in any Linux distro that provides an implementation of this DBus API. + +%package gamescope-session-plus +Summary: Compatibility symlink service for starting steamos-manager on gamescope-session-plus +Requires: %{name} = %{evr} + +%description gamescope-session-plus +%summary. + +%prep +%autosetup -n %name-v%version +%cargo_prep_online + +%build +%cargo_build + +%install +%{cargo_license_online -a} > LICENSE.dependencies +%make_install +rm %{buildroot}%{_unitdir}/sddm.service.d/reset-oneshot-boot.conf # steamOS specific +rm %{buildroot}%{_userunitdir}/orca.service # not used by anyone apparently, steamOS specific(?) +install -d %{buildroot}%{_userunitdir}/gamescope-session-plus.service.wants/steamos-manager.service +ln -s %{_userunitdir}/steamos-manager.service %{buildroot}%{_userunitdir}/gamescope-session-plus.service.wants/steamos-manager.service + +%post +%systemd_post steamos-manager.service +%systemd_post steamos-manager-configure-cecd.service +%systemd_post steamos-manager-session-cleanup.service + +%preun +%systemd_preun steamos-manager.service +%systemd_preun steamos-manager-configure-cecd.service +%systemd_preun steamos-manager-session-cleanup.service + +%postun +%systemd_postun_with_restart steamos-manager.service +%systemd_postun_with_restart steamos-manager-configure-cecd.service +%systemd_postun_with_restart steamos-manager-session-cleanup.service + +%files +%license %{_datadir}/licenses/steamos-manager/LICENSE +%license LICENSE.dependencies +%doc README.md +%{_bindir}/steamosctl +#{_datadir}/dbus-1/interfaces/com.steampowered.SteamOSManager1.Manager.xml +%{_datadir}/dbus-1/interfaces/com.steampowered.SteamOSManager1.xml +%{_datadir}/dbus-1/services/com.steampowered.SteamOSManager1.service +%{_datadir}/dbus-1/system.d/com.steampowered.SteamOSManager1.conf +%{_datadir}/dbus-1/system-services/com.steampowered.SteamOSManager1.service +%{_datadir}/steamos-manager/devices/*.toml +%{_datadir}/steamos-manager/platform.toml +%{_prefix}/lib/steamos-manager +%{_unitdir}/steamos-manager.service +%{_userunitdir}/steamos-manager.service +%{_userunitdir}/steamos-manager-configure-cecd.service +%{_userunitdir}/steamos-manager-session-cleanup.service + +%files gamescope-session-plus +%{_userunitdir}/gamescope-session-plus.service.wants/steamos-manager.service + +%changelog +* Wed Feb 04 2026 Tulip Blossom - 25.12.0-1 +- Intial Commit diff --git a/anda/games/steamos-manager/update.rhai b/anda/games/steamos-manager/update.rhai new file mode 100644 index 0000000000..34a69c1670 --- /dev/null +++ b/anda/games/steamos-manager/update.rhai @@ -0,0 +1 @@ +rpm.version(gitlab_tag("gitlab.steamos.cloud", "1288")); diff --git a/anda/games/steamtinkerlaunch/git/steamtinkerlaunch-git.spec b/anda/games/steamtinkerlaunch/git/steamtinkerlaunch-git.spec index 98447bf865..7efea0d8cf 100644 --- a/anda/games/steamtinkerlaunch/git/steamtinkerlaunch-git.spec +++ b/anda/games/steamtinkerlaunch/git/steamtinkerlaunch-git.spec @@ -8,7 +8,7 @@ Steam Tinker Launch is a Linux wrapper tool for use with the Steam client which Name: %{base_name}-git Version: %{ver}^%{commit_date}git.%{shortcommit} -Release: 1%?dist +Release: 2%{?dist} Summary: Wrapper tool for use with the Steam client for custom launch options License: GPL-3.0-or-later URL: https://github.com/sonic2kk/steamtinkerlaunch @@ -53,7 +53,7 @@ Recommends: xdg-utils Provides: %{base_name}.git Conflicts: %{base_name} BuildArch: noarch -Packager: Gilver E. +Packager: Gilver E. %description %_description diff --git a/anda/games/steamtinkerlaunch/stable/steamtinkerlaunch.spec b/anda/games/steamtinkerlaunch/stable/steamtinkerlaunch.spec index d888d26691..fa1371dd5b 100644 --- a/anda/games/steamtinkerlaunch/stable/steamtinkerlaunch.spec +++ b/anda/games/steamtinkerlaunch/stable/steamtinkerlaunch.spec @@ -3,7 +3,7 @@ Steam Tinker Launch is a Linux wrapper tool for use with the Steam client which Name: steamtinkerlaunch Version: 12.12 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Wrapper tool for use with the Steam client for custom launch options License: GPL-3.0-or-later URL: https://github.com/sonic2kk/steamtinkerlaunch @@ -46,7 +46,7 @@ Recommends: winetricks Recommends: xdg-utils Conflicts: %{name}-git BuildArch: noarch -Packager: Gilver E. +Packager: Gilver E. %description %_description diff --git a/anda/games/terra-gamescope/0002-wlroots-libinput-switch-keypad-slide.patch b/anda/games/terra-gamescope/0002-wlroots-libinput-switch-keypad-slide.patch new file mode 100644 index 0000000000..4910d582cf --- /dev/null +++ b/anda/games/terra-gamescope/0002-wlroots-libinput-switch-keypad-slide.patch @@ -0,0 +1,18 @@ +From: porkloin +Subject: [PATCH] wlroots: handle LIBINPUT_SWITCH_KEYPAD_SLIDE enum in switch.c + +libinput added LIBINPUT_SWITCH_KEYPAD_SLIDE and GCC 16 on Fedora 44 +treats the unhandled enum value as -Werror=switch, breaking the build. + +diff --git a/subprojects/wlroots/backend/libinput/switch.c b/subprojects/wlroots/backend/libinput/switch.c +--- a/subprojects/wlroots/backend/libinput/switch.c ++++ b/subprojects/wlroots/backend/libinput/switch.c +@@ -34,6 +34,8 @@ void handle_switch_toggle(struct libinput_event *event, + case LIBINPUT_SWITCH_TABLET_MODE: + wlr_event.switch_type = WLR_SWITCH_TYPE_TABLET_MODE; + break; ++ case LIBINPUT_SWITCH_KEYPAD_SLIDE: ++ break; + } + switch (libinput_event_switch_get_switch_state(sevent)) { + case LIBINPUT_SWITCH_STATE_OFF: diff --git a/anda/games/terra-gamescope/Use-system-stb-glm.patch b/anda/games/terra-gamescope/Use-system-stb-glm.patch new file mode 100644 index 0000000000..f0addb676b --- /dev/null +++ b/anda/games/terra-gamescope/Use-system-stb-glm.patch @@ -0,0 +1,28 @@ +From 1a37d7113ed29ede9dcd30be16898b10464cd76e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= +Date: Wed, 28 May 2025 12:19:05 +0200 +Subject: [PATCH] Use system stb/glm + +--- + meson.build | 6 ++---- + 1 file changed, 2 insertions(+), 4 deletions(-) + +diff --git a/meson.build b/meson.build +index c300b07..3044e54 100644 +--- a/meson.build ++++ b/meson.build +@@ -47,10 +47,8 @@ dep_x11 = dependency('x11') + dep_wayland = dependency('wayland-client') + vulkan_dep = dependency('vulkan') + +-glm_proj = subproject('glm') +-glm_dep = glm_proj.get_variable('glm_dep') +-stb_proj = subproject('stb') +-stb_dep = stb_proj.get_variable('stb_dep') ++glm_dep = dependency('glm') ++stb_dep = dependency('stb') + + if get_option('enable_openvr_support') + openvr_dep = dependency('openvr', version: '>= 2.7', required : false) +-- +2.49.0 diff --git a/anda/games/terra-gamescope/anda.hcl b/anda/games/terra-gamescope/anda.hcl index e66956b621..c01d057d11 100755 --- a/anda/games/terra-gamescope/anda.hcl +++ b/anda/games/terra-gamescope/anda.hcl @@ -5,6 +5,7 @@ project pkg { } labels { mock = 1 + nightly = 1 subrepo = "extras" } } diff --git a/anda/games/terra-gamescope/handheld.patch b/anda/games/terra-gamescope/handheld.patch deleted file mode 100755 index fcd7cb87f3..0000000000 --- a/anda/games/terra-gamescope/handheld.patch +++ /dev/null @@ -1,2050 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Antheas Kapenekakis -Date: Fri, 22 Nov 2024 01:37:48 +0100 -Subject: [NA] add dev script - ---- - sync.sh | 21 +++++++++++++++++++++ - 1 file changed, 21 insertions(+) - create mode 100755 sync.sh - -diff --git a/sync.sh b/sync.sh -new file mode 100755 -index 000000000000..8dd5815d4aeb ---- /dev/null -+++ b/sync.sh -@@ -0,0 +1,21 @@ -+if [ -z "$1" ]; then -+ echo "Usage: $0 " -+ exit 1 -+fi -+ -+HOST=$1 -+RSYNC="rsync -rv --exclude .git --exclude venv --exclude __pycache__'" -+USER=${USER:-bazzite} -+ -+set -e -+ -+meson build/ -Dforce_fallback_for=stb,libdisplay-info,libliftoff,wlroots,vkroots -Denable_openvr_support=false -+ninja -C build/ -+scp build/src/gamescope ${HOST}:gamescope -+ -+ssh $HOST /bin/bash << EOF -+ sudo rpm-ostree usroverlay --hotfix -+ sudo mv ~/gamescope /usr/bin/gamescope -+ bazzite-session-select gamescope -+ # sudo reboot -+EOF --- -2.51.0 - - -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Matthew Anderson -Date: Fri, 17 May 2024 21:56:55 -0500 -Subject: feat: add --custom-refresh-rates option (+ fixes) - -Commit originally by Matthew, external fixes by Kyle, and new system check -move by Antheas. - -Co-authored-by: Kyle Gospodnetich -Co-authored-by: Antheas Kapenekakis ---- - src/Backends/DRMBackend.cpp | 4 +++- - src/main.cpp | 31 +++++++++++++++++++++++++++++++ - src/main.hpp | 2 ++ - 3 files changed, 36 insertions(+), 1 deletion(-) - -diff --git a/src/Backends/DRMBackend.cpp b/src/Backends/DRMBackend.cpp -index 1ec2699821f0..c8e821314dc4 100644 ---- a/src/Backends/DRMBackend.cpp -+++ b/src/Backends/DRMBackend.cpp -@@ -2342,8 +2342,10 @@ namespace gamescope - } - else - { -+ if ( g_customRefreshRates.size() > 0 && GetScreenType() == GAMESCOPE_SCREEN_TYPE_INTERNAL ) -+ m_Mutable.ValidDynamicRefreshRates = g_customRefreshRates; - // Unknown display, see if there are any other refresh rates in the EDID we can get. -- if ( GetScreenType() == GAMESCOPE_SCREEN_TYPE_INTERNAL || cv_drm_allow_dynamic_modes_for_external_display ) -+ else if ( GetScreenType() == GAMESCOPE_SCREEN_TYPE_INTERNAL || cv_drm_allow_dynamic_modes_for_external_display ) - { - const drmModeModeInfo *pPreferredMode = find_mode( m_pConnector.get(), 0, 0, 0 ); - -diff --git a/src/main.cpp b/src/main.cpp -index cdb35c3b2518..d63b1fe50cc6 100644 ---- a/src/main.cpp -+++ b/src/main.cpp -@@ -133,6 +133,7 @@ const struct option *gamescope_options = (struct option[]){ - { "fade-out-duration", required_argument, nullptr, 0 }, - { "force-orientation", required_argument, nullptr, 0 }, - { "force-windows-fullscreen", no_argument, nullptr, 0 }, -+ { "custom-refresh-rates", required_argument, nullptr, 0 }, - - { "disable-color-management", no_argument, nullptr, 0 }, - { "sdr-gamut-wideness", required_argument, nullptr, 0 }, -@@ -207,6 +208,7 @@ const char usage[] = - " --hdr-itm-target-nits set the target luminace of the inverse tone mapping process.\n" - " Default: 1000 nits, Max: 10000 nits\n" - " --framerate-limit Set a simple framerate limit. Used as a divisor of the refresh rate, rounds down eg 60 / 59 -> 60fps, 60 / 25 -> 30fps. Default: 0, disabled.\n" -+ " --custom-refresh-rates Set custom refresh rates for the output. eg: 60,90,110-120\n" - " --mangoapp Launch with the mangoapp (mangohud) performance overlay enabled. You should use this instead of using mangohud on the game or gamescope.\n" - " --adaptive-sync Enable adaptive sync if available (variable rate refresh)\n" - "\n" -@@ -460,6 +462,33 @@ static float parse_float(const char *str, const char *optionName) - } - } - -+std::vector g_customRefreshRates; -+// eg: 60,60,90,110-120 -+static std::vector parse_custom_refresh_rates( const char *str ) -+{ -+ std::vector rates; -+ char *token = strtok( strdup(str), ","); -+ while (token) -+ { -+ char *dash = strchr(token, '-'); -+ if (dash) -+ { -+ uint32_t start = atoi(token); -+ uint32_t end = atoi(dash + 1); -+ for (uint32_t i = start; i <= end; i++) -+ { -+ rates.push_back(i); -+ } -+ } -+ else -+ { -+ rates.push_back(atoi(token)); -+ } -+ token = strtok(nullptr, ","); -+ } -+ return rates; -+} -+ - struct sigaction handle_signal_action = {}; - - void ShutdownGamescope() -@@ -783,6 +812,8 @@ int main(int argc, char **argv) - g_eGamescopeModeGeneration = parse_gamescope_mode_generation( optarg ); - } else if (strcmp(opt_name, "force-orientation") == 0) { - g_DesiredInternalOrientation = force_orientation( optarg ); -+ } else if (strcmp(opt_name, "custom-refresh-rates") == 0) { -+ g_customRefreshRates = parse_custom_refresh_rates( optarg ); - } else if (strcmp(opt_name, "sharpness") == 0 || - strcmp(opt_name, "fsr-sharpness") == 0) { - g_upscaleFilterSharpness = parse_integer( optarg, opt_name ); -diff --git a/src/main.hpp b/src/main.hpp -index 2e6fb833af12..390c04a63ecd 100644 ---- a/src/main.hpp -+++ b/src/main.hpp -@@ -3,6 +3,7 @@ - #include - - #include -+#include - - extern const char *gamescope_optstring; - extern const struct option *gamescope_options; -@@ -28,6 +29,7 @@ extern bool g_bGrabbed; - - extern float g_mouseSensitivity; - extern const char *g_sOutputName; -+extern std::vector g_customRefreshRates; - - enum class GamescopeUpscaleFilter : uint32_t - { --- -2.51.0 - - -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Renn <8340896+AkazaRenn@users.noreply.github.com> -Date: Fri, 11 Oct 2024 17:48:26 +0200 -Subject: fix(deck): Use super + 1/2 for Overlay/QAM - -Replaces the patch for CTRL + 1/2 for Overlay/QAM with Super + 1/2 and -allows for CTRL for a smooth transition. - -Suggested-by: Antheas Kapenekakis ---- - src/wlserver.cpp | 23 ++++++++++++++++++++++- - 1 file changed, 22 insertions(+), 1 deletion(-) - -diff --git a/src/wlserver.cpp b/src/wlserver.cpp -index 4d8546eed51f..56a9f25cd03a 100644 ---- a/src/wlserver.cpp -+++ b/src/wlserver.cpp -@@ -296,6 +296,9 @@ static void wlserver_handle_modifiers(struct wl_listener *listener, void *data) - bump_input_counter(); - } - -+// false if GS_ENABLE_CTRL_12 exists and is 0, true otherwise -+bool env_gs_enable_ctrl_12 = getenv("GS_ENABLE_CTRL_12") ? (getenv("GS_ENABLE_CTRL_12")[0] != '0') : true; -+ - static void wlserver_handle_key(struct wl_listener *listener, void *data) - { - struct wlr_keyboard *keyboard = &wlserver.keyboard_group->keyboard; -@@ -319,7 +322,14 @@ static void wlserver_handle_key(struct wl_listener *listener, void *data) - keysym == XKB_KEY_XF86AudioLowerVolume || - keysym == XKB_KEY_XF86AudioRaiseVolume || - keysym == XKB_KEY_XF86PowerOff; -- if ( ( event->state == WL_KEYBOARD_KEY_STATE_PRESSED || event->state == WL_KEYBOARD_KEY_STATE_RELEASED ) && forbidden_key ) -+ -+ // Check for steam overlay key (ctrl/super + 1/2) -+ bool is_steamshortcut = -+ ((env_gs_enable_ctrl_12 && (keyboard->modifiers.depressed & WLR_MODIFIER_CTRL)) || -+ (keyboard->modifiers.depressed & WLR_MODIFIER_LOGO)) && -+ (keysym == XKB_KEY_1 || keysym == XKB_KEY_2); -+ -+ if ( ( event->state == WL_KEYBOARD_KEY_STATE_PRESSED || event->state == WL_KEYBOARD_KEY_STATE_RELEASED ) && (forbidden_key || is_steamshortcut) ) - { - // Always send volume+/- to root server only, to avoid it reaching the game. - struct wlr_surface *old_kb_surf = wlserver.kb_focus_surface; -@@ -328,6 +338,17 @@ static void wlserver_handle_key(struct wl_listener *listener, void *data) - { - wlserver_keyboardfocus( new_kb_surf, false ); - wlr_seat_set_keyboard( wlserver.wlr.seat, keyboard ); -+ -+ if (is_steamshortcut) -+ { -+ // send ctrl down modifier to trigger the overlay -+ wlr_keyboard_modifiers ctrl_down_modifier; -+ ctrl_down_modifier.depressed = WLR_MODIFIER_CTRL; -+ ctrl_down_modifier.latched = WLR_MODIFIER_CTRL; -+ ctrl_down_modifier.locked = WLR_MODIFIER_CTRL; -+ wlr_seat_keyboard_notify_modifiers(wlserver.wlr.seat, &ctrl_down_modifier); -+ } -+ - wlr_seat_keyboard_notify_key( wlserver.wlr.seat, event->time_msec, event->keycode, event->state ); - wlserver_keyboardfocus( old_kb_surf, false ); - return; --- -2.51.0 - - -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: honjow -Date: Wed, 16 Oct 2024 00:23:58 +0800 -Subject: fix(external): fix crash when using external touchscreens - ---- - src/wlserver.cpp | 8 ++++++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - -diff --git a/src/wlserver.cpp b/src/wlserver.cpp -index 56a9f25cd03a..4d6e8de55ba4 100644 ---- a/src/wlserver.cpp -+++ b/src/wlserver.cpp -@@ -2766,8 +2766,12 @@ static void apply_touchscreen_orientation(double *x, double *y ) - double tx = 0; - double ty = 0; - -- // Use internal screen always for orientation purposes. -- switch ( GetBackend()->GetConnector( gamescope::GAMESCOPE_SCREEN_TYPE_INTERNAL )->GetCurrentOrientation() ) -+ auto orientation = GAMESCOPE_PANEL_ORIENTATION_AUTO; -+ if ( GetBackend() && GetBackend()->GetCurrentConnector( ) ) -+ { -+ orientation = GetBackend()->GetCurrentConnector()->GetCurrentOrientation(); -+ } -+ switch ( orientation ) - { - default: - case GAMESCOPE_PANEL_ORIENTATION_AUTO: --- -2.51.0 - - -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Antheas Kapenekakis -Date: Mon, 14 Oct 2024 22:42:20 +0200 -Subject: fix(display-config): always fill in mutable refresh rates - -Assume the user is not lying to us when they fill in dynamic_refresh_rates -and that gamescope will work with e.g., CVT, so accept it even if no -custom modeline generation has been provided. ---- - src/Backends/DRMBackend.cpp | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/src/Backends/DRMBackend.cpp b/src/Backends/DRMBackend.cpp -index c8e821314dc4..a919c61f9f8d 100644 ---- a/src/Backends/DRMBackend.cpp -+++ b/src/Backends/DRMBackend.cpp -@@ -2258,7 +2258,9 @@ namespace gamescope - sol::optional otDynamicRefreshRates = tTable["dynamic_refresh_rates"]; - sol::optional ofnDynamicModegen = tTable["dynamic_modegen"]; - -- if ( otDynamicRefreshRates && ofnDynamicModegen ) -+ if ( otDynamicRefreshRates && !ofnDynamicModegen ) -+ m_Mutable.ValidDynamicRefreshRates = TableToVector( *otDynamicRefreshRates ); -+ else if ( otDynamicRefreshRates && ofnDynamicModegen ) - { - m_Mutable.ValidDynamicRefreshRates = TableToVector( *otDynamicRefreshRates ); - --- -2.51.0 - - -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Antheas Kapenekakis -Date: Wed, 30 Oct 2024 00:39:03 +0100 -Subject: fix(battery): run at half hz while at steamUI with atom - ---- - src/steamcompmgr.cpp | 53 +++++++++++++++++++++++++++++++++++--------- - src/xwayland_ctx.hpp | 2 ++ - 2 files changed, 45 insertions(+), 10 deletions(-) - -diff --git a/src/steamcompmgr.cpp b/src/steamcompmgr.cpp -index b0cf080e0642..07e45b19fc61 100644 ---- a/src/steamcompmgr.cpp -+++ b/src/steamcompmgr.cpp -@@ -172,6 +172,8 @@ uint32_t g_reshade_technique_idx = 0; - - bool g_bSteamIsActiveWindow = false; - bool g_bForceInternal = false; -+bool b_bForceFrameLimit = false; -+bool g_bRefreshHalveEnable = false; - - namespace gamescope - { -@@ -928,6 +930,7 @@ uint64_t g_uCurrentBasePlaneCommitID = 0; - bool g_bCurrentBasePlaneIsFifo = false; - - static int g_nSteamCompMgrTargetFPS = 0; -+static int g_nSteamCompMgrTargetFPSreq = 0; - static uint64_t g_uDynamicRefreshEqualityTime = 0; - static int g_nDynamicRefreshRate[gamescope::GAMESCOPE_SCREEN_TYPE_COUNT] = { 0, 0 }; - // Delay to stop modes flickering back and forth. -@@ -947,7 +950,7 @@ static void _update_app_target_refresh_cycle() - int target_fps = g_nCombinedAppRefreshCycleOverride[type]; - - g_nDynamicRefreshRate[ type ] = 0; -- g_nSteamCompMgrTargetFPS = 0; -+ g_nSteamCompMgrTargetFPSreq = 0; - - if ( !target_fps ) - { -@@ -956,7 +959,7 @@ static void _update_app_target_refresh_cycle() - - if ( g_nCombinedAppRefreshCycleChangeFPS[ type ] ) - { -- g_nSteamCompMgrTargetFPS = target_fps; -+ g_nSteamCompMgrTargetFPSreq = target_fps; - } - - if ( g_nCombinedAppRefreshCycleChangeRefresh[ type ] ) -@@ -977,9 +980,9 @@ static void _update_app_target_refresh_cycle() - - static void update_app_target_refresh_cycle() - { -- int nPrevFPSLimit = g_nSteamCompMgrTargetFPS; -+ int nPrevFPSLimit = g_nSteamCompMgrTargetFPSreq; - _update_app_target_refresh_cycle(); -- if ( !!g_nSteamCompMgrTargetFPS != !!nPrevFPSLimit ) -+ if ( !!g_nSteamCompMgrTargetFPSreq != !!nPrevFPSLimit ) - update_runtime_info(); - } - -@@ -5316,7 +5319,7 @@ update_runtime_info() - if ( g_nRuntimeInfoFd < 0 ) - return; - -- uint32_t limiter_enabled = g_nSteamCompMgrTargetFPS != 0 ? 1 : 0; -+ uint32_t limiter_enabled = g_nSteamCompMgrTargetFPSreq != 0 ? 1 : 0; - pwrite( g_nRuntimeInfoFd, &limiter_enabled, sizeof( limiter_enabled ), 0 ); - } - -@@ -5379,7 +5382,7 @@ static bool steamcompmgr_should_vblank_window( bool bShouldLimitFPS, uint64_t vb - { - bool bCloseEnough = std::abs( g_nSteamCompMgrTargetFPS - nRefreshHz ) < 2; - -- if ( g_nSteamCompMgrTargetFPS && bShouldLimitFPS && w && !bCloseEnough ) -+ if ( g_nSteamCompMgrTargetFPS && (bShouldLimitFPS || b_bForceFrameLimit) && w && !bCloseEnough ) - { - uint64_t schedule = w->last_commit_first_latch_time + g_SteamCompMgrLimitedAppRefreshCycle; - -@@ -5397,7 +5400,7 @@ static bool steamcompmgr_should_vblank_window( bool bShouldLimitFPS, uint64_t vb - } - else - { -- if ( g_nSteamCompMgrTargetFPS && bShouldLimitFPS && nRefreshHz > nTargetFPS ) -+ if ( g_nSteamCompMgrTargetFPS && (bShouldLimitFPS || b_bForceFrameLimit) && nRefreshHz > nTargetFPS ) - { - int nVblankDivisor = nRefreshHz / nTargetFPS; - -@@ -5796,7 +5799,7 @@ handle_property_notify(xwayland_ctx_t *ctx, XPropertyEvent *ev) - } - if ( ev->atom == ctx->atoms.gamescopeFPSLimit ) - { -- g_nSteamCompMgrTargetFPS = get_prop( ctx, ctx->root, ctx->atoms.gamescopeFPSLimit, 0 ); -+ g_nSteamCompMgrTargetFPSreq = get_prop( ctx, ctx->root, ctx->atoms.gamescopeFPSLimit, 0 ); - update_runtime_info(); - } - for (int i = 0; i < gamescope::GAMESCOPE_SCREEN_TYPE_COUNT; i++) -@@ -6227,6 +6230,10 @@ handle_property_notify(xwayland_ctx_t *ctx, XPropertyEvent *ev) - MakeFocusDirty(); - } - } -+ if ( ev->atom == ctx->atoms.gamescopeFrameHalveAtom ) -+ { -+ g_bRefreshHalveEnable = !!get_prop( ctx, ctx->root, ctx->atoms.gamescopeFrameHalveAtom, 0 ); -+ } - } - - static int -@@ -6603,7 +6610,7 @@ void handle_presented_for_window( steamcompmgr_win_t* w ) - - uint64_t next_refresh_time = g_SteamCompMgrVBlankTime.schedule.ulTargetVBlank; - -- uint64_t refresh_cycle = g_nSteamCompMgrTargetFPS && steamcompmgr_window_should_limit_fps( w ) -+ uint64_t refresh_cycle = g_nSteamCompMgrTargetFPS && (steamcompmgr_window_should_limit_fps( w ) || b_bForceFrameLimit) - ? g_SteamCompMgrLimitedAppRefreshCycle - : g_SteamCompMgrAppRefreshCycle; - -@@ -7462,6 +7469,8 @@ void init_xwayland_ctx(uint32_t serverId, gamescope_xwayland_server_t *xwayland_ - ctx->atoms.primarySelection = XInternAtom(ctx->dpy, "PRIMARY", false); - ctx->atoms.targets = XInternAtom(ctx->dpy, "TARGETS", false); - -+ ctx->atoms.gamescopeFrameHalveAtom = XInternAtom( ctx->dpy, "GAMESCOPE_STEAMUI_HALFHZ", false );; -+ - ctx->root_width = DisplayWidth(ctx->dpy, ctx->scr); - ctx->root_height = DisplayHeight(ctx->dpy, ctx->scr); - -@@ -7883,7 +7892,7 @@ steamcompmgr_main(int argc, char **argv) - } else if (strcmp(opt_name, "hdr-itm-target-nits") == 0) { - g_flHDRItmTargetNits = atof(optarg); - } else if (strcmp(opt_name, "framerate-limit") == 0) { -- g_nSteamCompMgrTargetFPS = atoi(optarg); -+ g_nSteamCompMgrTargetFPSreq = atoi(optarg); - } else if (strcmp(opt_name, "reshade-effect") == 0) { - g_reshade_effect = optarg; - } else if (strcmp(opt_name, "reshade-technique-idx") == 0) { -@@ -8051,6 +8060,30 @@ steamcompmgr_main(int argc, char **argv) - // as a question. - const bool bIsVBlankFromTimer = vblank; - -+ // Halve refresh rate on SteamUI -+ bool isSteam = false; -+ for (auto &iter : g_VirtualConnectorFocuses) -+ { -+ global_focus_t *pFocus = &iter.second; -+ if (window_is_steam( pFocus->focusWindow )) { -+ isSteam = true; -+ break; -+ } -+ } -+ if ( g_bRefreshHalveEnable && isSteam ) { -+ int nRealRefreshHz = gamescope::ConvertmHzToHz( g_nNestedRefresh ? g_nNestedRefresh : g_nOutputRefresh ); -+ if (nRealRefreshHz > 100 && (g_nSteamCompMgrTargetFPSreq > 50 || !g_nSteamCompMgrTargetFPSreq)) { -+ g_nSteamCompMgrTargetFPS = nRealRefreshHz / 2; -+ b_bForceFrameLimit = true; -+ } else { -+ g_nSteamCompMgrTargetFPS = g_nSteamCompMgrTargetFPSreq; -+ b_bForceFrameLimit = false; -+ } -+ } else { -+ g_nSteamCompMgrTargetFPS = g_nSteamCompMgrTargetFPSreq; -+ b_bForceFrameLimit = false; -+ } -+ - // We can always vblank if VRR. - const bool bVRR = GetBackend()->GetCurrentConnector() && GetBackend()->GetCurrentConnector()->IsVRRActive(); - if ( bVRR ) -diff --git a/src/xwayland_ctx.hpp b/src/xwayland_ctx.hpp -index df2af70d19ae..e4eec9fa0c48 100644 ---- a/src/xwayland_ctx.hpp -+++ b/src/xwayland_ctx.hpp -@@ -246,6 +246,8 @@ struct xwayland_ctx_t final : public gamescope::IWaitable - Atom clipboard; - Atom primarySelection; - Atom targets; -+ -+ Atom gamescopeFrameHalveAtom; - } atoms; - - bool HasQueuedEvents(); --- -2.51.0 - - -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Joshua Tam <297250+joshuatam@users.noreply.github.com> -Date: Fri, 6 Dec 2024 16:51:02 +0800 -Subject: feat(intel): add rotation shader for rotating output - ---- - src/Backends/DRMBackend.cpp | 35 +++++++++- - src/main.cpp | 7 ++ - src/main.hpp | 2 + - src/meson.build | 1 + - src/rendervulkan.cpp | 126 ++++++++++++++++++++++++++++++----- - src/rendervulkan.hpp | 6 +- - src/shaders/cs_rotation.comp | 53 +++++++++++++++ - src/wlserver.cpp | 5 ++ - 8 files changed, 216 insertions(+), 19 deletions(-) - create mode 100644 src/shaders/cs_rotation.comp - -diff --git a/src/Backends/DRMBackend.cpp b/src/Backends/DRMBackend.cpp -index a919c61f9f8d..a099185e7cdc 100644 ---- a/src/Backends/DRMBackend.cpp -+++ b/src/Backends/DRMBackend.cpp -@@ -1609,6 +1609,10 @@ static void update_drm_effective_orientations( struct drm_t *drm, const drmModeM - if ( pDRMInternalConnector != drm->pConnector ) - pInternalMode = find_mode( pDRMInternalConnector->GetModeConnector(), 0, 0, 0 ); - -+ if ( g_bUseRotationShader ) { -+ g_bEnableDRMRotationShader = true; -+ } -+ - pDRMInternalConnector->UpdateEffectiveOrientation( pInternalMode ); - } - -@@ -1620,6 +1624,10 @@ static void update_drm_effective_orientations( struct drm_t *drm, const drmModeM - if ( pDRMExternalConnector != drm->pConnector ) - pExternalMode = find_mode( pDRMExternalConnector->GetModeConnector(), 0, 0, 0 ); - -+ if ( g_bUseRotationShader ) { -+ g_bEnableDRMRotationShader = false; -+ } -+ - pDRMExternalConnector->UpdateEffectiveOrientation( pExternalMode ); - } - } -@@ -1835,7 +1843,7 @@ LiftoffStateCacheEntry FrameInfoToLiftoffStateCacheEntry( struct drm_t *drm, con - uint64_t crtcW = srcWidth / frameInfo->layers[ i ].scale.x; - uint64_t crtcH = srcHeight / frameInfo->layers[ i ].scale.y; - -- if (g_bRotated) -+ if (g_bRotated && !g_bEnableDRMRotationShader) - { - int64_t imageH = frameInfo->layers[ i ].tex->contentHeight() / frameInfo->layers[ i ].scale.y; - -@@ -2136,6 +2144,17 @@ namespace gamescope - - void CDRMConnector::UpdateEffectiveOrientation( const drmModeModeInfo *pMode ) - { -+ if (g_bEnableDRMRotationShader) -+ { -+ drm_log.infof("Using rotation shader"); -+ if (g_DesiredInternalOrientation == GAMESCOPE_PANEL_ORIENTATION_270) { -+ m_ChosenOrientation = GAMESCOPE_PANEL_ORIENTATION_180; -+ } else { -+ m_ChosenOrientation = GAMESCOPE_PANEL_ORIENTATION_0; -+ } -+ return; -+ } -+ - if ( this->GetScreenType() == GAMESCOPE_SCREEN_TYPE_INTERNAL && g_DesiredInternalOrientation != GAMESCOPE_PANEL_ORIENTATION_AUTO ) - { - m_ChosenOrientation = g_DesiredInternalOrientation; -@@ -3185,6 +3204,13 @@ bool drm_set_mode( struct drm_t *drm, const drmModeModeInfo *mode ) - g_bRotated = false; - g_nOutputWidth = mode->hdisplay; - g_nOutputHeight = mode->vdisplay; -+ -+ if (g_bEnableDRMRotationShader) { -+ g_bRotated = true; -+ g_nOutputWidth = mode->vdisplay; -+ g_nOutputHeight = mode->hdisplay; -+ } -+ - break; - case GAMESCOPE_PANEL_ORIENTATION_90: - case GAMESCOPE_PANEL_ORIENTATION_270: -@@ -3449,6 +3475,11 @@ namespace gamescope - - bNeedsFullComposite |= !!(g_uCompositeDebug & CompositeDebugFlag::Heatmap); - -+ if (g_bEnableDRMRotationShader) -+ { -+ bNeedsFullComposite = true; -+ } -+ - bool bDoComposite = true; - if ( !bNeedsFullComposite && !bWantsPartialComposite ) - { -@@ -3539,7 +3570,7 @@ namespace gamescope - if ( bDefer && !!( g_uCompositeDebug & CompositeDebugFlag::Markers ) ) - g_uCompositeDebug |= CompositeDebugFlag::Markers_Partial; - -- std::optional oCompositeResult = vulkan_composite( &compositeFrameInfo, nullptr, !bNeedsFullComposite ); -+ std::optional oCompositeResult = vulkan_composite( &compositeFrameInfo, nullptr, !bNeedsFullComposite, nullptr, true, nullptr, g_bEnableDRMRotationShader ); - - m_bWasCompositing = true; - -diff --git a/src/main.cpp b/src/main.cpp -index d63b1fe50cc6..cfd4cc11d179 100644 ---- a/src/main.cpp -+++ b/src/main.cpp -@@ -131,6 +131,7 @@ const struct option *gamescope_options = (struct option[]){ - { "composite-debug", no_argument, nullptr, 0 }, - { "disable-xres", no_argument, nullptr, 'x' }, - { "fade-out-duration", required_argument, nullptr, 0 }, -+ { "use-rotation-shader", required_argument, nullptr, 0 }, - { "force-orientation", required_argument, nullptr, 0 }, - { "force-windows-fullscreen", no_argument, nullptr, 0 }, - { "custom-refresh-rates", required_argument, nullptr, 0 }, -@@ -194,6 +195,7 @@ const char usage[] = - " -e, --steam enable Steam integration\n" - " --xwayland-count create N xwayland servers\n" - " --prefer-vk-device prefer Vulkan device for compositing (ex: 1002:7300)\n" -+ " --use-rotation-shader use rotation shader for rotating the screen\n" - " --force-orientation rotate the internal display (left, right, normal, upsidedown)\n" - " --force-windows-fullscreen force windows inside of gamescope to be the size of the nested display (fullscreen)\n" - " --cursor-scale-height if specified, sets a base output height to linearly scale the cursor against.\n" -@@ -355,6 +357,9 @@ static gamescope::GamescopeModeGeneration parse_gamescope_mode_generation( const - } - } - -+bool g_bUseRotationShader = false; -+bool g_bEnableDRMRotationShader = false; -+ - GamescopePanelOrientation g_DesiredInternalOrientation = GAMESCOPE_PANEL_ORIENTATION_AUTO; - static GamescopePanelOrientation force_orientation(const char *str) - { -@@ -812,6 +817,8 @@ int main(int argc, char **argv) - g_eGamescopeModeGeneration = parse_gamescope_mode_generation( optarg ); - } else if (strcmp(opt_name, "force-orientation") == 0) { - g_DesiredInternalOrientation = force_orientation( optarg ); -+ } else if (strcmp(opt_name, "use-rotation-shader") == 0) { -+ g_bUseRotationShader = true; - } else if (strcmp(opt_name, "custom-refresh-rates") == 0) { - g_customRefreshRates = parse_custom_refresh_rates( optarg ); - } else if (strcmp(opt_name, "sharpness") == 0 || -diff --git a/src/main.hpp b/src/main.hpp -index 390c04a63ecd..e7b857d44b0d 100644 ---- a/src/main.hpp -+++ b/src/main.hpp -@@ -22,6 +22,8 @@ extern bool g_bForceRelativeMouse; - extern int g_nOutputRefresh; // mHz - extern bool g_bOutputHDREnabled; - extern bool g_bForceInternal; -+extern bool g_bUseRotationShader; -+extern bool g_bEnableDRMRotationShader; - - extern bool g_bFullscreen; - -diff --git a/src/meson.build b/src/meson.build -index a3dfdabd7366..36c073ec214e 100644 ---- a/src/meson.build -+++ b/src/meson.build -@@ -70,6 +70,7 @@ shader_src = [ - 'shaders/cs_nis.comp', - 'shaders/cs_nis_fp16.comp', - 'shaders/cs_rgb_to_nv12.comp', -+ 'shaders/cs_rotation.comp', - ] - - spirv_shaders = glsl_generator.process(shader_src) -diff --git a/src/rendervulkan.cpp b/src/rendervulkan.cpp -index f79d26e0c139..b19f9bf101b4 100644 ---- a/src/rendervulkan.cpp -+++ b/src/rendervulkan.cpp -@@ -48,6 +48,7 @@ - #include "cs_nis.h" - #include "cs_nis_fp16.h" - #include "cs_rgb_to_nv12.h" -+#include "cs_rotation.h" - - #define A_CPU - #include "shaders/ffx_a.h" -@@ -923,6 +924,7 @@ bool CVulkanDevice::createShaders() - SHADER(NIS, cs_nis); - } - SHADER(RGB_TO_NV12, cs_rgb_to_nv12); -+ SHADER(ROTATION, cs_rotation); - #undef SHADER - - for (uint32_t i = 0; i < shaderInfos.size(); i++) -@@ -1153,6 +1155,7 @@ void CVulkanDevice::compileAllPipelines() - SHADER(EASU, 1, 1, 1); - SHADER(NIS, 1, 1, 1); - SHADER(RGB_TO_NV12, 1, 1, 1); -+ SHADER(ROTATION, k_nMaxLayers, k_nMaxYcbcrMask_ToPreCompile, k_nMaxBlurLayers); - #undef SHADER - - for (auto& info : pipelineInfos) { -@@ -3249,8 +3252,16 @@ static bool vulkan_make_output_images( VulkanOutput_t *pOutput ) - - uint32_t uDRMFormat = pOutput->uOutputFormat; - -+ uint32_t l_nOutputWidth = g_nOutputWidth; -+ uint32_t l_nOutputHeight = g_nOutputHeight; -+ -+ if (g_bEnableDRMRotationShader) { -+ l_nOutputWidth = g_nOutputHeight; -+ l_nOutputHeight = g_nOutputWidth; -+ } -+ - pOutput->outputImages[0] = new CVulkanTexture(); -- bool bSuccess = pOutput->outputImages[0]->BInit( g_nOutputWidth, g_nOutputHeight, 1u, uDRMFormat, outputImageflags ); -+ bool bSuccess = pOutput->outputImages[0]->BInit( l_nOutputWidth, l_nOutputHeight, 1u, uDRMFormat, outputImageflags ); - if ( bSuccess != true ) - { - vk_log.errorf( "failed to allocate buffer for KMS" ); -@@ -3258,7 +3269,7 @@ static bool vulkan_make_output_images( VulkanOutput_t *pOutput ) - } - - pOutput->outputImages[1] = new CVulkanTexture(); -- bSuccess = pOutput->outputImages[1]->BInit( g_nOutputWidth, g_nOutputHeight, 1u, uDRMFormat, outputImageflags ); -+ bSuccess = pOutput->outputImages[1]->BInit( l_nOutputWidth, l_nOutputHeight, 1u, uDRMFormat, outputImageflags ); - if ( bSuccess != true ) - { - vk_log.errorf( "failed to allocate buffer for KMS" ); -@@ -3266,7 +3277,7 @@ static bool vulkan_make_output_images( VulkanOutput_t *pOutput ) - } - - pOutput->outputImages[2] = new CVulkanTexture(); -- bSuccess = pOutput->outputImages[2]->BInit( g_nOutputWidth, g_nOutputHeight, 1u, uDRMFormat, outputImageflags ); -+ bSuccess = pOutput->outputImages[2]->BInit( l_nOutputWidth, l_nOutputHeight, 1u, uDRMFormat, outputImageflags ); - if ( bSuccess != true ) - { - vk_log.errorf( "failed to allocate buffer for KMS" ); -@@ -3281,7 +3292,7 @@ static bool vulkan_make_output_images( VulkanOutput_t *pOutput ) - uint32_t uPartialDRMFormat = pOutput->uOutputFormatOverlay; - - pOutput->outputImagesPartialOverlay[0] = new CVulkanTexture(); -- bool bSuccess = pOutput->outputImagesPartialOverlay[0]->BInit( g_nOutputWidth, g_nOutputHeight, 1u, uPartialDRMFormat, outputImageflags, nullptr, 0, 0, pOutput->outputImages[0].get() ); -+ bool bSuccess = pOutput->outputImagesPartialOverlay[0]->BInit( l_nOutputWidth, l_nOutputHeight, 1u, uPartialDRMFormat, outputImageflags, nullptr, 0, 0, pOutput->outputImages[0].get() ); - if ( bSuccess != true ) - { - vk_log.errorf( "failed to allocate buffer for KMS" ); -@@ -3289,7 +3300,7 @@ static bool vulkan_make_output_images( VulkanOutput_t *pOutput ) - } - - pOutput->outputImagesPartialOverlay[1] = new CVulkanTexture(); -- bSuccess = pOutput->outputImagesPartialOverlay[1]->BInit( g_nOutputWidth, g_nOutputHeight, 1u, uPartialDRMFormat, outputImageflags, nullptr, 0, 0, pOutput->outputImages[1].get() ); -+ bSuccess = pOutput->outputImagesPartialOverlay[1]->BInit( l_nOutputWidth, l_nOutputHeight, 1u, uPartialDRMFormat, outputImageflags, nullptr, 0, 0, pOutput->outputImages[1].get() ); - if ( bSuccess != true ) - { - vk_log.errorf( "failed to allocate buffer for KMS" ); -@@ -3297,7 +3308,7 @@ static bool vulkan_make_output_images( VulkanOutput_t *pOutput ) - } - - pOutput->outputImagesPartialOverlay[2] = new CVulkanTexture(); -- bSuccess = pOutput->outputImagesPartialOverlay[2]->BInit( g_nOutputWidth, g_nOutputHeight, 1u, uPartialDRMFormat, outputImageflags, nullptr, 0, 0, pOutput->outputImages[2].get() ); -+ bSuccess = pOutput->outputImagesPartialOverlay[2]->BInit( l_nOutputWidth, l_nOutputHeight, 1u, uPartialDRMFormat, outputImageflags, nullptr, 0, 0, pOutput->outputImages[2].get() ); - if ( bSuccess != true ) - { - vk_log.errorf( "failed to allocate buffer for KMS" ); -@@ -3427,6 +3438,28 @@ static void update_tmp_images( uint32_t width, uint32_t height ) - } - } - -+static void update_rotated_images( uint32_t width, uint32_t height ) -+{ -+ if ( g_output.rotatedOutput != nullptr -+ && width == g_output.rotatedOutput->width() -+ && height == g_output.rotatedOutput->height() ) -+ { -+ return; -+ } -+ -+ CVulkanTexture::createFlags createFlags; -+ createFlags.bSampled = true; -+ createFlags.bStorage = true; -+ -+ g_output.rotatedOutput = new CVulkanTexture(); -+ bool bSuccess = g_output.rotatedOutput->BInit( width, height, 1u, DRM_FORMAT_ARGB8888, createFlags, nullptr ); -+ -+ if ( !bSuccess ) -+ { -+ vk_log.errorf( "failed to create rotated output" ); -+ return; -+ } -+} - - static bool init_nis_data() - { -@@ -3903,7 +3936,7 @@ extern uint32_t g_reshade_technique_idx; - - ReshadeEffectPipeline *g_pLastReshadeEffect = nullptr; - --std::optional vulkan_composite( struct FrameInfo_t *frameInfo, gamescope::Rc pPipewireTexture, bool partial, gamescope::Rc pOutputOverride, bool increment, std::unique_ptr pInCommandBuffer ) -+std::optional vulkan_composite( struct FrameInfo_t *frameInfo, gamescope::Rc pPipewireTexture, bool partial, gamescope::Rc pOutputOverride, bool increment, std::unique_ptr pInCommandBuffer, bool applyRotation ) - { - EOTF outputTF = frameInfo->outputEncodingEOTF; - if (!frameInfo->applyOutputColorMgmt) -@@ -3978,7 +4011,15 @@ std::optional vulkan_composite( struct FrameInfo_t *frameInfo, gamesco - cmdBuffer->setTextureSrgb(0, true); - cmdBuffer->setSamplerUnnormalized(0, false); - cmdBuffer->setSamplerNearest(0, false); -- cmdBuffer->bindTarget(compositeImage); -+ -+ if (applyRotation) { -+ // Make a rotatedOutput with normal dimensions -+ update_rotated_images(currentOutputWidth, currentOutputHeight); // 2560x1600 -+ cmdBuffer->bindTarget(g_output.rotatedOutput); -+ } else { -+ cmdBuffer->bindTarget(compositeImage); -+ } -+ - cmdBuffer->uploadConstants(frameInfo, g_upscaleFilterSharpness / 10.0f); - - cmdBuffer->dispatch(div_roundup(currentOutputWidth, pixelsPerGroup), div_roundup(currentOutputHeight, pixelsPerGroup)); -@@ -4021,7 +4062,15 @@ std::optional vulkan_composite( struct FrameInfo_t *frameInfo, gamesco - - cmdBuffer->bindPipeline( g_device.pipeline(SHADER_TYPE_BLIT, nisFrameInfo.layerCount, nisFrameInfo.ycbcrMask(), 0u, nisFrameInfo.colorspaceMask(), outputTF )); - bind_all_layers(cmdBuffer.get(), &nisFrameInfo); -- cmdBuffer->bindTarget(compositeImage); -+ -+ if (applyRotation) { -+ // Make a rotatedOutput with normal dimensions -+ update_rotated_images(currentOutputWidth, currentOutputHeight); // 2560x1600 -+ cmdBuffer->bindTarget(g_output.rotatedOutput); -+ } else { -+ cmdBuffer->bindTarget(compositeImage); -+ } -+ - cmdBuffer->uploadConstants(&nisFrameInfo); - - int pixelsPerGroup = 8; -@@ -4059,7 +4108,15 @@ std::optional vulkan_composite( struct FrameInfo_t *frameInfo, gamesco - type = frameInfo->blurLayer0 == BLUR_MODE_COND ? SHADER_TYPE_BLUR_COND : SHADER_TYPE_BLUR; - cmdBuffer->bindPipeline(g_device.pipeline(type, frameInfo->layerCount, frameInfo->ycbcrMask(), blur_layer_count, frameInfo->colorspaceMask(), outputTF )); - bind_all_layers(cmdBuffer.get(), frameInfo); -- cmdBuffer->bindTarget(compositeImage); -+ -+ if (applyRotation) { -+ // Make a rotatedOutput with normal dimensions -+ update_rotated_images(currentOutputWidth, currentOutputHeight); // 2560x1600 -+ cmdBuffer->bindTarget(g_output.rotatedOutput); -+ } else { -+ cmdBuffer->bindTarget(compositeImage); -+ } -+ - cmdBuffer->bindTexture(VKR_BLUR_EXTRA_SLOT, g_output.tmpOutput); - cmdBuffer->setTextureSrgb(VKR_BLUR_EXTRA_SLOT, !useSrgbView); // Inverted because it chooses whether to view as linear (sRGB view) or sRGB (raw view). It's horrible. I need to change it. - cmdBuffer->setSamplerUnnormalized(VKR_BLUR_EXTRA_SLOT, true); -@@ -4069,14 +4126,51 @@ std::optional vulkan_composite( struct FrameInfo_t *frameInfo, gamesco - } - else - { -- cmdBuffer->bindPipeline( g_device.pipeline(SHADER_TYPE_BLIT, frameInfo->layerCount, frameInfo->ycbcrMask(), 0u, frameInfo->colorspaceMask(), outputTF )); -- bind_all_layers(cmdBuffer.get(), frameInfo); -- cmdBuffer->bindTarget(compositeImage); -- cmdBuffer->uploadConstants(frameInfo); -+ if (applyRotation) { -+ cmdBuffer->bindPipeline( g_device.pipeline(SHADER_TYPE_ROTATION, frameInfo->layerCount, frameInfo->ycbcrMask(), 0u, frameInfo->colorspaceMask(), outputTF )); -+ bind_all_layers(cmdBuffer.get(), frameInfo); -+ cmdBuffer->bindTarget(compositeImage); -+ cmdBuffer->uploadConstants(frameInfo); - -- const int pixelsPerGroup = 8; -+ const int pixelsPerGroup = 8; - -- cmdBuffer->dispatch(div_roundup(currentOutputWidth, pixelsPerGroup), div_roundup(currentOutputHeight, pixelsPerGroup)); -+ cmdBuffer->dispatch(div_roundup(currentOutputWidth, pixelsPerGroup), div_roundup(currentOutputHeight, pixelsPerGroup)); -+ } else { -+ cmdBuffer->bindPipeline( g_device.pipeline(SHADER_TYPE_BLIT, frameInfo->layerCount, frameInfo->ycbcrMask(), 0u, frameInfo->colorspaceMask(), outputTF )); -+ bind_all_layers(cmdBuffer.get(), frameInfo); -+ cmdBuffer->bindTarget(compositeImage); -+ cmdBuffer->uploadConstants(frameInfo); -+ -+ const int pixelsPerGroup = 8; -+ -+ cmdBuffer->dispatch(div_roundup(currentOutputWidth, pixelsPerGroup), div_roundup(currentOutputHeight, pixelsPerGroup)); -+ } -+ } -+ -+ if (applyRotation) -+ { -+ if (g_output.rotatedOutput != nullptr) { -+ // Rotate the final output -+ // TODO: may need rework with another rotation shader for blur, fsr and nis -+ cmdBuffer->bindPipeline( g_device.pipeline(SHADER_TYPE_ROTATION, frameInfo->layerCount, frameInfo->ycbcrMask(), 0u, frameInfo->colorspaceMask(), outputTF)); -+ bind_all_layers(cmdBuffer.get(), frameInfo); -+ -+ // if (frameInfo->blurLayer0) { -+ // bool useSrgbView = frameInfo->layers[0].colorspace == GAMESCOPE_APP_TEXTURE_COLORSPACE_LINEAR; -+ // -+ // cmdBuffer->bindTexture(VKR_BLUR_EXTRA_SLOT, g_output.rotatedOutput); -+ // cmdBuffer->setTextureSrgb(VKR_BLUR_EXTRA_SLOT, !useSrgbView); -+ // cmdBuffer->setSamplerUnnormalized(VKR_BLUR_EXTRA_SLOT, true); -+ // cmdBuffer->setSamplerNearest(VKR_BLUR_EXTRA_SLOT, false); -+ // } -+ -+ cmdBuffer->bindTarget(compositeImage); -+ cmdBuffer->uploadConstants(frameInfo); -+ -+ const int pixelsPerGroup = 8; -+ -+ cmdBuffer->dispatch(div_roundup(currentOutputWidth, pixelsPerGroup), div_roundup(currentOutputHeight, pixelsPerGroup)); -+ } - } - - if ( pPipewireTexture != nullptr ) -diff --git a/src/rendervulkan.hpp b/src/rendervulkan.hpp -index 63cc6029ac5f..93a4a6027f55 100644 ---- a/src/rendervulkan.hpp -+++ b/src/rendervulkan.hpp -@@ -408,7 +408,7 @@ gamescope::OwningRc vulkan_create_texture_from_dmabuf( struct wl - gamescope::OwningRc vulkan_create_texture_from_bits( uint32_t width, uint32_t height, uint32_t contentWidth, uint32_t contentHeight, uint32_t drmFormat, CVulkanTexture::createFlags texCreateFlags, void *bits ); - gamescope::OwningRc vulkan_create_texture_from_wlr_buffer( struct wlr_buffer *buf, gamescope::OwningRc pBackendFb ); - --std::optional vulkan_composite( struct FrameInfo_t *frameInfo, gamescope::Rc pScreenshotTexture, bool partial, gamescope::Rc pOutputOverride = nullptr, bool increment = true, std::unique_ptr pInCommandBuffer = nullptr ); -+std::optional vulkan_composite( struct FrameInfo_t *frameInfo, gamescope::Rc pScreenshotTexture, bool partial, gamescope::Rc pOutputOverride = nullptr, bool increment = true, std::unique_ptr pInCommandBuffer = nullptr, bool applyRotation = false ); - void vulkan_wait( uint64_t ulSeqNo, bool bReset ); - gamescope::Rc vulkan_get_last_output_image( bool partial, bool defer ); - gamescope::Rc vulkan_acquire_screenshot_texture(uint32_t width, uint32_t height, bool exportable, uint32_t drmFormat, EStreamColorspace colorspace = k_EStreamColorspace_Unknown); -@@ -545,6 +545,9 @@ struct VulkanOutput_t - // NIS - gamescope::OwningRc nisScalerImage; - gamescope::OwningRc nisUsmImage; -+ -+ // Rotated -+ gamescope::OwningRc rotatedOutput; - }; - - -@@ -557,6 +560,7 @@ enum ShaderType { - SHADER_TYPE_RCAS, - SHADER_TYPE_NIS, - SHADER_TYPE_RGB_TO_NV12, -+ SHADER_TYPE_ROTATION, - - SHADER_TYPE_COUNT - }; -diff --git a/src/shaders/cs_rotation.comp b/src/shaders/cs_rotation.comp -new file mode 100644 -index 000000000000..1a47fd505748 ---- /dev/null -+++ b/src/shaders/cs_rotation.comp -@@ -0,0 +1,53 @@ -+#version 450 -+ -+#extension GL_GOOGLE_include_directive : require -+#extension GL_EXT_scalar_block_layout : require -+ -+#include "descriptor_set.h" -+ -+layout( -+ local_size_x = 8, -+ local_size_y = 8, -+ local_size_z = 1) in; -+ -+#include "blit_push_data.h" -+#include "composite.h" -+ -+vec4 sampleLayer(uint layerIdx, vec2 uv) { -+ if ((c_ycbcrMask & (1 << layerIdx)) != 0) -+ return sampleLayer(s_ycbcr_samplers[layerIdx], layerIdx, uv, false); -+ return sampleLayer(s_samplers[layerIdx], layerIdx, uv, true); -+} -+ -+void main() { -+ uvec2 coord = uvec2(gl_GlobalInvocationID.x, gl_GlobalInvocationID.y); -+ uvec2 outSize = imageSize(dst); -+ float outWidth = outSize.y; -+ float outHeight = outSize.x; -+ -+ vec2 uv = vec2(coord); -+ vec4 outputValue = vec4(255.0f); -+ -+ if (c_layerCount > 0) { -+ outputValue = sampleLayer(0, uv) * u_opacity[0]; -+ } -+ -+ for (int i = 1; i < c_layerCount; i++) { -+ vec4 layerColor = sampleLayer(i, uv); -+ // wl_surfaces come with premultiplied alpha, so that's them being -+ // premultiplied by layerColor.a. -+ // We need to then multiply that by the layer's opacity to get to our -+ // final premultiplied state. -+ // For the other side of things, we need to multiply by (1.0f - (layerColor.a * opacity)) -+ float opacity = u_opacity[i]; -+ float layerAlpha = opacity * layerColor.a; -+ outputValue = layerColor * opacity + outputValue * (1.0f - layerAlpha); -+ } -+ -+ outputValue.rgb = encodeOutputColor(outputValue.rgb); -+ -+ // Rotate the pixel coordinates counter-clockwise by 90 degrees -+ ivec2 rotatedCoord = ivec2(coord.y, outWidth - coord.x - 1); -+ -+ imageStore(dst, rotatedCoord, outputValue); -+} -diff --git a/src/wlserver.cpp b/src/wlserver.cpp -index 4d6e8de55ba4..a694b5245a97 100644 ---- a/src/wlserver.cpp -+++ b/src/wlserver.cpp -@@ -2793,6 +2793,11 @@ static void apply_touchscreen_orientation(double *x, double *y ) - break; - } - -+ if (g_bEnableDRMRotationShader) { -+ tx = 1.0 - *y; -+ ty = *x; -+ } -+ - *x = tx; - *y = ty; - } --- -2.51.0 - - -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: brainantifreeze -Date: Thu, 19 Dec 2024 09:16:15 +0000 -Subject: feat(nvidia): fix crash with current driver - -add layer env var to hide present wait ext - -see: https://github.com/ValveSoftware/gamescope/pull/1671 ---- - layer/VkLayer_FROG_gamescope_wsi.cpp | 20 +++++++++++++++++++- - 1 file changed, 19 insertions(+), 1 deletion(-) - -diff --git a/layer/VkLayer_FROG_gamescope_wsi.cpp b/layer/VkLayer_FROG_gamescope_wsi.cpp -index af0c2009930b..263cbc37bd88 100644 ---- a/layer/VkLayer_FROG_gamescope_wsi.cpp -+++ b/layer/VkLayer_FROG_gamescope_wsi.cpp -@@ -183,6 +183,16 @@ namespace GamescopeWSILayer { - return s_ensureMinImageCount; - } - -+ static bool getHidePresentWait() { -+ static bool s_hidePresentWait = []() -> bool { -+ if (auto hide = parseEnv("GAMESCOPE_WSI_HIDE_PRESENT_WAIT_EXT")) { -+ return *hide; -+ } -+ return false; -+ }(); -+ return s_hidePresentWait; -+ } -+ - // Taken from Mesa, licensed under MIT. - // - // No real reason to rewrite this code, -@@ -589,7 +599,11 @@ namespace GamescopeWSILayer { - createInfo.ppEnabledExtensionNames = enabledExts.data(); - - setenv("vk_xwayland_wait_ready", "false", 0); -- setenv("vk_khr_present_wait", "true", 0); -+ if (getHidePresentWait()) { -+ setenv("vk_khr_present_wait", "false", 0); -+ } else { -+ setenv("vk_khr_present_wait", "true", 0); -+ } - - VkResult result = pfnCreateInstanceProc(&createInfo, pAllocator, pInstance); - if (result != VK_SUCCESS) -@@ -899,6 +913,10 @@ namespace GamescopeWSILayer { - const vkroots::VkInstanceDispatch* pDispatch, - VkPhysicalDevice physicalDevice, - VkPhysicalDeviceFeatures2* pFeatures) { -+ if (getHidePresentWait()) { -+ fprintf(stderr, "[Gamescope WSI] Removing VkPhysicalDevicePresentWaitFeaturesKHR because GAMESCOPE_WSI_HIDE_PRESENT_WAIT_EXT is set\n"); -+ vkroots::RemoveFromChain(pFeatures); -+ } - pDispatch->GetPhysicalDeviceFeatures2(physicalDevice, pFeatures); - } - --- -2.51.0 - - -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Antheas Kapenekakis -Date: Sun, 23 Feb 2025 02:16:55 +0100 -Subject: feat(display): add asus z13 - ---- - .../00-gamescope/displays/asus.z13.lcd.lua | 57 +++++++++++++++++++ - 1 file changed, 57 insertions(+) - create mode 100644 scripts/00-gamescope/displays/asus.z13.lcd.lua - -diff --git a/scripts/00-gamescope/displays/asus.z13.lcd.lua b/scripts/00-gamescope/displays/asus.z13.lcd.lua -new file mode 100644 -index 000000000000..891f1ea9ca6f ---- /dev/null -+++ b/scripts/00-gamescope/displays/asus.z13.lcd.lua -@@ -0,0 +1,57 @@ -+gamescope.config.known_displays.asusz13_lcd = { -+ pretty_name = "Asus Z13 LCD", -+ dynamic_refresh_rates = { -+ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, -+ 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, -+ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, -+ 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, -+ 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, -+ 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, -+ 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, -+ 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, -+ 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180 -+ }, -+ -+ -- Detailed Timing Descriptors: -+ -- DTD 1: 1920x1200 120.002 Hz 8:5 151.683 kHz 315.500 MHz (172 mm x 107 mm) -+ -- Modeline "1920x1200_120.00" 315.500 1920 1968 2000 2080 1200 1254 1260 1264 -HSync -VSync -+ -- DTD 2: 1920x1200 60.001 Hz 8:5 75.841 kHz 157.750 MHz (172 mm x 107 mm) -+ -- Modeline "1920x1200_60.00" 157.750 1920 1968 2000 2080 1200 1254 1260 1264 -HSync -VSync -+ dynamic_modegen = function(base_mode, refresh) -+ debug("Generating mode "..refresh.."Hz with fixed pixel clock") -+ local vfps = { -+ 4886, 4751, 4620, 4495, 4375, 4259, 4147, 4040, 3936, 3836, 3739, 3646, -+ 3556, 3468, 3384, 3302, 3223, 3146, 3072, 2999, 2929, 2861, 2795, 2731, -+ 2668, 2608, 2548, 2491, 2435, 2380, 2327, 2275, 2225, 2175, 2127, 2080, -+ 2035, 1990, 1946, 1903, 1862, 1821, 1781, 1742, 1704, 1667, 1630, 1594, -+ 1559, 1525, 1491, 1458, 1426, 1395, 1364, 1333, 1303, 1274, 1245, 1217, -+ 1190, 1162, 1136, 1110, 1084, 1059, 1034, 1010, 986, 962, 939, 916, 894, -+ 872, 850, 829, 808, 787, 767, 747, 727, 708, 689, 670, 652, 634, 616, -+ 598, 581, 563, 547, 530, 513, 497, 481, 466, 450, 435, 420, 405, 390, -+ 376, 361, 347, 333, 320, 306, 293, 279, 266, 254, 241, 228, 216, 204, -+ 192, 180, 168, 156, 145, 133, 122, 111, 100, 89, 78, 68, 57, 47, 36, -+ 26, 16, 6 -+ } -+ local vfp = vfps[zero_index(refresh - 48)] -+ if vfp == nil then -+ warn("Couldn't do refresh "..refresh.." on ROG Ally") -+ return base_mode -+ end -+ -+ local mode = base_mode -+ -+ gamescope.modegen.adjust_front_porch(mode, vfp) -+ mode.vrefresh = gamescope.modegen.calc_vrefresh(mode) -+ -+ --debug(inspect(mode)) -+ return mode -+ end, -+ matches = function(display) -+ if display.vendor == "TMA" and display.model == "TL134ADXP03" then -+ debug("[z13] Matched vendor: "..display.vendor.." model: "..display.model.." product:"..display.product) -+ return 5000 -+ end -+ return -1 -+ end -+} -+debug("Registered Lenovo Legion Go S LCD as a known display") -\ No newline at end of file --- -2.51.0 - - -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Antheas Kapenekakis -Date: Wed, 23 Apr 2025 22:51:54 +0200 -Subject: feat(display): consider vporch to avoid timing issues - ---- - src/Backends/DRMBackend.cpp | 8 ++++++++ - src/main.cpp | 1 + - src/main.hpp | 1 + - src/vblankmanager.cpp | 6 +----- - 4 files changed, 11 insertions(+), 5 deletions(-) - -diff --git a/src/Backends/DRMBackend.cpp b/src/Backends/DRMBackend.cpp -index a099185e7cdc..d09030e0cf5e 100644 ---- a/src/Backends/DRMBackend.cpp -+++ b/src/Backends/DRMBackend.cpp -@@ -213,6 +213,11 @@ namespace gamescope - return nRefresh; - } - -+ static int32_t GetVblankNs(const drmModeModeInfo *mode) -+ { -+ return (mode->vsync_start - mode->vdisplay) * 1'000'000'000ll / mode->vrefresh / mode->vtotal; -+ } -+ - template - using CAutoDeletePtr = std::unique_ptr; - -@@ -3194,6 +3199,9 @@ bool drm_set_mode( struct drm_t *drm, const drmModeModeInfo *mode ) - g_nOutputRefresh = gamescope::GetModeRefresh( mode ); - g_nDynamicRefreshHz = 0; - -+ g_nsVsync = gamescope::GetVblankNs( mode ); -+ drm_log.infof("Vblank ns: %lu", g_nsVsync); -+ - update_drm_effective_orientations(drm, mode); - - switch ( drm->pConnector->GetCurrentOrientation() ) -diff --git a/src/main.cpp b/src/main.cpp -index cfd4cc11d179..0d88e3a2cded 100644 ---- a/src/main.cpp -+++ b/src/main.cpp -@@ -291,6 +291,7 @@ int g_nNestedDisplayIndex = 0; - uint32_t g_nOutputWidth = 0; - uint32_t g_nOutputHeight = 0; - int g_nOutputRefresh = 0; -+long g_nsVsync = 0; - bool g_bOutputHDREnabled = false; - - bool g_bFullscreen = false; -diff --git a/src/main.hpp b/src/main.hpp -index e7b857d44b0d..e6f8ff133689 100644 ---- a/src/main.hpp -+++ b/src/main.hpp -@@ -20,6 +20,7 @@ extern uint32_t g_nOutputWidth; - extern uint32_t g_nOutputHeight; - extern bool g_bForceRelativeMouse; - extern int g_nOutputRefresh; // mHz -+extern long g_nsVsync; // ns - extern bool g_bOutputHDREnabled; - extern bool g_bForceInternal; - extern bool g_bUseRotationShader; -diff --git a/src/vblankmanager.cpp b/src/vblankmanager.cpp -index f036d000a8e2..e388374c98ba 100644 ---- a/src/vblankmanager.cpp -+++ b/src/vblankmanager.cpp -@@ -95,8 +95,6 @@ namespace gamescope - - VBlankScheduleTime CVBlankTimer::CalcNextWakeupTime( bool bPreemptive ) - { -- const GamescopeScreenType eScreenType = GetBackend()->GetScreenType(); -- - const int nRefreshRate = GetRefresh(); - const uint64_t ulRefreshInterval = mHzToRefreshCycle( nRefreshRate ); - -@@ -113,9 +111,7 @@ namespace gamescope - // to not account for vertical front porch when dealing with the vblank - // drm_commit is going to target? - // Need to re-test that. -- const uint64_t ulRedZone = eScreenType == GAMESCOPE_SCREEN_TYPE_INTERNAL -- ? m_ulVBlankDrawBufferRedZone -- : std::min( m_ulVBlankDrawBufferRedZone, ( m_ulVBlankDrawBufferRedZone * 60'000 * nRefreshRate ) / 60'000 ); -+ const uint64_t ulRedZone = m_ulVBlankDrawBufferRedZone + g_nsVsync; - - const uint64_t ulDecayAlpha = m_ulVBlankRateOfDecayPercentage; // eg. 980 = 98% - --- -2.51.0 - - -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Antheas Kapenekakis -Date: Sun, 22 Jun 2025 15:18:19 +0200 -Subject: feat: add Legion Go S display with all framerates - ---- - .../displays/lenovo.legiongos.lcd.lua | 71 +++++++++++-------- - 1 file changed, 42 insertions(+), 29 deletions(-) - -diff --git a/scripts/00-gamescope/displays/lenovo.legiongos.lcd.lua b/scripts/00-gamescope/displays/lenovo.legiongos.lcd.lua -index 32f776c17f3d..057850f374f8 100644 ---- a/scripts/00-gamescope/displays/lenovo.legiongos.lcd.lua -+++ b/scripts/00-gamescope/displays/lenovo.legiongos.lcd.lua -@@ -1,44 +1,58 @@ --local legiongos_lcd_refresh_rates = { -- 52, 53, 54, 56, 57, 58, 59, -- 60, 61, 62, 63, 64, 65, 67, 68, 69, -- 70, -- 102, 103, 104, 105, 106, 107, 108, 109, -- 111, 112, 113, 114, 115, 116, 117, 118, 119, -- 120 --} -- - gamescope.config.known_displays.legiongos_lcd = { - pretty_name = "Lenovo Legion Go S LCD", - hdr = { -- -- The Legion Go S panel does not support HDR. -+ -- Setup some fallbacks for undocking with HDR, meant -+ -- for the internal panel. It does not support HDR. - supported = false, - force_enabled = false, -- eotf = gamescope.eotf.gamma22, -- max_content_light_level = 500, -- max_frame_average_luminance = 500, -- min_content_light_level = 0.5 -+ eotf = gamescope.eotf.gamma22, -+ max_content_light_level = 500, -+ max_frame_average_luminance = 500, -+ min_content_light_level = 0.5 - }, -- -- 60Hz has a different pixel clock than 120Hz in the EDID with VRR disabled, -- -- and the panel is not responsive to tuning VFPs. To cover the non-VRR -- -- limiter, an LCD Deck-style dynamic modegen method works best. -- dynamic_refresh_rates = legiongos_lcd_refresh_rates, -+ -+ dynamic_refresh_rates = { -+ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, -+ 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, -+ 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, -+ 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, -+ 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, -+ 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, -+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, -+ 118, 119, 120 -+ }, -+ -+ -- Detailed Timing Descriptors: -+ -- DTD 1: 1920x1200 120.002 Hz 8:5 151.683 kHz 315.500 MHz (172 mm x 107 mm) -+ -- Modeline "1920x1200_120.00" 315.500 1920 1968 2000 2080 1200 1254 1260 1264 -HSync -VSync -+ -- DTD 2: 1920x1200 60.001 Hz 8:5 75.841 kHz 157.750 MHz (172 mm x 107 mm) -+ -- Modeline "1920x1200_60.00" 157.750 1920 1968 2000 2080 1200 1254 1260 1264 -HSync -VSync - dynamic_modegen = function(base_mode, refresh) -- debug("Generating mode "..refresh.."Hz for Lenovo Legion Go S LCD") -- local mode = base_mode -+ debug("Generating mode "..refresh.."Hz with fixed pixel clock") -+ local vfps = { -+ 1950, 1885, 1824, 1764, 1707, 1652, 1599, 1548, 1499, 1451, 1405, -+ 1361, 1318, 1277, 1237, 1198, 1160, 1124, 1088, 1054, 1021, 988, -+ 957, 927, 897, 868, 840, 813, 786, 760, 735, 710, 686, 663, 640, -+ 618, 596, 575, 554, 534, 514, 495, 476, 457, 439, 421, 404, 387, -+ 370, 354, 338, 322, 307, 292, 277, 263, 249, 235, 221, 208, 195, -+ 182, 169, 157, 145, 133, 121, 109, 98, 87, 76, 65, 54 -+ } -+ local vfp = vfps[zero_index(refresh - 48)] -+ if vfp == nil then -+ warn("Couldn't do refresh "..refresh.." on ROG Ally") -+ return base_mode -+ end - -- -- These are only tuned for 1920x1200. -- gamescope.modegen.set_resolution(mode, 1920, 1200) -+ local mode = base_mode - -- -- hfp, hsync, hbp -- gamescope.modegen.set_h_timings(mode, 48, 36, 80) -- -- vfp, vsync, vbp -- gamescope.modegen.set_v_timings(mode, 54, 6, 4) -- mode.clock = gamescope.modegen.calc_max_clock(mode, refresh) -+ gamescope.modegen.adjust_front_porch(mode, vfp) - mode.vrefresh = gamescope.modegen.calc_vrefresh(mode) - - --debug(inspect(mode)) - return mode - end, -+ -+ - matches = function(display) - local lcd_types = { - { vendor = "CSW", model = "PN8007QB1-1", product = 0x0800 }, -@@ -56,5 +70,4 @@ gamescope.config.known_displays.legiongos_lcd = { - return -1 - end - } --debug("Registered Lenovo Legion Go S LCD as a known display") ----debug(inspect(gamescope.config.known_displays.legiongos_lcd)) -+debug("Registered Lenovo Legion Go S LCD as a known display") -\ No newline at end of file --- -2.51.0 - - -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Antheas Kapenekakis -Date: Fri, 29 Aug 2025 16:45:39 +0200 -Subject: feat: add DPMS support through an Atom - ---- - src/Backends/DRMBackend.cpp | 15 ++++++++++++++- - src/rendervulkan.hpp | 2 ++ - src/steamcompmgr.cpp | 18 +++++++++++++++--- - src/xwayland_ctx.hpp | 1 + - 4 files changed, 32 insertions(+), 4 deletions(-) - -diff --git a/src/Backends/DRMBackend.cpp b/src/Backends/DRMBackend.cpp -index d09030e0cf5e..2861f30aaf66 100644 ---- a/src/Backends/DRMBackend.cpp -+++ b/src/Backends/DRMBackend.cpp -@@ -2827,6 +2827,9 @@ int drm_prepare( struct drm_t *drm, bool async, const struct FrameInfo_t *frameI - drm->needs_modeset = true; - } - -+ if (drm->pCRTC && drm->pCRTC->GetProperties().ACTIVE->GetCurrentValue() != !frameInfo->dpms) -+ drm->needs_modeset = true; -+ - drm_colorspace uColorimetry = DRM_MODE_COLORIMETRY_DEFAULT; - - const bool bWantsHDR10 = g_bOutputHDREnabled && frameInfo->outputEncodingEOTF == EOTF_PQ; -@@ -2894,6 +2897,9 @@ int drm_prepare( struct drm_t *drm, bool async, const struct FrameInfo_t *frameI - needs_modeset = true; - } - -+ if ( frameInfo->dpms ) -+ bSleep = true; -+ - if ( !bSleep ) - { - if ( drm->pCRTC != nullptr ) -@@ -2973,7 +2979,13 @@ int drm_prepare( struct drm_t *drm, bool async, const struct FrameInfo_t *frameI - - if ( drm->pCRTC && !bSleep ) - { -- drm->pCRTC->GetProperties().ACTIVE->SetPendingValue( drm->req, 1u, true ); -+ if ( frameInfo->dpms ) { -+ // We can't disable a CRTC if it's already disabled -+ if (drm->pCRTC->GetProperties().ACTIVE->GetCurrentValue() != 0) -+ drm->pCRTC->GetProperties().ACTIVE->SetPendingValue(drm->req, 0, true); -+ } -+ else -+ drm->pCRTC->GetProperties().ACTIVE->SetPendingValue( drm->req, 1u, true ); - drm->pCRTC->GetProperties().MODE_ID->SetPendingValue( drm->req, drm->pending.mode_id ? drm->pending.mode_id->GetBlobValue() : 0lu, true ); - - if ( drm->pCRTC->GetProperties().VRR_ENABLED ) -@@ -3594,6 +3606,7 @@ namespace gamescope - - FrameInfo_t presentCompFrameInfo = {}; - presentCompFrameInfo.allowVRR = pFrameInfo->allowVRR; -+ presentCompFrameInfo.dpms = pFrameInfo->dpms; - presentCompFrameInfo.outputEncodingEOTF = pFrameInfo->outputEncodingEOTF; - - if ( bNeedsFullComposite ) -diff --git a/src/rendervulkan.hpp b/src/rendervulkan.hpp -index 93a4a6027f55..0833fc46ffd7 100644 ---- a/src/rendervulkan.hpp -+++ b/src/rendervulkan.hpp -@@ -292,6 +292,8 @@ struct FrameInfo_t - bool applyOutputColorMgmt; // drm only - EOTF outputEncodingEOTF; - -+ bool dpms; -+ - int layerCount; - struct Layer_t - { -diff --git a/src/steamcompmgr.cpp b/src/steamcompmgr.cpp -index 07e45b19fc61..f25f810f9387 100644 ---- a/src/steamcompmgr.cpp -+++ b/src/steamcompmgr.cpp -@@ -174,6 +174,8 @@ bool g_bSteamIsActiveWindow = false; - bool g_bForceInternal = false; - bool b_bForceFrameLimit = false; - bool g_bRefreshHalveEnable = false; -+bool g_bDPMS = false; -+bool g_bDPMS_set = false; - - namespace gamescope - { -@@ -2421,7 +2423,7 @@ gamescope::ConVar cv_paint_cursor_plane{ "paint_cursor_plane", true }; - gamescope::ConVar cv_paint_mura_plane{ "paint_mura_plane", true }; - - static void --paint_all( global_focus_t *pFocus, bool async ) -+paint_all(global_focus_t *pFocus, bool async, bool dpms) - { - if ( !pFocus ) - return; -@@ -2479,6 +2481,7 @@ paint_all( global_focus_t *pFocus, bool async ) - frameInfo.outputEncodingEOTF = g_ColorMgmt.pending.outputEncodingEOTF; - frameInfo.allowVRR = cv_adaptive_sync; - frameInfo.bFadingOut = fadingOut; -+ frameInfo.dpms = dpms; - - // If the window we'd paint as the base layer is the streaming client, - // find the video underlay and put it up first in the scenegraph -@@ -6234,6 +6237,10 @@ handle_property_notify(xwayland_ctx_t *ctx, XPropertyEvent *ev) - { - g_bRefreshHalveEnable = !!get_prop( ctx, ctx->root, ctx->atoms.gamescopeFrameHalveAtom, 0 ); - } -+ if (ev->atom == ctx->atoms.gamescopeDPMS) -+ { -+ g_bDPMS = !!get_prop(ctx, ctx->root, ctx->atoms.gamescopeDPMS, 0); -+ } - } - - static int -@@ -7470,6 +7477,7 @@ void init_xwayland_ctx(uint32_t serverId, gamescope_xwayland_server_t *xwayland_ - ctx->atoms.targets = XInternAtom(ctx->dpy, "TARGETS", false); - - ctx->atoms.gamescopeFrameHalveAtom = XInternAtom( ctx->dpy, "GAMESCOPE_STEAMUI_HALFHZ", false );; -+ ctx->atoms.gamescopeDPMS = XInternAtom(ctx->dpy, "GAMESCOPE_DPMS", false); - - ctx->root_width = DisplayWidth(ctx->dpy, ctx->scr); - ctx->root_height = DisplayHeight(ctx->dpy, ctx->scr); -@@ -8611,10 +8619,14 @@ steamcompmgr_main(int argc, char **argv) - bShouldPaint = false; - } - -+ if ( g_bDPMS != g_bDPMS_set && vblank ) -+ bShouldPaint = true; -+ - if ( bShouldPaint ) - { -- paint_all( pPaintFocus, eFlipType == FlipType::Async ); -- -+ paint_all( pPaintFocus, eFlipType == FlipType::Async, g_bDPMS ); -+ -+ g_bDPMS_set = g_bDPMS; - bPainted = true; - } - } -diff --git a/src/xwayland_ctx.hpp b/src/xwayland_ctx.hpp -index e4eec9fa0c48..2347cbb3340c 100644 ---- a/src/xwayland_ctx.hpp -+++ b/src/xwayland_ctx.hpp -@@ -248,6 +248,7 @@ struct xwayland_ctx_t final : public gamescope::IWaitable - Atom targets; - - Atom gamescopeFrameHalveAtom; -+ Atom gamescopeDPMS; - } atoms; - - bool HasQueuedEvents(); --- -2.51.0 - - -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Antheas Kapenekakis -Date: Sun, 29 Jun 2025 13:16:59 +0200 -Subject: update misyltoad urls - ---- - .gitmodules | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/.gitmodules b/.gitmodules -index ec7d4e430ee8..17ba783f809b 100644 ---- a/.gitmodules -+++ b/.gitmodules -@@ -1,12 +1,12 @@ - [submodule "subprojects/wlroots"] - path = subprojects/wlroots -- url = https://github.com/Joshua-Ashton/wlroots.git -+ url = https://github.com/misyltoad/wlroots.git - [submodule "subprojects/libliftoff"] - path = subprojects/libliftoff - url = https://gitlab.freedesktop.org/emersion/libliftoff.git - [submodule "subprojects/vkroots"] - path = subprojects/vkroots -- url = https://github.com/Joshua-Ashton/vkroots -+ url = https://github.com/misyltoad/vkroots - [submodule "subprojects/libdisplay-info"] - path = subprojects/libdisplay-info - url = https://gitlab.freedesktop.org/emersion/libdisplay-info -@@ -15,7 +15,7 @@ - url = https://github.com/ValveSoftware/openvr.git - [submodule "src/reshade"] - path = src/reshade -- url = https://github.com/Joshua-Ashton/reshade -+ url = https://github.com/misyltoad/reshade - [submodule "thirdparty/SPIRV-Headers"] - path = thirdparty/SPIRV-Headers - url = https://github.com/KhronosGroup/SPIRV-Headers/ --- -2.51.0 - - -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Antheas Kapenekakis -Date: Fri, 29 Aug 2025 15:31:34 +0200 -Subject: fix: drain timer fds to avoid epoll_wait returning constantly - -Currently, if the VBlank or VRR timers expire without being rescheduled, -their FDs remain readable, causing epoll_wait to return instantly.|Drain -the FDs in the OnPollIn handlers to prevent this. ---- - src/waitable.h | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/src/waitable.h b/src/waitable.h -index 30edf8f52deb..36ac61ee7233 100644 ---- a/src/waitable.h -+++ b/src/waitable.h -@@ -182,6 +182,11 @@ namespace gamescope - ArmTimer( 0ul, false ); - } - -+ void OnPollIn() -+ { -+ IWaitable::Drain(m_nFD); -+ } -+ - int GetFD() - { - return m_nFD; -@@ -200,6 +205,7 @@ namespace gamescope - - void OnPollIn() final - { -+ ITimerWaitable::OnPollIn(); - m_fnPollFunc(); - } - private: --- -2.51.0 - - -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Antheas Kapenekakis -Date: Sat, 30 Aug 2025 15:12:39 +0200 -Subject: fix(intel): allow night mode and color adjustment via compositing - ---- - src/Backends/DRMBackend.cpp | 11 +++++++++++ - 1 file changed, 11 insertions(+) - -diff --git a/src/Backends/DRMBackend.cpp b/src/Backends/DRMBackend.cpp -index 2861f30aaf66..3c4e5907b2a9 100644 ---- a/src/Backends/DRMBackend.cpp -+++ b/src/Backends/DRMBackend.cpp -@@ -3481,6 +3481,17 @@ namespace gamescope - bNeedsFullComposite |= pFrameInfo->bFadingOut; - bNeedsFullComposite |= !g_reshade_effect.empty(); - -+ if ( !SupportsColorManagement() ) { -+ // Fuzzy match default values to see if we need to composite -+ bNeedsFullComposite |= g_ColorMgmt.pending.nightmode.amount != 0.0f; -+ bNeedsFullComposite |= g_ColorMgmt.pending.outputVirtualWhite.x > 0 && -+ abs(g_ColorMgmt.pending.outputVirtualWhite.x - 0.3127f) > 0.001f; -+ bNeedsFullComposite |= g_ColorMgmt.pending.outputVirtualWhite.y > 0 && -+ abs(g_ColorMgmt.pending.outputVirtualWhite.y - 0.3290f) > 0.001f; -+ bNeedsFullComposite |= g_ColorMgmt.pending.sdrGamutWideness >= 0 && -+ abs(g_ColorMgmt.pending.sdrGamutWideness - 0.5f) > 0.02f; -+ } -+ - if ( g_bOutputHDREnabled ) - { - bNeedsFullComposite |= g_bHDRItmEnable; --- -2.51.0 - - -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Antheas Kapenekakis -Date: Sat, 30 Aug 2025 15:32:00 +0200 -Subject: fix(hdr): disable PQ on handheld internal displays - -For some reason, the PQ transfer function does not work on current -handhelds. So use gamma 22 instead. This allows us to skip creating -configs and read the HDR metadata from the displays. ---- - src/Backends/DRMBackend.cpp | 8 +++++++- - 1 file changed, 7 insertions(+), 1 deletion(-) - -diff --git a/src/Backends/DRMBackend.cpp b/src/Backends/DRMBackend.cpp -index 3c4e5907b2a9..83da1bfe231b 100644 ---- a/src/Backends/DRMBackend.cpp -+++ b/src/Backends/DRMBackend.cpp -@@ -2465,7 +2465,13 @@ namespace gamescope - pHDRStaticMetadata && pHDRStaticMetadata->eotfs && pHDRStaticMetadata->eotfs->pq ) - { - m_Mutable.HDR.bExposeHDRSupport = true; -- m_Mutable.HDR.eOutputEncodingEOTF = EOTF_PQ; -+ if (GetScreenType() == GAMESCOPE_SCREEN_TYPE_INTERNAL) -+ // Current handheld internal displays have issues -+ // with PQ, e.g., Ayaneo 3, Steam Deck etc. -+ // Use Gamma 2.2 as the safest option for now. -+ m_Mutable.HDR.eOutputEncodingEOTF = EOTF_Gamma22; -+ else -+ m_Mutable.HDR.eOutputEncodingEOTF = EOTF_PQ; - m_Mutable.HDR.uMaxContentLightLevel = - pHDRStaticMetadata->desired_content_max_luminance - ? nits_to_u16( pHDRStaticMetadata->desired_content_max_luminance ) --- -2.51.0 - - -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Antheas Kapenekakis -Date: Fri, 29 Aug 2025 17:17:06 +0200 -Subject: chore: use system glm, stb - ---- - meson.build | 6 ++---- - 1 file changed, 2 insertions(+), 4 deletions(-) - -diff --git a/meson.build b/meson.build -index 5e5bd4cdc7c4..802e4a052bcd 100644 ---- a/meson.build -+++ b/meson.build -@@ -50,10 +50,8 @@ dep_x11 = dependency('x11') - dep_wayland = dependency('wayland-client') - vulkan_dep = dependency('vulkan') - --glm_proj = subproject('glm') --glm_dep = glm_proj.get_variable('glm_dep') --stb_proj = subproject('stb') --stb_dep = stb_proj.get_variable('stb_dep') -+glm_dep = dependency('glm') -+stb_dep = dependency('stb') - - if get_option('enable_openvr_support') - openvr_dep = dependency('openvr', version: '>= 2.7', required : false) --- -2.51.0 - - -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Antheas Kapenekakis -Date: Fri, 29 Aug 2025 19:04:17 +0200 -Subject: Revert "mangoapp: plumb engineName" - -This reverts commit b9f20436d1bdf7bd8212541817b254e1b4c8eb1e. ---- - layer/VkLayer_FROG_gamescope_wsi.cpp | 9 +-------- - protocol/gamescope-swapchain.xml | 1 - - src/WaylandServer/WaylandServerLegacy.h | 1 - - src/mangoapp.cpp | 6 ------ - src/steamcompmgr.cpp | 6 ------ - src/steamcompmgr.hpp | 1 - - src/steamcompmgr_shared.hpp | 2 -- - src/wlserver.cpp | 4 +--- - 8 files changed, 2 insertions(+), 28 deletions(-) - -diff --git a/layer/VkLayer_FROG_gamescope_wsi.cpp b/layer/VkLayer_FROG_gamescope_wsi.cpp -index 263cbc37bd88..d1835a4c7487 100644 ---- a/layer/VkLayer_FROG_gamescope_wsi.cpp -+++ b/layer/VkLayer_FROG_gamescope_wsi.cpp -@@ -404,7 +404,6 @@ namespace GamescopeWSILayer { - struct GamescopeInstanceData { - wl_display* display; - uint32_t appId = 0; -- std::string engineName; - GamescopeLayerClient::Flags flags = 0; - }; - VKROOTS_DEFINE_SYNCHRONIZED_MAP_TYPE(GamescopeInstance, VkInstance); -@@ -631,14 +630,9 @@ namespace GamescopeWSILayer { - { - uint32_t appId = clientAppId(); - -- std::string engineName; -- if (pCreateInfo->pApplicationInfo && pCreateInfo->pApplicationInfo->pEngineName) -- engineName = pCreateInfo->pApplicationInfo->pEngineName; -- - auto state = GamescopeInstance::create(*pInstance, GamescopeInstanceData { - .display = display, - .appId = appId, -- .engineName = engineName, - .flags = defaultLayerClientFlags(pCreateInfo->pApplicationInfo, appId), - }); - -@@ -1275,8 +1269,7 @@ namespace GamescopeWSILayer { - uint32_t(pCreateInfo->imageColorSpace), - uint32_t(pCreateInfo->compositeAlpha), - uint32_t(pCreateInfo->preTransform), -- uint32_t(pCreateInfo->clipped), -- gamescopeInstance->engineName.c_str()); -+ uint32_t(pCreateInfo->clipped)); - - return VK_SUCCESS; - } -diff --git a/protocol/gamescope-swapchain.xml b/protocol/gamescope-swapchain.xml -index 58ac8463b752..91be3fc02d67 100644 ---- a/protocol/gamescope-swapchain.xml -+++ b/protocol/gamescope-swapchain.xml -@@ -89,7 +89,6 @@ - - - -- - - - -diff --git a/src/WaylandServer/WaylandServerLegacy.h b/src/WaylandServer/WaylandServerLegacy.h -index 63ee2ca17e8c..0facb7dc8b1e 100644 ---- a/src/WaylandServer/WaylandServerLegacy.h -+++ b/src/WaylandServer/WaylandServerLegacy.h -@@ -29,7 +29,6 @@ struct wlserver_vk_swapchain_feedback - VkCompositeAlphaFlagBitsKHR vk_composite_alpha; - VkSurfaceTransformFlagBitsKHR vk_pre_transform; - VkBool32 vk_clipped; -- std::shared_ptr vk_engine_name; - - std::shared_ptr hdr_metadata_blob; - }; -diff --git a/src/mangoapp.cpp b/src/mangoapp.cpp -index d8e1ce7edafe..91e01bc275c6 100644 ---- a/src/mangoapp.cpp -+++ b/src/mangoapp.cpp -@@ -31,7 +31,6 @@ struct mangoapp_msg_v1 { - uint16_t displayRefresh; - bool bAppWantsHDR : 1; - bool bSteamFocused : 1; -- char engineName[40]; - - // WARNING: Always ADD fields, never remove or repurpose fields - } __attribute__((packed)) mangoapp_msg_v1; -@@ -61,11 +60,6 @@ void mangoapp_update( uint64_t visible_frametime, uint64_t app_frametime_ns, uin - mangoapp_msg_v1.displayRefresh = (uint16_t) gamescope::ConvertmHzToHz( g_nOutputRefresh ); - mangoapp_msg_v1.bAppWantsHDR = g_bAppWantsHDRCached; - mangoapp_msg_v1.bSteamFocused = g_focusedBaseAppId == 769; -- memset(mangoapp_msg_v1.engineName, 0, sizeof(mangoapp_msg_v1.engineName)); -- if (focusWindow_engine) -- focusWindow_engine->copy(mangoapp_msg_v1.engineName, sizeof(mangoapp_msg_v1.engineName) / sizeof(char)); -- else -- std::string("gamescope").copy(mangoapp_msg_v1.engineName, sizeof(mangoapp_msg_v1.engineName) / sizeof(char)); - msgsnd(msgid, &mangoapp_msg_v1, sizeof(mangoapp_msg_v1) - sizeof(mangoapp_msg_v1.hdr.msg_type), IPC_NOWAIT); - } - -diff --git a/src/steamcompmgr.cpp b/src/steamcompmgr.cpp -index f25f810f9387..d5a6a4af51df 100644 ---- a/src/steamcompmgr.cpp -+++ b/src/steamcompmgr.cpp -@@ -1026,7 +1026,6 @@ int g_BlurRadius = 5; - unsigned int g_BlurFadeStartTime = 0; - - pid_t focusWindow_pid; --std::shared_ptr focusWindow_engine = nullptr; - - focus_t g_steamcompmgr_xdg_focus; - std::vector> g_steamcompmgr_xdg_wins; -@@ -6396,9 +6395,6 @@ bool handle_done_commit( steamcompmgr_win_t *w, xwayland_ctx_t *ctx, uint64_t co - uint32_t j; - for ( j = 0; j < w->commit_queue.size(); j++ ) - { -- if (w->commit_queue[ j ]->feedback.has_value()) -- w->engineName = w->commit_queue[ j ]->feedback->vk_engine_name; -- - if ( w->commit_queue[ j ]->commitID == commitID ) - { - gpuvis_trace_printf( "commit %lu done", w->commit_queue[ j ]->commitID ); -@@ -6443,8 +6439,6 @@ bool handle_done_commit( steamcompmgr_win_t *w, xwayland_ctx_t *ctx, uint64_t co - if ( !cv_paint_debug_pause_base_plane ) - g_HeldCommits[ HELD_COMMIT_BASE ] = w->commit_queue[ j ]; - hasRepaint = true; -- -- focusWindow_engine = w->engineName; - } - - if ( w == pFocus->overrideWindow ) -diff --git a/src/steamcompmgr.hpp b/src/steamcompmgr.hpp -index 98e927296483..2f489a26a0aa 100644 ---- a/src/steamcompmgr.hpp -+++ b/src/steamcompmgr.hpp -@@ -144,7 +144,6 @@ struct wlserver_x11_surface_info *lookup_x11_surface_info_from_xid( gamescope_xw - - extern gamescope::VBlankTime g_SteamCompMgrVBlankTime; - extern pid_t focusWindow_pid; --extern std::shared_ptr focusWindow_engine; - - void init_xwayland_ctx(uint32_t serverId, gamescope_xwayland_server_t *xwayland_server); - void gamescope_set_selection(std::string contents, GamescopeSelection eSelection); -diff --git a/src/steamcompmgr_shared.hpp b/src/steamcompmgr_shared.hpp -index 5a2198d97bed..4027013148b2 100644 ---- a/src/steamcompmgr_shared.hpp -+++ b/src/steamcompmgr_shared.hpp -@@ -149,8 +149,6 @@ struct steamcompmgr_win_t { - bool unlockedForFrameCallback = false; - bool receivedDoneCommit = false; - -- std::shared_ptr engineName; -- - std::vector< gamescope::Rc > commit_queue; - std::shared_ptr> icon; - -diff --git a/src/wlserver.cpp b/src/wlserver.cpp -index a694b5245a97..42c6bc0c2430 100644 ---- a/src/wlserver.cpp -+++ b/src/wlserver.cpp -@@ -862,8 +862,7 @@ static void gamescope_swapchain_swapchain_feedback( struct wl_client *client, st - uint32_t vk_colorspace, - uint32_t vk_composite_alpha, - uint32_t vk_pre_transform, -- uint32_t vk_clipped, -- const char *vk_engine_name) -+ uint32_t vk_clipped) - { - wlserver_wl_surface_info *wl_info = (wlserver_wl_surface_info *)wl_resource_get_user_data( resource ); - if ( wl_info ) -@@ -875,7 +874,6 @@ static void gamescope_swapchain_swapchain_feedback( struct wl_client *client, st - .vk_composite_alpha = VkCompositeAlphaFlagBitsKHR(vk_composite_alpha), - .vk_pre_transform = VkSurfaceTransformFlagBitsKHR(vk_pre_transform), - .vk_clipped = VkBool32(vk_clipped), -- .vk_engine_name = std::make_shared(vk_engine_name), - .hdr_metadata_blob = nullptr, - }); - } --- -2.51.0 - - -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Antheas Kapenekakis -Date: Sun, 31 Aug 2025 20:55:02 +0200 -Subject: fix: separate blend tf to its own check - -Currently, blend tf and other color mgmt checks are combined into one -check. However, new hardware does not support the blend tf for a plane, -causing loss of all color mgmt features. Separate the checks so that -color mgmt can still be used on such hardware. - -Also, add the other function checks to drm_supports_color_mgmt so that -there are no edge cases where only subproperties are supported. ---- - src/Backends/DRMBackend.cpp | 40 +++++++++++++++++++++++++++++-------- - 1 file changed, 32 insertions(+), 8 deletions(-) - -diff --git a/src/Backends/DRMBackend.cpp b/src/Backends/DRMBackend.cpp -index 83da1bfe231b..c1a714569bf2 100644 ---- a/src/Backends/DRMBackend.cpp -+++ b/src/Backends/DRMBackend.cpp -@@ -559,6 +559,7 @@ extern std::string g_reshade_effect; - - bool drm_update_color_mgmt(struct drm_t *drm); - bool drm_supports_color_mgmt(struct drm_t *drm); -+bool drm_supports_srgb_to_pq(struct drm_t *drm); - bool drm_set_connector( struct drm_t *drm, gamescope::CDRMConnector *conn ); - - struct drm_color_ctm2 { -@@ -2691,13 +2692,15 @@ drm_prepare_liftoff( struct drm_t *drm, const struct FrameInfo_t *frameInfo, boo - } - } - -- if ( drm_supports_color_mgmt( drm ) ) -+ if ( drm_supports_srgb_to_pq( drm ) ) - { - if (!cv_drm_debug_disable_blend_tf && !bSinglePlane) - liftoff_layer_set_property( drm->lo_layers[ i ], "AMD_PLANE_BLEND_TF", drm->pending.output_tf ); - else -- liftoff_layer_set_property( drm->lo_layers[ i ], "AMD_PLANE_BLEND_TF", AMDGPU_TRANSFER_FUNCTION_DEFAULT ); -- -+ liftoff_layer_set_property( drm->lo_layers[ i ], "AMD_PLANE_BLEND_TF", AMDGPU_TRANSFER_FUNCTION_DEFAULT ); -+ } -+ if ( drm_supports_color_mgmt( drm ) ) -+ { - if (!cv_drm_debug_disable_ctm && frameInfo->layers[i].ctm != nullptr) - liftoff_layer_set_property( drm->lo_layers[ i ], "AMD_PLANE_CTM", frameInfo->layers[i].ctm->GetBlobValue() ); - else -@@ -2712,13 +2715,16 @@ drm_prepare_liftoff( struct drm_t *drm, const struct FrameInfo_t *frameInfo, boo - liftoff_layer_unset_property( drm->lo_layers[ i ], "COLOR_ENCODING" ); - liftoff_layer_unset_property( drm->lo_layers[ i ], "COLOR_RANGE" ); - -+ if ( drm_supports_srgb_to_pq( drm ) ) -+ { -+ liftoff_layer_set_property( drm->lo_layers[ i ], "AMD_PLANE_BLEND_TF", AMDGPU_TRANSFER_FUNCTION_DEFAULT ); -+ } - if ( drm_supports_color_mgmt( drm ) ) - { - liftoff_layer_set_property( drm->lo_layers[ i ], "AMD_PLANE_DEGAMMA_TF", AMDGPU_TRANSFER_FUNCTION_DEFAULT ); - liftoff_layer_set_property( drm->lo_layers[ i ], "AMD_PLANE_SHAPER_LUT", 0 ); - liftoff_layer_set_property( drm->lo_layers[ i ], "AMD_PLANE_SHAPER_TF", 0 ); - liftoff_layer_set_property( drm->lo_layers[ i ], "AMD_PLANE_LUT3D", 0 ); -- liftoff_layer_set_property( drm->lo_layers[ i ], "AMD_PLANE_BLEND_TF", AMDGPU_TRANSFER_FUNCTION_DEFAULT ); - liftoff_layer_set_property( drm->lo_layers[ i ], "AMD_PLANE_CTM", 0 ); - } - } -@@ -2870,7 +2876,7 @@ int drm_prepare( struct drm_t *drm, bool async, const struct FrameInfo_t *frameI - - bool bSinglePlane = frameInfo->layerCount < 2 && cv_drm_single_plane_optimizations; - -- if ( drm_supports_color_mgmt( &g_DRM ) && frameInfo->applyOutputColorMgmt ) -+ if ( drm_supports_srgb_to_pq( &g_DRM ) && frameInfo->applyOutputColorMgmt ) - { - if ( !cv_drm_debug_disable_output_tf && !bSinglePlane ) - { -@@ -3371,7 +3377,20 @@ bool drm_supports_color_mgmt(struct drm_t *drm) - if ( !drm->pPrimaryPlane ) - return false; - -- return drm->pPrimaryPlane->GetProperties().AMD_PLANE_CTM.has_value() && drm->pPrimaryPlane->GetProperties().AMD_PLANE_BLEND_TF.has_value(); -+ return drm->pPrimaryPlane->GetProperties().AMD_PLANE_CTM.has_value() && // dm->dc->caps.color.mpc.gamut_remap -+ drm->pPrimaryPlane->GetProperties().AMD_PLANE_SHAPER_LUT.has_value() && // dpp_color_caps.hw_3d_lut -+ drm->pPrimaryPlane->GetProperties().AMD_PLANE_DEGAMMA_TF.has_value(); // dpp_color_caps.dgam_ram || dpp_color_caps.gamma_corr -+} -+ -+bool drm_supports_srgb_to_pq(struct drm_t *drm) -+{ -+ if ( g_bForceDisableColorMgmt ) -+ return false; -+ -+ if ( !drm->pPrimaryPlane ) -+ return false; -+ -+ return drm->pPrimaryPlane->GetProperties().AMD_PLANE_BLEND_TF.has_value(); // dpp_color_caps.ogam_ram - } - - std::span drm_get_valid_refresh_rates( struct drm_t *drm ) -@@ -3501,12 +3520,12 @@ namespace gamescope - if ( g_bOutputHDREnabled ) - { - bNeedsFullComposite |= g_bHDRItmEnable; -- if ( !SupportsColorManagement() ) -+ if ( !SupportsSRGBtoPQ() ) - bNeedsFullComposite |= ( pFrameInfo->layerCount > 1 || pFrameInfo->layers[0].colorspace != GAMESCOPE_APP_TEXTURE_COLORSPACE_HDR10_PQ ); - } - else - { -- if ( !SupportsColorManagement() ) -+ if ( !SupportsSRGBtoPQ() ) - bNeedsFullComposite |= ColorspaceIsHDR( pFrameInfo->layers[0].colorspace ); - } - -@@ -3915,6 +3934,11 @@ namespace gamescope - return drm_supports_color_mgmt( &g_DRM ); - } - -+ bool SupportsSRGBtoPQ() const -+ { -+ return drm_supports_srgb_to_pq( &g_DRM ); -+ } -+ - int Commit( const FrameInfo_t *pFrameInfo ) - { - drm_t *drm = &g_DRM; --- -2.51.0 - - -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Colin Kinloch -Date: Fri, 1 Aug 2025 16:06:23 +0100 -Subject: WaylandBackend: Check features before using color management - -This stops compositors lacking required features, transfer functions or -primaries from triggering protocol errors on start. ---- - src/Backends/WaylandBackend.cpp | 32 ++++++++++++++++++-------------- - 1 file changed, 18 insertions(+), 14 deletions(-) - -diff --git a/src/Backends/WaylandBackend.cpp b/src/Backends/WaylandBackend.cpp -index 664ed0eac070..1171980ba61d 100644 ---- a/src/Backends/WaylandBackend.cpp -+++ b/src/Backends/WaylandBackend.cpp -@@ -1990,13 +1990,14 @@ namespace gamescope - return false; - if ( !Algorithm::Contains( m_WPColorManagerFeatures.eFeatures, WP_COLOR_MANAGER_V1_FEATURE_SET_LUMINANCES ) ) - return false; -+ if ( !Algorithm::Contains( m_WPColorManagerFeatures.eFeatures, WP_COLOR_MANAGER_V1_FEATURE_WINDOWS_SCRGB ) ) -+ return false; - - // Transfer Functions - if ( !Algorithm::Contains( m_WPColorManagerFeatures.eTransferFunctions, WP_COLOR_MANAGER_V1_TRANSFER_FUNCTION_SRGB ) ) - return false; - if ( !Algorithm::Contains( m_WPColorManagerFeatures.eTransferFunctions, WP_COLOR_MANAGER_V1_TRANSFER_FUNCTION_ST2084_PQ ) ) - return false; -- // TODO: Need scRGB - - // Primaries - if ( !Algorithm::Contains( m_WPColorManagerFeatures.ePrimaries, WP_COLOR_MANAGER_V1_PRIMARIES_SRGB ) ) -@@ -2006,6 +2007,22 @@ namespace gamescope - - return true; - }(); -+ -+ if ( m_WPColorManagerFeatures.bSupportsGamescopeColorManagement ) -+ { -+ // HDR10. -+ { -+ wp_image_description_creator_params_v1 *pParams = wp_color_manager_v1_create_parametric_creator( m_pWPColorManager ); -+ wp_image_description_creator_params_v1_set_primaries_named( pParams, WP_COLOR_MANAGER_V1_PRIMARIES_BT2020 ); -+ wp_image_description_creator_params_v1_set_tf_named( pParams, WP_COLOR_MANAGER_V1_TRANSFER_FUNCTION_ST2084_PQ ); -+ m_pWPImageDescriptions[ GAMESCOPE_APP_TEXTURE_COLORSPACE_HDR10_PQ ] = wp_image_description_creator_params_v1_create( pParams ); -+ } -+ -+ // scRGB -+ { -+ m_pWPImageDescriptions[ GAMESCOPE_APP_TEXTURE_COLORSPACE_SCRGB ] = wp_color_manager_v1_create_windows_scrgb( m_pWPColorManager ); -+ } -+ } - } - - m_pLibDecor = libdecor_new( m_pDisplay, &s_LibDecorInterface ); -@@ -2476,19 +2493,6 @@ namespace gamescope - { - m_pWPColorManager = (wp_color_manager_v1 *)wl_registry_bind( pRegistry, uName, &wp_color_manager_v1_interface, 1u ); - wp_color_manager_v1_add_listener( m_pWPColorManager, &s_WPColorManagerListener, this ); -- -- // HDR10. -- { -- wp_image_description_creator_params_v1 *pParams = wp_color_manager_v1_create_parametric_creator( m_pWPColorManager ); -- wp_image_description_creator_params_v1_set_primaries_named( pParams, WP_COLOR_MANAGER_V1_PRIMARIES_BT2020 ); -- wp_image_description_creator_params_v1_set_tf_named( pParams, WP_COLOR_MANAGER_V1_TRANSFER_FUNCTION_ST2084_PQ ); -- m_pWPImageDescriptions[ GAMESCOPE_APP_TEXTURE_COLORSPACE_HDR10_PQ ] = wp_image_description_creator_params_v1_create( pParams ); -- } -- -- // scRGB -- { -- m_pWPImageDescriptions[ GAMESCOPE_APP_TEXTURE_COLORSPACE_SCRGB ] = wp_color_manager_v1_create_windows_scrgb( m_pWPColorManager ); -- } - } - else if ( !strcmp( pInterface, zwp_pointer_constraints_v1_interface.name ) ) - { --- -2.51.0 diff --git a/anda/games/terra-gamescope/terra-gamescope.spec b/anda/games/terra-gamescope/terra-gamescope.spec index 3f1e43d863..06e056b5f4 100755 --- a/anda/games/terra-gamescope/terra-gamescope.spec +++ b/anda/games/terra-gamescope/terra-gamescope.spec @@ -2,18 +2,16 @@ %global _default_patch_fuzz 2 %global build_timestamp %(date +"%Y%m%d") -#global gamescope_tag 3.15.11 -%global gamescope_commit 2f30679c80791844c29402d232462874fe23dd46 +%global gamescope_commit 7c5ebe991af905c17fa26f6287704ff07dcf69ca %define short_commit %(echo %{gamescope_commit} | cut -c1-8) Name: terra-gamescope -#Version: 100.%{gamescope_tag} -Version: 134.%{short_commit} +Version: 137.%{short_commit} Release: 1%?dist Summary: Micro-compositor for video games on Wayland License: BSD -URL: https://github.com/ValveSoftware/gamescope +URL: https://github.com/OpenGamingCollective/gamescope Provides: gamescope = %{version}-%{release} Conflicts: gamescope @@ -21,68 +19,67 @@ Conflicts: gamescope # Create stb.pc to satisfy dependency('stb') Source0: stb.pc -Patch0: 0001-cstdint.patch +Patch0: Use-system-stb-glm.patch -# https://hhd.dev/ -# https://github.com/ChimeraOS/gamescope -Patch1: handheld.patch +Patch1: 0001-cstdint.patch -#Patch2: https://github.com/ValveSoftware/gamescope/pull/1867.patch +%if 0%{?fedora} >= 44 +# Fix build with libinput >= 1.27 / GCC 16 (-Werror=switch) +Patch2: 0002-wlroots-libinput-switch-keypad-slide.patch +%endif -BuildRequires: meson >= 0.54.0 -BuildRequires: ninja-build BuildRequires: cmake BuildRequires: gcc BuildRequires: gcc-c++ +BuildRequires: git-core BuildRequires: glm-devel BuildRequires: google-benchmark-devel -BuildRequires: libXmu-devel BuildRequires: libXcursor-devel -BuildRequires: libeis-devel -BuildRequires: pixman-devel +BuildRequires: libXmu-devel +BuildRequires: meson >= 0.54.0 +BuildRequires: ninja-build +BuildRequires: pkgconfig(hwdata) +BuildRequires: pkgconfig(libavif) +BuildRequires: pkgconfig(libcap) +BuildRequires: pkgconfig(libdecor-0) BuildRequires: pkgconfig(libdisplay-info) -BuildRequires: pkgconfig(pixman-1) +BuildRequires: pkgconfig(libdrm) +BuildRequires: pkgconfig(libeis-1.0) +BuildRequires: (pkgconfig(libliftoff) >= %{libliftoff_minver} with pkgconfig(libliftoff) < 0.6) +BuildRequires: pkgconfig(libpipewire-0.3) +BuildRequires: pkgconfig(libudev) +BuildRequires: pkgconfig(luajit) +#BuildRequires: pkgconfig(openvr) >= 2.7 +BuildRequires: pkgconfig(sdl2) +BuildRequires: pkgconfig(vulkan) +BuildRequires: pkgconfig(wayland-protocols) >= 1.17 +BuildRequires: pkgconfig(wayland-scanner) +BuildRequires: pkgconfig(wayland-server) +BuildRequires: pkgconfig(wlroots-0.18) BuildRequires: pkgconfig(x11) -BuildRequires: pkgconfig(xdamage) BuildRequires: pkgconfig(xcomposite) -BuildRequires: pkgconfig(xrender) +BuildRequires: pkgconfig(xdamage) BuildRequires: pkgconfig(xext) BuildRequires: pkgconfig(xfixes) -BuildRequires: pkgconfig(xxf86vm) -BuildRequires: pkgconfig(xtst) -BuildRequires: pkgconfig(xres) -BuildRequires: pkgconfig(libdrm) -BuildRequires: pkgconfig(vulkan) -BuildRequires: pkgconfig(wayland-scanner) -BuildRequires: pkgconfig(wayland-server) >= 1.23.0 -BuildRequires: pkgconfig(wayland-protocols) >= 1.17 BuildRequires: pkgconfig(xkbcommon) -BuildRequires: pkgconfig(sdl2) -BuildRequires: pkgconfig(libpipewire-0.3) -BuildRequires: pkgconfig(libavif) -BuildRequires: pkgconfig(wlroots) -BuildRequires: pkgconfig(libliftoff) -BuildRequires: pkgconfig(libcap) -BuildRequires: pkgconfig(hwdata) -BuildRequires: pkgconfig(lcms2) -BuildRequires: pkgconfig(luajit) +BuildRequires: pkgconfig(xrender) +BuildRequires: pkgconfig(xres) +BuildRequires: pkgconfig(xtst) +BuildRequires: pkgconfig(xxf86vm) BuildRequires: spirv-headers-devel # Enforce the the minimum EVR to contain fixes for all of: # CVE-2021-28021 CVE-2021-42715 CVE-2021-42716 CVE-2022-28041 CVE-2023-43898 # CVE-2023-45661 CVE-2023-45662 CVE-2023-45663 CVE-2023-45664 CVE-2023-45666 -# CVE-2023-45667 -BuildRequires: stb_image-devel >= 2.28^20231011gitbeebb24-12 +# CVE-2023-45667, upstream issues #1860, #1861 +BuildRequires: stb_image-devel >= 2.30^20251025gitf1c79c0-2 # Header-only library: -static is for tracking per guidelines BuildRequires: stb_image-static BuildRequires: stb_image_resize-devel BuildRequires: stb_image_resize-static BuildRequires: stb_image_write-devel BuildRequires: stb_image_write-static +#BuildRequires: vkroots-devel BuildRequires: /usr/bin/glslangValidator -BuildRequires: libdecor-devel -BuildRequires: libXdamage-devel -BuildRequires: xorg-x11-server-Xwayland-devel -BuildRequires: git # libliftoff hasn't bumped soname, but API/ABI has changed for 0.2.0 release Requires: libliftoff%{?_isa} >= %{libliftoff_minver} @@ -94,6 +91,17 @@ Requires: terra-gamescope-libs(x86-32) = %{version}-%{release} Recommends: mesa-dri-drivers Recommends: mesa-vulkan-drivers +# submodule deps +BuildRequires: pkgconfig(lcms2) +BuildRequires: pkgconfig(libinput) >= 1.21.0 +BuildRequires: pkgconfig(libseat) +BuildRequires: pkgconfig(x11-xcb) +BuildRequires: pkgconfig(xcb) +BuildRequires: pkgconfig(xcb-errors) +BuildRequires: pkgconfig(xcb-icccm) +BuildRequires: pkgconfig(xcb-renderutil) +BuildRequires: pkgconfig(xwayland) + %description %{name} is the micro-compositor optimized for running video games on Wayland. @@ -133,6 +141,7 @@ export PKG_CONFIG_PATH=pkgconfig %{_bindir}/gamescopectl %{_bindir}/gamescopestream %{_bindir}/gamescopereaper +%{_bindir}/gamescope-type %{_datadir}/gamescope/* %files libs @@ -140,5 +149,8 @@ export PKG_CONFIG_PATH=pkgconfig %{_datadir}/vulkan/implicit_layer.d/VkLayer_FROG_gamescope_wsi.*.json %changelog +* Fri Mar 13 2026 Kyle Gospodnetich +- Switch to OGC sources + * Thu Jan 2 2025 Owen-sz - Package gamescope, port from Bazzite diff --git a/anda/games/terra-gamescope/update.rhai b/anda/games/terra-gamescope/update.rhai new file mode 100644 index 0000000000..c0deb9c10f --- /dev/null +++ b/anda/games/terra-gamescope/update.rhai @@ -0,0 +1,6 @@ +if rpm.changed() { + rpm.release(); + let v = gh_commit("OpenGamingCollective/gamescope")); + v.crop(1); + rpm.global("gamescope_commit", v); +} diff --git a/anda/games/udev-joystick-blacklist/anda.hcl b/anda/games/udev-joystick-blacklist/anda.hcl new file mode 100644 index 0000000000..e0fc065888 --- /dev/null +++ b/anda/games/udev-joystick-blacklist/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "udev-joystick-blacklist.spec" + } + labels { + nightly = 1 + } +} diff --git a/anda/games/udev-joystick-blacklist/udev-joystick-blacklist.spec b/anda/games/udev-joystick-blacklist/udev-joystick-blacklist.spec new file mode 100644 index 0000000000..03fd03f672 --- /dev/null +++ b/anda/games/udev-joystick-blacklist/udev-joystick-blacklist.spec @@ -0,0 +1,54 @@ +%global commit 1c5c9ccb69ea4ae42251aaa4c5a40a54766e6551 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global commit_date 20260415 + +Name: udev-joystick-blacklist +Version: 0^%{commit_date}git%{shortcommit} +Release: 2%{?dist} +Summary: Fix for keyboard/mouse/tablet being detected as joysticks in Linux +License: LicenseRef-Fedora-Public-Domain +URL: https://github.com/denilsonsa/udev-joystick-blacklist +Source0: %{url}/archive/%{commit}.tar.gz +BuildRequires: systemd-rpm-macros +Conflicts: %{name}-rm +Conflicts: steam-device-rules <= 1.0.0.85 +BuildArch: noarch +Packager: Gilver E. + +%description +There are several devices that, although recognized by kernel as joysticks, are not joysticks. + +This package contains rules which will prevent those devices from being recognized as joysticks. + +%package rm +Summary: Fix for keyboard/mouse/tablet being detected as joysticks in Linux +Conflicts: %{name} +Conflicts: steam-device-rules <= 1.0.0.85 +Obsoletes: steam-device-rules <= 1.0.0.85 + +%description rm +There are several devices that, although recognized by kernel as joysticks, are not joysticks. + +This package contains rules which will prevent those devices from being recognized as joysticks by removing the devices. + +%prep +%autosetup -n %{name}-%{commit} + +%build +# Empty. + +%install +install -Dpm644 after_kernel_4_9/51-these-are-not-joysticks.rules -t %{buildroot}%{_udevrulesdir} +install -Dpm644 after_kernel_4_9/51-these-are-not-joysticks-rm.rules -t %{buildroot}%{_udevrulesdir} + +%files +%doc README.md +%{_udevrulesdir}/51-these-are-not-joysticks.rules + +%files rm +%doc README.md +%{_udevrulesdir}/51-these-are-not-joysticks-rm.rules + +%changelog +* Mon Nov 03 2025 Gilver E. - 0^20250715gita1ace57-1 +- Initial package diff --git a/anda/games/udev-joystick-blacklist/update.rhai b/anda/games/udev-joystick-blacklist/update.rhai new file mode 100644 index 0000000000..87e01e4532 --- /dev/null +++ b/anda/games/udev-joystick-blacklist/update.rhai @@ -0,0 +1,5 @@ +rpm.global("commit", gh_commit("denilsonsa/udev-joystick-blacklist")); +if rpm.changed() { + rpm.release(); + rpm.global("commit_date", date()); +} diff --git a/anda/games/umu/umu-launcher.spec b/anda/games/umu/umu-launcher.spec index 66fec63446..3bbc06a054 100644 --- a/anda/games/umu/umu-launcher.spec +++ b/anda/games/umu/umu-launcher.spec @@ -1,6 +1,6 @@ Name: umu-launcher -Version: 1.2.9 -Release: 1%?dist +Version: 1.4.0 +Release: 1%{?dist} Summary: A tool for launching non-steam games with proton License: GPL-3.0-only diff --git a/anda/tools/buildsys/gradle/anda.hcl b/anda/games/vapor-mod-overlay/anda.hcl similarity index 58% rename from anda/tools/buildsys/gradle/anda.hcl rename to anda/games/vapor-mod-overlay/anda.hcl index 448b0406b3..303a14d18c 100644 --- a/anda/tools/buildsys/gradle/anda.hcl +++ b/anda/games/vapor-mod-overlay/anda.hcl @@ -1,6 +1,6 @@ project pkg { arches = ["x86_64"] rpm { - spec = "gradle.spec" + spec = "vapor-mod-overlay.spec" } } diff --git a/anda/games/vapor-mod-overlay/update.rhai b/anda/games/vapor-mod-overlay/update.rhai new file mode 100644 index 0000000000..3898e84c4e --- /dev/null +++ b/anda/games/vapor-mod-overlay/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("ChristianSilvermoon/vapor-mod-overlay")); diff --git a/anda/games/vapor-mod-overlay/vapor-mod-overlay.spec b/anda/games/vapor-mod-overlay/vapor-mod-overlay.spec new file mode 100644 index 0000000000..50db0d4665 --- /dev/null +++ b/anda/games/vapor-mod-overlay/vapor-mod-overlay.spec @@ -0,0 +1,33 @@ +Name: vapor-mod-overlay +Version: 0.0.1 +Release: 1%{?dist} +Summary: A fairly basic OverlayFS powered mod loader for Steam +License: MIT +URL: https://github.com/ChristianSilvermoon/vapor-mod-overlay +Source0: %{url}/archive/refs/tags/v%{version}.tar.gz +Requires: bash +Requires: fuse-overlayfs +BuildArch: noarch +Packager: Gilver E. + +%description +This is an attempt at a very basic sort of Mod Loader for Valve's Steam Client on GNU/Linux systems that uses OverlayFS. +This was inspired by a bug in Portal 2 VR that required the mod to be disabled temporarily to bypass a crash. + +%prep +%autosetup -n %{name}-%{version} + +%build +# The voices are getting louder. + +%install +install -Dpm755 %{name}.sh %{buildroot}%{_bindir}/%{name} + +%files +%doc README.md +%license LICENSE.md +%{_bindir}/%{name} + +%changelog +* Mon Mar 2 2026 Gilver E. +- Initial package diff --git a/anda/games/wooting-udev-rules/70-wooting.rules b/anda/games/wooting-udev-rules/70-wooting.rules new file mode 100644 index 0000000000..8c9617e136 --- /dev/null +++ b/anda/games/wooting-udev-rules/70-wooting.rules @@ -0,0 +1,7 @@ +# Legacy Wootings +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="03eb", MODE:="0660", TAG+="uaccess" +SUBSYSTEM=="usb", ATTRS{idVendor}=="03eb", MODE:="0660", TAG+="uaccess" + +# Generic Wootings +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="31e3", MODE:="0660", TAG+="uaccess" +SUBSYSTEM=="usb", ATTRS{idVendor}=="31e3", MODE:="0660", TAG+="uaccess" diff --git a/anda/games/wooting-udev-rules/anda.hcl b/anda/games/wooting-udev-rules/anda.hcl new file mode 100644 index 0000000000..955d43a034 --- /dev/null +++ b/anda/games/wooting-udev-rules/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + rpm { + spec = "wooting-udev-rules.spec" + } + arches = ["x86_64"] +} diff --git a/anda/games/wooting-udev-rules/wooting-udev-rules.spec b/anda/games/wooting-udev-rules/wooting-udev-rules.spec new file mode 100644 index 0000000000..27f7706c27 --- /dev/null +++ b/anda/games/wooting-udev-rules/wooting-udev-rules.spec @@ -0,0 +1,40 @@ +%global appid io.wooting.Udev + + +Name: wooting-udev-rules +Version: 1 +Release: 1%{?dist} +Summary: Udev rules for wooting keyboards +Provides: wooting-udev = %{version}-%{release} +License: Unlicense +Source0: 70-wooting.rules +BuildArch: noarch +BuildRequires: systemd +BuildRequires: anda-srpm-macros +Requires: systemd-udev + +%global udev_order 70 + +%description +Udev rules for Wooting keyboards to enable device access for use with the Wootility AppImage on Linux systems. + +%prep + +%build + +%install +install -D -p -m 644 %SOURCE0 %{buildroot}%{_udevrulesdir}/%{udev_order}-wooting.rules +# +%post +%udev_rules_update + +%postun +%udev_rules_update + +%files +%_udevrulesdir/%{udev_order}-wooting.rules + + +%changelog +* Mon Jan 05 2026 Roice Young +- Initial release diff --git a/anda/langs/amaranth/amaranth.spec b/anda/langs/amaranth/amaranth.spec index de2df12286..24940614b4 100644 --- a/anda/langs/amaranth/amaranth.spec +++ b/anda/langs/amaranth/amaranth.spec @@ -1,11 +1,11 @@ %global pypi_name amaranth -%global _desc Scots A modern hardware definition language and toolchain based on Python. +%global _desc A modern hardware definition language and toolchain based on Python. %define _python_dist_allow_version_zero 1 Name: python-%{pypi_name} Version: 0.5.8 -Release: 1%?dist +Release: 2%?dist Summary: A modern hardware definition language and toolchain based on Python License: BSD-2-Clause URL: https://github.com/amaranth-lang/amaranth @@ -19,7 +19,6 @@ BuildRequires: python3-setuptools_scm BuildRequires: python3-packaging BuildRequires: python3-pip -Requires: python3 Requires: python3-jinja2 Requires: python3-jschon Requires: python3-pyvcd diff --git a/anda/langs/crystal/blahaj/blahaj.spec b/anda/langs/crystal/blahaj/blahaj.spec index c867a022a9..d10a2a3908 100644 --- a/anda/langs/crystal/blahaj/blahaj.spec +++ b/anda/langs/crystal/blahaj/blahaj.spec @@ -1,14 +1,12 @@ -%define debug_package %nil - -Name: blahaj -Version: 2.2.0 -Release: 1%{?dist} -Summary: Gay sharks at your local terminal - lolcat-like CLI tool -License: BSD-2-Clause -URL: https://blahaj.queer.software -Source0: https://github.com/GeopJr/BLAHAJ/archive/refs/tags/v%version.tar.gz -BuildRequires: crystal gcc libyaml-devel pcre-devel libgc-devel libevent-devel -ExclusiveArch: x86_64 +Name: blahaj +Version: 2.2.0 +Release: 2%{?dist} +Summary: Gay sharks at your local terminal - lolcat-like CLI tool +License: BSD-2-Clause +URL: https://blahaj.geopjr.dev/ +Source0: https://codeberg.org/GeopJr/BLAHAJ/archive/v%{version}.tar.gz +BuildRequires: crystal shards make gcc libyaml-devel pcre-devel libgc-devel libevent-devel bash +ExclusiveArch: x86_64 %description Apart from a cute cuddly shark plushie from IKEA, BLÅHAJ is a lolcat-like CLI @@ -17,17 +15,13 @@ It has a wide variety of flags/colors to choose from and many options from flag size to whether to colorize by line, word or character. %prep -%autosetup -n BLAHAJ-%{version} +%autosetup -n %{name} %build -shards build --production --release -D "-fPIE" --link-flags "-pie" +shards build --production --release %install -mkdir -p %buildroot%_bindir -install -Dm755 bin/blahaj %buildroot%_bindir/ - -%check -crystal spec --order random -Dpreview_mt +%make_install %files %doc README.md @@ -35,5 +29,7 @@ crystal spec --order random -Dpreview_mt %_bindir/blahaj %changelog -* Sat Apr 15 2023 windowsboy111 - 2.0.1-1 +* Sat Dec 06 2025 june-fish - 2.2.0-2 +- Update URLs and build steps (fix missing debug_package) +* Sat Apr 15 2023 madonuko - 2.0.1-1 - Initial package. diff --git a/anda/langs/crystal/blahaj/update.rhai b/anda/langs/crystal/blahaj/update.rhai index 773fba51d2..474744cf5f 100644 --- a/anda/langs/crystal/blahaj/update.rhai +++ b/anda/langs/crystal/blahaj/update.rhai @@ -1 +1 @@ -rpm.version(gh("GeopJr/BLAHAJ")); +rpm.version(codeberg("GeopJr/BLAHAJ")); diff --git a/anda/langs/crystal/crystal/anda.hcl b/anda/langs/crystal/crystal/anda.hcl index d2a5a14455..1ce7a085d6 100644 --- a/anda/langs/crystal/crystal/anda.hcl +++ b/anda/langs/crystal/crystal/anda.hcl @@ -1,5 +1,4 @@ project pkg { - arches = ["x86_64"] rpm { spec = "crystal.spec" } diff --git a/anda/langs/crystal/crystal/crystal.spec b/anda/langs/crystal/crystal/crystal.spec index da28a9d34f..e495403cd5 100644 --- a/anda/langs/crystal/crystal/crystal.spec +++ b/anda/langs/crystal/crystal/crystal.spec @@ -1,60 +1,66 @@ -%define debug_package %nil +%bcond bootstrap 0 +%global bootstrap_version 1.17.1 -Name: crystal -Version: 1.18.2 -Release: 1%?dist -Summary: The Crystal Programming Language -License: Apache-2.0 -URL: https://crystal-lang.org/ -Source0: https://github.com/crystal-lang/crystal/releases/download/%version/crystal-%version-1-linux-x86_64-bundled.tar.gz -ExclusiveArch: x86_64 -BuildRequires: rpm_macro(fdupes) +Name: crystal +Version: 1.20.1 +Release: 1%{?dist} +Summary: A general-purpose, object-oriented programming language +License: Apache-2.0 +Packager: Carl Hörberg +URL: https://crystal-lang.org/ +Source0: https://github.com/crystal-lang/crystal/archive/%version.tar.gz +%if %{with bootstrap} +Source1: https://dev.alpinelinux.org/archive/crystal/crystal-%{bootstrap_version}-%{_arch}-alpine-linux-musl.tar.gz +%else +BuildRequires: crystal +%endif +BuildRequires: gcc gcc-c++ make gc-devel llvm-devel +BuildRequires: pcre2-devel libyaml-devel libffi-devel +Requires: gcc pkgconfig gc-devel +Requires: pcre2-devel openssl-devel zlib-devel +Requires: libyaml-devel libxml2-devel gmp-devel +Suggests: shards %description -%summary. - -%package devel -Summary: Development files for the crystal package - -%description devel -%summary. +Crystal is a programming language with the following goals: +- Have a syntax similar to Ruby (but compatibility with it is not a goal) +- Statically type-checked but without having to specify the type of variables or method arguments +- Be able to call C code by writing bindings to it in Crystal +- Have compile-time evaluation and generation of code, to avoid boilerplate code +- Compile to efficient native code %prep -%autosetup -n crystal-%version-1 +%setup -q +%if %{with bootstrap} +%setup -q -b 1 +%endif %build +%if %{with bootstrap} +# Use bootstrap crystal binary +export PATH="%{_builddir}/crystal-%{bootstrap_version}-%{_arch}-alpine-linux-musl/bin:$PATH" +%endif +%make_build release=1 interpreter=1 LDFLAGS="%{build_ldflags}" CRYSTAL_CONFIG_LIBRARY_PATH=%{_libdir}/crystal %install -mkdir -p %buildroot/usr/bin -mkdir -p %buildroot/usr/share -mkdir -p %buildroot/usr/lib/crystal -install -Dm755 bin/* %buildroot/usr/bin/ -cp -r share/* %buildroot/usr/share/ -cp -r lib/crystal/* %buildroot/usr/lib/crystal/ - -%fdupes %buildroot%_datadir/crystal/src/lib_c/ - +%make_install PREFIX=%{_prefix} %files -%license /usr/share/licenses/crystal/LICENSE -/usr/bin/crystal -/usr/share/zsh/site-functions/_crystal -/usr/share/man/man1/crystal.1.gz -/usr/share/crystal/ -/usr/share/fish/vendor_completions.d/crystal.fish -/usr/share/bash-completion/completions/crystal - -/usr/bin/shards -/usr/share/man/man1/shards.1.gz -/usr/share/man/man5/shard.yml.5.gz - -%files devel -/usr/lib/crystal/ +%license %{_datadir}/licenses/crystal/LICENSE +%{_bindir}/crystal +%{_datadir}/crystal +%{_datadir}/zsh/site-functions/_crystal +%{_datadir}/bash-completion/completions/crystal +%{_datadir}/fish/vendor_completions.d/crystal.fish +%{_mandir}/man1/crystal.1.gz %changelog -* Sat Jun 17 2023 windowsboy111 - 1.8.2-2 +* Mon Nov 03 2025 Carl Hörberg - 1.18.2-2 +- Build from source, support multiple architectures. + +* Sat Jun 17 2023 madonuko - 1.8.2-2 - Add devel package. -* Sat Apr 15 2023 windowsboy111 - 1.8.0-1 +* Sat Apr 15 2023 madonuko - 1.8.0-1 - Initial package. diff --git a/anda/langs/crystal/crystal/update.rhai b/anda/langs/crystal/crystal/update.rhai index b2159a6775..4d611f9d99 100644 --- a/anda/langs/crystal/crystal/update.rhai +++ b/anda/langs/crystal/crystal/update.rhai @@ -1,9 +1 @@ -let v = gh("crystal-lang/crystal"); -let url = `crystal-${v}-1-linux-x86_64-bundled.tar.gz`; - -if get(`https://github.com/crystal-lang/crystal/releases/expanded_assets/${v}`).contains(url) { - rpm.version(v); -} else { - print(`crystal: ${v} (waiting for bundle)`); - terminate(); -} +rpm.version(gh("crystal-lang/crystal")); diff --git a/anda/langs/crystal/shards/anda.hcl b/anda/langs/crystal/shards/anda.hcl new file mode 100644 index 0000000000..32456c8b0f --- /dev/null +++ b/anda/langs/crystal/shards/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "shards.spec" + } +} diff --git a/anda/langs/crystal/shards/shards.spec b/anda/langs/crystal/shards/shards.spec new file mode 100644 index 0000000000..7178a2fdea --- /dev/null +++ b/anda/langs/crystal/shards/shards.spec @@ -0,0 +1,33 @@ +Name: shards +Version: 0.20.0 +Release: 1%?dist +Summary: Dependency manager for the Crystal language +License: Apache-2.0 +Packager: Carl Hörberg +URL: https://crystal-lang.org/ +Source0: https://github.com/crystal-lang/shards/archive/refs/tags/v%version.tar.gz +BuildRequires: crystal make +BuildRequires: gcc gc-devel libyaml-devel pcre-devel +Suggests: git make +Supplements: crystal + +%description +Shards is a dependency manager for the Crystal programming language. It allows you to easily manage and install external libraries (called "shards") that your Crystal projects depend on. + +%prep +%setup -q + +%build +%make_build release=1 FLAGS="--link-flags=\"%{build_ldflags}\"" + +%install +%make_install PREFIX=%{_prefix} + +%files +%{_bindir}/shards +%{_mandir}/man1/shards.1.gz +%{_mandir}/man5/shard.yml.5.gz + +%changelog +* Mon Nov 03 2025 Carl Hörberg - 0.19.1-1 +- Initial package diff --git a/anda/langs/crystal/shards/update.rhai b/anda/langs/crystal/shards/update.rhai new file mode 100644 index 0000000000..11ba9c5d21 --- /dev/null +++ b/anda/langs/crystal/shards/update.rhai @@ -0,0 +1 @@ +rpm.version(gh_tag("crystal-lang/shards")); diff --git a/anda/langs/d/btdu/btdu.spec b/anda/langs/d/btdu/btdu.spec index 3df7e69e0f..146d3b8c43 100644 --- a/anda/langs/d/btdu/btdu.spec +++ b/anda/langs/d/btdu/btdu.spec @@ -1,7 +1,7 @@ %define debug_package %nil Name: btdu -Version: 0.6.0 +Version: 0.7.2 Release: 1%?dist Summary: Sampling disk usage profiler for btrfs License: GPL-2.0-only diff --git a/anda/langs/dart/dart.spec b/anda/langs/dart/dart.spec index e542b7b266..d49b59b8c9 100644 --- a/anda/langs/dart/dart.spec +++ b/anda/langs/dart/dart.spec @@ -1,8 +1,8 @@ %define debug_package %{nil} Name: dart -Version: 3.9.4 -Release: 1%?dist +Version: 3.11.6 +Release: 1%{?dist} Summary: The Dart Language License: BSD-3-Clause URL: https://dart.dev/ @@ -50,7 +50,7 @@ ln -sf %{_libdir}/dart/bin/dartaotruntime %{buildroot}%{_bindir}/dartaotruntime %doc README %changelog -* Thu Nov 17 2022 windowsboy111 - 2.18.4-1 +* Thu Nov 17 2022 madonuko - 2.18.4-1 - Bump * Tue Oct 11 2022 Cappy Ishihara - 2.18.2-1 diff --git a/anda/langs/go/albius/albius.spec b/anda/langs/go/albius/albius.spec index c9a4a44aa2..625ad292e9 100644 --- a/anda/langs/go/albius/albius.spec +++ b/anda/langs/go/albius/albius.spec @@ -1,6 +1,6 @@ %define debug_package %nil -%global commit 7409af7329c51416703c512f5e049368dfb3e710 -%global commit_date 20250613 +%global commit 6142a5687c9e6e5e0bc615e9cfaf8382cb5d4d81 +%global commit_date 20251225 %global shortcommit %(c=%{commit}; echo ${c:0:7}) Name: albius diff --git a/anda/langs/go/chezmoi/chezmoi.spec b/anda/langs/go/chezmoi/chezmoi.spec deleted file mode 100644 index 21c5041570..0000000000 --- a/anda/langs/go/chezmoi/chezmoi.spec +++ /dev/null @@ -1,74 +0,0 @@ -# Generated by go2rpm 1.15.0 -%bcond check 0 -%bcond bootstrap 0 - -# https://github.com/twpayne/chezmoi -%global goipath github.com/twpayne/chezmoi -Version: 2.66.1 - -%gometa -f - -%global common_description %{expand: -Manage your dotfiles across multiple diverse machines, securely.} - -%global golicenses LICENSE assets/chezmoi.io/docs/license.md\\\ - assets/chezmoi.io/docs/reference/commands/license.md -%global godocs .markdownlint-cli2.yaml README.md docs\\\ - assets/chezmoi.io/snippets/config-format.md\\\ - assets/chezmoi.io/snippets/common-flags/exclude.md\\\ - assets/chezmoi.io/snippets/common-flags/format.md\\\ - assets/chezmoi.io/snippets/common-flags/include.md\\\ - assets/chezmoi.io/snippets/common-flags/init.md\\\ - assets/chezmoi.io/snippets/common-flags/nul-path-\\\ - separator.md assets/chezmoi.io/snippets/common-\\\ - flags/parent-dirs.md\\\ - assets/chezmoi.io/snippets/common-flags/path-style.md\\\ - assets/chezmoi.io/snippets/common-flags/recursive.md\\\ - assets/chezmoi.io/snippets/common-flags/tree.md - -Name: chezmoi -Release: 1%?dist -Summary: Manage your dotfiles across multiple diverse machines, securely - -License: MIT -URL: %{gourl} -Source: %{gosource} - -%description %{common_description} - -#gopkg - -%prep -%goprep - -%build -%define gomodulesmode GO111MODULE=on -%define __gobuild_extldflags -X main.version=%version -X main.builtBy=%vendor -go clean -modcache -rm go.sum -go mod tidy -%gobuild -o %{gobuilddir}/bin/chezmoi . - -%install -#gopkginstall -install -m 0755 -vd %{buildroot}%{_bindir} -install -m 0755 -vp %{gobuilddir}/bin/* %{buildroot}%{_bindir}/ -install -m 0644 -Dvp completions/chezmoi-completion.bash %{buildroot}%{bash_completions_dir}/chezmoi -install -m 0644 -Dvp completions/chezmoi.fish -t %{buildroot}%{fish_completions_dir}/ -install -m 0644 -Dvp completions/chezmoi.zsh %{buildroot}%{zsh_completions_dir}/_chezmoi - -%if %{without bootstrap} -%if %{with check} -%check -%gocheck -%endif -%endif - -%files -%license LICENSE -%doc README.md -%{_bindir}/chezmoi - -%pkg_completion -Bfz - -#gopkgfiles diff --git a/anda/langs/go/chezmoi/update.rhai b/anda/langs/go/chezmoi/update.rhai deleted file mode 100644 index 375ad36766..0000000000 --- a/anda/langs/go/chezmoi/update.rhai +++ /dev/null @@ -1 +0,0 @@ -rpm.version(`

The latest version of chezmoi is ([\d.]+)`.find(get("https://www.chezmoi.io"), 1)); diff --git a/anda/langs/go/elephant/golang-github-abenz1267-elephant.spec b/anda/langs/go/elephant/golang-github-abenz1267-elephant.spec index ad0b0ffb56..a165c4ae51 100644 --- a/anda/langs/go/elephant/golang-github-abenz1267-elephant.spec +++ b/anda/langs/go/elephant/golang-github-abenz1267-elephant.spec @@ -1,5 +1,5 @@ # Generated by go2rpm 1.17.1 -%bcond check 1 +%bcond check 0 %bcond bootstrap 0 %if %{with bootstrap} @@ -10,13 +10,11 @@ %global __requires_exclude %{?__requires_exclude:%{__requires_exclude}|}^golang\\(.*\\)$ %endif -%global upstream_version v1.0.0-beta-8 -%global ver %{sub %upstream_version 2} -%global providers archlinuxpkgs calc clipboard desktopapplications files menus providerlist runner symbols websearch +%global providers 1password archlinuxpkgs bitwarden bluetooth bookmarks calc clipboard desktopapplications dnfpackages files menus niriactions nirisessions playerctl providerlist runner snippets symbols todo unicode websearch windows wireplumber # https://github.com/abenz1267/elephant %global goipath github.com/abenz1267/elephant -Version: %{gsub %{gsub %ver - ~ 1} - _} +Version: 2.21.0 %gometa -f @@ -25,18 +23,20 @@ Elephant - cuz it's phat - is a powerful data provider service and backend for b } %global golicenses LICENSE -%global godocs NIX.md README.md cmd/version.txt +%global godocs README.md Name: elephant -Release: %autorelease -Summary: None +Release: 1%{?dist} +Summary: Data provider service and backend for building custom application launchers & desktop utilities License: GPL-3.0-only URL: %{gourl} -Source: %{gourl}/archive/refs/tags/%upstream_version.tar.gz +Source: %{gourl}/archive/refs/tags/v%version.tar.gz Provides: golang-github-abenz1267-elephant = %evr Packager: madonuko +# desktopapplications +BuildRequires: wayland-devel %description %{common_description} @@ -46,14 +46,14 @@ Packager: madonuko for prov in string.gmatch(macros.providers, "%S+") do print("%package "..prov.."\n") print("Summary: "..prov.." provider for elephant\n") - print("\n%description "..prov.."\n"..prov.." provider for elephant.\n") + print("\n%description "..prov.."\n"..prov.." provider for elephant.\n\n") print("%files "..prov.."\n") print("/etc/xdg/elephant/providers/"..prov..".so\n\n") end } %prep -%autosetup -n %name-%ver +%autosetup -n %name-%version %goprep -Ae %autopatch -p1 @@ -61,7 +61,7 @@ end %build %define gomodulesmode GO111MODULE=on pushd cmd -(%{gobuild -o %{gobuilddir}/bin/elephant elephant.go}) & +(%{gobuild -o %{gobuilddir}/bin/elephant elephant/elephant.go}) & popd for prov in internal/providers/*/; do pushd $prov @@ -89,9 +89,9 @@ install -Dm755 internal/providers/*/*.so -t %buildroot/etc/xdg/elephant/provider %if %{without bootstrap} %files %license LICENSE -%doc NIX.md README.md cmd/version.txt +%doc README.md %{_bindir}/elephant -%ghost /etc/xdg/elephant/ +%ghost /etc/xdg/elephant/providers/*.so %endif %gopkgfiles diff --git a/anda/langs/go/elephant/update.rhai b/anda/langs/go/elephant/update.rhai index a81e944d08..35758fbeb1 100644 --- a/anda/langs/go/elephant/update.rhai +++ b/anda/langs/go/elephant/update.rhai @@ -1 +1,9 @@ -rpm.version(gh_rawfile("abenz1267/elephant", "master", "cmd/version.txt")); +rpm.version(gh_rawfile("abenz1267/elephant", "master", "cmd/elephant/version.txt")); +let dir = get("https://api.github.com/repos/abenz1267/elephant/contents/internal/providers/").json_arr(); +let providers = ""; +for f in dir { + if f.size == 0 { // dir + providers += f.name + " "; + } +} +rpm.global("providers", providers[0..providers.len - 1]); diff --git a/anda/langs/go/gh-act/gh-act.spec b/anda/langs/go/gh-act/gh-act.spec index 0425398cf8..05af47ebd3 100644 --- a/anda/langs/go/gh-act/gh-act.spec +++ b/anda/langs/go/gh-act/gh-act.spec @@ -12,7 +12,7 @@ # https://github.com/nektos/act %global goipath github.com/nektos/act -Version: 0.2.82 +Version: 0.2.88 %gometa -f @@ -24,7 +24,7 @@ Run your GitHub Actions locally %global godocs README.md Name: gh-act -Release: 1%?dist +Release: 1%{?dist} Summary: None License: MIT AND ISC AND BSD-3-Clause AND Apache-2.0 AND BSD-2-Clause diff --git a/anda/langs/go/glow/golang-github-charmbracelet-glow.spec b/anda/langs/go/glow/golang-github-charmbracelet-glow.spec index fc26d74694..aa9d1c2762 100644 --- a/anda/langs/go/glow/golang-github-charmbracelet-glow.spec +++ b/anda/langs/go/glow/golang-github-charmbracelet-glow.spec @@ -3,7 +3,7 @@ # https://github.com/charmbracelet/glow %global goipath github.com/charmbracelet/glow -Version: 2.1.1 +Version: 2.1.2 %gometa -f @@ -15,7 +15,7 @@ Render markdown on the CLI, with pizzazz! 💅🏻.} %global godocs README.md Name: %{goname} -Release: 1%?dist +Release: 1%{?dist} Summary: Render markdown on the CLI, with pizzazz! 💅🏻 License: MIT diff --git a/anda/langs/go/google-grpc/golang-google-grpc.terra.spec b/anda/langs/go/google-grpc/golang-google-grpc.terra.spec index 58bbc73a52..c8540af981 100644 --- a/anda/langs/go/google-grpc/golang-google-grpc.terra.spec +++ b/anda/langs/go/google-grpc/golang-google-grpc.terra.spec @@ -11,7 +11,7 @@ # https://github.com/grpc/grpc-go %global goipath google.golang.org/grpc %global forgeurl https://github.com/grpc/grpc-go -Version: 1.76.0 +Version: 1.81.0 %gometa -L @@ -24,7 +24,7 @@ The Go language implementation of gRPC. HTTP/2 based RPC.} Documentation Name: golang-google-grpc.terra -Release: 1%?dist +Release: 1%{?dist} Summary: The Go language implementation of gRPC. HTTP/2 based RPC License: Apache-2.0 diff --git a/anda/langs/go/lazygit/golang-github-jesseduffield-lazygit.spec b/anda/langs/go/lazygit/golang-github-jesseduffield-lazygit.spec index 1ed7c840ef..c64db04d7c 100644 --- a/anda/langs/go/lazygit/golang-github-jesseduffield-lazygit.spec +++ b/anda/langs/go/lazygit/golang-github-jesseduffield-lazygit.spec @@ -2,7 +2,7 @@ # https://github.com/jesseduffield/lazygit %global goipath github.com/jesseduffield/lazygit -Version: 0.55.1 +Version: 0.61.1 %gometa -f @@ -13,7 +13,7 @@ Simple terminal UI for git commands.} %global godocs docs README.md VISION.md Name: golang-github-jesseduffield-lazygit -Release: 1%?dist +Release: 1%{?dist} Summary: Simple terminal UI for git commands License: MIT @@ -23,10 +23,19 @@ Packager: sadlerm BuildRequires: anda-srpm-macros -Provides: lazygit = %{version}-%{release} +Provides: lazygit = %{evr} %description %{common_description} + +%package doc +Summary: Documentations for %{name} +Requires: %{name} = %{evr} +BuildArch: noarch + +%description doc +%{summary}. + %gopkg %prep @@ -43,5 +52,8 @@ install -m 0755 -vp %{gobuilddir}/bin/* %{buildroot}%{_bindir}/ %files %license LICENSE -%doc docs README.md VISION.md +%doc README.md %{_bindir}/lazygit + +%files doc +%doc docs/ VISION.md CONTRIBUTING.md CODE-OF-CONDUCT.md diff --git a/anda/langs/go/pop/anda.hcl b/anda/langs/go/pop/anda.hcl new file mode 100644 index 0000000000..efb6797abb --- /dev/null +++ b/anda/langs/go/pop/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "pop.spec" + } +} diff --git a/anda/langs/go/pop/pop.spec b/anda/langs/go/pop/pop.spec new file mode 100644 index 0000000000..52df281777 --- /dev/null +++ b/anda/langs/go/pop/pop.spec @@ -0,0 +1,40 @@ +%global debug_package %{nil} + +%global goipath github.com/charmbracelet/pop +Version: 0.2.1 + +%gometa -f + +Name: pop +Release: 1%{?dist} +Summary: Send emails from your terminal +URL: https://github.com/charmbracelet/%{name} +Source0: https://github.com/charmbracelet/%{name}/archive/refs/tags/v%{version}.tar.gz +License: MIT + +Packager: arbormoss + +%description +%summary. + +%gopkg + +%prep +%goprep -A + +%build +%define currentgoldflags -X main.version=%version +%define gomodulesmode GO111MODULE=on +%gobuild -o %{gobuilddir}/bin/%{name} . + +%install +install -Dm755 %{gobuilddir}/bin/%{name} %{buildroot}%{_bindir}/%{name} + +%files +%license LICENSE +%doc README.md CONTRIBUTING.md +%{_bindir}/%{name} + +%changelog +* Fri Dec 12 2025 arbormoss +- Intial Commit diff --git a/anda/langs/go/pop/update.rhai b/anda/langs/go/pop/update.rhai new file mode 100644 index 0000000000..d2452b4889 --- /dev/null +++ b/anda/langs/go/pop/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("charmbracelet/pop")); diff --git a/anda/langs/go/soft-serve/anda.hcl b/anda/langs/go/soft-serve/anda.hcl new file mode 100644 index 0000000000..d49e69aefd --- /dev/null +++ b/anda/langs/go/soft-serve/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "soft-serve.spec" + } +} diff --git a/anda/langs/go/soft-serve/soft-serve.spec b/anda/langs/go/soft-serve/soft-serve.spec new file mode 100644 index 0000000000..a084dcdecf --- /dev/null +++ b/anda/langs/go/soft-serve/soft-serve.spec @@ -0,0 +1,47 @@ +%global debug_package %{nil} + +# The command name is soft but the package and repo are soft-serve. +# The standard use for the tool is `soft serve`. +%global cmd_name soft + +%global goipath github.com/charmbracelet/soft-serve +Version: 0.11.6 + +%gometa -f + +Name: soft-serve +Release: 1%{?dist} +Summary: The mighty, self-hostable Git server for the command line +URL: https://github.com/charmbracelet/%{name} +Source0: https://github.com/charmbracelet/%{name}/archive/refs/tags/v%{version}.tar.gz +License: MIT + +Packager: arbormoss + +%description +%{summary}. + +%gopkg + +%prep +%goprep -A + +%build +%define currentgoldflags -X main.version=%version +%define gomodulesmode GO111MODULE=on +%gobuild -o %{gobuilddir}/bin/%{cmd_name} ./cmd/%{cmd_name} + +%install +install -Dm755 %{gobuilddir}/bin/%{cmd_name} %{buildroot}%{_bindir}/%{cmd_name} + +%files +%license LICENSE +%doc README.md +%{_bindir}/%{cmd_name} + +%changelog +* Sat Dec 13 2025 arbormoss +- Refactor to use go rpm macros + +* Fri Dec 12 2025 arbormoss +- Intial Commit diff --git a/anda/langs/go/soft-serve/update.rhai b/anda/langs/go/soft-serve/update.rhai new file mode 100644 index 0000000000..e6a17d1e07 --- /dev/null +++ b/anda/langs/go/soft-serve/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("charmbracelet/soft-serve")); diff --git a/anda/langs/go/u-root/golang-github-u-root.spec b/anda/langs/go/u-root/golang-github-u-root.spec index 7a2e4333ad..e604413da6 100644 --- a/anda/langs/go/u-root/golang-github-u-root.spec +++ b/anda/langs/go/u-root/golang-github-u-root.spec @@ -12,7 +12,7 @@ # https://github.com/u-root/u-root %global goipath github.com/u-root/u-root -Version: 0.15.0 +Version: 0.16.0 %global commit 5721ed3ad38a5c889e6c1ed5bbf5242f98a4b591 %gometa -f diff --git a/anda/langs/go/v2ray/nightly/anda.hcl b/anda/langs/go/v2ray/nightly/anda.hcl new file mode 100644 index 0000000000..3b71d03242 --- /dev/null +++ b/anda/langs/go/v2ray/nightly/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "v2ray-nightly.spec" + } + labels { + nightly = 1 + } +} diff --git a/anda/langs/go/v2ray/nightly/update.rhai b/anda/langs/go/v2ray/nightly/update.rhai new file mode 100644 index 0000000000..455f470e1e --- /dev/null +++ b/anda/langs/go/v2ray/nightly/update.rhai @@ -0,0 +1,7 @@ +rpm.global("commit", gh_commit("v2fly/v2ray-core")); +if rpm.changed() { + rpm.release(); + rpm.global("commit_date", date()); + let v = gh("v2fly/v2ray-core"); + rpm.global("ver", v); +} \ No newline at end of file diff --git a/anda/langs/go/v2ray/nightly/v2ray-nightly.spec b/anda/langs/go/v2ray/nightly/v2ray-nightly.spec new file mode 100644 index 0000000000..29f0820859 --- /dev/null +++ b/anda/langs/go/v2ray/nightly/v2ray-nightly.spec @@ -0,0 +1,72 @@ +%global commit 05cc5424631413ada31d14c27b06fd828cf2e5f4 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global ver v5.48.0 +%global commit_date 20260413 + +%global goipath github.com/v2fly/v2ray-core +Version: %{ver}^%{commit_date}git.%{shortcommit} + +%global golicenses LICENSE +%global godocs README.md SECURITY.md + +%gometa -f + +Name: v2ray-nightly +Release: 1%{?dist} +Summary: A platform for building proxies to bypass network restrictions +License: MIT +Packager: veuxit +URL: %{gourl} +Source: %{gosource} +Conflicts: v2ray + +Requires: v2ray-geoip v2ray-domain-list-community + +BuildRequires: go go-rpm-macros go-srpm-macros anda-srpm-macros + +%description +%summary. + +%gopkg + +%prep +%goprep_online -A + + +%build +%gobuild -o v2ray ./main + + +%install +%gopkginstall +install -Dm755 v2ray %{buildroot}%{_bindir}/v2ray + +install -Dm644 release/config/systemd/system/v2ray.service -t %{buildroot}%{_unitdir}/ +install -Dm644 release/config/systemd/system/v2ray@.service -t %{buildroot}%{_unitdir}/ +install -Dm644 release/config/*.json -t %{buildroot}/%{_sysconfdir}/v2ray/ + +%post +%systemd_post v2ray.service + +%preun +%systemd_preun v2ray.service + +%postun +%systemd_postun_with_restart v2ray.service + +%files +%doc README.md +%doc SECURITY.md +%license LICENSE +%{_bindir}/v2ray +%{_unitdir}/v2ray.service +%{_unitdir}/v2ray@.service +%{_sysconfdir}/v2ray/config.json +%{_sysconfdir}/v2ray/vpoint_socks_vmess.json +%{_sysconfdir}/v2ray/vpoint_vmess_freedom.json + +%gopkgfiles + +%changelog +* Sun Mar 8 2026 veuxit - 5.44.1^20260228git.9cf6a45-1 +- Initial package release diff --git a/anda/langs/go/v2ray/stable/anda.hcl b/anda/langs/go/v2ray/stable/anda.hcl new file mode 100644 index 0000000000..89559f5c1a --- /dev/null +++ b/anda/langs/go/v2ray/stable/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "v2ray.spec" + } +} diff --git a/anda/langs/go/v2ray/stable/update.rhai b/anda/langs/go/v2ray/stable/update.rhai new file mode 100644 index 0000000000..8898b562bc --- /dev/null +++ b/anda/langs/go/v2ray/stable/update.rhai @@ -0,0 +1 @@ +rpm.version(gh_tag("v2fly/v2ray-core")); diff --git a/anda/langs/go/v2ray/stable/v2ray.spec b/anda/langs/go/v2ray/stable/v2ray.spec new file mode 100644 index 0000000000..245ad8616b --- /dev/null +++ b/anda/langs/go/v2ray/stable/v2ray.spec @@ -0,0 +1,67 @@ +%global goipath github.com/v2fly/v2ray-core +Version: 5.49.0 + +%global golicenses LICENSE +%global godocs README.md SECURITY.md + +%gometa -f + +Name: v2ray +Release: 1%{?dist} +Summary: A platform for building proxies to bypass network restrictions +License: MIT +Packager: veuxit +URL: %{gourl} +Source: %{gosource} +Conflicts: v2ray-nightly + +Requires: v2ray-geoip v2ray-domain-list-community + +BuildRequires: go go-rpm-macros go-srpm-macros anda-srpm-macros + +%description +%summary. + +%gopkg + +%prep +%goprep_online -A + + +%build +%gobuild -o v2ray ./main + + +%install +%gopkginstall +install -Dm755 v2ray %{buildroot}%{_bindir}/v2ray + +install -Dm644 release/config/systemd/system/v2ray.service -t %{buildroot}%{_unitdir}/ +install -Dm644 release/config/systemd/system/v2ray@.service -t %{buildroot}%{_unitdir}/ +install -Dm644 release/config/*.json -t %{buildroot}/%{_sysconfdir}/v2ray/ + +%post +%systemd_post v2ray.service + +%preun +%systemd_preun v2ray.service + +%postun +%systemd_postun_with_restart v2ray.service + +%files +%doc README.md +%doc SECURITY.md +%license LICENSE +%{_bindir}/v2ray +%{_unitdir}/v2ray.service +%{_unitdir}/v2ray@.service +%{_sysconfdir}/v2ray/config.json +%{_sysconfdir}/v2ray/vpoint_socks_vmess.json +%{_sysconfdir}/v2ray/vpoint_vmess_freedom.json + +%gopkgfiles + +%changelog +* Sun Mar 8 2026 veuxit - 5.44.1-1 +- Initial package release diff --git a/anda/langs/go/v2raya/nightly/anda.hcl b/anda/langs/go/v2raya/nightly/anda.hcl new file mode 100644 index 0000000000..b903484c57 --- /dev/null +++ b/anda/langs/go/v2raya/nightly/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "v2raya-nightly.spec" + } + labels { + nightly = 1 + } +} diff --git a/anda/langs/go/v2raya/nightly/update.rhai b/anda/langs/go/v2raya/nightly/update.rhai new file mode 100644 index 0000000000..b91464d6d8 --- /dev/null +++ b/anda/langs/go/v2raya/nightly/update.rhai @@ -0,0 +1,7 @@ +rpm.global("commit", gh_commit("v2rayA/v2rayA")); +if rpm.changed() { + rpm.release(); + rpm.global("commit_date", date()); + let v = gh("v2rayA/v2rayA"); + rpm.global("ver", v); +} \ No newline at end of file diff --git a/anda/langs/go/v2raya/nightly/v2raya-nightly.spec b/anda/langs/go/v2raya/nightly/v2raya-nightly.spec new file mode 100644 index 0000000000..7aaf69171d --- /dev/null +++ b/anda/langs/go/v2raya/nightly/v2raya-nightly.spec @@ -0,0 +1,80 @@ +%global commit 074305b21bb3797eac2415aa5c385a579cd5943c +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global ver v2.2.7.5 +%global commit_date 20260505 + +%global goipath github.com/v2rayA/v2rayA +Version: %{ver}^%{commit_date}git.%{shortcommit} + +%global golicenses LICENSE +%global godocs README.md + +%gometa -f + +Name: v2raya-nightly +Release: 1%{?dist} +Summary: A web GUI client of Project V which supports VMess, VLESS, SS, SSR, Trojan, Tuic and Juicity protocols +License: AGPL-3.0-only +Packager: veuxit +URL: %{gourl} +Source: %{gosource} +Conflicts: v2raya + +Requires: v2ray-geoip v2ray-domain-list-community ((v2ray or v2ray-nightly) or (xray or xray-nightly)) + +BuildRequires: go go-rpm-macros go-srpm-macros anda-srpm-macros nodejs yarnpkg desktop-file-utils + +%description +%summary. + +%gopkg + +%prep +%goprep_online -A + +%build +pushd gui +yarn --ignore-engines && OUTPUT_DIR=$(pwd)/../service/server/router/web yarn --ignore-engines build +popd + +pushd service +%define currentgoldflags -X github.com/v2rayA/v2rayA/conf.Version=%{version} +export GO_BUILDTAGS="with_gvisor" +%gobuild -o ../v2raya + +%install +%gopkginstall +install -Dm 755 v2raya -t %{buildroot}/%{_bindir} +install -Dm 644 install/universal/v2raya.desktop -t %{buildroot}/%{_appsdir}/ +install -Dm 644 install/universal/v2raya.service -t %{buildroot}/%{_unitdir}/ +install -Dm 644 install/universal/v2raya-lite.service -t %{buildroot}/%{_userunitdir}/ +install -Dm 644 install/universal/v2raya.default -t %{buildroot}/%{_sysconfdir}/default/v2raya.conf +install -Dm 644 gui/public/img/icons/android-chrome-512x512.png %{buildroot}/%{_hicolordir}/512x512/apps/v2raya.png + +%check +%desktop_file_validate %{buildroot}/%{_appsdir}/v2raya.desktop + +%post +%systemd_post v2raya.service + +%preun +%systemd_preun v2raya.service + +%postun +%systemd_postun_with_restart v2raya.service + +%files +%doc README.md +%license LICENSE +%{_bindir}/v2raya +%{_unitdir}/v2raya.service +%{_userunitdir}/v2raya-lite.service +%{_sysconfdir}/default/v2raya.conf +%{_appsdir}/v2raya.desktop +%{_hicolordir}/512x512/apps/v2raya.png + +%gopkgfiles + +%changelog +* Sun Mar 8 2026 veuxit - 2.2.7.5^20260305git.d92dbf9-1 +- Initial package release diff --git a/anda/langs/go/v2raya/stable/anda.hcl b/anda/langs/go/v2raya/stable/anda.hcl new file mode 100644 index 0000000000..8b4d4b8d67 --- /dev/null +++ b/anda/langs/go/v2raya/stable/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "v2raya.spec" + } +} diff --git a/anda/langs/go/v2raya/stable/update.rhai b/anda/langs/go/v2raya/stable/update.rhai new file mode 100644 index 0000000000..846fa87be5 --- /dev/null +++ b/anda/langs/go/v2raya/stable/update.rhai @@ -0,0 +1 @@ +rpm.version(gh_tag("v2rayA/v2rayA")); diff --git a/anda/langs/go/v2raya/stable/v2raya.spec b/anda/langs/go/v2raya/stable/v2raya.spec new file mode 100644 index 0000000000..a2e8fc250b --- /dev/null +++ b/anda/langs/go/v2raya/stable/v2raya.spec @@ -0,0 +1,76 @@ +%global goipath github.com/v2rayA/v2rayA +Version: 2.4.0 + +%global golicenses LICENSE +%global godocs README.md + +%gometa -f + +Name: v2raya +Release: 1%{?dist} +Summary: A web GUI client of Project V which supports VMess, VLESS, SS, SSR, Trojan, Tuic and Juicity protocols +License: AGPL-3.0-only +URL: %{gourl} +Source: %{gosource} +Packager: veuxit +Conflicts: v2raya-nightly + +Requires: v2ray-geoip v2ray-domain-list-community ((v2ray or v2ray-nightly) or (xray or xray-nightly)) + +BuildRequires: go go-rpm-macros go-srpm-macros anda-srpm-macros nodejs yarnpkg desktop-file-utils + +%description +%summary. + +%gopkg + +%prep +%goprep_online -A + +%build +pushd gui +yarn --ignore-engines && OUTPUT_DIR=$(pwd)/../service/server/router/web yarn --ignore-engines build +popd + +pushd service +%define gomodulesmode GO111MODULE=on +%define currentgoldflags -X github.com/v2rayA/v2rayA/conf.Version=%{version} +export GO_BUILDTAGS="with_gvisor" +%gobuild -o ../v2raya + +%install +%gopkginstall +install -Dm 755 v2raya -t %{buildroot}/%{_bindir} +install -Dm 644 install/universal/v2raya.desktop -t %{buildroot}/%{_appsdir}/ +install -Dm 644 install/universal/v2raya.service -t %{buildroot}/%{_unitdir}/ +install -Dm 644 install/universal/v2raya-lite.service -t %{buildroot}/%{_userunitdir}/ +install -Dm 644 install/universal/v2raya.default -t %{buildroot}/%{_sysconfdir}/default/v2raya.conf +install -Dm 644 gui/public/img/icons/android-chrome-512x512.png %{buildroot}/%{_hicolordir}/512x512/apps/v2raya.png + +%check +%desktop_file_validate %{buildroot}/%{_appsdir}/v2raya.desktop + +%post +%systemd_post v2raya.service + +%preun +%systemd_preun v2raya.service + +%postun +%systemd_postun_with_restart v2raya.service + +%files +%doc README.md +%license LICENSE +%{_bindir}/v2raya +%{_unitdir}/v2raya.service +%{_userunitdir}/v2raya-lite.service +%{_sysconfdir}/default/v2raya.conf +%{_appsdir}/v2raya.desktop +%{_hicolordir}/512x512/apps/v2raya.png + +%gopkgfiles + +%changelog +* Sun Mar 8 2026 veuxit - 2.2.7.5-1 +- Initial package release diff --git a/anda/langs/go/wishlist/anda.hcl b/anda/langs/go/wishlist/anda.hcl new file mode 100644 index 0000000000..01d4f8deb6 --- /dev/null +++ b/anda/langs/go/wishlist/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "wishlist.spec" + } +} diff --git a/anda/langs/go/wishlist/update.rhai b/anda/langs/go/wishlist/update.rhai new file mode 100644 index 0000000000..227cff103d --- /dev/null +++ b/anda/langs/go/wishlist/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("charmbracelet/wishlist")); diff --git a/anda/langs/go/wishlist/wishlist.spec b/anda/langs/go/wishlist/wishlist.spec new file mode 100644 index 0000000000..cd6051d49b --- /dev/null +++ b/anda/langs/go/wishlist/wishlist.spec @@ -0,0 +1,38 @@ +%global debug_package %{nil} + +%global goipath github.com/charmbracelet/wishlist +Version: 0.15.2 + +%gometa -f + +Name: wishlist +Release: 1%?dist +Summary: The SSH directory +URL: https://github.com/charmbracelet/%{name} +Source0: https://github.com/charmbracelet/%{name}/archive/refs/tags/v%{version}.tar.gz +License: MIT + +Packager: arbormoss + +%description +%summary. + +%prep +%goprep -A + +%build +%define currentgoldflags -X main.version=%version +%define gomodulesmode GO111MODULE=on +%gobuild -o %{gobuilddir}/bin/%{name} ./cmd/%{name} + +%install +install -Dm755 %{gobuilddir}/bin/%{name} %{buildroot}%{_bindir}/%{name} + +%files +%license LICENSE +%doc README.md +%{_bindir}/%{name} + +%changelog +* Thu Dec 11 2025 arbormoss +- Intial Commit diff --git a/anda/langs/go/xray/nightly/anda.hcl b/anda/langs/go/xray/nightly/anda.hcl new file mode 100644 index 0000000000..58d3ede9f9 --- /dev/null +++ b/anda/langs/go/xray/nightly/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "xray-nightly.spec" + } + labels { + nightly = 1 + } +} diff --git a/anda/langs/go/xray/nightly/update.rhai b/anda/langs/go/xray/nightly/update.rhai new file mode 100644 index 0000000000..acb3222cd9 --- /dev/null +++ b/anda/langs/go/xray/nightly/update.rhai @@ -0,0 +1,7 @@ +rpm.global("commit", gh_commit("XTLS/Xray-core")); +if rpm.changed() { + rpm.release(); + rpm.global("commit_date", date()); + let v = gh("XTLS/Xray-core"); + rpm.global("ver", v); +} \ No newline at end of file diff --git a/anda/langs/go/xray/nightly/xray-nightly.spec b/anda/langs/go/xray/nightly/xray-nightly.spec new file mode 100644 index 0000000000..d70d4f82fc --- /dev/null +++ b/anda/langs/go/xray/nightly/xray-nightly.spec @@ -0,0 +1,84 @@ +%global commit 228f1e13aa22739b0d6b9adbdb2b600f1e2018e1 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global ver v26.3.27 +%global commit_date 20260504 + +%global goipath github.com/XTLS/Xray-core +Version: %{ver}^%{commit_date}git.%{shortcommit} + +%global golicenses LICENSE +%global godocs README.md SECURITY.md CODE_OF_CONDUCT.md + +Name: xray-nightly +Release: 1%{?dist} +Summary: High-performance, open-source network proxy engine and toolset designed to bypass internet censorship and enhance privacy +License: MPL-2.0 +Packager: veuxit +URL: https://github.com/XTLS/Xray-core +Conflicts: xray + +Source0: %{url}/archive/%{commit}/Xray-core-%{commit}.tar.gz +Source1: xray.service +Source2: xray@.service +Source3: xray.sysusers +Source4: xray.tmpfiles + +Requires: v2ray-geoip v2ray-domain-list-community + +BuildRequires: golang >= 1.26 +BuildRequires: go-rpm-macros go-srpm-macros anda-srpm-macros + +%description +%summary. + +%gopkg + +%prep +%autosetup -n Xray-core-%{commit} +%goprep_online -Ae + +%build +%define gomodulesmode GO111MODULE=on +%gobuild -o xray ./main + +%install +%gopkginstall +install -Dm755 xray %{buildroot}%{_bindir}/xray + +install -d "%{buildroot}/etc/xray" "%{buildroot}%{_datadir}/xray" + +ln -s %{_datadir}/v2ray/geo{ip,site}.dat -t "%{buildroot}%{_datadir}/xray" + +install -Dm644 %{SOURCE1} -t %{buildroot}/%{_unitdir} +install -Dm644 %{SOURCE2} -t %{buildroot}/%{_unitdir} +install -Dm644 %{SOURCE3} %{buildroot}/%{_sysusersdir}/xray.conf +install -Dm644 %{SOURCE4} %{buildroot}/usr/lib/tmpfiles.d/xray.conf + + +%post +%systemd_post xray.service + +%preun +%systemd_preun xray.service + +%postun +%systemd_postun_with_restart xray.service + +%files +%doc README.md +%doc SECURITY.md +%doc CODE_OF_CONDUCT.md +%license LICENSE +%{_bindir}/xray +%{_datadir}/xray/geoip.dat +%{_datadir}/xray/geosite.dat +%{_unitdir}/xray.service +%{_unitdir}/xray@.service +%{_sysusersdir}/xray.conf +/usr/lib/tmpfiles.d/xray.conf + +%gopkgfiles + +%changelog +* Sun Mar 8 2026 veuxit - 26.2.2^20260307git.acb06e8-1 +- Initial package release diff --git a/anda/langs/go/xray/nightly/xray.service b/anda/langs/go/xray/nightly/xray.service new file mode 100644 index 0000000000..2c24daa71b --- /dev/null +++ b/anda/langs/go/xray/nightly/xray.service @@ -0,0 +1,14 @@ +[Unit] +Description=Xray Service +After=network.target nss-lookup.target + +[Service] +User=xray +CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE +AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE +NoNewPrivileges=true +ExecStart=/usr/bin/xray run -confdir /etc/xray/ +Restart=on-abort + +[Install] +WantedBy=multi-user.target diff --git a/anda/langs/go/xray/nightly/xray.sysusers b/anda/langs/go/xray/nightly/xray.sysusers new file mode 100644 index 0000000000..0260d2dc7b --- /dev/null +++ b/anda/langs/go/xray/nightly/xray.sysusers @@ -0,0 +1 @@ +u xray - "Xray Service" - - diff --git a/anda/langs/go/xray/nightly/xray.tmpfiles b/anda/langs/go/xray/nightly/xray.tmpfiles new file mode 100644 index 0000000000..896975f158 --- /dev/null +++ b/anda/langs/go/xray/nightly/xray.tmpfiles @@ -0,0 +1 @@ +d /var/log/xray 0700 xray xray - - diff --git a/anda/langs/go/xray/nightly/xray@.service b/anda/langs/go/xray/nightly/xray@.service new file mode 100644 index 0000000000..a024fb1a9f --- /dev/null +++ b/anda/langs/go/xray/nightly/xray@.service @@ -0,0 +1,14 @@ +[Unit] +Description=Xray Service +After=network.target nss-lookup.target + +[Service] +User=xray +CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE +AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE +NoNewPrivileges=true +ExecStart=/usr/bin/xray run -config /etc/xray/%i.json +Restart=on-abort + +[Install] +WantedBy=multi-user.target diff --git a/anda/langs/go/xray/stable/anda.hcl b/anda/langs/go/xray/stable/anda.hcl new file mode 100644 index 0000000000..b39e7e2d8f --- /dev/null +++ b/anda/langs/go/xray/stable/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "xray.spec" + } +} diff --git a/anda/langs/go/xray/stable/update.rhai b/anda/langs/go/xray/stable/update.rhai new file mode 100644 index 0000000000..c9124ea5bd --- /dev/null +++ b/anda/langs/go/xray/stable/update.rhai @@ -0,0 +1 @@ +rpm.version(gh_tag("XTLS/Xray-core")); diff --git a/anda/langs/go/xray/stable/xray.service b/anda/langs/go/xray/stable/xray.service new file mode 100644 index 0000000000..2c24daa71b --- /dev/null +++ b/anda/langs/go/xray/stable/xray.service @@ -0,0 +1,14 @@ +[Unit] +Description=Xray Service +After=network.target nss-lookup.target + +[Service] +User=xray +CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE +AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE +NoNewPrivileges=true +ExecStart=/usr/bin/xray run -confdir /etc/xray/ +Restart=on-abort + +[Install] +WantedBy=multi-user.target diff --git a/anda/langs/go/xray/stable/xray.spec b/anda/langs/go/xray/stable/xray.spec new file mode 100644 index 0000000000..c94d09388b --- /dev/null +++ b/anda/langs/go/xray/stable/xray.spec @@ -0,0 +1,77 @@ +# Disabled because compiled without debug + +%global goipath github.com/XTLS/Xray-core +Version: 26.5.3 + +%global golicenses LICENSE +%global godocs README.md SECURITY.md CODE_OF_CONDUCT.md + +Name: xray +Release: 1%{?dist} +Summary: High-performance, open-source network proxy engine and toolset designed to bypass internet censorship and enhance privacy +License: MPL-2.0 +Packager: veuxit +URL: https://github.com/XTLS/Xray-core +Conflicts: xray-nightly + +Source0: https://github.com/XTLS/Xray-core/archive/refs/tags/v%{version}.tar.gz +Source1: xray.service +Source2: xray@.service +Source3: xray.sysusers +Source4: xray.tmpfiles + +Requires: v2ray-geoip v2ray-domain-list-community + +BuildRequires: go go-rpm-macros go-srpm-macros anda-srpm-macros + +%description +%summary. + +%gopkg + +%prep +%goprep_online -Ae +%autosetup -n Xray-core-%{version} + + +%build +%define gomodulesmode GO111MODULE=on +%gobuild -o xray ./main + +%install +%gopkginstall +install -Dm755 xray %{buildroot}%{_bindir}/xray +install -d "%{buildroot}/etc/xray" "%{buildroot}%{_datadir}/xray" +ln -s %{_datadir}/v2ray/geo{ip,site}.dat -t "%{buildroot}%{_datadir}/xray" +install -Dm644 %{SOURCE1} -t %{buildroot}/%{_unitdir} +install -Dm644 %{SOURCE2} -t %{buildroot}/%{_unitdir} +install -Dm644 %{SOURCE3} %{buildroot}/%{_sysusersdir}/xray.conf +install -Dm644 %{SOURCE4} %{buildroot}/usr/lib/tmpfiles.d/xray.conf + +%post +%systemd_post xray.service + +%preun +%systemd_preun xray.service + +%postun +%systemd_postun_with_restart xray.service + +%files +%doc README.md +%doc SECURITY.md +%doc CODE_OF_CONDUCT.md +%license LICENSE +%{_bindir}/xray +%{_datadir}/xray/geoip.dat +%{_datadir}/xray/geosite.dat +%{_unitdir}/xray.service +%{_unitdir}/xray@.service +%{_sysusersdir}/xray.conf +/usr/lib/tmpfiles.d/xray.conf + +%gopkgfiles + +%changelog +* Sun Mar 8 2026 veuxit - 26.2.6-1 +- Initial package release diff --git a/anda/langs/go/xray/stable/xray.sysusers b/anda/langs/go/xray/stable/xray.sysusers new file mode 100644 index 0000000000..0260d2dc7b --- /dev/null +++ b/anda/langs/go/xray/stable/xray.sysusers @@ -0,0 +1 @@ +u xray - "Xray Service" - - diff --git a/anda/langs/go/xray/stable/xray.tmpfiles b/anda/langs/go/xray/stable/xray.tmpfiles new file mode 100644 index 0000000000..896975f158 --- /dev/null +++ b/anda/langs/go/xray/stable/xray.tmpfiles @@ -0,0 +1 @@ +d /var/log/xray 0700 xray xray - - diff --git a/anda/langs/go/xray/stable/xray@.service b/anda/langs/go/xray/stable/xray@.service new file mode 100644 index 0000000000..a024fb1a9f --- /dev/null +++ b/anda/langs/go/xray/stable/xray@.service @@ -0,0 +1,14 @@ +[Unit] +Description=Xray Service +After=network.target nss-lookup.target + +[Service] +User=xray +CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE +AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE +NoNewPrivileges=true +ExecStart=/usr/bin/xray run -config /etc/xray/%i.json +Restart=on-abort + +[Install] +WantedBy=multi-user.target diff --git a/anda/langs/go/zrepl/golang-github-zrepl.spec b/anda/langs/go/zrepl/golang-github-zrepl.spec index f3e8ecb708..ec21651539 100644 --- a/anda/langs/go/zrepl/golang-github-zrepl.spec +++ b/anda/langs/go/zrepl/golang-github-zrepl.spec @@ -4,7 +4,7 @@ # https://github.com/zrepl/zrepl %global goipath github.com/zrepl/zrepl -Version: 0.6.1 +Version: 0.7.0 %gometa -f @@ -75,7 +75,7 @@ cp -a config/samples %{buildroot}%{_datadir}/ %license LICENSE %doc README.md %{_bindir}/* -%config %{_unitdir}/zrepl.service +%{_unitdir}/zrepl.service %dir %{_sysconfdir}/zrepl %config(noreplace) %{_sysconfdir}/zrepl/zrepl.yml %{_datadir}/bash-completion/completions/zrepl diff --git a/anda/langs/groovy/groovy-docs/groovy-docs.spec b/anda/langs/groovy/groovy-docs/groovy-docs.spec index 06a0ff32d3..f27dab6968 100644 --- a/anda/langs/groovy/groovy-docs/groovy-docs.spec +++ b/anda/langs/groovy/groovy-docs/groovy-docs.spec @@ -1,6 +1,6 @@ Name: groovy-docs -Version: 5.0.2 -Release: 1%?dist +Version: 5.0.5 +Release: 1%{?dist} Summary: Documentation for the Groovy programming language URL: https://groovy-lang.org/ License: Apache-2.0 @@ -27,5 +27,5 @@ cp -r groovy-%{version} %{buildroot}/usr/share/doc/ /usr/share/doc/groovy-%{version} %changelog -* Tue Feb 7 2023 windowsboy111 +* Tue Feb 7 2023 madonuko - Initial package diff --git a/anda/langs/groovy/groovy.spec b/anda/langs/groovy/groovy.spec index 6a9d3a2a31..50e10c642d 100644 --- a/anda/langs/groovy/groovy.spec +++ b/anda/langs/groovy/groovy.spec @@ -1,6 +1,6 @@ Name: groovy -Version: 5.0.2 -Release: 1%?dist +Version: 5.0.5 +Release: 1%{?dist} Summary: A multi-faceted language for the Java platform BuildArch: noarch URL: https://groovy-lang.org/ @@ -63,5 +63,5 @@ install -Dm644 %{name}.desktop -t %{buildroot}/usr/share/applications %changelog -* Wed Feb 8 2023 windowsboy111 - 4.0.12-1 +* Wed Feb 8 2023 madonuko - 4.0.12-1 - Initial package diff --git a/anda/langs/haskell/ghc-bv/anda.hcl b/anda/langs/haskell/ghc-bv/anda.hcl new file mode 100644 index 0000000000..a98449cf81 --- /dev/null +++ b/anda/langs/haskell/ghc-bv/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "ghc-bv.spec" + } +} diff --git a/anda/langs/haskell/ghc-bv/ghc-bv.spec b/anda/langs/haskell/ghc-bv/ghc-bv.spec new file mode 100644 index 0000000000..d5700ac8b0 --- /dev/null +++ b/anda/langs/haskell/ghc-bv/ghc-bv.spec @@ -0,0 +1,110 @@ +# generated by cabal-rpm-2.3.2 +# https://docs.fedoraproject.org/en-US/packaging-guidelines/Haskell/ + +%global pkg_name bv +%global pkgver %{pkg_name}-%{version} +%{?haskell_setup} + +Name: ghc-%{pkg_name} +Version: 0.5 +Release: 1%{?dist} +Summary: Bit-vector arithmetic library + +License: BSD-3-Clause +URL: https://hackage.haskell.org/package/bv +# Begin cabal-rpm sources: +Source0: https://hackage.haskell.org/package/%{pkgver}/%{pkgver}.tar.gz +# End cabal-rpm sources + +# Begin cabal-rpm deps: +BuildRequires: ghc-rpm-macros +BuildRequires: ghc-Cabal-devel +BuildRequires: ghc-base-devel +%if %{with ghc_prof} +BuildRequires: ghc-base-prof +%endif +# End cabal-rpm deps + +Packager: Owen Zimmerman + +%description +Bit-vectors implemented as a thin wrapper over integers. + + +%package devel +Summary: Haskell %{pkg_name} library development files +Provides: %{name}-static = %{version}-%{release} +Provides: %{name}-static%{?_isa} = %{version}-%{release} +%if %{defined ghc_version} +Requires: ghc-compiler = %{ghc_version} +%endif +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description devel +This package provides the Haskell %{pkg_name} library development files. + + +%if %{with haddock} +%package doc +Summary: Haskell %{pkg_name} library documentation +BuildArch: noarch +Requires: ghc-filesystem + +%description doc +This package provides the Haskell %{pkg_name} library documentation. +%endif + + +%if %{with ghc_prof} +%package prof +Summary: Haskell %{pkg_name} profiling library +Requires: %{name}-devel%{?_isa} = %{version}-%{release} +Supplements: (%{name}-devel and ghc-prof) + +%description prof +This package provides the Haskell %{pkg_name} profiling library. +%endif + + +%prep +# Begin cabal-rpm setup: +%setup -q -n %{pkgver} +# End cabal-rpm setup + + +%build +# Begin cabal-rpm build: +%ghc_lib_build +# End cabal-rpm build + + +%install +# Begin cabal-rpm install +%ghc_lib_install +# End cabal-rpm install + + +%files -f %{name}.files +# Begin cabal-rpm files: +%license LICENSE +# End cabal-rpm files + + +%files devel -f %{name}-devel.files +%doc CHANGES.md README.md + + +%if %{with haddock} +%files doc -f %{name}-doc.files +%license LICENSE +%endif + + +%if %{with ghc_prof} +%files prof -f %{name}-prof.files +%endif + + +%changelog +* Tue Apr 28 2026 Owen Zimmerman - 0.5-1 +- Initial commit diff --git a/anda/langs/haskell/ghc-bv/update.rhai b/anda/langs/haskell/ghc-bv/update.rhai new file mode 100644 index 0000000000..b9eef8f71e --- /dev/null +++ b/anda/langs/haskell/ghc-bv/update.rhai @@ -0,0 +1 @@ +rpm.version(hackage("bv")); diff --git a/anda/langs/haskell/ghc-freer-simple/anda.hcl b/anda/langs/haskell/ghc-freer-simple/anda.hcl new file mode 100644 index 0000000000..f9e83dd772 --- /dev/null +++ b/anda/langs/haskell/ghc-freer-simple/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "ghc-freer-simple.spec" + } +} diff --git a/anda/langs/haskell/ghc-freer-simple/ghc-freer-simple.spec b/anda/langs/haskell/ghc-freer-simple/ghc-freer-simple.spec new file mode 100644 index 0000000000..38cdd7f687 --- /dev/null +++ b/anda/langs/haskell/ghc-freer-simple/ghc-freer-simple.spec @@ -0,0 +1,134 @@ +# generated by cabal-rpm-2.3.2 +# https://docs.fedoraproject.org/en-US/packaging-guidelines/Haskell/ + +%global pkg_name freer-simple +%global pkgver %{pkg_name}-%{version} +%{?haskell_setup} + +# testsuite missing deps: QuickCheck tasty tasty-hunit tasty-quickcheck + +Name: ghc-%{pkg_name} +Version: 1.2.1.2 +Release: 1%{?dist} +Summary: A friendly effect system for Haskell + +License: BSD-3-Clause +URL: https://hackage.haskell.org/package/freer-simple +# Begin cabal-rpm sources: +Source0: https://hackage.haskell.org/package/%{pkgver}/%{pkgver}.tar.gz +Source1: https://hackage.haskell.org/package/%{pkgver}/%{pkg_name}.cabal#/%{pkgver}.cabal +# End cabal-rpm sources + +# Begin cabal-rpm deps: +BuildRequires: ghc-rpm-macros +BuildRequires: ghc-Cabal-devel +BuildRequires: ghc-base-devel +BuildRequires: ghc-natural-transformation-devel +BuildRequires: ghc-template-haskell-devel +BuildRequires: ghc-transformers-base-devel +%if %{with ghc_prof} +BuildRequires: ghc-base-prof +BuildRequires: ghc-natural-transformation-prof +BuildRequires: ghc-template-haskell-prof +BuildRequires: ghc-transformers-base-prof +%endif +# End cabal-rpm deps + +Packager: Owen Zimmerman + +%description +An implementation of an effect system for Haskell (a fork of +), which is +based on the work of Oleg Kiselyov et al.: + +* * * + +The key features are: + +* An efficient effect system for Haskell - as a library! * Reimplementations of +several common Haskell monad transformers as effects. * Core components for +defining your own Effects. + + +%package devel +Summary: Haskell %{pkg_name} library development files +Provides: %{name}-static = %{version}-%{release} +Provides: %{name}-static%{?_isa} = %{version}-%{release} +%if %{defined ghc_version} +Requires: ghc-compiler = %{ghc_version} +%endif +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description devel +This package provides the Haskell %{pkg_name} library development files. + + +%if %{with haddock} +%package doc +Summary: Haskell %{pkg_name} library documentation +BuildArch: noarch +Requires: ghc-filesystem + +%description doc +This package provides the Haskell %{pkg_name} library documentation. +%endif + + +%if %{with ghc_prof} +%package prof +Summary: Haskell %{pkg_name} profiling library +Requires: %{name}-devel%{?_isa} = %{version}-%{release} +Supplements: (%{name}-devel and ghc-prof) + +%description prof +This package provides the Haskell %{pkg_name} profiling library. +%endif + + +%prep +# Begin cabal-rpm setup: +%setup -q -n %{pkgver} +cp -bp %{SOURCE1} %{pkg_name}.cabal +# End cabal-rpm setup + + +%build +# Begin cabal-rpm build: +%ghc_lib_build +# End cabal-rpm build + + +%install +# Begin cabal-rpm install +%ghc_lib_install +# End cabal-rpm install + + +%files -f %{name}.files +# Begin cabal-rpm files: +%license LICENSE +# End cabal-rpm files + + +%files devel -f %{name}-devel.files +%doc CHANGELOG.md README.md examples +%{_bindir}/freer-simple-examples + + +%if %{with haddock} +%files doc -f %{name}-doc.files +%license LICENSE +%endif + + +%if %{with ghc_prof} +%files prof -f %{name}-prof.files +%endif + + +%changelog +* Tue Apr 28 2026 Owen Zimmerman - 1.2.1.2-1 +- Initial commit diff --git a/anda/langs/haskell/ghc-freer-simple/update.rhai b/anda/langs/haskell/ghc-freer-simple/update.rhai new file mode 100644 index 0000000000..b4c88e609e --- /dev/null +++ b/anda/langs/haskell/ghc-freer-simple/update.rhai @@ -0,0 +1 @@ +rpm.version(hackage("freer-simple")); diff --git a/anda/langs/haskell/ghc-ghc-exactprint/anda.hcl b/anda/langs/haskell/ghc-ghc-exactprint/anda.hcl new file mode 100644 index 0000000000..aaa2098fca --- /dev/null +++ b/anda/langs/haskell/ghc-ghc-exactprint/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "ghc-ghc-exactprint.spec" + } +} diff --git a/anda/langs/haskell/ghc-ghc-exactprint/ghc-ghc-exactprint.spec b/anda/langs/haskell/ghc-ghc-exactprint/ghc-ghc-exactprint.spec new file mode 100644 index 0000000000..ed978e90ff --- /dev/null +++ b/anda/langs/haskell/ghc-ghc-exactprint/ghc-ghc-exactprint.spec @@ -0,0 +1,137 @@ +# generated by cabal-rpm-2.3.0 +# https://docs.fedoraproject.org/en-US/packaging-guidelines/Haskell/ + +%global pkg_name ghc-exactprint +%global pkgver %{pkg_name}-%{version} +%{?haskell_setup} + +# testsuite missing deps: Diff HUnit data-default extra fail ghc-paths ordered-containers silently syb + +Name: ghc-%{pkg_name} +Version: 1.8.0.0 +Release: 1%{?dist} +Summary: ExactPrint for GHC + +License: BSD-3-Clause +URL: https://hackage.haskell.org/package/ghc-exactprint +# Begin cabal-rpm sources: +Source0: https://hackage.haskell.org/package/%{pkgver}/%{pkgver}.tar.gz +# End cabal-rpm sources + +# Begin cabal-rpm deps: +BuildRequires: ghc-Cabal-devel +BuildRequires: ghc-rpm-macros +BuildRequires: ghc-base-devel +BuildRequires: ghc-bytestring-devel +BuildRequires: ghc-containers-devel +BuildRequires: ghc-data-default-devel +BuildRequires: ghc-directory-devel +BuildRequires: ghc-filepath-devel +BuildRequires: ghc-free-devel +BuildRequires: ghc-ghc-devel +BuildRequires: ghc-ghc-boot-devel +BuildRequires: ghc-mtl-devel +BuildRequires: ghc-ordered-containers-devel +BuildRequires: ghc-syb-devel +%if %{with ghc_prof} +BuildRequires: ghc-base-prof +BuildRequires: ghc-bytestring-prof +BuildRequires: ghc-containers-prof +BuildRequires: ghc-data-default-prof +BuildRequires: ghc-directory-prof +BuildRequires: ghc-filepath-prof +BuildRequires: ghc-free-prof +BuildRequires: ghc-ghc-prof +BuildRequires: ghc-ghc-boot-prof +BuildRequires: ghc-mtl-prof +BuildRequires: ghc-ordered-containers-prof +BuildRequires: ghc-syb-prof +%endif +# End cabal-rpm deps + +Packager: Owen Zimmerman + +%description +Using the API Annotations available from GHC 9.2.1, this library provides a +means to round trip any code that can be compiled by GHC, currently excluding +lhs files. + +Note: requires GHC 9.6.*. For earlier GHC versions see lower version numbers. + + +%package devel +Summary: Haskell %{pkg_name} library development files +Provides: %{name}-static = %{version}-%{release} +Provides: %{name}-static%{?_isa} = %{version}-%{release} +%if %{defined ghc_version} +Requires: ghc-compiler = %{ghc_version} +%endif +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description devel +This package provides the Haskell %{pkg_name} library development files. + + +%if %{with haddock} +%package doc +Summary: Haskell %{pkg_name} library documentation +BuildArch: noarch +Requires: ghc-filesystem + +%description doc +This package provides the Haskell %{pkg_name} library documentation. +%endif + + +%if %{with ghc_prof} +%package prof +Summary: Haskell %{pkg_name} profiling library +Requires: %{name}-devel%{?_isa} = %{version}-%{release} +Supplements: (%{name}-devel and ghc-prof) + +%description prof +This package provides the Haskell %{pkg_name} profiling library. +%endif + + +%prep +# Begin cabal-rpm setup: +%setup -q -n %{pkgver} +# End cabal-rpm setup +%build +# Begin cabal-rpm build: +%dnl %global cabal_configure_options --allow-newer=base,fail +%ghc_lib_build +# End cabal-rpm build + + +%install +# Begin cabal-rpm install +%ghc_lib_install +# End cabal-rpm install + + +%files -f %{name}.files +# Begin cabal-rpm files: +%license LICENSE +# End cabal-rpm files + + +%files devel -f %{name}-devel.files +%doc ChangeLog + + +%if %{with haddock} +%files doc -f %{name}-doc.files +%license LICENSE +%endif + + +%if %{with ghc_prof} +%files prof -f %{name}-prof.files +%endif + + +%changelog +* Fri Jan 02 2026 Owen Zimmerman 1.8.0.0-1 +- spec file generated by cabal-rpm-2.3.0 diff --git a/anda/langs/haskell/ghc-language-bluespec/anda.hcl b/anda/langs/haskell/ghc-language-bluespec/anda.hcl new file mode 100644 index 0000000000..6234b99a7a --- /dev/null +++ b/anda/langs/haskell/ghc-language-bluespec/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "ghc-language-bluespec.spec" + } +} diff --git a/anda/langs/haskell/ghc-language-bluespec/ghc-language-bluespec.spec b/anda/langs/haskell/ghc-language-bluespec/ghc-language-bluespec.spec new file mode 100644 index 0000000000..5b21bc0714 --- /dev/null +++ b/anda/langs/haskell/ghc-language-bluespec/ghc-language-bluespec.spec @@ -0,0 +1,127 @@ +# generated by cabal-rpm-2.3.2 +# https://docs.fedoraproject.org/en-US/packaging-guidelines/Haskell/ + +%global pkg_name language-bluespec +%global pkgver %{pkg_name}-%{version} +%{?haskell_setup} + +Name: ghc-%{pkg_name} +Version: 0.1 +Release: 1%{?dist} +Summary: An implementation of the Bluespec Haskell AST + +License: BSD-3-Clause +URL: https://hackage.haskell.org/package/language-bluespec +# Begin cabal-rpm sources: +Source0: https://hackage.haskell.org/package/%{pkgver}/%{pkgver}.tar.gz +Source1: https://hackage.haskell.org/package/%{pkgver}/%{pkg_name}.cabal#/%{pkgver}.cabal +# End cabal-rpm sources + +# Begin cabal-rpm deps: +BuildRequires: ghc-rpm-macros +BuildRequires: ghc-Cabal-devel +BuildRequires: ghc-base-devel +BuildRequires: ghc-containers-devel +BuildRequires: ghc-pretty-devel +BuildRequires: ghc-text-devel +%if %{with ghc_prof} +BuildRequires: ghc-base-prof +BuildRequires: ghc-containers-prof +BuildRequires: ghc-pretty-prof +BuildRequires: ghc-text-prof +%endif +# End cabal-rpm deps + +Packager: Owen Zimmerman + +%description +This package contains an implementation of the language's AST. In particular, this implements the Bluespec Haskell +(BH) syntax, also known as Bluespec Classic. We may add support for the +Bluespec SystemVerilog (BSV) syntax at a later date. To our knowledge, there is +no formal grammar that describes the syntax of BH or BSV, so this package is +based off of the code in the . Although the Bluespec compiler is written in Haskell, it is not +particularly simple to depend on the compiler as a library, so this package +exists to extract out the relevant compiler code into a simple-to-use library. + + +%package devel +Summary: Haskell %{pkg_name} library development files +Provides: %{name}-static = %{version}-%{release} +Provides: %{name}-static%{?_isa} = %{version}-%{release} +%if %{defined ghc_version} +Requires: ghc-compiler = %{ghc_version} +%endif +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description devel +This package provides the Haskell %{pkg_name} library development +files. + + +%if %{with haddock} +%package doc +Summary: Haskell %{pkg_name} library documentation +BuildArch: noarch +Requires: ghc-filesystem + +%description doc +This package provides the Haskell %{pkg_name} library documentation. +%endif + + +%if %{with ghc_prof} +%package prof +Summary: Haskell %{pkg_name} profiling library +Requires: %{name}-devel%{?_isa} = %{version}-%{release} +Supplements: (%{name}-devel and ghc-prof) + +%description prof +This package provides the Haskell %{pkg_name} profiling library. +%endif + + +%prep +# Begin cabal-rpm setup: +%setup -q -n %{pkgver} +cp -bp %{SOURCE1} %{pkg_name}.cabal +# End cabal-rpm setup + + +%build +# Begin cabal-rpm build: +%ghc_lib_build +# End cabal-rpm build + + +%install +# Begin cabal-rpm install +%ghc_lib_install +# End cabal-rpm install + + +%files -f %{name}.files +# Begin cabal-rpm files: +%license LICENSE +# End cabal-rpm files + + +%files devel -f %{name}-devel.files +%doc CHANGELOG.md README.md + + +%if %{with haddock} +%files doc -f %{name}-doc.files +%license LICENSE +%endif + + +%if %{with ghc_prof} +%files prof -f %{name}-prof.files +%endif + + +%changelog +* Tue Apr 28 2026 Owen Zimmerman - 0.1-1 +- Initial Commit diff --git a/anda/langs/haskell/ghc-language-bluespec/update.rhai b/anda/langs/haskell/ghc-language-bluespec/update.rhai new file mode 100644 index 0000000000..1cddac58c3 --- /dev/null +++ b/anda/langs/haskell/ghc-language-bluespec/update.rhai @@ -0,0 +1 @@ +rpm.version(hackage("language-bluespec")); diff --git a/anda/langs/haskell/ghc-libriscv/anda.hcl b/anda/langs/haskell/ghc-libriscv/anda.hcl new file mode 100644 index 0000000000..9bda3866d7 --- /dev/null +++ b/anda/langs/haskell/ghc-libriscv/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "ghc-libriscv.spec" + } +} diff --git a/anda/langs/haskell/ghc-libriscv/bytestring-ver-fix.patch b/anda/langs/haskell/ghc-libriscv/bytestring-ver-fix.patch new file mode 100644 index 0000000000..31dc9cbd69 --- /dev/null +++ b/anda/langs/haskell/ghc-libriscv/bytestring-ver-fix.patch @@ -0,0 +1,13 @@ +diff --git a/libriscv.cabal b/libriscv.cabal +index 25e48fa..22e204a 100644 +--- a/libriscv.cabal ++++ b/libriscv.cabal +@@ -91,7 +91,7 @@ library + , base >= 4.15.0.0 && <4.20.0.0 + , array ^>= 0.5.4.0 + , filepath ^>= 1.4.2.1 +- , bytestring >= 0.10.10 && <0.12 ++ , bytestring >= 0.10.10 + , exceptions ^>= 0.10.4 + , melf ^>= 1.3.0 + , freer-simple ^>= 1.2.1.2 diff --git a/anda/langs/haskell/ghc-libriscv/ghc-libriscv.spec b/anda/langs/haskell/ghc-libriscv/ghc-libriscv.spec new file mode 100644 index 0000000000..f88e6904a7 --- /dev/null +++ b/anda/langs/haskell/ghc-libriscv/ghc-libriscv.spec @@ -0,0 +1,166 @@ +# generated by cabal-rpm-2.3.2 +# https://docs.fedoraproject.org/en-US/packaging-guidelines/Haskell/ + +%global pkg_name libriscv +%global pkgver %{pkg_name}-%{version} +%{?haskell_setup} + +# testsuite missing deps: bv tasty tasty-hunit + +Name: ghc-%{pkg_name} +Version: 0.1.0.0 +Release: 1%{?dist} +Summary: A versatile, flexible and executable formal model for the RISC-V architecture + +License: MIT +URL: https://hackage.haskell.org/package/libriscv +# Begin cabal-rpm sources: +Source0: https://hackage.haskell.org/package/%{pkgver}/%{pkgver}.tar.gz +# End cabal-rpm sources +Patch0: bytestring-ver-fix.patch +# Begin cabal-rpm deps: +BuildRequires: ghc-rpm-macros +BuildRequires: ghc-Cabal-devel +BuildRequires: ghc-array-devel +BuildRequires: ghc-base-devel +BuildRequires: ghc-bv-devel +BuildRequires: ghc-bytestring-devel +BuildRequires: ghc-containers-devel +BuildRequires: ghc-exceptions-devel +BuildRequires: ghc-extra-devel +BuildRequires: ghc-file-embed-devel +BuildRequires: ghc-filepath-devel +BuildRequires: ghc-freer-simple-devel +BuildRequires: ghc-melf-devel +BuildRequires: ghc-optparse-applicative-devel +BuildRequires: ghc-parameterized-utils-devel +BuildRequires: ghc-template-haskell-devel +BuildRequires: ghc-transformers-devel +BuildRequires: ghc-yaml-devel +%if %{with ghc_prof} +BuildRequires: ghc-array-prof +BuildRequires: ghc-base-prof +BuildRequires: ghc-bv-prof +BuildRequires: ghc-bytestring-prof +BuildRequires: ghc-containers-prof +BuildRequires: ghc-exceptions-prof +BuildRequires: ghc-extra-prof +BuildRequires: ghc-file-embed-prof +BuildRequires: ghc-filepath-prof +BuildRequires: ghc-freer-simple-prof +BuildRequires: ghc-melf-prof +BuildRequires: ghc-optparse-applicative-prof +BuildRequires: ghc-parameterized-utils-prof +BuildRequires: ghc-template-haskell-prof +BuildRequires: ghc-transformers-prof +BuildRequires: ghc-yaml-prof +%endif +# End cabal-rpm deps + +Packager: Owen Zimmerman + +%description +A formal model for the /Instruction Set +Architecture/ (ISA). Contrary to other Haskell RISC-V ISA models, like + or +, LibRISCV is +specifically tailored to the creation of custom ISA interpreters. To this end, +it is designed for flexibility, allowing a versatile representation of +instruction operands. For example, instruction operands can be + expressions +for of binary +code. + +LibRISCV abstractly describes instruction semantics using an /Embedded Domain +Specific Language/ (EDSL) with . This Haskell library is intended to build custom interpreters for this +free monad. The entry point for this purpose is the +'LibRISCV.Semantics.buildAST' function which obtains the free monad AST based +on an entry address. The entry address can be obtained from a provided ELF +loader implementation, this "Loader" module is also responsible for loading +binary instructions into a provided memory implementation. Refer to provided +example interpreters in the for practical usage instruction. More detailed information on +LibRISCV and its concepts is also available in a +. + + +%package devel +Summary: Haskell %{pkg_name} library development files +Provides: %{name}-static = %{version}-%{release} +Provides: %{name}-static%{?_isa} = %{version}-%{release} +%if %{defined ghc_version} +Requires: ghc-compiler = %{ghc_version} +%endif +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description devel +This package provides the Haskell %{pkg_name} library development files. + + +%if %{with haddock} +%package doc +Summary: Haskell %{pkg_name} library documentation +BuildArch: noarch +Requires: ghc-filesystem + +%description doc +This package provides the Haskell %{pkg_name} library documentation. +%endif + + +%if %{with ghc_prof} +%package prof +Summary: Haskell %{pkg_name} profiling library +Requires: %{name}-devel%{?_isa} = %{version}-%{release} +Supplements: (%{name}-devel and ghc-prof) + +%description prof +This package provides the Haskell %{pkg_name} profiling library. +%endif + + +%prep +# Begin cabal-rpm setup: +%setup -q -n %{pkgver} +%patch -P0 -p1 +# End cabal-rpm setup + + +%build +# Begin cabal-rpm build: +%ghc_lib_build +# End cabal-rpm build + + +%install +# Begin cabal-rpm install +%ghc_lib_install +# End cabal-rpm install + + +%files -f %{name}.files +# Begin cabal-rpm files: +%license LICENSE.txt +%{_datadir}/%{pkgver} +# End cabal-rpm files + + +%files devel -f %{name}-devel.files +%{_bindir}/riscv-tiny + + +%if %{with haddock} +%files doc -f %{name}-doc.files +%license LICENSE.txt +%endif + + +%if %{with ghc_prof} +%files prof -f %{name}-prof.files +%endif + + +%changelog +* Tue Apr 28 2026 Owen Zimmerman - 0.1.0.0-1 +- Initial commit diff --git a/anda/langs/haskell/ghc-libriscv/update.rhai b/anda/langs/haskell/ghc-libriscv/update.rhai new file mode 100644 index 0000000000..9c9aa8a431 --- /dev/null +++ b/anda/langs/haskell/ghc-libriscv/update.rhai @@ -0,0 +1 @@ +rpm.version(hackage("libriscv")); diff --git a/anda/langs/haskell/ghc-melf/anda.hcl b/anda/langs/haskell/ghc-melf/anda.hcl new file mode 100644 index 0000000000..9f2bd57c22 --- /dev/null +++ b/anda/langs/haskell/ghc-melf/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "ghc-melf.spec" + } +} diff --git a/anda/langs/haskell/ghc-melf/ghc-melf.spec b/anda/langs/haskell/ghc-melf/ghc-melf.spec new file mode 100644 index 0000000000..128aabd055 --- /dev/null +++ b/anda/langs/haskell/ghc-melf/ghc-melf.spec @@ -0,0 +1,133 @@ +# generated by cabal-rpm-2.3.2 +# https://docs.fedoraproject.org/en-US/packaging-guidelines/Haskell/ + +%global pkg_name melf +%global pkgver %{pkg_name}-%{version} +%{?haskell_setup} + +# testsuite missing deps: tasty tasty-golden tasty-hunit prettyprinter + +Name: ghc-%{pkg_name} +Version: 1.3.1 +Release: 1%{?dist} +Summary: An Elf parser + +License: BSD-3-Clause +URL: https://hackage.haskell.org/package/melf +# Begin cabal-rpm sources: +Source0: https://hackage.haskell.org/package/%{pkgver}/%{pkgver}.tar.gz +Source1: https://hackage.haskell.org/package/%{pkgver}/%{pkg_name}.cabal#/%{pkgver}.cabal +# End cabal-rpm sources + +# Begin cabal-rpm deps: +BuildRequires: ghc-rpm-macros +BuildRequires: ghc-Cabal-devel +BuildRequires: ghc-base-devel +BuildRequires: ghc-binary-devel +BuildRequires: ghc-bytestring-devel +BuildRequires: ghc-exceptions-devel +BuildRequires: ghc-lens-devel +BuildRequires: ghc-mtl-devel +BuildRequires: ghc-optparse-applicative-devel +BuildRequires: ghc-prettyprinter-devel +BuildRequires: ghc-template-haskell-devel +%if %{with ghc_prof} +BuildRequires: ghc-base-prof +BuildRequires: ghc-binary-prof +BuildRequires: ghc-bytestring-prof +BuildRequires: ghc-exceptions-prof +BuildRequires: ghc-lens-prof +BuildRequires: ghc-mtl-prof +BuildRequires: ghc-optparse-applicative-prof +BuildRequires: ghc-prettyprinter-prof +BuildRequires: ghc-template-haskell-prof +%endif +# End cabal-rpm deps + +Packager: Owen Zimmerman + +%description +Parser for ELF object format. + + +%package devel +Summary: Haskell %{pkg_name} library development files +Provides: %{name}-static = %{version}-%{release} +Provides: %{name}-static%{?_isa} = %{version}-%{release} +%if %{defined ghc_version} +Requires: ghc-compiler = %{ghc_version} +%endif +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description devel +This package provides the Haskell %{pkg_name} library development files. + + +%if %{with haddock} +%package doc +Summary: Haskell %{pkg_name} library documentation +BuildArch: noarch +Requires: ghc-filesystem + +%description doc +This package provides the Haskell %{pkg_name} library documentation. +%endif + + +%if %{with ghc_prof} +%package prof +Summary: Haskell %{pkg_name} profiling library +Requires: %{name}-devel%{?_isa} = %{version}-%{release} +Supplements: (%{name}-devel and ghc-prof) + +%description prof +This package provides the Haskell %{pkg_name} profiling library. +%endif + + +%prep +# Begin cabal-rpm setup: +%setup -q -n %{pkgver} +cp -bp %{SOURCE1} %{pkg_name}.cabal +# End cabal-rpm setup + + +%build +# Begin cabal-rpm build: +%ghc_lib_build +# End cabal-rpm build + + +%install +# Begin cabal-rpm install +%ghc_lib_install +# End cabal-rpm install + + +%files -f %{name}.files +# Begin cabal-rpm files: +%license LICENSE +%{_datadir}/%{pkgver} +# End cabal-rpm files + + +%files devel -f %{name}-devel.files +%doc ChangeLog.md README.md examples +%{_bindir}/hobjdump +%{_bindir}/hobjlayout + + +%if %{with haddock} +%files doc -f %{name}-doc.files +%license LICENSE +%endif + + +%if %{with ghc_prof} +%files prof -f %{name}-prof.files +%endif + + +%changelog +* Tue Apr 28 2026 Owen Zimmerman - 1.3.1-1 +- Initial commit diff --git a/anda/langs/haskell/ghc-melf/update.rhai b/anda/langs/haskell/ghc-melf/update.rhai new file mode 100644 index 0000000000..886984bb33 --- /dev/null +++ b/anda/langs/haskell/ghc-melf/update.rhai @@ -0,0 +1 @@ +rpm.version(hackage("melf")); diff --git a/anda/langs/haskell/ghc-strict-concurrency/anda.hcl b/anda/langs/haskell/ghc-strict-concurrency/anda.hcl new file mode 100644 index 0000000000..8ad01471ab --- /dev/null +++ b/anda/langs/haskell/ghc-strict-concurrency/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "ghc-strict-concurrency.spec" + } +} diff --git a/anda/langs/haskell/ghc-strict-concurrency/ghc-strict-concurrency.spec b/anda/langs/haskell/ghc-strict-concurrency/ghc-strict-concurrency.spec new file mode 100644 index 0000000000..06207ba55e --- /dev/null +++ b/anda/langs/haskell/ghc-strict-concurrency/ghc-strict-concurrency.spec @@ -0,0 +1,119 @@ +# generated by cabal-rpm-2.3.2 +# https://docs.fedoraproject.org/en-US/packaging-guidelines/Haskell/ + +%global pkg_name strict-concurrency +%global pkgver %{pkg_name}-%{version} +%{?haskell_setup} + +Name: ghc-%{pkg_name} +Version: 0.2.4.3 +Release: 1%{?dist} +Summary: Strict concurrency abstractions + +License: BSD-3-Clause +URL: https://hackage.haskell.org/package/strict-concurrency +# Begin cabal-rpm sources: +Source0: https://hackage.haskell.org/package/%{pkgver}/%{pkgver}.tar.gz +Source1: https://hackage.haskell.org/package/%{pkgver}/%{pkg_name}.cabal#/%{pkgver}.cabal +# End cabal-rpm sources + +# Begin cabal-rpm deps: +BuildRequires: dos2unix +BuildRequires: ghc-rpm-macros +BuildRequires: ghc-Cabal-devel +BuildRequires: ghc-base-devel +BuildRequires: ghc-deepseq-devel +%if %{with ghc_prof} +BuildRequires: ghc-base-prof +BuildRequires: ghc-deepseq-prof +%endif +# End cabal-rpm deps + +Packager: Owen Zimmerman + +%description +This package provides head normal form strict versions of some standard Haskell +concurrency abstractions (MVars,Chans), which provide control over where +evaluation takes place not offered by the default lazy types. This may be +useful for deciding when and where evaluation occurs, leading to improved time +or space use, depending on the circumstances. + + +%package devel +Summary: Haskell %{pkg_name} library development files +Provides: %{name}-static = %{version}-%{release} +Provides: %{name}-static%{?_isa} = %{version}-%{release} +%if %{defined ghc_version} +Requires: ghc-compiler = %{ghc_version} +%endif +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description devel +This package provides the Haskell %{pkg_name} library development +files. + + +%if %{with haddock} +%package doc +Summary: Haskell %{pkg_name} library documentation +BuildArch: noarch +Requires: ghc-filesystem + +%description doc +This package provides the Haskell %{pkg_name} library documentation. +%endif + + +%if %{with ghc_prof} +%package prof +Summary: Haskell %{pkg_name} profiling library +Requires: %{name}-devel%{?_isa} = %{version}-%{release} +Supplements: (%{name}-devel and ghc-prof) + +%description prof +This package provides the Haskell %{pkg_name} profiling library. +%endif + + +%prep +# Begin cabal-rpm setup: +%setup -q -n %{pkgver} +dos2unix -k -n %{SOURCE1} %{pkg_name}.cabal +# End cabal-rpm setup + + +%build +# Begin cabal-rpm build: +%ghc_lib_build +# End cabal-rpm build + + +%install +# Begin cabal-rpm install +%ghc_lib_install +# End cabal-rpm install + + +%files -f %{name}.files +# Begin cabal-rpm files: +%license LICENSE +# End cabal-rpm files + + +%files devel -f %{name}-devel.files + + +%if %{with haddock} +%files doc -f %{name}-doc.files +%license LICENSE +%endif + + +%if %{with ghc_prof} +%files prof -f %{name}-prof.files +%endif + + +%changelog +* Sun Apr 26 2026 Owen Zimmerman - 0.2.4.3-1 +- Initial commit diff --git a/anda/langs/haskell/ghc-strict-concurrency/update.rhai b/anda/langs/haskell/ghc-strict-concurrency/update.rhai new file mode 100644 index 0000000000..c04176e585 --- /dev/null +++ b/anda/langs/haskell/ghc-strict-concurrency/update.rhai @@ -0,0 +1 @@ +rpm.version(hackage("strict-concurrency")); diff --git a/anda/langs/holyc/holyc/anda.hcl b/anda/langs/holyc/holyc/anda.hcl new file mode 100644 index 0000000000..331230f11a --- /dev/null +++ b/anda/langs/holyc/holyc/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "holyc.spec" + } +} diff --git a/anda/langs/holyc/holyc/holyc.spec b/anda/langs/holyc/holyc/holyc.spec new file mode 100644 index 0000000000..cc4a496e70 --- /dev/null +++ b/anda/langs/holyc/holyc/holyc.spec @@ -0,0 +1,50 @@ +%global ver 0.0.10 + +Name: holyc +Version: %{ver}~beta +Release: 3%{?dist} +Summary: HolyC compiler and transpiler +License: BSD-2-Clause +URL: https://holyc-lang.com +Source0: https://github.com/Jamesbarford/holyc-lang/archive/refs/tags/beta-v%{ver}.tar.gz +BuildRequires: cmake +BuildRequires: cmake-rpm-macros +BuildRequires: gcc +BuildRequires: gcc-c++ +BuildRequires: sqlite-devel +Packager: Gilver E. + +%description +HolyC is a fun recreational programming language designed by Terry A. Davis. +Originally implemented in TempleOS as a general purpose programming language and scripting language for all manner of tasks. + +%prep +# Currently needed to fetch the commit hash for hcc --version +%git_clone https://github.com/Jamesbarford/holyc-lang.git beta-v%{ver} +%setup -T -D -n holyc-lang/src +# Make packaged versions of HolyC report the correct Git hash +sed -i 's|git rev-parse main|git rev-parse HEAD|g' CMakeLists.txt +# Make the binary correctly report its installed location as /usr/bin instead of /usr +sed -i 's|binary: %%s/hcc|binary: %%s/bin/hcc|g' cli.c + +%build +%cmake \ + -DCMAKE_BUILD_TYPE="Release" \ + -DHCC_LINK_SQLITE3="1" +%cmake_build + +%install +%cmake_install + +%check +%{buildroot}%{_bindir}/hcc --version + +%files +%license ../COPYING +%doc ../README.md +%{_bindir}/hcc +%{_includedir}/tos.HH + +%changelog +* Tue Feb 10 2026 Gilver E. - 0.0.10~beta-1 +- Initial package diff --git a/anda/langs/holyc/holyc/update.rhai b/anda/langs/holyc/holyc/update.rhai new file mode 100644 index 0000000000..3ad7b1d940 --- /dev/null +++ b/anda/langs/holyc/holyc/update.rhai @@ -0,0 +1,7 @@ +let v = gh("Jamesbarford/holyc-lang"); +v.crop(6); +rpm.global("ver", v); + +if rpm.changed() { + rpm.release(); +} diff --git a/anda/langs/kotlin/kotlin-native/kotlin-native.spec b/anda/langs/kotlin/kotlin-native/kotlin-native.spec index 2e3b92b94b..d9405826ba 100644 --- a/anda/langs/kotlin/kotlin-native/kotlin-native.spec +++ b/anda/langs/kotlin/kotlin-native/kotlin-native.spec @@ -2,8 +2,8 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-build Name: kotlin-native -Version: 2.2.21 -Release: 1%?dist +Version: 2.3.21 +Release: 1%{?dist} Summary: LLVM backend for the Kotlin compiler ExclusiveArch: x86_64 diff --git a/anda/langs/kotlin/kotlin/kotlin.spec b/anda/langs/kotlin/kotlin/kotlin.spec index 89c385fa28..2634fd76a8 100644 --- a/anda/langs/kotlin/kotlin/kotlin.spec +++ b/anda/langs/kotlin/kotlin/kotlin.spec @@ -1,8 +1,8 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildArch: noarch Name: kotlin -Version: 2.2.21 -Release: 1%?dist +Version: 2.3.21 +Release: 1%{?dist} Summary: Statically typed programming language License: Apache-2.0 diff --git a/anda/langs/lily/anda.hcl b/anda/langs/lily/anda.hcl new file mode 100644 index 0000000000..ff1526cc87 --- /dev/null +++ b/anda/langs/lily/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "lily.spec" + } +} diff --git a/anda/langs/lily/lily.spec b/anda/langs/lily/lily.spec new file mode 100644 index 0000000000..94eb02687e --- /dev/null +++ b/anda/langs/lily/lily.spec @@ -0,0 +1,45 @@ +Name: lily +Summary: Interpreted language focused on expressiveness and type safety +Version: 2.2 +Release: 1%?dist +License: MIT +URL: https://github.com/fascinatedbox/lily +Source0: %url/archive/refs/tags/v%version.tar.gz +Packager: Owen Zimmerman + +BuildRequires: cmake +BuildRequires: gcc +BuildRequires: g++ + +%description +%{summary}. + +%package devel +Summary: Development files for lily +Requires: %{name} +%pkg_devel_files + +%prep +%autosetup -n %{name}-%{version} + +%build +%cmake +%cmake_build + +%install +install -Dm644 redhat-linux-build/lib/liblily.so %{buildroot}/usr/lib64/liblily.so +%cmake_install + +%files +%doc README.md RELEASES.md +%license LICENSE.txt +%{_bindir}/lily + +%files devel +/usr/lib64/liblily.so +%ghost /usr/lib/liblily.so +%{_includedir}/lily/lily.h + +%changelog +* Thu Oct 30 2025 Owen Zimmerman +- Initial package diff --git a/anda/langs/lily/update.rhai b/anda/langs/lily/update.rhai new file mode 100644 index 0000000000..f7630bfb31 --- /dev/null +++ b/anda/langs/lily/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("fascinatedbox/lily")); diff --git a/anda/langs/lua/lua-language-server/anda.hcl b/anda/langs/lua/lua-language-server/anda.hcl new file mode 100644 index 0000000000..9ec10546dd --- /dev/null +++ b/anda/langs/lua/lua-language-server/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "lua-language-server.spec" + } +} diff --git a/anda/langs/lua/lua-language-server/lua-language-server.spec b/anda/langs/lua/lua-language-server/lua-language-server.spec new file mode 100644 index 0000000000..d5a0ba6e6f --- /dev/null +++ b/anda/langs/lua/lua-language-server/lua-language-server.spec @@ -0,0 +1,52 @@ +%define debug_package %{nil} + +Name: lua-language-server +Version: 3.18.2 +Release: 1%{?dist} +License: MIT +URL: https://luals.github.io/ +Source: https://github.com/LuaLS/lua-language-server/archive/refs/tags/%version.tar.gz +Summary: A language server that offers Lua language support + +BuildRequires: gcc-c++ make ninja-build glibc lua gcc cmake libstdc++-devel libstdc++-static libcxx libcxx-devel + +Packager: Owen Zimmerman + +%description +A language server that offers Lua language support - programmed in Lua. + +%prep +%git_clone https://github.com/LuaLS/lua-language-server.git %{version} + +%build +# The funny +chmod +x make.sh +./make.sh + +%install +mkdir -p %{buildroot}%{_bindir} +mkdir -p %{buildroot}%{_libexecdir}/%{name}/ +mkdir -p %{buildroot}%{_datadir}/%{name}/ +install -Dm755 bin/lua-language-server %{buildroot}%{_libexecdir}/%{name}/%{name} +install -Dm644 bin/main.lua %{buildroot}%{_libexecdir}/%{name}/main.lua +install -Dm644 debugger.lua %{buildroot}%{_libexecdir}/%{name}/debugger.lua +cp -av \ + debugger.lua \ + main.lua \ + locale \ + script \ + meta \ + %{buildroot}%{_datadir}/%{name}/ + +%{__ln_s} -f %{_libexecdir}/%{name}/main.lua %{buildroot}%{_libexecdir}/main.lua + +%files +%license LICENSE +%doc README.md +%{_libexecdir}/main.lua +%{_libexecdir}/%{name}/ +%{_datadir}/%{name}/ + +%changelog +* Sun Dec 28 2025 Owen Zimmerman +- Initial commit diff --git a/anda/langs/lua/lua-language-server/update.rhai b/anda/langs/lua/lua-language-server/update.rhai new file mode 100644 index 0000000000..89d3150faf --- /dev/null +++ b/anda/langs/lua/lua-language-server/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("LuaLS/lua-language-server")); diff --git a/anda/langs/lua/luamake/anda.hcl b/anda/langs/lua/luamake/anda.hcl new file mode 100644 index 0000000000..d4f9b99622 --- /dev/null +++ b/anda/langs/lua/luamake/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "luamake.spec" + } +} diff --git a/anda/langs/lua/luamake/luamake.spec b/anda/langs/lua/luamake/luamake.spec new file mode 100644 index 0000000000..68c54f6ccb --- /dev/null +++ b/anda/langs/lua/luamake/luamake.spec @@ -0,0 +1,43 @@ +%define debug_package %{nil} + +Name: luamake +Version: 1.7 +Release: 2%{?dist} +License: MIT +URL: https://github.com/actboy168/luamake +Source: https://github.com/actboy168/luamake/archive/refs/tags/v%version.tar.gz +Summary: A platform independent configuration and build system that uses the standard Lua command-line interpreter + +BuildRequires: gcc-c++ make ninja-build glibc lua gcc cmake libstdc++-devel libstdc++-static libcxx libcxx-devel + +Packager: Owen Zimmerman + +%description +%summary. + +%prep +%git_clone +sed -i 's|-O2 -Wall |%{build_cflags}|g' compile/ninja/linux.ninja +sed -i 's|-lstdc++ |%{build_ldflags} -lstdc++ |g' compile/ninja/linux.ninja + +%build +%{ninja_build} -f compile/ninja/linux.ninja notest + +%install +mkdir -p %{buildroot}%{_bindir} +ln -sf %{_datadir}/%{name}/%{name} %{buildroot}%{_bindir}/%{name} +install -Dm755 luamake -t %{buildroot}%{_datadir}/%{name} +install -Dm755 main.lua -t %{buildroot}%{_datadir}/%{name} +cp -r scripts -t %{buildroot}%{_datadir}/%{name} + +%files +%license LICENSE +%doc README.md +%{_bindir}/luamake +%{_datadir}/%{name}/%{name} +%{_datadir}/%{name}/main.lua +%{_datadir}/%{name}/scripts/ + +%changelog +* Sun Dec 28 2025 Owen Zimmerman +- Initial commit diff --git a/anda/langs/lua/luamake/update.rhai b/anda/langs/lua/luamake/update.rhai new file mode 100644 index 0000000000..15d8084196 --- /dev/null +++ b/anda/langs/lua/luamake/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("actboy168/luamake")); diff --git a/anda/langs/nim/grabnim/grabnim.spec b/anda/langs/nim/grabnim/grabnim.spec index 0d56711358..1b214452b8 100644 --- a/anda/langs/nim/grabnim/grabnim.spec +++ b/anda/langs/nim/grabnim/grabnim.spec @@ -1,5 +1,5 @@ -%global commit b62ac9ff0b0db73f1c294f055190e256de3938f9 -%global commit_date 20251005 +%global commit e325ca229633b831fbac3ce06f3042067c2baca1 +%global commit_date 20260427 %global shortcommit %{sub %commit 1 7} Name: grabnim diff --git a/anda/langs/nim/grabnim/update.rhai b/anda/langs/nim/grabnim/update.rhai index 75f215ef43..ab49b8c798 100644 --- a/anda/langs/nim/grabnim/update.rhai +++ b/anda/langs/nim/grabnim/update.rhai @@ -1,6 +1,4 @@ -import "andax/bump_extras.rhai" as bump; - -rpm.global("commit", bump::codeberg_commit("janAkali/grabnim")); +rpm.global("commit", codeberg_commit("janAkali/grabnim")); if rpm.changed() { rpm.global("commit_date", date()); } diff --git a/anda/langs/nim/nim-nightly/nim-nightly.spec b/anda/langs/nim/nim-nightly/nim-nightly.spec index 59df6b5ba3..3c9b9e5d9b 100644 --- a/anda/langs/nim/nim-nightly/nim-nightly.spec +++ b/anda/langs/nim/nim-nightly/nim-nightly.spec @@ -1,13 +1,13 @@ %global csrc_commit 561b417c65791cd8356b5f73620914ceff845d10 -%global commit b8ce11dd9ddc6c45efaf0e4681d7e4f51d7161cd +%global commit f0077a12b20a6cbf3358eaeb09e528ec65e9eca9 %global shortcommit %(c=%{commit}; echo ${c:0:7}) %global ver 2.3.1 -%global commit_date 20251024 +%global commit_date 20260507 %global debug_package %nil Name: nim-nightly Version: %ver^%commit_date.%shortcommit -Release: 1%?dist +Release: 1%{?dist} Summary: Imperative, multi-paradigm, compiled programming language License: MIT and BSD URL: https://nim-lang.org diff --git a/anda/langs/nim/nim/nim.spec b/anda/langs/nim/nim/nim.spec index 4ab05fb44f..52391ed970 100644 --- a/anda/langs/nim/nim/nim.spec +++ b/anda/langs/nim/nim/nim.spec @@ -2,8 +2,8 @@ %global debug_package %{nil} Name: nim -Version: 2.2.4 -Release: 3%?dist +Version: 2.2.10 +Release: 1%{?dist} Summary: Imperative, multi-paradigm, compiled programming language License: MIT and BSD URL: https://nim-lang.org diff --git a/anda/langs/nim/nimble/nimble.spec b/anda/langs/nim/nimble/nimble.spec index 05fb826ffd..bb3d7ccd78 100644 --- a/anda/langs/nim/nimble/nimble.spec +++ b/anda/langs/nim/nimble/nimble.spec @@ -1,6 +1,6 @@ Name: nimble -Version: 0.20.1 -Release: 1%?dist +Version: 0.22.3 +Release: 1%{?dist} Summary: Package manager for the Nim programming language License: BSD URL: https://github.com/nim-lang/nimble diff --git a/anda/langs/nim/nph/nph.spec b/anda/langs/nim/nph/nph.spec index 89bbd34fa1..dad1360d0b 100644 --- a/anda/langs/nim/nph/nph.spec +++ b/anda/langs/nim/nph/nph.spec @@ -1,7 +1,7 @@ %define debug_package %nil Name: nph -Version: 0.6.1 +Version: 0.7.0 Release: 1%?dist Summary: An opinionated code formatter for Nim License: MIT diff --git a/anda/langs/python/PyMusicLooper/PyMusicLooper.spec b/anda/langs/python/PyMusicLooper/PyMusicLooper.spec new file mode 100644 index 0000000000..e15441be05 --- /dev/null +++ b/anda/langs/python/PyMusicLooper/PyMusicLooper.spec @@ -0,0 +1,53 @@ +%global pypi_name pymusiclooper +%global _desc A python program for repeating music endlessly and creating seamless music loops, with play/export/tagging support. + +Name: python-%{pypi_name} +Version: 3.6.0 +Release: 1%?dist +Summary: A python program for repeating music endlessly and creating seamless music loops, with play/export/tagging support +License: MIT +URL: https://github.com/arkrow/PyMusicLooper +Source0: %{pypi_source} +# Fedora doesn't yet carry pytaglib >=3.0.0 +Patch0: make-dep-installable.patch +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-wheel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +BuildRequires: python3-hatchling + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +Provides: pymusiclooper +Provides: python3-pymusiclooper +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n pymusiclooper-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files pymusiclooper + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md CLI_README.md CHANGELOG.md +%license LICENSE +%{_bindir}/pymusiclooper +%python3_sitelib/pymusiclooper-%version.dist-info/* + +%changelog +* Fri Dec 26 2025 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/PyMusicLooper/anda.hcl b/anda/langs/python/PyMusicLooper/anda.hcl new file mode 100644 index 0000000000..69ac05294a --- /dev/null +++ b/anda/langs/python/PyMusicLooper/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "PyMusicLooper.spec" + } +} diff --git a/anda/langs/python/PyMusicLooper/make-dep-installable.patch b/anda/langs/python/PyMusicLooper/make-dep-installable.patch new file mode 100644 index 0000000000..c855fc7bf8 --- /dev/null +++ b/anda/langs/python/PyMusicLooper/make-dep-installable.patch @@ -0,0 +1,13 @@ +diff --git a/pyproject.toml b/pyproject.toml +index 9b37b98..9cb6ad3 100644 +--- a/pyproject.toml ++++ b/pyproject.toml +@@ -27,7 +27,7 @@ dependencies = [ + "sounddevice>=0.5.0", + "rich-click>=1.8.0,<2", + "rich>= 13.4.2", +- "pytaglib>=3.0.0,<4", ++ "pytaglib>=2.0.0,<4", + "numba>=0.59.1", + "yt-dlp>=2025.01.26", + "click-params>=0.5.0,<0.6", diff --git a/anda/langs/python/PyMusicLooper/updatet.rhai b/anda/langs/python/PyMusicLooper/updatet.rhai new file mode 100644 index 0000000000..a0b978a406 --- /dev/null +++ b/anda/langs/python/PyMusicLooper/updatet.rhai @@ -0,0 +1 @@ +rpm.version(pypi("pymusiclooper")); diff --git a/anda/langs/python/accelerate/accelerate.spec b/anda/langs/python/accelerate/accelerate.spec new file mode 100644 index 0000000000..b0ee0275e1 --- /dev/null +++ b/anda/langs/python/accelerate/accelerate.spec @@ -0,0 +1,53 @@ +%define debug_package %{nil} + +%global pypi_name accelerate +%global _desc A simple way to launch, train, and use PyTorch models on almost any device and distributed configuration, automatic mixed precision (including fp8), and easy-to-configure FSDP and DeepSpeed support. + +Name: python-%{pypi_name} +Version: 1.13.0 +Release: 1%?dist +Summary: A simple way to launch, train, and use PyTorch models on almost any device and distributed configuration +License: Apache-2.0 +URL: https://github.com/huggingface/accelerate +# pypi_source does not include all doc files +Source0: %url/archive/refs/tags/v%version.tar.gz + +BuildRequires: python3-devel +BuildRequires: python3-wheel +BuildRequires: python3-setuptools +BuildRequires: python3-pip + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n accelerate-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files accelerate + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md CODE_OF_CONDUCT.md CONTRIBUTING.md +%license LICENSE +%{_bindir}/%{pypi_name} +%{_bindir}/%{pypi_name}-config +%{_bindir}/%{pypi_name}-estimate-memory +%{_bindir}/%{pypi_name}-launch +%{_bindir}/%{pypi_name}-merge-weights + +%changelog +* Wed Jan 07 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/accelerate/anda.hcl b/anda/langs/python/accelerate/anda.hcl new file mode 100644 index 0000000000..6051d8fc61 --- /dev/null +++ b/anda/langs/python/accelerate/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "accelerate.spec" + } +} diff --git a/anda/langs/python/accelerate/update.rhai b/anda/langs/python/accelerate/update.rhai new file mode 100644 index 0000000000..54c1fab680 --- /dev/null +++ b/anda/langs/python/accelerate/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("accelerate")); diff --git a/anda/langs/python/antlr4-runtime/anda.hcl b/anda/langs/python/antlr4-runtime/anda.hcl new file mode 100644 index 0000000000..d5759f9842 --- /dev/null +++ b/anda/langs/python/antlr4-runtime/anda.hcl @@ -0,0 +1,6 @@ + project pkg { + arches = ["x86_64"] + rpm { + spec = "antlr4-runtime.spec" + } + } diff --git a/anda/langs/python/antlr4-runtime/antlr4-runtime.spec b/anda/langs/python/antlr4-runtime/antlr4-runtime.spec new file mode 100644 index 0000000000..53aa863566 --- /dev/null +++ b/anda/langs/python/antlr4-runtime/antlr4-runtime.spec @@ -0,0 +1,64 @@ +%global pypi_name antlr4-python3-runtime +%global _desc Python 3 runtime libraries for ANTLR 4. + +%global commit 23ed92cc6655f7def5d1447f51cb4c9657400f9d +%global commit_date 20150607 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) + +%global ver 4.9.3 + +Name: python-%{pypi_name} +Version: %{ver}^%{commit_date}git.%{shortcommit} +Release: 1%?dist +Summary: Python 3 runtime libraries for ANTLR 4 +License: BSD +URL: https://www.antlr.org/ +Source0: https://github.com/parrt/antlr4-python3/archive/%commit/antlr4-python3-%commit.tar.gz +Source1: https://github.com/s-a/license/blob/master/_licenses/bsd-3-clause.txt +Patch0: shebang.patch +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-pip +BuildRequires: python3-setuptools + +Conflicts: python3-antlr4-runtime + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%package -n python3-%{pypi_name}-doc +Summary: documentation for python3-%{pypi_name} + +%description -n python3-%{pypi_name}-doc +documentation for python3-%{pypi_name}. + +%prep +%autosetup -n antlr4-python3-%{commit} -p1 +cp %{SOURCE1} . + +%build +%pyproject_wheel + +%install +%pyproject_install +install -Dm755 bin/pygrun %{buildroot}%{_bindir}/pygrun +%pyproject_save_files antlr4 + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.txt RELEASE-4.5.txt +%license bsd-3-clause.txt +%{_bindir}/pygrun + +%changelog +* Thu Jan 08 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/antlr4-runtime/shebang.patch b/anda/langs/python/antlr4-runtime/shebang.patch new file mode 100644 index 0000000000..8077e29b6b --- /dev/null +++ b/anda/langs/python/antlr4-runtime/shebang.patch @@ -0,0 +1,10 @@ +diff --git a/bin/pygrun b/bin/pygrun +index 96f1b40..dd01add 100755 +--- a/bin/pygrun ++++ b/bin/pygrun +@@ -1,4 +1,4 @@ +-#!python ++#!/usr/bin/env python3 + __author__ = 'jszheng' + import optparse + import sys diff --git a/anda/langs/python/antlr4-runtime/update.rhai b/anda/langs/python/antlr4-runtime/update.rhai new file mode 100644 index 0000000000..71957b4c40 --- /dev/null +++ b/anda/langs/python/antlr4-runtime/update.rhai @@ -0,0 +1,7 @@ +rpm.global("commit", gh_commit("parrt/antlr4-python3")); +if rpm.changed() { + rpm.release(); + rpm.global("commit_date", date()); + let v = gh("parrt/antlr4-python3"); + rpm.global("ver", v); +} diff --git a/anda/langs/python/apeye-core/anda.hcl b/anda/langs/python/apeye-core/anda.hcl new file mode 100644 index 0000000000..645b557173 --- /dev/null +++ b/anda/langs/python/apeye-core/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "apeye-core.spec" + } +} diff --git a/anda/langs/python/apeye-core/apeye-core.spec b/anda/langs/python/apeye-core/apeye-core.spec new file mode 100644 index 0000000000..03217556d0 --- /dev/null +++ b/anda/langs/python/apeye-core/apeye-core.spec @@ -0,0 +1,45 @@ +%global pypi_name apeye_core +%global _desc Core (offline) functionality for the apeye library. + +Name: python-%{pypi_name} +Version: 1.1.5 +Release: 1%?dist +Summary: Core (offline) functionality for the apeye library +License: BSD-3-Clause +URL: https://github.com/domdfcoding/apeye-core +Source0: %{pypi_source} +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-pip +BuildRequires: python3-hatch-requirements-txt + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n %{pypi_name}-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files apeye_core + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.rst +%license LICENSE + +%changelog +* Sat Mar 14 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/apeye-core/update.rhai b/anda/langs/python/apeye-core/update.rhai new file mode 100644 index 0000000000..5a4b00ab7d --- /dev/null +++ b/anda/langs/python/apeye-core/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("apeye-core")); diff --git a/anda/langs/python/audioop-lts/anda.hcl b/anda/langs/python/audioop-lts/anda.hcl new file mode 100644 index 0000000000..50f9eb5faf --- /dev/null +++ b/anda/langs/python/audioop-lts/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "audioop-lts.spec" + } +} diff --git a/anda/langs/python/audioop-lts/audioop-lts.spec b/anda/langs/python/audioop-lts/audioop-lts.spec new file mode 100644 index 0000000000..b34deacc15 --- /dev/null +++ b/anda/langs/python/audioop-lts/audioop-lts.spec @@ -0,0 +1,48 @@ +%global pypi_name audioop-lts +%global _desc An LTS port of Python's `audioop` module. + +Name: python-%{pypi_name} +Version: 0.2.2 +Release: 1%?dist +Summary: An LTS port of Python's `audioop` module +License: PSF-2.0 +URL: https://github.com/AbstractUmbra/audioop +Source0: %url/archive/refs/tags/%version.tar.gz + +BuildRequires: python3-devel +BuildRequires: python3-wheel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +BuildRequires: gcc + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +Provides: audioop-lts +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n audioop-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files audioop + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md +%doc docs/audioop.rst +%license LICENSE + +%changelog +* Fri Dec 26 2025 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/audioop-lts/update.rhai b/anda/langs/python/audioop-lts/update.rhai new file mode 100644 index 0000000000..9bf62fbf0b --- /dev/null +++ b/anda/langs/python/audioop-lts/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("audioop-lts")); diff --git a/anda/langs/python/av/anda.hcl b/anda/langs/python/av/anda.hcl new file mode 100644 index 0000000000..fa7371cadc --- /dev/null +++ b/anda/langs/python/av/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "av.spec" + } +} diff --git a/anda/langs/python/av/av.spec b/anda/langs/python/av/av.spec new file mode 100644 index 0000000000..e43fcacefc --- /dev/null +++ b/anda/langs/python/av/av.spec @@ -0,0 +1,53 @@ +%global pypi_name av +%global _desc Pythonic bindings for FFmpeg's libraries. + +Name: python-%{pypi_name} +Version: 17.0.1 +Release: 1%{?dist} +Summary: Pythonic bindings for FFmpeg's libraries +License: BSD-3-Clause +URL: https://pyav.basswood-io.com/docs/stable/ +Source0: %{pypi_source} + +BuildRequires: python3-devel +BuildRequires: python3-build +BuildRequires: python3-installer +BuildRequires: python3-wheel +BuildRequires: python3-poetry-core +BuildRequires: python3-pip +BuildRequires: python3-setuptools +BuildRequires: cython +BuildRequires: gcc +BuildRequires: pkgconfig(libavdevice) + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n av-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files av + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md AUTHORS.rst +%license LICENSE.txt +%{python3_sitearch}/av-%version.dist-info/licenses/__pycache__/* +%{_bindir}/pyav + +%changelog +* Fri Jan 16 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/av/update.rhai b/anda/langs/python/av/update.rhai new file mode 100644 index 0000000000..2df72e7ff5 --- /dev/null +++ b/anda/langs/python/av/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("av")); diff --git a/anda/langs/python/bash-kernel/python-bash-kernel.spec b/anda/langs/python/bash-kernel/python-bash-kernel.spec index 398774f3fb..3d722015b6 100644 --- a/anda/langs/python/bash-kernel/python-bash-kernel.spec +++ b/anda/langs/python/bash-kernel/python-bash-kernel.spec @@ -5,7 +5,7 @@ Name: python-%{real_name} Version: 0.10.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Bash kernel for Jupyter License: BSD-3-Clause URL: https://github.com/takluyver/bash_kernel @@ -21,7 +21,7 @@ BuildRequires: %{py3_dist docutils} # See https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval ExcludeArch: %{ix86} BuildArch: noarch -Packager: Gilver E. +Packager: Gilver E. %description This package contains a Jupyter kernel for bash. diff --git a/anda/langs/python/bitsandbytes/anda.hcl b/anda/langs/python/bitsandbytes/anda.hcl new file mode 100644 index 0000000000..0d68eae1b2 --- /dev/null +++ b/anda/langs/python/bitsandbytes/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "bitsandbytes.spec" + } +} diff --git a/anda/langs/python/bitsandbytes/bitsandbytes.spec b/anda/langs/python/bitsandbytes/bitsandbytes.spec new file mode 100644 index 0000000000..a32b9db343 --- /dev/null +++ b/anda/langs/python/bitsandbytes/bitsandbytes.spec @@ -0,0 +1,49 @@ +%global pypi_name bitsandbytes +%global _desc Accessible large language models via k-bit quantization for PyTorch. + +Name: python-%{pypi_name} +Version: 0.49.2 +Release: 1%{?dist} +Summary: Accessible large language models via k-bit quantization for PyTorch +License: MIT +URL: https://huggingface.co/docs/bitsandbytes/main/en/index +Source0: https://github.com/bitsandbytes-foundation/bitsandbytes/archive/refs/tags/%{version}.tar.gz + +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-scikit-build-core +BuildRequires: python3-pip +BuildRequires: python3-hatchling +BuildRequires: python3-wheel +BuildRequires: python3-cmake +BuildRequires: gcc-c++ + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n %{pypi_name}-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files %{pypi_name} + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md CHANGELOG.md CODE_OF_CONDUCT.md CONTRIBUTING.md +%license LICENSE + +%changelog +* Tue May 05 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/bitsandbytes/update.rhai b/anda/langs/python/bitsandbytes/update.rhai new file mode 100644 index 0000000000..c33e1d7b49 --- /dev/null +++ b/anda/langs/python/bitsandbytes/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("bitsandbytes")); diff --git a/anda/langs/python/buttplug-py/anda.hcl b/anda/langs/python/buttplug-py/anda.hcl new file mode 100644 index 0000000000..2dc686be7a --- /dev/null +++ b/anda/langs/python/buttplug-py/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "buttplug-py.spec" + } +} diff --git a/anda/langs/python/buttplug-py/buttplug-py.spec b/anda/langs/python/buttplug-py/buttplug-py.spec new file mode 100644 index 0000000000..4b670c8c13 --- /dev/null +++ b/anda/langs/python/buttplug-py/buttplug-py.spec @@ -0,0 +1,46 @@ +%global pypi_name buttplug +%global _desc Python implementation of core message system and client for the Buttplug Sex Toy Protocol Standard. + +Name: python-%{pypi_name} +Version: 1.0.0 +Release: 1%?dist +Summary: Python implementation of core message system and client for the Buttplug Sex Toy Protocol Standard +License: BSD-3-Clause AND MIT AND Apache-2.0 AND X11 +URL: buttplug-py.docs.buttplug.io +Source0: https://github.com/buttplugio/buttplug-py/archive/refs/tags/%{version}.tar.gz +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +BuildRequires: python3-hatchling + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n %{pypi_name}-py-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files %{pypi_name} + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md CHANGELOG.md CODE_OF_CONDUCT.md CONTRIBUTING.md +%license LICENSE + +%changelog +* Fri Apr 17 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/buttplug-py/update.rhai b/anda/langs/python/buttplug-py/update.rhai new file mode 100644 index 0000000000..a4f5f6f8c4 --- /dev/null +++ b/anda/langs/python/buttplug-py/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("buttplug")); diff --git a/anda/langs/python/click-logging/anda.hcl b/anda/langs/python/click-logging/anda.hcl new file mode 100644 index 0000000000..e3d860bbe7 --- /dev/null +++ b/anda/langs/python/click-logging/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "click-logging.spec" + } +} diff --git a/anda/langs/python/click-logging/click-logging.spec b/anda/langs/python/click-logging/click-logging.spec new file mode 100644 index 0000000000..8ef2e0631d --- /dev/null +++ b/anda/langs/python/click-logging/click-logging.spec @@ -0,0 +1,47 @@ +%global pypi_name click-logging +%global _desc Simple and beautiful logging for click applications. + +Name: python-%{pypi_name} +Version: 1.0.1 +Release: 1%?dist +Summary: Simple and beautiful logging for click applications +License: GPL-3.0 +URL: https://github.com/Toilal/click-logging +# Cannot pull from pypi due to the pypi source not having required install files, causing the build to fail +Source0: %url/archive/refs/tags/v%version.tar.gz +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +Provides: click-logging +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n %{pypi_name}-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files click_logging + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md CHANGELOG.md +%license LICENSE + +%changelog +* Sun Dec 07 2025 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/click-logging/update.rhai b/anda/langs/python/click-logging/update.rhai new file mode 100644 index 0000000000..2cb9131c56 --- /dev/null +++ b/anda/langs/python/click-logging/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("click-logging")); diff --git a/anda/langs/python/click_params/anda.hcl b/anda/langs/python/click_params/anda.hcl new file mode 100644 index 0000000000..a5e3e03407 --- /dev/null +++ b/anda/langs/python/click_params/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "click_params.spec" + } +} diff --git a/anda/langs/python/click_params/click_params.spec b/anda/langs/python/click_params/click_params.spec new file mode 100644 index 0000000000..7d3f02277d --- /dev/null +++ b/anda/langs/python/click_params/click_params.spec @@ -0,0 +1,59 @@ +%global pypi_name click_params +%global _desc A bunch of useful click parameter types. + +Name: python-%{pypi_name} +Version: 0.5.0 +Release: 1%?dist +Summary: Bunch of click parameters to use +License: Apache-2.0 +URL: https://click-params.readthedocs.io/en/stable/ +Source0: https://github.com/click-contrib/click_params/archive/refs/tags/%version.tar.gz +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-pip +BuildRequires: python3-poetry-core + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +Provides: click_params +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%package -n python3-%{pypi_name}-doc +Summary: documentation for python3-%{pypi_name} + +%description -n python3-%{pypi_name}-doc +documentation for python3-%{pypi_name}. + +%prep +%autosetup -n click_params-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files click_params +mkdir -p %{buildroot}%{_pkgdocdir} +cp -a docs/ %{buildroot}%{_pkgdocdir}/ + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md CONTRIBUTING.md CHANGELOG.md +%license LICENSE + +%files -n python3-%{pypi_name}-doc +%license LICENSE +%{_pkgdocdir}/ +%license LICENSE + +%changelog +* Sat Dec 27 2025 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/click_params/update.rhai b/anda/langs/python/click_params/update.rhai new file mode 100644 index 0000000000..e09c7adcd6 --- /dev/null +++ b/anda/langs/python/click_params/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("click_params")); diff --git a/anda/langs/python/colorthief/python-colorthief.spec b/anda/langs/python/colorthief/python-colorthief.spec index 52b1138ad0..637e2db45a 100644 --- a/anda/langs/python/colorthief/python-colorthief.spec +++ b/anda/langs/python/colorthief/python-colorthief.spec @@ -8,7 +8,7 @@ ExcludeArch: %{ix86} Name: python-%{pypi_name} Version: 0.2.1 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Grabs the dominant color or a representative color palette from an image # https://gitlab.com/fedora/legal/fedora-license-data/-/issues/382 @@ -23,7 +23,7 @@ BuildRequires: python3dist(pillow) BuildRequires: python3dist(pip) BuildRequires: python3dist(setuptools) BuildArch: noarch -Packager: Gilver E. +Packager: Gilver E. %global _description %{expand: A Python module for grabbing the color palette from an image.} diff --git a/anda/langs/python/colorz/python-colorz.spec b/anda/langs/python/colorz/python-colorz.spec index 5dd228c483..1cea5133cd 100644 --- a/anda/langs/python/colorz/python-colorz.spec +++ b/anda/langs/python/colorz/python-colorz.spec @@ -2,7 +2,7 @@ Name: python-%{pypi_name} Version: 1.0.3 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Color scheme generator License: MIT URL: https://github.com/metakirby5/colorz @@ -12,7 +12,7 @@ BuildRequires: python3-devel BuildRequires: python3dist(pip) BuildRequires: python3dist(setuptools) BuildArch: noarch -Packager: Gilver E. +Packager: Gilver E. %description A k-means color scheme generator. diff --git a/anda/langs/python/consolekit/anda.hcl b/anda/langs/python/consolekit/anda.hcl new file mode 100644 index 0000000000..42675cf9ac --- /dev/null +++ b/anda/langs/python/consolekit/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "consolekit.spec" + } + labels { + } +} diff --git a/anda/langs/python/consolekit/consolekit.spec b/anda/langs/python/consolekit/consolekit.spec new file mode 100644 index 0000000000..dc7728918a --- /dev/null +++ b/anda/langs/python/consolekit/consolekit.spec @@ -0,0 +1,46 @@ +%global pypi_name consolekit +%global _desc Additional utilities for click. + +Name: python-%{pypi_name} +Version: 1.13.0 +Release: 1%?dist +Summary: Additional utilities for click +License: MIT +URL: https://consolekit.readthedocs.io/en/latest/ +Source0: %{pypi_source} +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +BuildRequires: python3-flit-core + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n %{pypi_name}-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files %{pypi_name} + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.rst +%license LICENSE + +%changelog +* Sat Mar 14 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/consolekit/update.rhai b/anda/langs/python/consolekit/update.rhai new file mode 100644 index 0000000000..c6843e64e5 --- /dev/null +++ b/anda/langs/python/consolekit/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("consolekit")); diff --git a/anda/langs/python/curl_cffi/anda.hcl b/anda/langs/python/curl_cffi/anda.hcl new file mode 100644 index 0000000000..598fb0557e --- /dev/null +++ b/anda/langs/python/curl_cffi/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "curl_cffi.spec" + } + labels { + nightly = 1 + } +} diff --git a/anda/langs/python/curl_cffi/curl_cffi.spec b/anda/langs/python/curl_cffi/curl_cffi.spec new file mode 100644 index 0000000000..fbf6a96e59 --- /dev/null +++ b/anda/langs/python/curl_cffi/curl_cffi.spec @@ -0,0 +1,55 @@ +%define _unpackaged_files_terminate_build 0 + +%global pypi_name curl_cffi +%global _desc Python binding for curl-impersonate fork via cffi. +%global _version 0.14.0b2 + +Name: python-%{pypi_name} +Version: 0.15.0 +Release: 1%{?dist} +Summary: Python binding for curl-impersonate fork via cffi.. +License: MIT +URL: https://github.com/lexiforest/curl_cffi +Source0: %{pypi_source} +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +BuildRequires: curl-impersonate-chrome-devel + +Packager: Metcya + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +Provides: %{pypi_name} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n %{pypi_name}-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files %{pypi_name} + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md +%license LICENSE +%{python3_sitelib}/%{pypi_name}-%{version}.dist-info/* +%{python3_sitelib}/%{pypi_name}/*.{py,so,typed} +%{python3_sitelib}/%{pypi_name}/__pycache__/*.pyc +%{python3_sitelib}/%{pypi_name}/requests/*.py +%{python3_sitelib}/%{pypi_name}/requests/__pycache__/*.pyc + +%changelog +* Sun Nov 02 2025 Metcya +- Initial commit diff --git a/anda/langs/python/curl_cffi/update.rhai b/anda/langs/python/curl_cffi/update.rhai new file mode 100644 index 0000000000..83386246c7 --- /dev/null +++ b/anda/langs/python/curl_cffi/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("curl_cffi")); diff --git a/anda/langs/python/darkdetect/anda.hcl b/anda/langs/python/darkdetect/anda.hcl new file mode 100644 index 0000000000..47864bd819 --- /dev/null +++ b/anda/langs/python/darkdetect/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "darkdetect.spec" + } +} diff --git a/anda/langs/python/darkdetect/darkdetect.spec b/anda/langs/python/darkdetect/darkdetect.spec new file mode 100644 index 0000000000..05f1797cd3 --- /dev/null +++ b/anda/langs/python/darkdetect/darkdetect.spec @@ -0,0 +1,51 @@ +%global pypi_name darkdetect +%global _desc Detect OS Dark Mode from Python. + +Name: python-%{pypi_name} +Version: 0.8.0 +Release: 1%?dist +Summary: Detect OS Dark Mode from Python +License: BSD-3-Clause +URL: https://github.com/albertosottile/darkdetect +Source0: %{pypi_source} +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-pip +BuildRequires: python3-setuptools + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%package -n python3-%{pypi_name}-doc +Summary: documentation for python3-%{pypi_name} + +%description -n python3-%{pypi_name}-doc +documentation for python3-%{pypi_name}. + +%prep +%autosetup -n darkdetect-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files darkdetect + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md +%license LICENSE + +%changelog +* Wed Jan 07 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/darkdetect/update.rhai b/anda/langs/python/darkdetect/update.rhai new file mode 100644 index 0000000000..f8474fb5f4 --- /dev/null +++ b/anda/langs/python/darkdetect/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("darkdetect")); diff --git a/anda/langs/python/dataclasses-json/anda.hcl b/anda/langs/python/dataclasses-json/anda.hcl new file mode 100644 index 0000000000..32d2934bb5 --- /dev/null +++ b/anda/langs/python/dataclasses-json/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "dataclasses-json.spec" + } +} diff --git a/anda/langs/python/dataclasses-json/dataclasses-json.spec b/anda/langs/python/dataclasses-json/dataclasses-json.spec new file mode 100644 index 0000000000..2a233e6138 --- /dev/null +++ b/anda/langs/python/dataclasses-json/dataclasses-json.spec @@ -0,0 +1,51 @@ +%global pypi_name dataclasses-json +%global _desc Easily serialize Data Classes to and from JSON. + +Name: python-%{pypi_name} +Version: 0.6.7 +Release: 1%{?dist} +Summary: Easily serialize Data Classes to and from JSON +License: MIT +URL: https://github.com/lidatong/dataclasses-json +Source0: %{url}/archive/refs/tags/v%{version}.tar.gz +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-build +BuildRequires: python3-pip +BuildRequires: python3-poetry-core +BuildRequires: python3-poetry-dynamic-versioning +BuildRequires: python3-pyproject-metadata + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%git_clone %{url}.git v%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files dataclasses_json + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md +%license LICENSE + +%changelog +* Mon May 04 2026 Owen Zimmerman +- Switch to git source, clean up spec + +* Wed Jan 07 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/dataclasses-json/update.rhai b/anda/langs/python/dataclasses-json/update.rhai new file mode 100644 index 0000000000..e73c391bc8 --- /dev/null +++ b/anda/langs/python/dataclasses-json/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("dataclasses-json")); diff --git a/anda/langs/python/deprecation-alias/anda.hcl b/anda/langs/python/deprecation-alias/anda.hcl new file mode 100644 index 0000000000..f3d32200b3 --- /dev/null +++ b/anda/langs/python/deprecation-alias/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "deprecation-alias.spec" + } +} diff --git a/anda/langs/python/deprecation-alias/deprecation-alias.spec b/anda/langs/python/deprecation-alias/deprecation-alias.spec new file mode 100644 index 0000000000..2941427117 --- /dev/null +++ b/anda/langs/python/deprecation-alias/deprecation-alias.spec @@ -0,0 +1,48 @@ +%global pypi_name deprecation-alias +%global _desc A wrapper around 'deprecation' providing support for deprecated aliases. + +Name: python-%{pypi_name} +Version: 0.4.0 +Release: 1%?dist +Summary: A wrapper around 'deprecation' providing support for deprecated aliases +License: Apache-2.0 +URL: https://github.com/domdfcoding/deprecation-alias +Source0: %{url}/archive/refs/tags/v%{version}.tar.gz + +BuildRequires: python3-devel +BuildRequires: python3-pip +BuildRequires: python3-setuptools +BuildRequires: python3-hatchling +BuildRequires: python3-importlib-metadata +BuildRequires: python3-hatch-requirements-txt +BuildArch: noarch + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n %{pypi_name}-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files deprecation_alias + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.rst +%license LICENSE + +%changelog +* Sat Mar 14 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/deprecation-alias/update.rhai b/anda/langs/python/deprecation-alias/update.rhai new file mode 100644 index 0000000000..f3d594eb8c --- /dev/null +++ b/anda/langs/python/deprecation-alias/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("deprecation-alias")); diff --git a/anda/langs/python/diffq/anda.hcl b/anda/langs/python/diffq/anda.hcl new file mode 100644 index 0000000000..3af8121ea4 --- /dev/null +++ b/anda/langs/python/diffq/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "diffq.spec" + } +} diff --git a/anda/langs/python/diffq/diffq.spec b/anda/langs/python/diffq/diffq.spec new file mode 100644 index 0000000000..bb7d1e5adb --- /dev/null +++ b/anda/langs/python/diffq/diffq.spec @@ -0,0 +1,52 @@ +%global pypi_name diffq +%global _desc DiffQ performs differentiable quantization using pseudo quantization noise. + +Name: python-%{pypi_name} +Version: 0.2.4 +Release: 1%?dist +Summary: DiffQ performs differentiable quantization using pseudo quantization noise +License: CC-BY-NC-4.0 +URL: https://github.com/facebookresearch/diffq +Source0: %{pypi_source} + +BuildRequires: python3-devel +BuildRequires: python3-pip +BuildRequires: python3-setuptools +BuildRequires: cython +BuildRequires: gcc + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%package -n python3-%{pypi_name}-doc +Summary: documentation for python3-%{pypi_name} + +%description -n python3-%{pypi_name}-doc +documentation for python3-%{pypi_name}. + +%prep +%autosetup -n diffq-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files diffq + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md +%license LICENSE + +%changelog +* Thu Jan 08 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/diffq/update.rhai b/anda/langs/python/diffq/update.rhai new file mode 100644 index 0000000000..82c143b23f --- /dev/null +++ b/anda/langs/python/diffq/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("diffq")); diff --git a/anda/langs/python/dirsync/anda.hcl b/anda/langs/python/dirsync/anda.hcl new file mode 100644 index 0000000000..e020703ef7 --- /dev/null +++ b/anda/langs/python/dirsync/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "dirsync.spec" + } +} diff --git a/anda/langs/python/dirsync/dirsync.spec b/anda/langs/python/dirsync/dirsync.spec new file mode 100644 index 0000000000..371c33660f --- /dev/null +++ b/anda/langs/python/dirsync/dirsync.spec @@ -0,0 +1,46 @@ +%global pypi_name dirsync +%global _desc Advanced directory tree synchronisation tool. + +Name: python-%{pypi_name} +Version: 2.2.6 +Release: 1%{?dist} +Summary: Advanced directory tree synchronisation tool +License: MIT +URL: https://github.com/domdfcoding/deprecation-alias +Source0: %{pypi_source} + +BuildRequires: python3-devel +BuildRequires: python3-pip +BuildRequires: python3-setuptools +BuildArch: noarch + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n %{pypi_name}-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files %{pypi_name} + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.rst +%license LICENSE.txt +%{_bindir}/%{pypi_name} + +%changelog +* Mon May 04 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/dirsync/update.rhai b/anda/langs/python/dirsync/update.rhai new file mode 100644 index 0000000000..1b94711ff1 --- /dev/null +++ b/anda/langs/python/dirsync/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("dirsync")); diff --git a/anda/langs/python/dist-meta/anda.hcl b/anda/langs/python/dist-meta/anda.hcl new file mode 100644 index 0000000000..d7d236f9df --- /dev/null +++ b/anda/langs/python/dist-meta/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "dist-meta.spec" + } +} diff --git a/anda/langs/python/dist-meta/dist-meta.spec b/anda/langs/python/dist-meta/dist-meta.spec new file mode 100644 index 0000000000..749cc6d049 --- /dev/null +++ b/anda/langs/python/dist-meta/dist-meta.spec @@ -0,0 +1,45 @@ +%global pypi_name dist-meta +%global _desc Parse and create Python distribution metadata. + +Name: python-%{pypi_name} +Version: 0.9.0 +Release: 1%?dist +Summary: Parse and create Python distribution metadata +License: MIT +URL: https://dist-meta.readthedocs.io/en/latest/ +Source0: https://github.com/repo-helper/dist-meta/archive/refs/tags/v%{version}.tar.gz +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-pip +BuildRequires: python3-hatch-requirements-txt + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n %{pypi_name}-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files dist_meta + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.rst +%license LICENSE + +%changelog +* Sat Mar 14 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/dist-meta/update.rhai b/anda/langs/python/dist-meta/update.rhai new file mode 100644 index 0000000000..4835a11018 --- /dev/null +++ b/anda/langs/python/dist-meta/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("dist-meta")); diff --git a/anda/langs/python/dom_toml/anda.hcl b/anda/langs/python/dom_toml/anda.hcl new file mode 100644 index 0000000000..f16c8a3743 --- /dev/null +++ b/anda/langs/python/dom_toml/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "dom_toml.spec" + } +} diff --git a/anda/langs/python/dom_toml/dom_toml.spec b/anda/langs/python/dom_toml/dom_toml.spec new file mode 100644 index 0000000000..f9284e134b --- /dev/null +++ b/anda/langs/python/dom_toml/dom_toml.spec @@ -0,0 +1,46 @@ +%global pypi_name dom_toml +%global _desc Dom's tools for Tom's Obvious, Minimal Language. + +Name: python-%{pypi_name} +Version: 2.3.0 +Release: 1%?dist +Summary: Dom's tools for Tom's Obvious, Minimal Language +License: MIT +URL: https://dom-toml.readthedocs.io/en/latest/ +Source0: %{pypi_source} +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-pip +BuildRequires: python3-setuptools +BuildRequires: python3-flit-core + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n %{pypi_name}-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files dom_toml + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.rst +%license LICENSE + +%changelog +* Sat Mar 14 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/dom_toml/update.rhai b/anda/langs/python/dom_toml/update.rhai new file mode 100644 index 0000000000..edf8cc8fb0 --- /dev/null +++ b/anda/langs/python/dom_toml/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("dom_toml")); diff --git a/anda/langs/python/dora-search/anda.hcl b/anda/langs/python/dora-search/anda.hcl new file mode 100644 index 0000000000..ff36648dd3 --- /dev/null +++ b/anda/langs/python/dora-search/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "dora-search.spec" + } +} diff --git a/anda/langs/python/dora-search/dora-search.spec b/anda/langs/python/dora-search/dora-search.spec new file mode 100644 index 0000000000..c625cbc48b --- /dev/null +++ b/anda/langs/python/dora-search/dora-search.spec @@ -0,0 +1,53 @@ +%global pypi_name dora-search +%global _desc Dora is an experiment management framework. It expresses grid searches as pure python files as part of your repo. It identifies experiments with a unique hash signature. Scale up to hundreds of experiments without losing your sanity. + +%define debug_package %{nil} + +Name: python-%{pypi_name} +Version: 0.1.12 +Release: 1%?dist +Summary: Experiment management framework +License: MIT +URL: https://github.com/facebookresearch/dora +Source0: %url/archive/refs/tags/v%version.tar.gz + +BuildRequires: python3-devel +BuildRequires: python3-pip +BuildRequires: python3-setuptools + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%package -n python3-%{pypi_name}-doc +Summary: documentation for python3-%{pypi_name} + +%description -n python3-%{pypi_name}-doc +documentation for python3-%{pypi_name}. + +%prep +%autosetup -n dora-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files dora + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md +%license LICENSE +%{_bindir}/dora + +%changelog +* Thu Jan 08 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/dora-search/update.rhai b/anda/langs/python/dora-search/update.rhai new file mode 100644 index 0000000000..55b23c931b --- /dev/null +++ b/anda/langs/python/dora-search/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("dora-search")); diff --git a/anda/langs/python/dotty-dict/update.rhai b/anda/langs/python/dotty-dict/update.rhai index 5e673da02e..bbacdb98f1 100644 --- a/anda/langs/python/dotty-dict/update.rhai +++ b/anda/langs/python/dotty-dict/update.rhai @@ -1 +1 @@ -rpm.version(gh("pawelzny/dotty_dict")); +rpm.version(pypi("dotty_dict")); diff --git a/anda/langs/python/enum-tools/anda.hcl b/anda/langs/python/enum-tools/anda.hcl new file mode 100644 index 0000000000..fa4ffe84f2 --- /dev/null +++ b/anda/langs/python/enum-tools/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "enum-tools.spec" + } +} diff --git a/anda/langs/python/enum-tools/enum-tools.spec b/anda/langs/python/enum-tools/enum-tools.spec new file mode 100644 index 0000000000..0c50face23 --- /dev/null +++ b/anda/langs/python/enum-tools/enum-tools.spec @@ -0,0 +1,47 @@ +%global pypi_name enum_tools +%global _desc Tools to expand Python's enum module. + +Name: python-%{pypi_name} +Version: 0.13.0 +Release: 1%?dist +Summary: Tools to expand Python's enum module +License: LGPL-3.0-or-later +URL: https://enum-tools.readthedocs.io/en/latest/ +Source0: %{pypi_source} +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-pip +BuildRequires: python3-wheel +BuildRequires: python3-whey + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +Provides: python3-enum-tools +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n enum_tools-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files enum_tools + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.rst +%license LICENSE + +%changelog +* Sun Mar 15 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/enum-tools/update.rhai b/anda/langs/python/enum-tools/update.rhai new file mode 100644 index 0000000000..05e5175c4a --- /dev/null +++ b/anda/langs/python/enum-tools/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("enum_tools")); diff --git a/anda/langs/python/fast-colorthief/python-fast-colorthief.spec b/anda/langs/python/fast-colorthief/python-fast-colorthief.spec index 69529d2df6..5745656369 100644 --- a/anda/langs/python/fast-colorthief/python-fast-colorthief.spec +++ b/anda/langs/python/fast-colorthief/python-fast-colorthief.spec @@ -6,7 +6,7 @@ Name: python-%{pypi_name} Version: 0.0.5 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Faster version of Colorthief License: MIT URL: https://github.com/bedapisl/fast-colorthief @@ -35,7 +35,7 @@ BuildRequires: python3dist(setuptools) BuildRequires: python3dist(sphinx) BuildRequires: python3dist(sphinxcontrib-moderncmakedomain) BuildRequires: python3dist(sphinx-copybutton) -Packager: Gilver E. +Packager: Gilver E. %description A Python module for selecting most dominant colors in the image. diff --git a/anda/langs/python/faster-whisper/anda.hcl b/anda/langs/python/faster-whisper/anda.hcl new file mode 100644 index 0000000000..740ef5a125 --- /dev/null +++ b/anda/langs/python/faster-whisper/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "faster-whisper.spec" + } +} diff --git a/anda/langs/python/faster-whisper/faster-whisper.spec b/anda/langs/python/faster-whisper/faster-whisper.spec new file mode 100644 index 0000000000..a7b65bd0d1 --- /dev/null +++ b/anda/langs/python/faster-whisper/faster-whisper.spec @@ -0,0 +1,49 @@ +%global pypi_name faster-whisper +%global _desc Faster Whisper transcription with CTranslate2. + +Name: python-%{pypi_name} +Version: 1.2.1 +Release: 1%?dist +Summary: Faster Whisper transcription with CTranslate2 +License: MIT +URL: https://github.com/SYSTRAN/faster-whisper +Source0: %url/archive/refs/tags/v%version.tar.gz +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-build +BuildRequires: python3-installer +BuildRequires: python3-wheel +BuildRequires: python3-poetry-core +BuildRequires: python3-pip +BuildRequires: python3-setuptools + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n faster-whisper-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files faster_whisper + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md +%license LICENSE + +%changelog +* Sun Apr 12 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/faster-whisper/update.rhai b/anda/langs/python/faster-whisper/update.rhai new file mode 100644 index 0000000000..49762b8517 --- /dev/null +++ b/anda/langs/python/faster-whisper/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("faster-whisper")); diff --git a/anda/langs/python/ffmpeg-python/anda.hcl b/anda/langs/python/ffmpeg-python/anda.hcl new file mode 100644 index 0000000000..372f9a9523 --- /dev/null +++ b/anda/langs/python/ffmpeg-python/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "ffmpeg-python.spec" + } +} diff --git a/anda/langs/python/ffmpeg-python/ffmpeg-python.spec b/anda/langs/python/ffmpeg-python/ffmpeg-python.spec new file mode 100644 index 0000000000..6f7f0c3a43 --- /dev/null +++ b/anda/langs/python/ffmpeg-python/ffmpeg-python.spec @@ -0,0 +1,47 @@ +%global pypi_name ffmpeg-python +%global _desc Python bindings for FFmpeg - with complex filtering support. + +Name: python-%{pypi_name} +Version: 0.2.0 +Release: 1%?dist +Summary: Python bindings for FFmpeg - with complex filtering support +License: Apache-2.0 +URL: https://github.com/kkroening/ffmpeg-python +Source0: %url/archive/refs/tags/%version.tar.gz +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-build +BuildRequires: python3-wheel +BuildRequires: python3-pip +BuildRequires: python3-setuptools + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n ffmpeg-python-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files ffmpeg + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md +%license LICENSE + +%changelog +* Thu Jan 15 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/ffmpeg-python/update.rhai b/anda/langs/python/ffmpeg-python/update.rhai new file mode 100644 index 0000000000..6320b85a59 --- /dev/null +++ b/anda/langs/python/ffmpeg-python/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("ffmpeg-python")); diff --git a/anda/langs/python/future/anda.hcl b/anda/langs/python/future/anda.hcl new file mode 100644 index 0000000000..cbaed003d0 --- /dev/null +++ b/anda/langs/python/future/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "future.spec" + } +} diff --git a/anda/langs/python/future/future.spec b/anda/langs/python/future/future.spec new file mode 100644 index 0000000000..fd232f5624 --- /dev/null +++ b/anda/langs/python/future/future.spec @@ -0,0 +1,50 @@ +%global pypi_name future +%global _desc Easy, clean, reliable Python 2/3 compatibility. + +Name: python-%{pypi_name} +Version: 1.0.0 +Release: 1%?dist +Summary: Easy, clean, reliable Python 2/3 compatibility +License: MIT +URL: https://github.com/manrajgrover/halo +Source0: %{pypi_source} +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n future-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files future + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.rst +%license LICENSE.txt +%{_bindir}/futurize +%{_bindir}/pasteurize +%python3_sitelib/libfuturize/ +%python3_sitelib/libpasteurize/ +%python3_sitelib/past/ + +%changelog +* Thu Jan 15 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/future/update.rhai b/anda/langs/python/future/update.rhai new file mode 100644 index 0000000000..99660246cf --- /dev/null +++ b/anda/langs/python/future/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("future")); diff --git a/anda/langs/python/fx2/fx2.spec b/anda/langs/python/fx2/fx2.spec index f662c76340..c6872789af 100644 --- a/anda/langs/python/fx2/fx2.spec +++ b/anda/langs/python/fx2/fx2.spec @@ -50,8 +50,6 @@ popd %doc README.md %license LICENSE-0BSD.txt %{_bindir}/fx2tool -%ghost %python3_sitelib/__pycache__/*.cpython-*.pyc -%ghost %python3_sitelib/%{name}/subcommands/__pycache__/*.cpython-*.pyc %changelog * Sun Sep 28 2025 Owen Zimmerman diff --git a/anda/langs/python/fx2/update.rhai b/anda/langs/python/fx2/update.rhai index 1453f575a3..192f395da8 100644 --- a/anda/langs/python/fx2/update.rhai +++ b/anda/langs/python/fx2/update.rhai @@ -1 +1 @@ -rpm.version(gh("whitequark/libfx2")); +rpm.version(pypi("fx2")); diff --git a/anda/langs/python/gay/anda.hcl b/anda/langs/python/gay/anda.hcl new file mode 100644 index 0000000000..0ac75ee2af --- /dev/null +++ b/anda/langs/python/gay/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "gay.spec" + } + labels { + nightly = 1 + } +} diff --git a/anda/langs/python/gay/gay.spec b/anda/langs/python/gay/gay.spec new file mode 100644 index 0000000000..7ca257a703 --- /dev/null +++ b/anda/langs/python/gay/gay.spec @@ -0,0 +1,46 @@ +%global pypi_name gay +%global _desc Colour your text / terminal to be more gay. + +Name: python-%{pypi_name} +Version: 1.3.4 +Release: 2%?dist +Summary: Colour your text / terminal to be more gay +License: MIT +URL: https://github.com/ms-jpq/gay +Source0: %{pypi_source} +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n %{pypi_name}-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install + +%files -n python3-%{pypi_name} +%doc README.md +%license LICENSE +%{_bindir}/gay +%python3_sitelib/gay-%{version}.dist-info/* + +%changelog +* Tue Sep 30 2025 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/gay/update.rhai b/anda/langs/python/gay/update.rhai new file mode 100644 index 0000000000..132085f7c0 --- /dev/null +++ b/anda/langs/python/gay/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("gay")); diff --git a/anda/langs/python/geventwebsocket/anda.hcl b/anda/langs/python/geventwebsocket/anda.hcl new file mode 100644 index 0000000000..0f26d7b84d --- /dev/null +++ b/anda/langs/python/geventwebsocket/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "geventwebsocket.spec" + } +} diff --git a/anda/langs/python/geventwebsocket/geventwebsocket.spec b/anda/langs/python/geventwebsocket/geventwebsocket.spec new file mode 100644 index 0000000000..19dc0e17e3 --- /dev/null +++ b/anda/langs/python/geventwebsocket/geventwebsocket.spec @@ -0,0 +1,45 @@ +%global pypi_name gevent-websocket +%global _desc gevent-websocket is a WebSocket library for the gevent networking library. + +Name: python-%{pypi_name} +Version: 0.10.1 +Release: 1%{?dist} +Summary: gevent-websocket is a WebSocket library for the gevent networking library +License: Apache-2.0 +URL: https://github.com/cynepiaadmin/geventwebsocket +Source0: %{pypi_source} +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n %{pypi_name}-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files geventwebsocket + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.rst +%license LICENSE + +%changelog +* Thu May 07 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/geventwebsocket/update.rhai b/anda/langs/python/geventwebsocket/update.rhai new file mode 100644 index 0000000000..1056e6da0c --- /dev/null +++ b/anda/langs/python/geventwebsocket/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("gevent-websocket")); diff --git a/anda/langs/python/gpt-image/anda.hcl b/anda/langs/python/gpt-image/anda.hcl new file mode 100644 index 0000000000..4775221ccc --- /dev/null +++ b/anda/langs/python/gpt-image/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "gpt-image.spec" + } +} diff --git a/anda/langs/python/gpt-image/gpt-image.spec b/anda/langs/python/gpt-image/gpt-image.spec new file mode 100644 index 0000000000..6c2ec4c6a9 --- /dev/null +++ b/anda/langs/python/gpt-image/gpt-image.spec @@ -0,0 +1,45 @@ +%global pypi_name gpt-image +%global _desc Tool to create GPT disk image files. + +Name: python-%{pypi_name} +Version: 0.9.1 +Release: 1%?dist +Summary: Tool to create GPT disk image files +License: MIT +URL: https://github.com/swysocki/gpt-image +Source0: %url/archive/refs/tags/v%version.tar.gz +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n gpt-image-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files gpt_image + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md +%license LICENSE + +%changelog +* Mon Jan 19 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/gpt-image/update.rhai b/anda/langs/python/gpt-image/update.rhai new file mode 100644 index 0000000000..07416c8e96 --- /dev/null +++ b/anda/langs/python/gpt-image/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("gpt-image")); diff --git a/anda/langs/python/haishoku/python-haishoku.spec b/anda/langs/python/haishoku/python-haishoku.spec index d7187805f3..a6457861ad 100644 --- a/anda/langs/python/haishoku/python-haishoku.spec +++ b/anda/langs/python/haishoku/python-haishoku.spec @@ -6,7 +6,7 @@ Haishoku is a development tool for grabbing the dominant color or representative Name: python-%{pypi_name} Version: 1.1.8 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A development tool for grabbing the dominant color or representative color palette from an image License: MIT URL: https://github.com/LanceGin/haishoku @@ -16,7 +16,7 @@ BuildRequires: python3-devel BuildRequires: python3dist(pip) BuildRequires: python3dist(setuptools) BuildArch: noarch -Packager: Gilver E. +Packager: Gilver E. %description %_description1 diff --git a/anda/langs/python/handy-archives/anda.hcl b/anda/langs/python/handy-archives/anda.hcl new file mode 100644 index 0000000000..a02f099907 --- /dev/null +++ b/anda/langs/python/handy-archives/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "handy-archives.spec" + } +} diff --git a/anda/langs/python/handy-archives/handy-archives.spec b/anda/langs/python/handy-archives/handy-archives.spec new file mode 100644 index 0000000000..6fe2094ca4 --- /dev/null +++ b/anda/langs/python/handy-archives/handy-archives.spec @@ -0,0 +1,46 @@ +%global pypi_name handy_archives +%global _desc Some handy archive helpers for Python. + +Name: python-%{pypi_name} +Version: 0.2.0 +Release: 1%?dist +Summary: Some handy archive helpers for Python +License: MIT +URL: https://handy-archives.readthedocs.io/en/latest/ +Source0: %{pypi_source} +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +BuildRequires: python3-flit-core + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n %{pypi_name}-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files handy_archives + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.rst +%license LICENSE + +%changelog +* Sat Mar 14 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/handy-archives/update.rhai b/anda/langs/python/handy-archives/update.rhai new file mode 100644 index 0000000000..79bc0d2f35 --- /dev/null +++ b/anda/langs/python/handy-archives/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("handy-archives")); diff --git a/anda/langs/python/hf-xet/anda.hcl b/anda/langs/python/hf-xet/anda.hcl new file mode 100644 index 0000000000..d3b789ccda --- /dev/null +++ b/anda/langs/python/hf-xet/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "xf-xet.spec" + } +} diff --git a/anda/langs/python/hf-xet/update.rhai b/anda/langs/python/hf-xet/update.rhai new file mode 100644 index 0000000000..87a7689bb6 --- /dev/null +++ b/anda/langs/python/hf-xet/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("hf-xet")); diff --git a/anda/langs/python/hf-xet/xf-xet.spec b/anda/langs/python/hf-xet/xf-xet.spec new file mode 100644 index 0000000000..8cdc61f8bb --- /dev/null +++ b/anda/langs/python/hf-xet/xf-xet.spec @@ -0,0 +1,58 @@ +%global pypi_name hf-xet +%global _desc xet client tech, used in huggingface_hub. + +Name: python-%{pypi_name} +Version: 1.5.0 +Release: 1%{?dist} +Summary: xet client tech, used in huggingface_hub +License: Apache-2.0 +URL: https://github.com/huggingface/xet-core +Source0: %url/archive/refs/tags/v%version.tar.gz + +BuildRequires: python3-devel +BuildRequires: python3-pip +BuildRequires: python3-setuptools + +BuildRequires: python +BuildRequires: gdb +BuildRequires: cargo +BuildRequires: rust-src +BuildRequires: pkgconfig(libssh2) +BuildRequires: lmdb-devel +BuildRequires: maturin + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%package -n python3-%{pypi_name}-doc +Summary: documentation for python3-%{pypi_name} + +%description -n python3-%{pypi_name}-doc +documentation for python3-%{pypi_name}. + +%prep +%autosetup -n xet-core-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files hf_xet + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc *.md +%license LICENSE + +%changelog +* Fri Jan 09 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/hydra-colorlog/anda.hcl b/anda/langs/python/hydra-colorlog/anda.hcl new file mode 100644 index 0000000000..ebdc17a706 --- /dev/null +++ b/anda/langs/python/hydra-colorlog/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "hydra-colorlog.spec" + } +} diff --git a/anda/langs/python/hydra-colorlog/hydra-colorlog.spec b/anda/langs/python/hydra-colorlog/hydra-colorlog.spec new file mode 100644 index 0000000000..376a4245a8 --- /dev/null +++ b/anda/langs/python/hydra-colorlog/hydra-colorlog.spec @@ -0,0 +1,53 @@ +%global pypi_name hydra-colorlog +%global _desc Hydra is a framework for elegantly configuring complex applications. + +%define debug_package %{nil} + +Name: python-%{pypi_name} +Version: 1.2.0 +Release: 1%?dist +Summary: Hydra is a framework for elegantly configuring complex applications +License: MIT +URL: https://github.com/facebookresearch/hydra +Source0: %url/archive/refs/tags/v%version.tar.gz + +BuildRequires: python3-devel +BuildRequires: python3-pip +BuildRequires: python3-setuptools +BuildRequires: java-latest-openjdk-devel + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%package -n python3-%{pypi_name}-doc +Summary: documentation for python3-%{pypi_name} + +%description -n python3-%{pypi_name}-doc +documentation for python3-%{pypi_name}. + +%prep +%autosetup -n hydra-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files hydra + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md +%license LICENSE + +%changelog +* Fri Jan 09 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/hydra-colorlog/update.rhai b/anda/langs/python/hydra-colorlog/update.rhai new file mode 100644 index 0000000000..0a747b447f --- /dev/null +++ b/anda/langs/python/hydra-colorlog/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("hydra-colorlog")); diff --git a/anda/langs/python/imageio-ffmpeg/anda.hcl b/anda/langs/python/imageio-ffmpeg/anda.hcl new file mode 100644 index 0000000000..929ba92e9b --- /dev/null +++ b/anda/langs/python/imageio-ffmpeg/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "imageio-ffmpeg.spec" + } +} diff --git a/anda/langs/python/imageio-ffmpeg/imageio-ffmpeg.spec b/anda/langs/python/imageio-ffmpeg/imageio-ffmpeg.spec new file mode 100644 index 0000000000..eef40aa382 --- /dev/null +++ b/anda/langs/python/imageio-ffmpeg/imageio-ffmpeg.spec @@ -0,0 +1,49 @@ +%global pypi_name imageio-ffmpeg +%global _desc FFMPEG wrapper for Python. + +Name: python-%{pypi_name} +Version: 0.6.0 +Release: 1%?dist +Summary: FFMPEG wrapper for Python +License: BSD-2-Clause +URL: https://github.com/imageio/imageio-ffmpeg +Source0: %url/archive/refs/tags/v%{version}.tar.gz +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-wheel +BuildRequires: python3-setuptools +BuildRequires: python3-setuptools_scm +BuildRequires: python3-pip +BuildRequires: python3-poetry-core + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +Provides: imageio-ffmpeg +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n imageio-ffmpeg-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files imageio_ffmpeg + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md +%license LICENSE + +%changelog +* Sun Nov 09 2025 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/imageio-ffmpeg/update.rhai b/anda/langs/python/imageio-ffmpeg/update.rhai new file mode 100644 index 0000000000..e9fd0358dc --- /dev/null +++ b/anda/langs/python/imageio-ffmpeg/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("imageio-ffmpeg")); diff --git a/anda/langs/python/iterable-io/LICENSE.txt b/anda/langs/python/iterable-io/LICENSE.txt new file mode 100644 index 0000000000..35ce134d11 --- /dev/null +++ b/anda/langs/python/iterable-io/LICENSE.txt @@ -0,0 +1,65 @@ +GNU LESSER GENERAL PUBLIC LICENSE + +Version 3, 29 June 2007 + +Copyright © 2007 Free Software Foundation, Inc. + +Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. + +This version of the GNU Lesser General Public License incorporates the terms and conditions of version 3 of the GNU General Public License, supplemented by the additional permissions listed below. +0. Additional Definitions. + +As used herein, “this License” refers to version 3 of the GNU Lesser General Public License, and the “GNU GPL” refers to version 3 of the GNU General Public License. + +“The Library” refers to a covered work governed by this License, other than an Application or a Combined Work as defined below. + +An “Application” is any work that makes use of an interface provided by the Library, but which is not otherwise based on the Library. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library. + +A “Combined Work” is a work produced by combining or linking an Application with the Library. The particular version of the Library with which the Combined Work was made is also called the “Linked Version”. + +The “Minimal Corresponding Source” for a Combined Work means the Corresponding Source for the Combined Work, excluding any source code for portions of the Combined Work that, considered in isolation, are based on the Application, and not on the Linked Version. + +The “Corresponding Application Code” for a Combined Work means the object code and/or source code for the Application, including any data and utility programs needed for reproducing the Combined Work from the Application, but excluding the System Libraries of the Combined Work. +1. Exception to Section 3 of the GNU GPL. + +You may convey a covered work under sections 3 and 4 of this License without being bound by section 3 of the GNU GPL. +2. Conveying Modified Versions. + +If you modify a copy of the Library, and, in your modifications, a facility refers to a function or data to be supplied by an Application that uses the facility (other than as an argument passed when the facility is invoked), then you may convey a copy of the modified version: + + a) under this License, provided that you make a good faith effort to ensure that, in the event an Application does not supply the function or data, the facility still operates, and performs whatever part of its purpose remains meaningful, or + b) under the GNU GPL, with none of the additional permissions of this License applicable to that copy. + +3. Object Code Incorporating Material from Library Header Files. + +The object code form of an Application may incorporate material from a header file that is part of the Library. You may convey such object code under terms of your choice, provided that, if the incorporated material is not limited to numerical parameters, data structure layouts and accessors, or small macros, inline functions and templates (ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the Library is used in it and that the Library and its use are covered by this License. + b) Accompany the object code with a copy of the GNU GPL and this license document. + +4. Combined Works. + +You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications, if you also do each of the following: + + a) Give prominent notice with each copy of the Combined Work that the Library is used in it and that the Library and its use are covered by this License. + b) Accompany the Combined Work with a copy of the GNU GPL and this license document. + c) For a Combined Work that displays copyright notices during execution, include the copyright notice for the Library among these notices, as well as a reference directing the user to the copies of the GNU GPL and this license document. + d) Do one of the following: + 0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source. + 1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version. + e) Provide Installation Information, but only if you would otherwise be required to provide such information under section 6 of the GNU GPL, and only to the extent that such information is necessary to install and execute a modified version of the Combined Work produced by recombining or relinking the Application with a modified version of the Linked Version. (If you use option 4d0, the Installation Information must accompany the Minimal Corresponding Source and Corresponding Application Code. If you use option 4d1, you must provide the Installation Information in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.) + +5. Combined Libraries. + +You may place library facilities that are a work based on the Library side by side in a single library together with other library facilities that are not Applications and are not covered by this License, and convey such a combined library under terms of your choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities, conveyed under the terms of this License. + b) Give prominent notice with the combined library that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. + +6. Revised Versions of the GNU Lesser General Public License. + +The Free Software Foundation may publish revised and/or new versions of the GNU Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library as you received it specifies that a certain numbered version of the GNU Lesser General Public License “or any later version” applies to it, you have the option of following the terms and conditions either of that published version or of any later version published by the Free Software Foundation. If the Library as you received it does not specify a version number of the GNU Lesser General Public License, you may choose any version of the GNU Lesser General Public License ever published by the Free Software Foundation. + +If the Library as you received it specifies that a proxy can decide whether future versions of the GNU Lesser General Public License shall apply, that proxy's public statement of acceptance of any version is permanent authorization for you to choose that version for the Library. diff --git a/anda/langs/python/iterable-io/anda.hcl b/anda/langs/python/iterable-io/anda.hcl new file mode 100644 index 0000000000..b6cbc67d58 --- /dev/null +++ b/anda/langs/python/iterable-io/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "iterable-io.spec" + } +} diff --git a/anda/langs/python/iterable-io/iterable-io.spec b/anda/langs/python/iterable-io/iterable-io.spec new file mode 100644 index 0000000000..6bbbdb7fca --- /dev/null +++ b/anda/langs/python/iterable-io/iterable-io.spec @@ -0,0 +1,55 @@ +%global pypi_name iterable-io +%global _desc Python library to adapt iterables to a file-like interface. + +Name: python-%{pypi_name} +Version: 1.0.1 +Release: 1%?dist +Summary: Python library to adapt iterables to a file-like interface + +# According to README +License: LGPL-3.0-only + +URL: https://github.com/pR0Ps/iterable-io +Source0: %{pypi_source} +Source1: LICENSE.txt +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-wheel +BuildRequires: python3-setuptools +BuildRequires: python3-pip + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +Provides: iterable-io +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n iterable-io-%{version} + +%build +%pyproject_wheel + +%install +install -Dm644 %{SOURCE1} %{buildroot}%{_defaultlicensedir}/%{name}/LICENSE +%pyproject_install +%pyproject_save_files iterableio + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md +%{_defaultlicensedir}/%{name}/LICENSE +%ghost %python3_sitelib/__pycache__/*.cpython-*.pyc +%ghost %python3_sitelib/%{name}/subcommands/__pycache__/*.cpython-*.pyc +%python3_sitelib/iterable_io-%version.dist-info/* + +%changelog +* Mon Nov 03 2025 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/iterable-io/update.rhai b/anda/langs/python/iterable-io/update.rhai new file mode 100644 index 0000000000..d9a059d951 --- /dev/null +++ b/anda/langs/python/iterable-io/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("iterable-io")); diff --git a/anda/langs/python/jade/anda.hcl b/anda/langs/python/jade/anda.hcl new file mode 100644 index 0000000000..6981ec174c --- /dev/null +++ b/anda/langs/python/jade/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "jade.spec" + } +} diff --git a/anda/langs/python/jade/jade.spec b/anda/langs/python/jade/jade.spec new file mode 100644 index 0000000000..d59938d50a --- /dev/null +++ b/anda/langs/python/jade/jade.spec @@ -0,0 +1,48 @@ +%global pypi_name jade +%global _desc Exoplanet evolution code. + +Name: python-%{pypi_name} +Version: 0.1.0 +Release: 1%?dist +Summary: Exoplanet evolution code +License: LGPL-3.0 +URL: https://gitlab.unige.ch/spice_dune/jade +Source0: %{pypi_source} +BuildArch: noarch + +BuildRequires: python3 +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +Provides: jade +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n jade-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files jade + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md +%license LICENSE +%{_bindir}/jade + +%changelog +* Fri Jan 02 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/jade/update.rhai b/anda/langs/python/jade/update.rhai new file mode 100644 index 0000000000..7e4f13db9e --- /dev/null +++ b/anda/langs/python/jade/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("jade")); diff --git a/anda/langs/python/jellyfin-apiclient-python/anda.hcl b/anda/langs/python/jellyfin-apiclient-python/anda.hcl new file mode 100644 index 0000000000..9c8548b13b --- /dev/null +++ b/anda/langs/python/jellyfin-apiclient-python/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "jellyfin-apiclient-python.spec" + } +} diff --git a/anda/langs/python/jellyfin-apiclient-python/jellyfin-apiclient-python.spec b/anda/langs/python/jellyfin-apiclient-python/jellyfin-apiclient-python.spec new file mode 100644 index 0000000000..ea34b9b8b9 --- /dev/null +++ b/anda/langs/python/jellyfin-apiclient-python/jellyfin-apiclient-python.spec @@ -0,0 +1,47 @@ +%global pypi_name jellyfin-apiclient-python +%global _desc Python API Client for Jellyfin. + +Name: python-%{pypi_name} +Version: 1.12.0 +Release: 1%{?dist} +Summary: Python API Client for Jellyfin +License: GPL-3.0 +URL: https://github.com/jellyfin/jellyfin-apiclient-python +Source0: %url/archive/refs/tags/v%version.tar.gz +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +Provides: jellyfin-apiclient-python +Provides: jellyfin-apiclient +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n %{pypi_name}-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files jellyfin_apiclient_python + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md +%license LICENSE.md + +%changelog +* Sun Dec 07 2025 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/jellyfin-apiclient-python/update.rhai b/anda/langs/python/jellyfin-apiclient-python/update.rhai new file mode 100644 index 0000000000..49cdea1a8a --- /dev/null +++ b/anda/langs/python/jellyfin-apiclient-python/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("jellyfin-apiclient-python")); diff --git a/anda/langs/python/jschon/update.rhai b/anda/langs/python/jschon/update.rhai index 29f1d73fae..20f2f07e34 100644 --- a/anda/langs/python/jschon/update.rhai +++ b/anda/langs/python/jschon/update.rhai @@ -1 +1 @@ -rpm.version(gh("marksparkza/jschon")); +rpm.version(pypi("jschon")); diff --git a/anda/langs/python/julius/anda.hcl b/anda/langs/python/julius/anda.hcl new file mode 100644 index 0000000000..0b48c1cc46 --- /dev/null +++ b/anda/langs/python/julius/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "julius.spec" + } +} diff --git a/anda/langs/python/julius/julius.spec b/anda/langs/python/julius/julius.spec new file mode 100644 index 0000000000..32474ffd24 --- /dev/null +++ b/anda/langs/python/julius/julius.spec @@ -0,0 +1,47 @@ +%global pypi_name julius +%global _desc Fast PyTorch based DSP for audio and 1D signals. + +Name: python-%{pypi_name} +Version: 0.2.7 +Release: 1%?dist +Summary: Fast PyTorch based DSP for audio and 1D signals +License: MIT +URL: https://github.com/adefossez/julius +Source0: %{pypi_source} +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-build +BuildRequires: python3-wheel +BuildRequires: python3-setuptools +BuildRequires: python3-pip + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n julius-%version + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files julius + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md +%license LICENSE + +%changelog +* Fri Jan 16 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/julius/update.rhai b/anda/langs/python/julius/update.rhai new file mode 100644 index 0000000000..5ae6bf7ae9 --- /dev/null +++ b/anda/langs/python/julius/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("julius")); diff --git a/anda/langs/python/jupyter-sphinx/python-jupyter-sphinx.spec b/anda/langs/python/jupyter-sphinx/python-jupyter-sphinx.spec index 8f95d36062..9a92f4d1d6 100644 --- a/anda/langs/python/jupyter-sphinx/python-jupyter-sphinx.spec +++ b/anda/langs/python/jupyter-sphinx/python-jupyter-sphinx.spec @@ -7,7 +7,7 @@ Name: python-jupyter-sphinx Version: 0.5.3 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Jupyter Sphinx extensions License: BSD-3-Clause URL: https://jupyter-sphinx.readthedocs.io/ @@ -31,7 +31,7 @@ BuildRequires: python3dist(sphinx) # See https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval ExcludeArch: %{ix86} BuildArch: noarch -Packager: Gilver E. +Packager: Gilver E. %global _desc %{expand: Jupyter-Sphinx enables running code embedded in Sphinx documentation and diff --git a/anda/langs/python/jxlpy/anda.hcl b/anda/langs/python/jxlpy/anda.hcl new file mode 100644 index 0000000000..413874b469 --- /dev/null +++ b/anda/langs/python/jxlpy/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "jxlpy.spec" + } +} diff --git a/anda/langs/python/jxlpy/jxlpy.spec b/anda/langs/python/jxlpy/jxlpy.spec new file mode 100644 index 0000000000..2b6ba77903 --- /dev/null +++ b/anda/langs/python/jxlpy/jxlpy.spec @@ -0,0 +1,49 @@ +%global pypi_name jxlpy +%global _desc Cython bindings and Pillow plugin for JPEG XL. + +Name: python-%{pypi_name} +Version: 0.9.5 +Release: 1%?dist +Summary: Cython bindings and Pillow plugin for JPEG XL +License: MIT +URL: https://github.com/olokelo/jxlpy +Source0: %{pypi_source} + +BuildRequires: python3-devel +BuildRequires: python3-wheel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +BuildRequires: python3-cython +BuildRequires: libjxl-devel +BuildRequires: gcc-c++ + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n %{pypi_name}-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files %{pypi_name} + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md +%license LICENSE +%{python3_sitearch}/_jxlpy.cpython-314-%{_arch}-linux-gnu.so + +%changelog +* Sat Mar 28 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/jxlpy/update.rhai b/anda/langs/python/jxlpy/update.rhai new file mode 100644 index 0000000000..8306a8af42 --- /dev/null +++ b/anda/langs/python/jxlpy/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("jxlpy")); diff --git a/anda/langs/python/latex2mathml/latex2mathml.spec b/anda/langs/python/latex2mathml/latex2mathml.spec index 2eecbb3805..10cdf88979 100644 --- a/anda/langs/python/latex2mathml/latex2mathml.spec +++ b/anda/langs/python/latex2mathml/latex2mathml.spec @@ -2,8 +2,8 @@ %global _desc Pure Python library for LaTeX to MathML conversion. Name: python-%{pypi_name} -Version: 3.78.1 -Release: 1%?dist +Version: 3.81.0 +Release: 1%{?dist} Summary: Pure Python library for LaTeX to MathML conversion License: MIT URL: https://github.com/roniemartinez/latex2mathml @@ -17,6 +17,7 @@ BuildRequires: python3-pip BuildRequires: python3-poetry-core BuildRequires: python3-installer BuildRequires: python3-build +BuildRequires: python3-hatchling Packager: Owen Zimmerman diff --git a/anda/langs/python/librosa/anda.hcl b/anda/langs/python/librosa/anda.hcl new file mode 100644 index 0000000000..7921ae8870 --- /dev/null +++ b/anda/langs/python/librosa/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "librosa.spec" + } +} diff --git a/anda/langs/python/librosa/librosa.spec b/anda/langs/python/librosa/librosa.spec new file mode 100644 index 0000000000..9b6a2286b3 --- /dev/null +++ b/anda/langs/python/librosa/librosa.spec @@ -0,0 +1,48 @@ +%global pypi_name librosa +%global _desc Python library for audio and music analysis. + +Name: python-%{pypi_name} +Version: 0.11.0 +Release: 1%?dist +Summary: Python library for audio and music analysis +License: MIT +URL: https://librosa.org +Source0: %{pypi_source} +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-wheel +BuildRequires: python3-setuptools +BuildRequires: python3-pip + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +Provides: librosa +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n librosa-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files librosa + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md AUTHORS.md CONTRIBUTING.md CODE_OF_CONDUCT.md +%license LICENSE.md +%python3_sitelib/librosa-%version.dist-info/* + +%changelog +* Sat Dec 27 2025 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/librosa/update.rhai b/anda/langs/python/librosa/update.rhai new file mode 100644 index 0000000000..c39854befc --- /dev/null +++ b/anda/langs/python/librosa/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("librosa")); diff --git a/anda/langs/python/magic-wormhole/anda.hcl b/anda/langs/python/magic-wormhole/anda.hcl new file mode 100644 index 0000000000..7e2dcc5239 --- /dev/null +++ b/anda/langs/python/magic-wormhole/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "magic-wormhole.spec" + } +} diff --git a/anda/langs/python/magic-wormhole/magic-wormhole.spec b/anda/langs/python/magic-wormhole/magic-wormhole.spec new file mode 100644 index 0000000000..3e747e1718 --- /dev/null +++ b/anda/langs/python/magic-wormhole/magic-wormhole.spec @@ -0,0 +1,58 @@ +%global pypi_name magic-wormhole +%global _desc get things from one computer to another, safely. + +Name: python-%{pypi_name} +Version: 0.24.0 +Release: 1%{?dist} +Summary: get things from one computer to another, safely +License: MIT +URL: https://github.com/magic-wormhole/magic-wormhole +Source0: %url/archive/refs/tags/%version.tar.gz +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-wheel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +BuildRequires: python3-versioneer + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +Provides: magic-wormhole +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%pkg_completion -bfzn %{pypi_name} wormhole_complete + +%prep +%autosetup -n magic-wormhole-%{version} + +%build +%pyproject_wheel + +%install +install -Dm644 wormhole_complete.bash %{buildroot}%{bash_completions_dir}/wormhole_complete.bash +install -Dm644 wormhole_complete.fish %{buildroot}%{fish_completions_dir}/wormhole_complete.fish +install -Dm644 wormhole_complete.zsh %{buildroot}%{zsh_completions_dir}/_wormhole_complete +install -Dm644 docs/wormhole.1 %{buildroot}%{_mandir}/man1/wormhole.1 +%pyproject_install +%pyproject_save_files wormhole +rm %{buildroot}%{_usr}/wormhole_complete.* + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md docs/*.rst +%license LICENSE +%{_bindir}/magic-wormhole +%{_bindir}/wormhole +%{_mandir}/man1/wormhole.1.gz + +%changelog +* Mon Nov 03 2025 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/magic-wormhole/update.rhai b/anda/langs/python/magic-wormhole/update.rhai new file mode 100644 index 0000000000..6969d6a585 --- /dev/null +++ b/anda/langs/python/magic-wormhole/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("magic-wormhole")); diff --git a/anda/langs/python/materialyoucolor/python-materialyoucolor.spec b/anda/langs/python/materialyoucolor/python-materialyoucolor.spec index cccdaeafe5..f3f85fb1b4 100644 --- a/anda/langs/python/materialyoucolor/python-materialyoucolor.spec +++ b/anda/langs/python/materialyoucolor/python-materialyoucolor.spec @@ -2,8 +2,8 @@ %bcond test 0 Name: python-%{pypi_name} -Version: 2.0.10 -Release: 1%{?dist} +Version: 3.0.2 +Release: 1%?dist Summary: Material You color generation algorithms in pure python! License: MIT URL: https://github.com/T-Dynamos/materialyoucolor-python @@ -14,10 +14,11 @@ BuildRequires: pyproject-rpm-macros BuildRequires: python3-devel BuildRequires: python3dist(pillow) BuildRequires: python3dist(pip) +BuildRequires: python3dist(pybind11) BuildRequires: python3dist(pytest) BuildRequires: python3dist(rich) BuildRequires: python3dist(setuptools) -Packager: Gilver E. +Packager: Gilver E. %description Material You color generation algorithms in Python. diff --git a/anda/langs/python/mdtex2html/mdtex2html.spec b/anda/langs/python/mdtex2html/mdtex2html.spec index 5ecab72ff8..92c03668bc 100644 --- a/anda/langs/python/mdtex2html/mdtex2html.spec +++ b/anda/langs/python/mdtex2html/mdtex2html.spec @@ -2,7 +2,7 @@ %global _desc python3-library to convert Markdown with included LaTeX-Formulas to HTML with MathML. Name: python-%{pypi_name} -Version: 1.3.1 +Version: 1.3.2 Release: 1%?dist Summary: python3-library to convert Markdown with included LaTeX-Formulas to HTML with MathML License: LGPL-2.1 diff --git a/anda/langs/python/milc/milc.spec b/anda/langs/python/milc/milc.spec index cfc9e833a6..4c95aec804 100644 --- a/anda/langs/python/milc/milc.spec +++ b/anda/langs/python/milc/milc.spec @@ -2,8 +2,8 @@ %global _desc Batteries-Included Python 3 CLI Framework. Name: python-%{pypi_name} -Version: 1.9.1 -Release: 1%?dist +Version: 2.0.0 +Release: 1%{?dist} Summary: Batteries-Included Python 3 CLI Framework License: MIT URL: https://github.com/clueboard/milc diff --git a/anda/langs/python/milc/update.rhai b/anda/langs/python/milc/update.rhai index 4578cff642..8a6f114bc2 100644 --- a/anda/langs/python/milc/update.rhai +++ b/anda/langs/python/milc/update.rhai @@ -1 +1 @@ -rpm.version(gh("clueboard/milc")); +rpm.version(pypi("milc")); diff --git a/anda/langs/python/mistletoe/anda.hcl b/anda/langs/python/mistletoe/anda.hcl new file mode 100644 index 0000000000..a1447a5955 --- /dev/null +++ b/anda/langs/python/mistletoe/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "mistletoe.spec" + } +} diff --git a/anda/langs/python/mistletoe/mistletoe.spec b/anda/langs/python/mistletoe/mistletoe.spec new file mode 100644 index 0000000000..e19f0798e4 --- /dev/null +++ b/anda/langs/python/mistletoe/mistletoe.spec @@ -0,0 +1,46 @@ +%global pypi_name mistletoe +%global _desc A rough port of Node.js's EventEmitter to Python with a few tricks of its own. + +Name: python-%{pypi_name} +Version: 1.5.1 +Release: 1%?dist +Summary: A rough port of Node.js's EventEmitter to Python with a few tricks of its own +License: MIT +URL: https://github.com/miyuchina/mistletoe +Source0: %{pypi_source} +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n %{pypi_name}-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files mistletoe + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md +%license LICENSE +%{_bindir}/mistletoe + +%changelog +* Sat Mar 14 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/mistletoe/update.rhai b/anda/langs/python/mistletoe/update.rhai new file mode 100644 index 0000000000..1212b2716e --- /dev/null +++ b/anda/langs/python/mistletoe/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("mistletoe")); diff --git a/anda/langs/python/mpegdash/anda.hcl b/anda/langs/python/mpegdash/anda.hcl new file mode 100644 index 0000000000..e991509a82 --- /dev/null +++ b/anda/langs/python/mpegdash/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "mpegdash.spec" + } +} diff --git a/anda/langs/python/mpegdash/mpegdash.spec b/anda/langs/python/mpegdash/mpegdash.spec new file mode 100644 index 0000000000..e7047f6221 --- /dev/null +++ b/anda/langs/python/mpegdash/mpegdash.spec @@ -0,0 +1,45 @@ +%global pypi_name mpegdash +%global _desc MPEG-DASH MPD(Media Presentation Description) Parser. + +Name: python-%{pypi_name} +Version: 0.4.1 +Release: 1%?dist +Summary: MPEG-DASH MPD(Media Presentation Description) Parser +License: MIT +URL: https://github.com/sangwonl/python-mpegdash +Source0: %{pypi_source} +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n %{pypi_name}-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files %{pypi_name} + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md +%license LICENSE + +%changelog +* Sun Mar 29 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/mpegdash/update.rhai b/anda/langs/python/mpegdash/update.rhai new file mode 100644 index 0000000000..8a8261bbc7 --- /dev/null +++ b/anda/langs/python/mpegdash/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("mpegdash")); diff --git a/anda/langs/python/mpv/python-mpv.spec b/anda/langs/python/mpv/python-mpv.spec index d0ca15e65a..e7b422f89f 100644 --- a/anda/langs/python/mpv/python-mpv.spec +++ b/anda/langs/python/mpv/python-mpv.spec @@ -4,7 +4,7 @@ Name: python-%{pypi_name} Version: 1.0.8 -Release: 2%?dist +Release: 3%?dist Summary: Python interface to the awesome mpv media player License: GPL-2.0+ OR LGPL-2.1+ URL: https://github.com/jaseg/python-mpv @@ -60,8 +60,6 @@ EOL %files -n python3-%{pypi_name} -f %{pyproject_files} %doc README.rst %license LICENSE.GPL LICENSE.LGPL -%ghost %python3_sitelib/__pycache__/mpv.cpython-*.pyc -%python3_sitelib/mpv.py %endif %changelog diff --git a/anda/langs/python/mpv/update.rhai b/anda/langs/python/mpv/update.rhai index 838b801614..d5502c26a2 100644 --- a/anda/langs/python/mpv/update.rhai +++ b/anda/langs/python/mpv/update.rhai @@ -1 +1 @@ -rpm.version(gh_tag("jaseg/python-mpv")); +rpm.version(pypi("mpv")); diff --git a/anda/langs/python/musdb/anda.hcl b/anda/langs/python/musdb/anda.hcl new file mode 100644 index 0000000000..9635c3a945 --- /dev/null +++ b/anda/langs/python/musdb/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "musdb.spec" + } +} diff --git a/anda/langs/python/musdb/musdb.spec b/anda/langs/python/musdb/musdb.spec new file mode 100644 index 0000000000..ea6c1eddf5 --- /dev/null +++ b/anda/langs/python/musdb/musdb.spec @@ -0,0 +1,47 @@ +%global pypi_name musdb +%global _desc Python parser and tools for MUSDB18 Music Separation Dataset. + +Name: python-%{pypi_name} +Version: 0.4.3 +Release: 1%?dist +Summary: Python parser and tools for MUSDB18 Music Separation Dataset +License: MIT +URL: https://github.com/sigsep/sigsep-mus-db +Source0: %{pypi_source} +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-wheel +BuildRequires: python3-setuptools +BuildRequires: python3-pip + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n musdb-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files musdb + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md +%license LICENSE +%{_bindir}/musdbconvert + +%changelog +* Thu Jan 15 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/musdb/update.rhai b/anda/langs/python/musdb/update.rhai new file mode 100644 index 0000000000..65b01704ff --- /dev/null +++ b/anda/langs/python/musdb/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("musdb")); diff --git a/anda/langs/python/museval/anda.hcl b/anda/langs/python/museval/anda.hcl new file mode 100644 index 0000000000..f11a46da10 --- /dev/null +++ b/anda/langs/python/museval/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "museval.spec" + } +} diff --git a/anda/langs/python/museval/museval.spec b/anda/langs/python/museval/museval.spec new file mode 100644 index 0000000000..17acf45ce6 --- /dev/null +++ b/anda/langs/python/museval/museval.spec @@ -0,0 +1,48 @@ +%global pypi_name museval +%global _desc Source separation evaluation tools for python. + +Name: python-%{pypi_name} +Version: 0.4.1 +Release: 1%?dist +Summary: Source separation evaluation tools for python +License: MIT +URL: https://github.com/sigsep/sigsep-mus-eval +Source0: %{pypi_source} +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-wheel +BuildRequires: python3-setuptools +BuildRequires: python3-pip + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n museval-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files museval + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md +%license LICENSE +%{_bindir}/bsseval +%{_bindir}/museval + +%changelog +* Thu Jan 15 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/museval/update.rhai b/anda/langs/python/museval/update.rhai new file mode 100644 index 0000000000..9c17241694 --- /dev/null +++ b/anda/langs/python/museval/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("museval")); diff --git a/anda/langs/python/numba/anda.hcl b/anda/langs/python/numba/anda.hcl new file mode 100644 index 0000000000..db80a9f081 --- /dev/null +++ b/anda/langs/python/numba/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "numba.spec" + } +} diff --git a/anda/langs/python/numba/numba.spec b/anda/langs/python/numba/numba.spec new file mode 100644 index 0000000000..2ef5fee4c6 --- /dev/null +++ b/anda/langs/python/numba/numba.spec @@ -0,0 +1,56 @@ +%global pypi_name numba + +Name: python-%{pypi_name} +Version: 0.65.1 +Release: 2%{?dist} +Summary: NumPy aware dynamic Python compiler using LLVM +License: BSD-2-Clause AND MIT AND BSD-3-Clause +URL: https://numba.pydata.org +# PyPi source does not include all files +Source0: https://github.com/numba/numba/archive/refs/tags/%version.tar.gz +Patch0: remove-llvmlite-version-req.patch +# This package is intentionally not noarch + +BuildRequires: python3-devel +BuildRequires: python3-wheel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +BuildRequires: python3-hatchling +BuildRequires: python3-numpy +BuildRequires: gcc-c++ + +Packager: Owen Zimmerman + +%description +Numba is an open source, NumPy-aware optimizing compiler for Python sponsored by Anaconda, Inc. It uses the LLVM compiler project to generate machine code from Python syntax. + +Numba can compile a large subset of numerically-focused Python, including many NumPy functions. Additionally, Numba has support for automatic parallelization of loops, generation of GPU-accelerated code, and creation of ufuncs and C callbacks. + +%package -n python3-%{pypi_name} +Summary: %{summary} +Provides: numba +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +Numba is an open source, NumPy-aware optimizing compiler for Python sponsored by Anaconda, Inc. It uses the LLVM compiler project to generate machine code from Python syntax. + +Numba can compile a large subset of numerically-focused Python, including many NumPy functions. Additionally, Numba has support for automatic parallelization of loops, generation of GPU-accelerated code, and creation of ufuncs and C callbacks. + +%prep +%autosetup -n numba-%{version} -p1 + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files numba + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.rst CHANGE_LOG SECURITY.md CONTRIBUTING.md +%license LICENSE LICENSES.third-party +%{_bindir}/numba + +%changelog +* Fri Dec 26 2025 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/numba/remove-llvmlite-version-req.patch b/anda/langs/python/numba/remove-llvmlite-version-req.patch new file mode 100644 index 0000000000..f2e9e35c1d --- /dev/null +++ b/anda/langs/python/numba/remove-llvmlite-version-req.patch @@ -0,0 +1,13 @@ +diff --git a/setup.py b/setup.py +index 282b8f42e..24c865f0a 100644 +--- a/setup.py ++++ b/setup.py +@@ -24,7 +24,7 @@ max_python_version = "3.15" # exclusive + min_numpy_build_version = "2.0.0rc1" + min_numpy_run_version = "1.22" + max_numpy_run_version = "2.5" +-min_llvmlite_version = "0.47.0dev0" ++min_llvmlite_version = "0.44" + max_llvmlite_version = "0.48" + + if sys.platform.startswith('linux'): diff --git a/anda/langs/python/numba/update.rhai b/anda/langs/python/numba/update.rhai new file mode 100644 index 0000000000..3d7680aa80 --- /dev/null +++ b/anda/langs/python/numba/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("numba")); diff --git a/anda/langs/python/omegaconf/anda.hcl b/anda/langs/python/omegaconf/anda.hcl new file mode 100644 index 0000000000..0aa423089a --- /dev/null +++ b/anda/langs/python/omegaconf/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "omegaconf.spec" + } +} diff --git a/anda/langs/python/omegaconf/omegaconf.spec b/anda/langs/python/omegaconf/omegaconf.spec new file mode 100644 index 0000000000..aeb4f904e0 --- /dev/null +++ b/anda/langs/python/omegaconf/omegaconf.spec @@ -0,0 +1,54 @@ +%global pypi_name omegaconf +%global _desc Flexible Python configuration system. The last one you will ever need. + +Name: python-%{pypi_name} +Version: 2.3.0 +Release: 1%?dist +Summary: Flexible Python configuration system. The last one you will ever need +License: BSD-3-Clause +URL: https://github.com/omry/omegaconf +Source0: %{pypi_source} +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-pip +BuildRequires: python3-setuptools +BuildRequires: python3-wheel +BuildRequires: java-latest-openjdk-devel + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%package -n python3-%{pypi_name}-doc +Summary: documentation for python3-%{pypi_name} + +%description -n python3-%{pypi_name}-doc +documentation for python3-%{pypi_name}. + +%prep +%autosetup -n omegaconf-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files omegaconf + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md +%license LICENSE +%{python3_sitelib}/pydevd_plugins/ + +%changelog +* Thu Jan 08 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/omegaconf/update.rhai b/anda/langs/python/omegaconf/update.rhai new file mode 100644 index 0000000000..d6a9611470 --- /dev/null +++ b/anda/langs/python/omegaconf/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("omegaconf")); diff --git a/anda/langs/python/open-unmix-pytorch/anda.hcl b/anda/langs/python/open-unmix-pytorch/anda.hcl new file mode 100644 index 0000000000..d8dcdc32f2 --- /dev/null +++ b/anda/langs/python/open-unmix-pytorch/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "open-unmix-pytorch.spec" + } +} diff --git a/anda/langs/python/open-unmix-pytorch/open-unmix-pytorch.spec b/anda/langs/python/open-unmix-pytorch/open-unmix-pytorch.spec new file mode 100644 index 0000000000..93931b0b6d --- /dev/null +++ b/anda/langs/python/open-unmix-pytorch/open-unmix-pytorch.spec @@ -0,0 +1,47 @@ +%global pypi_name openunmix +%global _desc Open-Unmix - Music Source Separation for PyTorch. + +Name: python-%{pypi_name} +Version: 1.3.0 +Release: 1%{?dist} +Summary: Open-Unmix - Music Source Separation for PyTorch +License: MIT +URL: https://github.com/sigsep/open-unmix-pytorch +Source0: %{pypi_source} +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-pip +BuildRequires: python3-setuptools +BuildRequires: python3-wheel + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n %{pypi_name}-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files %{pypi_name} + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md +%license LICENSE +%{_bindir}/umx + +%changelog +* Mon May 04 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/open-unmix-pytorch/update.rhai b/anda/langs/python/open-unmix-pytorch/update.rhai new file mode 100644 index 0000000000..acf60671ab --- /dev/null +++ b/anda/langs/python/open-unmix-pytorch/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("openunmix")); diff --git a/anda/langs/python/openai-whisper/anda.hcl b/anda/langs/python/openai-whisper/anda.hcl new file mode 100644 index 0000000000..ebdf695d17 --- /dev/null +++ b/anda/langs/python/openai-whisper/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "openai-whisper.spec" + } +} diff --git a/anda/langs/python/openai-whisper/openai-whisper.spec b/anda/langs/python/openai-whisper/openai-whisper.spec new file mode 100644 index 0000000000..f1ee8200b3 --- /dev/null +++ b/anda/langs/python/openai-whisper/openai-whisper.spec @@ -0,0 +1,53 @@ +%global pypi_name openai-whisper +%global _desc Robust Speech Recognition via Large-Scale Weak Supervision. + +Name: python-%{pypi_name} +Version: 20250625 +Release: 1%?dist +Summary: Robust Speech Recognition via Large-Scale Weak Supervision +License: MIT +URL: https://github.com/openai/whisper +Source0: %url/archive/refs/tags/v%version.tar.gz +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-pip +BuildRequires: python3-setuptools +BuildRequires: python3-wheel + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%package -n python3-%{pypi_name}-doc +Summary: documentation for python3-%{pypi_name} + +%description -n python3-%{pypi_name}-doc +documentation for python3-%{pypi_name}. + +%prep +%autosetup -n whisper-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files whisper + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md +%license LICENSE +%{_bindir}/whisper + +%changelog +* Sat Jan 10 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/openai-whisper/update.rhai b/anda/langs/python/openai-whisper/update.rhai new file mode 100644 index 0000000000..daf9385253 --- /dev/null +++ b/anda/langs/python/openai-whisper/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("openai-whisper")); diff --git a/anda/langs/python/opencc/anda.hcl b/anda/langs/python/opencc/anda.hcl new file mode 100644 index 0000000000..8a2a74ce34 --- /dev/null +++ b/anda/langs/python/opencc/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "opencc.spec" + } +} diff --git a/anda/langs/python/opencc/opencc.spec b/anda/langs/python/opencc/opencc.spec new file mode 100644 index 0000000000..e71e191200 --- /dev/null +++ b/anda/langs/python/opencc/opencc.spec @@ -0,0 +1,47 @@ +%global pypi_name opencc +%global _desc Open Chinese Convert. + +Name: python-%{pypi_name} +Version: 1.3.0 +Release: 1%{?dist} +Summary: Open Chinese Convert +License: Apache-2.0 +URL: https://github.com/BYVoid/OpenCC +Source0: %{pypi_source} + +BuildRequires: python3-devel +BuildRequires: python3-wheel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +BuildRequires: gcc-c++ +BuildRequires: cmake + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n %{pypi_name}-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files %{pypi_name} + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md AUTHORS +%license LICENSE + +%changelog +* Sun Mar 29 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/opencc/update.rhai b/anda/langs/python/opencc/update.rhai new file mode 100644 index 0000000000..df2b57b416 --- /dev/null +++ b/anda/langs/python/opencc/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("opencc")); diff --git a/anda/langs/python/peft/anda.hcl b/anda/langs/python/peft/anda.hcl new file mode 100644 index 0000000000..7e35b698f0 --- /dev/null +++ b/anda/langs/python/peft/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "peft.spec" + } +} diff --git a/anda/langs/python/peft/peft.spec b/anda/langs/python/peft/peft.spec new file mode 100644 index 0000000000..8c9353a80f --- /dev/null +++ b/anda/langs/python/peft/peft.spec @@ -0,0 +1,45 @@ +%global pypi_name peft +%global _desc PEFT: State-of-the-art Parameter-Efficient Fine-Tuning. + +Name: python-%{pypi_name} +Version: 0.19.1 +Release: 1%{?dist} +Summary: PEFT: State-of-the-art Parameter-Efficient Fine-Tuning +License: Apache-2.0 +URL: https://github.com/huggingface/peft +Source0: %{pypi_source} +BuildArch: noarch + +BuildRequires: python3-setuptools +BuildRequires: python3-pip +BuildRequires: python3-devel + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n %{pypi_name}-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files %{pypi_name} + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md +%license LICENSE + +%changelog +* Mon May 04 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/peft/update.rhai b/anda/langs/python/peft/update.rhai new file mode 100644 index 0000000000..364e788afc --- /dev/null +++ b/anda/langs/python/peft/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("peft")); diff --git a/anda/langs/python/pgpy13/pgpy13.spec b/anda/langs/python/pgpy13/pgpy13.spec index 678d1f481c..380c345f53 100644 --- a/anda/langs/python/pgpy13/pgpy13.spec +++ b/anda/langs/python/pgpy13/pgpy13.spec @@ -10,7 +10,6 @@ URL: https://github.com/memory/PGPy Source0: https://files.pythonhosted.org/packages/source/P/PGPy13/pgpy13-%{version}.tar.gz BuildArch: noarch -BuildRequires: python3 BuildRequires: python3.10 BuildRequires: python3-build BuildRequires: python3-installer diff --git a/anda/langs/python/pillow-heif/python3-pillow-heif.spec b/anda/langs/python/pillow-heif/python3-pillow-heif.spec index 605157daca..f162a76407 100644 --- a/anda/langs/python/pillow-heif/python3-pillow-heif.spec +++ b/anda/langs/python/pillow-heif/python3-pillow-heif.spec @@ -6,7 +6,7 @@ %bcond_with doc Name: python-%{srcname} -Version: 1.1.1 +Version: 1.3.0 Release: 1%?dist Summary: Python library for working with HEIF images and plugin for Pillow diff --git a/anda/langs/python/pkgcore/anda.hcl b/anda/langs/python/pkgcore/anda.hcl new file mode 100644 index 0000000000..220158cf38 --- /dev/null +++ b/anda/langs/python/pkgcore/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "pkgcore.spec" + } +} diff --git a/anda/langs/python/pkgcore/pkgcore.spec b/anda/langs/python/pkgcore/pkgcore.spec new file mode 100644 index 0000000000..3b100b741c --- /dev/null +++ b/anda/langs/python/pkgcore/pkgcore.spec @@ -0,0 +1,71 @@ +%global pypi_name pkgcore +%global _desc A framework for package management. + +Name: python-%{pypi_name} +Version: 0.12.33 +Release: 1%?dist +Summary: A framework for package management +License: BSD-3-Clause +URL: https://pkgcore.github.io/pkgcore +Source0: %{pypi_source} +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +BuildRequires: python3-build +BuildRequires: python3-wheel +BuildRequires: python3-snakeoil +BuildRequires: python3-flit-core +BuildRequires: make + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%pkg_completion -n python3-%{pypi_name} -B pquery +%pkg_completion -n python3-%{pypi_name} -z pkgcore + +%prep +%autosetup -n pkgcore-%{version} + +%build +export PYTHONPATH=%{_builddir}/pkgcore-%{version}:$PYTHONPATH +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files pkgcore +install -Dm755 data/lib/pkgcore/ebd/helpers/common/pkgcore-ebuild-helper %{buildroot}%{_bindir}/pkgcore-ebuild-helper +install -Dm755 data/lib/pkgcore/ebd/helpers/common/pkgcore-ipc-helper %{buildroot}%{_bindir}/pkgcore-ipc-helper +install -Dm755 data/lib/pkgcore/shell/bin/pkgcore-sh-helper %{buildroot}%{_bindir}/pkgcore-sh-helper + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.rst +%license LICENSE +%{_bindir}/patom +%{_bindir}/pclean +%{_bindir}/pclonecache +%{_bindir}/pconfig +%{_bindir}/pebuild +%{_bindir}/pinspect +%{_bindir}/pmaint +%{_bindir}/pmerge +%{_bindir}/pquery +%{_bindir}/pkgcore-ebuild-helper +%{_bindir}/pkgcore-ipc-helper +%{_bindir}/pkgcore-sh-helper +%{_usr}/lib/%{pypi_name}/ +%{_datadir}/%{pypi_name}/* + +%changelog +* Fri Feb 13 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/pkgcore/update.rhai b/anda/langs/python/pkgcore/update.rhai new file mode 100644 index 0000000000..4bd0cd238a --- /dev/null +++ b/anda/langs/python/pkgcore/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("pkgcore")); diff --git a/anda/langs/python/plexapi/anda.hcl b/anda/langs/python/plexapi/anda.hcl new file mode 100644 index 0000000000..1b822bf3cd --- /dev/null +++ b/anda/langs/python/plexapi/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "plexapi.spec" + } +} diff --git a/anda/langs/python/plexapi/plexapi.spec b/anda/langs/python/plexapi/plexapi.spec new file mode 100644 index 0000000000..5dd6ca5a63 --- /dev/null +++ b/anda/langs/python/plexapi/plexapi.spec @@ -0,0 +1,46 @@ +%global pypi_name plexapi +%global _desc Python bindings for the Plex API. + +Name: python-%{pypi_name} +Version: 4.18.1 +Release: 1%{?dist} +Summary: Python bindings for the Plex API +License: BSD-3-Clause +URL: https://github.com/pushingkarmaorg/python-plexapi +Source0: %{pypi_source} +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-pip +BuildRequires: python3-setuptools + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +Provides: %{pypi_name} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n %{pypi_name}-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files %{pypi_name} + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.rst +%license LICENSE.txt + +%changelog +* Sun Mar 29 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/plexapi/update.rhai b/anda/langs/python/plexapi/update.rhai new file mode 100644 index 0000000000..e764dd50d7 --- /dev/null +++ b/anda/langs/python/plexapi/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("plexapi")); diff --git a/anda/langs/python/posthog/anda.hcl b/anda/langs/python/posthog/anda.hcl new file mode 100644 index 0000000000..43dc6efe1f --- /dev/null +++ b/anda/langs/python/posthog/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "posthog.spec" + } +} diff --git a/anda/langs/python/posthog/posthog.spec b/anda/langs/python/posthog/posthog.spec new file mode 100644 index 0000000000..a48ac91edb --- /dev/null +++ b/anda/langs/python/posthog/posthog.spec @@ -0,0 +1,46 @@ +%global pypi_name posthog +%global _desc Send usage data from your Python code to PostHog. + +Name: python-%{pypi_name} +Version: 7.14.0 +Release: 1%{?dist} +Summary: Send usage data from your Python code to PostHog +License: MIT +URL: https://posthog.com/docs/libraries/python +Source0: %{pypi_source} +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-pip +BuildRequires: python3-setuptools + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +Provides: %{pypi_name} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n %{pypi_name}-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files %{pypi_name} + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md +%license LICENSE + +%changelog +* Sat Jan 10 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/posthog/update.rhai b/anda/langs/python/posthog/update.rhai new file mode 100644 index 0000000000..2217c65f13 --- /dev/null +++ b/anda/langs/python/posthog/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("posthog")); diff --git a/anda/langs/python/protobuf/python3-protobuf.spec b/anda/langs/python/protobuf/python3-protobuf.spec index 4f580b0b7c..15b439a95e 100644 --- a/anda/langs/python/protobuf/python3-protobuf.spec +++ b/anda/langs/python/protobuf/python3-protobuf.spec @@ -2,8 +2,8 @@ %global pypi_name protobuf Name: python-%{pypi_name} -Version: 6.33.0 -Release: 1%?dist +Version: 7.34.1 +Release: 1%{?dist} Summary: Protocol Buffers License: BSD-3-Clause @@ -54,8 +54,8 @@ rm -rf %{pypi_name}.egg-info %endif %changelog -* Sun Feb 19 2023 windowsboy111 - 4.22.0-1 +* Sun Feb 19 2023 madonuko - 4.22.0-1 - Bump. -* Tue Jan 10 2023 windowsboy111 - 4.21.12-1 +* Tue Jan 10 2023 madonuko - 4.21.12-1 - Initial package. diff --git a/anda/langs/python/proton-core/anda.hcl b/anda/langs/python/proton-core/anda.hcl new file mode 100644 index 0000000000..a653ad4946 --- /dev/null +++ b/anda/langs/python/proton-core/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "proton-core.spec" + } + labels { + subrepo = "extras" + } +} diff --git a/anda/langs/python/proton-core/proton-core.spec b/anda/langs/python/proton-core/proton-core.spec new file mode 100644 index 0000000000..28cf1ab883 --- /dev/null +++ b/anda/langs/python/proton-core/proton-core.spec @@ -0,0 +1,46 @@ +%define unmangled_name proton-core +%define github_repo_name python-proton-core +%global _desc The proton-core component contains core logic used by the other Proton components. + +Name: python-proton-core +Version: 0.7.0 +Release: 1%?dist +Summary: %{unmangled_name} library +License: GPL-3.0-or-later +URL: https://github.com/ProtonVPN/%{github_repo_name} +Source: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz + +BuildRequires: python3-devel +BuildRequires: python3-pip +BuildRequires: python3-setuptools +BuildArch: noarch + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{unmangled_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{unmangled_name}} + +%description -n python3-%{unmangled_name} +%_desc + +%prep +%autosetup + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files proton + +%files -n python3-%{unmangled_name} -f %{pyproject_files} +%doc README.md +%license LICENSE + +%changelog +* Tue Feb 10 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/proton-core/update.rhai b/anda/langs/python/proton-core/update.rhai new file mode 100644 index 0000000000..867628725e --- /dev/null +++ b/anda/langs/python/proton-core/update.rhai @@ -0,0 +1 @@ +rpm.version(gh_tag("ProtonVPN/python-proton-core")); diff --git a/anda/langs/python/proton-keyring-linux/anda.hcl b/anda/langs/python/proton-keyring-linux/anda.hcl new file mode 100644 index 0000000000..f4b7eb0666 --- /dev/null +++ b/anda/langs/python/proton-keyring-linux/anda.hcl @@ -0,0 +1,6 @@ + project pkg { + arches = ["x86_64"] + rpm { + spec = "proton-keyring-linux.spec" + } + } diff --git a/anda/langs/python/proton-keyring-linux/proton-keyring-linux.spec b/anda/langs/python/proton-keyring-linux/proton-keyring-linux.spec new file mode 100644 index 0000000000..edfc0aff6d --- /dev/null +++ b/anda/langs/python/proton-keyring-linux/proton-keyring-linux.spec @@ -0,0 +1,45 @@ +%global _desc Python3 Proton linux keyring base implementation. + +Name: python-proton-keyring-linux +Version: 0.2.1 +Release: 1%{?dist} +Summary: Python3 Proton linux keyring base implementation +License: GPL-3.0-or-later +URL: https://github.com/ProtonVPN/python-proton-keyring-linux +Source0: %url/archive/refs/tags/v%version.tar.gz +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-pip +BuildRequires: python3-setuptools + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-proton-keyring-linux +Summary: %{summary} +Provides: proton-keyring-linux +%{?python_provide:%python_provide python3-proton-keyring-linux} + +%description -n python3-proton-keyring-linux +%_desc + +%prep +%autosetup -n python-proton-keyring-linux-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files proton + +%files -n python3-proton-keyring-linux -f %{pyproject_files} +%doc CODEOWNERS +%license LICENSE + +%changelog +* Mon Apr 27 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/proton-keyring-linux/update.rhai b/anda/langs/python/proton-keyring-linux/update.rhai new file mode 100644 index 0000000000..fa6403a7cb --- /dev/null +++ b/anda/langs/python/proton-keyring-linux/update.rhai @@ -0,0 +1 @@ +rpm.version(gh_tag("ProtonVPN/python-proton-keyring-linux")); diff --git a/anda/langs/python/proton-vpn-api-core/anda.hcl b/anda/langs/python/proton-vpn-api-core/anda.hcl new file mode 100644 index 0000000000..ec39a8ce5d --- /dev/null +++ b/anda/langs/python/proton-vpn-api-core/anda.hcl @@ -0,0 +1,6 @@ + project pkg { + arches = ["x86_64"] + rpm { + spec = "proton-vpn-api-core.spec" + } + } diff --git a/anda/langs/python/proton-vpn-api-core/proton-vpn-api-core.spec b/anda/langs/python/proton-vpn-api-core/proton-vpn-api-core.spec new file mode 100644 index 0000000000..67e8b5885f --- /dev/null +++ b/anda/langs/python/proton-vpn-api-core/proton-vpn-api-core.spec @@ -0,0 +1,49 @@ +%global pypi_name proton-vpn-api-core +%global _desc A facade to the other Proton VPN components, exposing a uniform API to the available Proton VPN services. + +%global __requires_exclude ^python3\\.14dist\\(proton-vpn-local-agent\\)$ + +Name: python-%{pypi_name} +Version: 5.1.2 +Release: 1%{?dist} +Summary: A facade to the other Proton VPN components +License: GPL-3.0-Only +URL: https://github.com/ProtonVPN/python-proton-vpn-api-core +Source0: %url/archive/refs/tags/v%version.tar.gz +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-pip +BuildRequires: python3-setuptools + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +Provides: %{pypi_name} +Requires: python3-proton-vpn-local-agent +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n python-%{pypi_name}-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files proton + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md CODEOWNERS +%license LICENSE + +%changelog +* Sat Jan 17 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/proton-vpn-api-core/update.rhai b/anda/langs/python/proton-vpn-api-core/update.rhai new file mode 100644 index 0000000000..ae443932de --- /dev/null +++ b/anda/langs/python/proton-vpn-api-core/update.rhai @@ -0,0 +1 @@ +rpm.version(gh_tag("ProtonVPN/python-proton-vpn-api-core")); diff --git a/anda/langs/python/proton-vpn-local-agent/anda.hcl b/anda/langs/python/proton-vpn-local-agent/anda.hcl new file mode 100644 index 0000000000..23e5fb3841 --- /dev/null +++ b/anda/langs/python/proton-vpn-local-agent/anda.hcl @@ -0,0 +1,8 @@ + project pkg { + rpm { + spec = "proton-vpn-local-agent.spec" + } + labels { + sccache = 0 + } + } diff --git a/anda/langs/python/proton-vpn-local-agent/proton-vpn-local-agent.spec b/anda/langs/python/proton-vpn-local-agent/proton-vpn-local-agent.spec new file mode 100644 index 0000000000..1ceef4dd18 --- /dev/null +++ b/anda/langs/python/proton-vpn-local-agent/proton-vpn-local-agent.spec @@ -0,0 +1,55 @@ +%define debug_package %{nil} + +%global pypi_name proton-vpn-local-agent +%global _desc Proton VPN local agent written in Rust. + +Name: python-%{pypi_name} +Version: 1.6.1 +Release: 1%{?dist} +Summary: Proton VPN local agent written in Rust +License: GPL-3.0-only +URL: https://github.com/ProtonVPN/local-agent-rs +Source0: %url/archive/refs/tags/%version.tar.gz + +BuildRequires: python3-devel +BuildRequires: cargo-rpm-macros + +# Really cursed but there is no pyproject.toml or setup.py in this package to auto-provide this, and proton-vpn needs this +%dnl Provides: python3.14dist(proton-vpn-local-agent) + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +Provides: %{pypi_name} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n local-agent-rs-%{version} +pushd %{name} +%{cargo_prep_online} +popd + +%build +pushd %{name} +%{cargo_build} +popd + +%install +pushd %{name} +install -Dm0644 target/release/libpython_proton_vpn_local_agent.so %{buildroot}%{python3_sitearch}/proton/vpn/local_agent.so +popd + +%files -n python3-%{pypi_name} +%doc README.md CODEOWNERS +%{python3_sitearch}/proton/vpn/local_agent.so + +%changelog +* Sun Jan 18 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/proton-vpn-local-agent/update.rhai b/anda/langs/python/proton-vpn-local-agent/update.rhai new file mode 100644 index 0000000000..f6739ddced --- /dev/null +++ b/anda/langs/python/proton-vpn-local-agent/update.rhai @@ -0,0 +1 @@ +rpm.version(gh_tag("ProtonVPN/local-agent-rs")); diff --git a/anda/langs/python/proxy-tools/anda.hcl b/anda/langs/python/proxy-tools/anda.hcl new file mode 100644 index 0000000000..86f1b12c0e --- /dev/null +++ b/anda/langs/python/proxy-tools/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "proxy-tools.spec" + } +} diff --git a/anda/langs/python/proxy-tools/proxy-tools.spec b/anda/langs/python/proxy-tools/proxy-tools.spec new file mode 100644 index 0000000000..5aa2d160d7 --- /dev/null +++ b/anda/langs/python/proxy-tools/proxy-tools.spec @@ -0,0 +1,48 @@ +%global pypi_name proxy_tools +%global _desc Simple (hopefuly useful) Proxy (as in the GoF design pattern) implementation for Python. + +Name: python-%{pypi_name} +Version: 0.1.0 +Release: 1%?dist +Summary: Simple (hopefuly useful) Proxy (as in the GoF design pattern) implementation for Python +License: BSD-2-clause +URL: https://github.com/jtushman/proxy_tools +Source0: %{pypi_source} +Source1: https://github.com/jtushman/proxy_tools/blob/master/LICENSE.txt +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-pip +BuildRequires: python3-setuptools + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +Provides: %{pypi_name} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n %{pypi_name}-%{version} +cp %{S:1} . + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files %{pypi_name} + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.rst +%license LICENSE.txt + +%changelog +* Wed Feb 25 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/proxy-tools/update.rhai b/anda/langs/python/proxy-tools/update.rhai new file mode 100644 index 0000000000..ca96bafaed --- /dev/null +++ b/anda/langs/python/proxy-tools/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("proxy_tools")); diff --git a/anda/langs/python/pyee/anda.hcl b/anda/langs/python/pyee/anda.hcl new file mode 100644 index 0000000000..da2fd3e670 --- /dev/null +++ b/anda/langs/python/pyee/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "pyee.spec" + } +} diff --git a/anda/langs/python/pyee/pyee.spec b/anda/langs/python/pyee/pyee.spec new file mode 100644 index 0000000000..53ed6e9416 --- /dev/null +++ b/anda/langs/python/pyee/pyee.spec @@ -0,0 +1,48 @@ +%global pypi_name pyee +%global _desc A rough port of Node.js's EventEmitter to Python with a few tricks of its own. + +Name: python-%{pypi_name} +Version: 13.0.1 +Release: 1%?dist +Summary: A rough port of Node.js's EventEmitter to Python with a few tricks of its own +License: MIT +URL: https://github.com/jfhbrook/pyee +Source0: %{pypi_source} +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +Provides: pyee +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n %{pypi_name}-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files pyee + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md DEVELOPMENT.md CONTRIBUTORS.md CHANGELOG.md +%license LICENSE +%python3_sitelib/%{pypi_name}/__pycache__/*.cpython-*.pyc +%python3_sitelib/%{pypi_name}/*.py + +%changelog +* Sun Nov 30 2025 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/pyee/update.rhai b/anda/langs/python/pyee/update.rhai new file mode 100644 index 0000000000..1008663f0c --- /dev/null +++ b/anda/langs/python/pyee/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("pyee")); diff --git a/anda/langs/python/pyfluidsynth/anda.hcl b/anda/langs/python/pyfluidsynth/anda.hcl new file mode 100644 index 0000000000..e750524504 --- /dev/null +++ b/anda/langs/python/pyfluidsynth/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "pyfluidsynth.spec" + } +} diff --git a/anda/langs/python/pyfluidsynth/pyfluidsynth.spec b/anda/langs/python/pyfluidsynth/pyfluidsynth.spec new file mode 100644 index 0000000000..6b105a8db5 --- /dev/null +++ b/anda/langs/python/pyfluidsynth/pyfluidsynth.spec @@ -0,0 +1,49 @@ +%global pypi_name pyfluidsynth +%global _desc Python bindings for FluidSynth. + +Name: python-%{pypi_name} +Version: 1.3.4 +Release: 1%?dist +Summary: Python bindings for FluidSynth +License: LGPL-2.1 +URL: https://github.com/nwhitehead/pyfluidsynth +Source0: %{pypi_source} +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +BuildRequires: python3-build + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n pyfluidsynth-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install + +%files -n python3-%{pypi_name} +%doc README.md +%license LICENSE +%{_usr}/lib/python3.14/site-packages/__pycache__/fluidsynth.*.pyc +%{_usr}/lib/python3.14/site-packages/__pycache__/fluidsynth.*.*.pyc +%{_usr}/lib/python3.14/site-packages/fluidsynth.py +%{_usr}/lib/python3.14/site-packages/%{pypi_name}-%{version}.dist-info/* + +%changelog +* Sat Jan 24 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/pyfluidsynth/update.rhai b/anda/langs/python/pyfluidsynth/update.rhai new file mode 100644 index 0000000000..b40456f677 --- /dev/null +++ b/anda/langs/python/pyfluidsynth/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("pyfluidsynth")); diff --git a/anda/langs/python/pygment-styles/anda.hcl b/anda/langs/python/pygment-styles/anda.hcl new file mode 100644 index 0000000000..624d8db55f --- /dev/null +++ b/anda/langs/python/pygment-styles/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "python-pygments-styles.spec" + } +} diff --git a/anda/langs/python/pygment-styles/python-pygments-styles.spec b/anda/langs/python/pygment-styles/python-pygments-styles.spec new file mode 100644 index 0000000000..8b1346f32e --- /dev/null +++ b/anda/langs/python/pygment-styles/python-pygments-styles.spec @@ -0,0 +1,46 @@ +%global pypi_name pygments_styles +%global real_name pygments-styles + +Name: python-%{real_name} +Version: 0.3.0 +Release: 2%{?dist} +Summary: A collection of Pygments styles +License: BSD-3-Clause +URL: https://pygments-styles.org +Source0: %{pypi_source} +BuildRequires: pyproject-rpm-macros +BuildRequires: python3-devel +BuildRequires: python3dist(pip) +BuildRequires: python3dist(setuptools) +BuildArch: noarch +Packager: Gilver E. + +%description +A curated collection of Pygments styles based on VS Code themes. + +%package -n python3-%{real_name} +Summary: %{summary} +Requires: python3dist(pygments) +%{?python_provide:%python_provide python3-%{real_name}} + +%description -n python3-%{real_name} +A curated collection of Pygments styles based on VS Code themes. + +%prep +%autosetup -n %{pypi_name}-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files %{pypi_name} + +%files -n python3-%{real_name} -f %{pyproject_files} +%doc PKG-INFO +%doc README.md +%license LICENSE + +%changelog +* Wed Dec 10 2025 Gilver E. - 0.3.0-1 +- Initial package. diff --git a/anda/langs/python/pygment-styles/update.rhai b/anda/langs/python/pygment-styles/update.rhai new file mode 100644 index 0000000000..67b1c19448 --- /dev/null +++ b/anda/langs/python/pygment-styles/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("pygments-styles")); diff --git a/anda/langs/python/pyproject-parser/anda.hcl b/anda/langs/python/pyproject-parser/anda.hcl new file mode 100644 index 0000000000..3225ab5eed --- /dev/null +++ b/anda/langs/python/pyproject-parser/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "pyproject-parser.spec" + } +} diff --git a/anda/langs/python/pyproject-parser/pyproject-parser.spec b/anda/langs/python/pyproject-parser/pyproject-parser.spec new file mode 100644 index 0000000000..f639e92dc5 --- /dev/null +++ b/anda/langs/python/pyproject-parser/pyproject-parser.spec @@ -0,0 +1,50 @@ +%global pypi_name pyproject-parser +%global _desc Parser for 'pyproject.toml' + +Name: python-%{pypi_name} +Version: 0.14.0 +Release: 1%?dist +Summary: Parser for 'pyproject.toml' +License: MIT +URL: https://pyproject-parser.readthedocs.io/en/latest/ +Source0: https://github.com/repo-helper/pyproject-parser/archive/refs/tags/v%{version}.tar.gz +BuildArch: noarch + +BuildRequires: python3-pip +BuildRequires: python3-devel +BuildRequires: python3-hatch-requirements-txt + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +Provides: pyvcd +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n %{pypi_name}-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files pyproject_parser + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.rst +%license LICENSE +%{_bindir}/pyproject-fmt +%{_bindir}/pyproject-info +%{_bindir}/pyproject-parser +%{_bindir}/check-pyproject + +%changelog +* Sat Sep 27 2025 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/pyproject-parser/update.rhai b/anda/langs/python/pyproject-parser/update.rhai new file mode 100644 index 0000000000..5f6f39092d --- /dev/null +++ b/anda/langs/python/pyproject-parser/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("pyproject-parser")); diff --git a/anda/langs/python/pyprojectize/anda.hcl b/anda/langs/python/pyprojectize/anda.hcl new file mode 100644 index 0000000000..e6190f728e --- /dev/null +++ b/anda/langs/python/pyprojectize/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "pyprojectize.spec" + } +} diff --git a/anda/langs/python/pyprojectize/pyprojectize.spec b/anda/langs/python/pyprojectize/pyprojectize.spec new file mode 100644 index 0000000000..0ab44f7b96 --- /dev/null +++ b/anda/langs/python/pyprojectize/pyprojectize.spec @@ -0,0 +1,48 @@ +%global pypi_name pyprojectize +%global _desc Convert a spec file from py3_build etc. macros to pyproject_*. + +Name: python-%{pypi_name} +Version: 1a7 +Release: 1%?dist +Summary: Convert a spec file from py3_build etc. macros to pyproject_* +License: MIT-0 +URL: https://github.com/hroncok/pyprojectize +Source0: %{pypi_source} + +BuildRequires: python3-devel +BuildRequires: python3-pip +BuildRequires: python3-wheel +BuildRequires: python3-hatchling +BuildArch: noarch + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +Provides: %{pypi_name} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n %{pypi_name}-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files pyprojectize + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md +%license LICENSE +%{_bindir}/pyprojectize + +%changelog +* Mon Mar 09 2026 Owen Zimmerman - 1a7-1 +- Initial commit diff --git a/anda/langs/python/pyprojectize/update.rhai b/anda/langs/python/pyprojectize/update.rhai new file mode 100644 index 0000000000..98cd6f1abe --- /dev/null +++ b/anda/langs/python/pyprojectize/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("pyprojectize")); diff --git a/anda/langs/python/pysdl3/anda.hcl b/anda/langs/python/pysdl3/anda.hcl new file mode 100644 index 0000000000..6746293d9c --- /dev/null +++ b/anda/langs/python/pysdl3/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "pysdl3.spec" + } +} diff --git a/anda/langs/python/pysdl3/pysdl3.spec b/anda/langs/python/pysdl3/pysdl3.spec new file mode 100644 index 0000000000..282b5d0ca1 --- /dev/null +++ b/anda/langs/python/pysdl3/pysdl3.spec @@ -0,0 +1,45 @@ +%global pypi_name pysdl3 +%global _desc A pure Python wrapper for SDL3. + +Name: python-%{pypi_name} +Version: 0.9.11b1 +Release: 1%{?dist} +Summary: A pure Python wrapper for SDL3 +License: MIT +URL: https://pysdl3.readthedocs.io/ +Source0: %{pypi_source} +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n %{pypi_name}-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files sdl3 + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md +%license LICENSE + +%changelog +* Sun Mar 29 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/pysdl3/update.rhai b/anda/langs/python/pysdl3/update.rhai new file mode 100644 index 0000000000..9c5edad2fc --- /dev/null +++ b/anda/langs/python/pysdl3/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("pysdl3")); diff --git a/anda/langs/python/python-mpv-jsonipc/anda.hcl b/anda/langs/python/python-mpv-jsonipc/anda.hcl new file mode 100644 index 0000000000..ff2bfb11bf --- /dev/null +++ b/anda/langs/python/python-mpv-jsonipc/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "python-mpv-jsonipc.spec" + } +} diff --git a/anda/langs/python/python-mpv-jsonipc/python-mpv-jsonipc.spec b/anda/langs/python/python-mpv-jsonipc/python-mpv-jsonipc.spec new file mode 100644 index 0000000000..9bdef1775a --- /dev/null +++ b/anda/langs/python/python-mpv-jsonipc/python-mpv-jsonipc.spec @@ -0,0 +1,46 @@ +%global pypi_name python-mpv-jsonipc +%global _desc Python API to MPV using JSON IPC. + +Name: python-%{pypi_name} +Version: 1.2.2 +Release: 1%{?dist} +Summary: Python API to MPV using JSON IPC +License: Apache-2.0 +URL: https://github.com/iwalton3/python-mpv-jsonipc +Source0: %{pypi_source} +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +Provides: python-mpv-jsonipc +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n %{pypi_name}-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files python_mpv_jsonipc + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md +%license LICENSE.md + +%changelog +* Sun Dec 07 2025 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/python-mpv-jsonipc/update.rhai b/anda/langs/python/python-mpv-jsonipc/update.rhai new file mode 100644 index 0000000000..7d7f094519 --- /dev/null +++ b/anda/langs/python/python-mpv-jsonipc/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("python-mpv-jsonipc")); diff --git a/anda/langs/python/python-soxr/anda.hcl b/anda/langs/python/python-soxr/anda.hcl new file mode 100644 index 0000000000..5c5b39723b --- /dev/null +++ b/anda/langs/python/python-soxr/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "python-soxr.spec" + } +} diff --git a/anda/langs/python/python-soxr/python-soxr.spec b/anda/langs/python/python-soxr/python-soxr.spec new file mode 100644 index 0000000000..04cde81f0a --- /dev/null +++ b/anda/langs/python/python-soxr/python-soxr.spec @@ -0,0 +1,55 @@ +%define debug_package %{nil} + +%global pypi_name soxr +%global _desc Fast and high quality sample-rate conversion library for Python. + +Name: python-%{pypi_name} +Version: 1.1.0 +Release: 1%{?dist} +Summary: Fast and high quality sample-rate conversion library for Python +License: LGPL-2.1 +URL: https://github.com/dofuuz/python-soxr +Source0: https://github.com/dofuuz/python-soxr/archive/refs/tags/v%version.tar.gz +# This package is intentionally not noarch + +BuildRequires: python3-devel +BuildRequires: python3-wheel +BuildRequires: python3-setuptools +BuildRequires: python3-setuptools_scm +BuildRequires: python3-pip +BuildRequires: python3-scikit-build-core +BuildRequires: python3-pybind11 +BuildRequires: python3-nanobind +BuildRequires: gcc-c++ +BuildRequires: cmake + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%git_clone + +%build +export SETUPTOOLS_SCM_PRETEND_VERSION=%version +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files soxr + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md BUILDING.md +%license LICENSE.txt COPYING.LGPL + +%changelog +* Fri Dec 26 2025 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/python-soxr/update.rhai b/anda/langs/python/python-soxr/update.rhai new file mode 100644 index 0000000000..6b1588e796 --- /dev/null +++ b/anda/langs/python/python-soxr/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("soxr")); diff --git a/anda/langs/python/pyvcd/pyvcd.spec b/anda/langs/python/pyvcd/pyvcd.spec index ddde4591e0..ac21995c04 100644 --- a/anda/langs/python/pyvcd/pyvcd.spec +++ b/anda/langs/python/pyvcd/pyvcd.spec @@ -2,16 +2,14 @@ %global _desc Python package for writing Value Change Dump (VCD) files. Name: python-%{pypi_name} -Version: 0.4.0 -Release: 2%?dist +Version: 0.4.1 +Release: 1%?dist Summary: Python package for writing Value Change Dump (VCD) files License: MIT URL: https://github.com/SanDisk-Open-Source/pyvcd Source0: %url/releases/download/%version/pyvcd-%{version}.tar.gz BuildArch: noarch -BuildRequires: python3 -BuildRequires: python3.10 BuildRequires: python3-build BuildRequires: python3-installer BuildRequires: python3-wheel @@ -48,8 +46,6 @@ Provides: pyvcd %files -n python3-%{pypi_name} -f %{pyproject_files} %doc README.rst CODE_OF_CONDUCT.md CHANGELOG.rst %license LICENSE.txt -%ghost %python3_sitelib/__pycache__/*.cpython-*.pyc -%ghost %python3_sitelib/%{name}/subcommands/__pycache__/*.cpython-*.pyc %python3_sitelib/pyvcd-%version.dist-info/* %changelog diff --git a/anda/langs/python/pyvcd/update.rhai b/anda/langs/python/pyvcd/update.rhai index 9c489c3f8f..be3c4456ed 100644 --- a/anda/langs/python/pyvcd/update.rhai +++ b/anda/langs/python/pyvcd/update.rhai @@ -1 +1 @@ -rpm.version(gh("SanDisk-Open-Source/pyvcd")); +rpm.version(pypi("pyvcd")); diff --git a/anda/langs/python/pywal16/python-pywal16.spec b/anda/langs/python/pywal16/python-pywal16.spec index 9387e03093..97323e8ee5 100644 --- a/anda/langs/python/pywal16/python-pywal16.spec +++ b/anda/langs/python/pywal16/python-pywal16.spec @@ -3,8 +3,8 @@ Pywal is a tool that generates a color palette from the dominant colors in an image. It then applies the colors system-wide and on-the-fly in all of your favourite programs.} Name: python-%{pypi_name} -Version: 3.8.11 -Release: 1%?dist +Version: 3.8.15 +Release: 1%{?dist} Summary: 16 color fork of the original Pywal License: MIT URL: https://github.com/eylles/pywal16 @@ -23,7 +23,7 @@ BuildRequires: python3dist(pytest) BuildRequires: python3dist(setuptools) Obsoletes: python3-pywal < 3.5.0-1 BuildArch: noarch -Packager: Gilver E. +Packager: Gilver E. %description This project is a 16 colors fork of Pywal. diff --git a/anda/langs/python/pywebview/anda.hcl b/anda/langs/python/pywebview/anda.hcl new file mode 100644 index 0000000000..5782960bdd --- /dev/null +++ b/anda/langs/python/pywebview/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "pywebview.spec" + } +} diff --git a/anda/langs/python/pywebview/pywebview.spec b/anda/langs/python/pywebview/pywebview.spec new file mode 100644 index 0000000000..812b3524de --- /dev/null +++ b/anda/langs/python/pywebview/pywebview.spec @@ -0,0 +1,48 @@ +%global pypi_name pywebview +%global _desc Build GUI for your Python program with JavaScript, HTML, and CSS. + +Name: python-%{pypi_name} +Version: 6.2.1 +Release: 1%{?dist} +Summary: Build GUI for your Python program with JavaScript, HTML, and CSS +License: BSD-3-Clause +URL: https://github.com/r0x0r/pywebview +Source0: %{pypi_source} +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-wheel +BuildRequires: python3-setuptools +BuildRequires: python3-setuptools_scm +BuildRequires: python3-pip + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +Provides: pywebview +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n pywebview-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files webview + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md +%license LICENSE SECURITY.md + +%changelog +* Tue Nov 04 2025 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/pywebview/update.rhai b/anda/langs/python/pywebview/update.rhai new file mode 100644 index 0000000000..b69e27b96f --- /dev/null +++ b/anda/langs/python/pywebview/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("pywebview")); diff --git a/anda/langs/python/pyzmq/anda.hcl b/anda/langs/python/pyzmq/anda.hcl new file mode 100644 index 0000000000..d37eac3ec6 --- /dev/null +++ b/anda/langs/python/pyzmq/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "pyzmq.spec" + } +} diff --git a/anda/langs/python/pyzmq/pyzmq.spec b/anda/langs/python/pyzmq/pyzmq.spec new file mode 100644 index 0000000000..012b2ec954 --- /dev/null +++ b/anda/langs/python/pyzmq/pyzmq.spec @@ -0,0 +1,54 @@ +%define debug_package %{nil} + +%global pypi_name pyzmq +%global _desc Python bindings for zeromq. + +Name: python-%{pypi_name} +Version: 27.1.0 +Release: 1%?dist +Summary: Python bindings for zeromq +License: MIT +URL: https://github.com/zeromq/pyzmq +Source0: %{pypi_source} + +BuildRequires: python3-devel +BuildRequires: python3-pip +BuildRequires: python3-setuptools +BuildRequires: python3-scikit-build-core +BuildRequires: python3-cython + +BuildRequires: cmake +BuildRequires: gcc +BuildRequires: gcc-c++ + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +Provides: pyzmq +Provides: %{pypi_name} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n %{pypi_name}-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files zmq + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md AUTHORS.md CONTRIBUTING.md SECURITY.md +%license LICENSE.md + +%changelog +* Sun Nov 23 2025 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/pyzmq/update.rhai b/anda/langs/python/pyzmq/update.rhai new file mode 100644 index 0000000000..5f884fe7e1 --- /dev/null +++ b/anda/langs/python/pyzmq/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("pyzmq")); diff --git a/anda/langs/python/ratelimit/anda.hcl b/anda/langs/python/ratelimit/anda.hcl new file mode 100644 index 0000000000..95418dd483 --- /dev/null +++ b/anda/langs/python/ratelimit/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "ratelimit.spec" + } +} diff --git a/anda/langs/python/ratelimit/ratelimit.spec b/anda/langs/python/ratelimit/ratelimit.spec new file mode 100644 index 0000000000..2023b70b7d --- /dev/null +++ b/anda/langs/python/ratelimit/ratelimit.spec @@ -0,0 +1,45 @@ +%global pypi_name ratelimit +%global _desc API Rate Limit Decorator. + +Name: python-%{pypi_name} +Version: 2.2.1 +Release: 1%?dist +Summary: API Rate Limit Decorator +License: MIT +URL: https://github.com/tomasbasham/ratelimit +Source0: %{pypi_source} +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n %{pypi_name}-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files %{pypi_name} + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.rst +%license LICENSE.txt + +%changelog +* Sun Mar 29 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/ratelimit/update.rhai b/anda/langs/python/ratelimit/update.rhai new file mode 100644 index 0000000000..84cdc8f003 --- /dev/null +++ b/anda/langs/python/ratelimit/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("ratelimit")); diff --git a/anda/langs/python/retrying/anda.hcl b/anda/langs/python/retrying/anda.hcl new file mode 100644 index 0000000000..ff081034b6 --- /dev/null +++ b/anda/langs/python/retrying/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "retrying.spec" + } +} diff --git a/anda/langs/python/retrying/retrying.spec b/anda/langs/python/retrying/retrying.spec new file mode 100644 index 0000000000..3a999c1c69 --- /dev/null +++ b/anda/langs/python/retrying/retrying.spec @@ -0,0 +1,47 @@ +%global pypi_name retrying +%global _desc General-purpose retrying library. + +%define debug_package %{nil} + +Name: python-%{pypi_name} +Version: 1.4.2 +Release: 1%?dist +Summary: General-purpose retrying library +License: Apache-2.0 +URL: https://github.com/groodt/retrying +Source0: %{pypi_source} + +BuildRequires: python3-devel +BuildRequires: python3-pip +BuildRequires: python3-setuptools + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +Provides: %{pypi_name} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n %{pypi_name}-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files retrying + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md +%license LICENSE.txt + +%changelog +* Thu Jan 08 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/retrying/update.rhai b/anda/langs/python/retrying/update.rhai new file mode 100644 index 0000000000..7b0d8b3031 --- /dev/null +++ b/anda/langs/python/retrying/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("retrying")); diff --git a/anda/langs/python/screeninfo/anda.hcl b/anda/langs/python/screeninfo/anda.hcl new file mode 100644 index 0000000000..97cef03905 --- /dev/null +++ b/anda/langs/python/screeninfo/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "screeninfo.spec" + } +} diff --git a/anda/langs/python/screeninfo/screeninfo.spec b/anda/langs/python/screeninfo/screeninfo.spec new file mode 100644 index 0000000000..4bc95b2bc9 --- /dev/null +++ b/anda/langs/python/screeninfo/screeninfo.spec @@ -0,0 +1,49 @@ +%global pypi_name screeninfo +%global _desc Fetch location and size of physical screens. + +Name: python-%{pypi_name} +Version: 0.8.1 +Release: 1%?dist +Summary: Fetch location and size of physical screens +License: MIT +URL: https://github.com/rr-/screeninfo +Source0: %{pypi_source} +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-wheel +BuildRequires: python3-setuptools +BuildRequires: python3-setuptools_scm +BuildRequires: python3-pip +BuildRequires: python3-poetry-core + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +Provides: screeninfo +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n screeninfo-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files screeninfo + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md +%license LICENSE.md + +%changelog +* Sun Nov 09 2025 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/screeninfo/update.rhai b/anda/langs/python/screeninfo/update.rhai new file mode 100644 index 0000000000..430f0e1346 --- /dev/null +++ b/anda/langs/python/screeninfo/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("screeninfo")); diff --git a/anda/langs/python/shippinglabel/anda.hcl b/anda/langs/python/shippinglabel/anda.hcl new file mode 100644 index 0000000000..fb253269d5 --- /dev/null +++ b/anda/langs/python/shippinglabel/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "shippinglabel.spec" + } +} diff --git a/anda/langs/python/shippinglabel/shippinglabel.spec b/anda/langs/python/shippinglabel/shippinglabel.spec new file mode 100644 index 0000000000..724a7121c1 --- /dev/null +++ b/anda/langs/python/shippinglabel/shippinglabel.spec @@ -0,0 +1,45 @@ +%global pypi_name shippinglabel +%global _desc Utilities for handling packages. + +Name: python-%{pypi_name} +Version: 2.3.0 +Release: 1%?dist +Summary: Utilities for handling packages +License: MIT +URL: https://shippinglabel.readthedocs.io/en/latest/ +Source0: %{pypi_source} +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-pip +BuildRequires: python3-hatch-requirements-txt + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n %{pypi_name}-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files shippinglabel + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.rst +%license LICENSE + +%changelog +* Sat Mar 14 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/shippinglabel/update.rhai b/anda/langs/python/shippinglabel/update.rhai new file mode 100644 index 0000000000..d9a05c619d --- /dev/null +++ b/anda/langs/python/shippinglabel/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("shippinglabel")); diff --git a/anda/langs/python/smbus2/anda.hcl b/anda/langs/python/smbus2/anda.hcl new file mode 100644 index 0000000000..e29e71a204 --- /dev/null +++ b/anda/langs/python/smbus2/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "smbus2.spec" + } +} diff --git a/anda/langs/python/smbus2/smbus2.spec b/anda/langs/python/smbus2/smbus2.spec new file mode 100644 index 0000000000..9a563ed19d --- /dev/null +++ b/anda/langs/python/smbus2/smbus2.spec @@ -0,0 +1,50 @@ +%global pypi_name smbus2 +%global _desc A drop-in replacement for smbus-cffi/smbus-python in pure Python. + +Name: python-%{pypi_name} +Version: 0.6.1 +Release: 1%{?dist} +Summary: A drop-in replacement for smbus-cffi/smbus-python in pure Python +License: MIT +URL: https://github.com/kplindegaard/smbus2 +Source0: %{pypi_source} +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-wheel +BuildRequires: python3-setuptools +BuildRequires: python3-pip + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +Provides: smbus2 +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n smbus2-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files smbus2 + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md CHANGELOG.md +%license LICENSE +%ghost %python3_sitelib/__pycache__/*.cpython-*.pyc +%ghost %python3_sitelib/%{name}/subcommands/__pycache__/*.cpython-*.pyc +%python3_sitelib/smbus2-%version.dist-info/* + +%changelog +* Sun Nov 23 2025 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/smbus2/update.rhai b/anda/langs/python/smbus2/update.rhai new file mode 100644 index 0000000000..f1086623dd --- /dev/null +++ b/anda/langs/python/smbus2/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("smbus2")); diff --git a/anda/langs/python/snakeoil/anda.hcl b/anda/langs/python/snakeoil/anda.hcl new file mode 100644 index 0000000000..6202943880 --- /dev/null +++ b/anda/langs/python/snakeoil/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "snakeoil.spec" + } +} diff --git a/anda/langs/python/snakeoil/snakeoil.spec b/anda/langs/python/snakeoil/snakeoil.spec new file mode 100644 index 0000000000..206c78165b --- /dev/null +++ b/anda/langs/python/snakeoil/snakeoil.spec @@ -0,0 +1,45 @@ +%global pypi_name snakeoil +%global _desc A python library that implements optimized versions of common functionality. + +Name: python-%{pypi_name} +Version: 0.11.0 +Release: 1%?dist +Summary: Implements optimized versions of common functionality +License: BSD-3-Clause +URL: https://pkgcore.github.io/snakeoil +Source0: %{pypi_source} +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-flit-core +BuildRequires: python3-pip + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n snakeoil-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files snakeoil + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.rst +%license LICENSE + +%changelog +* Mon Jan 19 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/snakeoil/update.rhai b/anda/langs/python/snakeoil/update.rhai new file mode 100644 index 0000000000..319c737bea --- /dev/null +++ b/anda/langs/python/snakeoil/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("snakeoil")); diff --git a/anda/langs/python/sounddevice/sounddevice.spec b/anda/langs/python/sounddevice/sounddevice.spec index 6237876197..3aaf34a7d8 100644 --- a/anda/langs/python/sounddevice/sounddevice.spec +++ b/anda/langs/python/sounddevice/sounddevice.spec @@ -2,7 +2,7 @@ %global _desc 🔉 Play and Record Sound with Python 🐍. Name: python-%{pypi_name} -Version: 0.5.3 +Version: 0.5.5 Release: 1%?dist Summary: 🔉 Play and Record Sound with Python 🐍 License: MIT diff --git a/anda/langs/python/spake2/anda.hcl b/anda/langs/python/spake2/anda.hcl new file mode 100644 index 0000000000..2cc82f2e67 --- /dev/null +++ b/anda/langs/python/spake2/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "spake2.spec" + } +} diff --git a/anda/langs/python/spake2/spake2.spec b/anda/langs/python/spake2/spake2.spec new file mode 100644 index 0000000000..d223f203db --- /dev/null +++ b/anda/langs/python/spake2/spake2.spec @@ -0,0 +1,46 @@ +%global pypi_name spake2 +%global _desc pure-python implementation of the SPAKE2 Password-Authenticated Key Exchange algorithm. + +Name: python-%{pypi_name} +Version: 0.9 +Release: 1%?dist +Summary: pure-python implementation of the SPAKE2 Password-Authenticated Key Exchange algorithm +License: MIT +URL: https://github.com/warner/python-spake2 +Source0: %{pypi_source} +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-wheel +BuildRequires: python3-setuptools +BuildRequires: python3-pip + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n spake2-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files spake2 + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md +%license LICENSE + +%changelog +* Mon Nov 03 2025 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/spake2/update.rhai b/anda/langs/python/spake2/update.rhai new file mode 100644 index 0000000000..ac1e790f98 --- /dev/null +++ b/anda/langs/python/spake2/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("spake2")); diff --git a/anda/langs/python/sphinxcontrib-moderncmakedomain/python-sphinxcontrib-moderncmakedomain.spec b/anda/langs/python/sphinxcontrib-moderncmakedomain/python-sphinxcontrib-moderncmakedomain.spec index 4df803be99..1a5b467be7 100644 --- a/anda/langs/python/sphinxcontrib-moderncmakedomain/python-sphinxcontrib-moderncmakedomain.spec +++ b/anda/langs/python/sphinxcontrib-moderncmakedomain/python-sphinxcontrib-moderncmakedomain.spec @@ -12,7 +12,7 @@ Name: python-%{real_name} Version: 3.29.0 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Sphinx domain for modern CMake License: BSD-3-Clause URL: https://github.com/scikit-build/moderncmakedomain @@ -28,7 +28,7 @@ BuildRequires: python3dist(pytest) BuildRequires: python3dist(setuptools) BuildRequires: python3dist(sphinx) BuildArch: noarch -Packager: Gilver E. +Packager: Gilver E. %description Modern CMake domain entries, originally from Kitware. diff --git a/anda/langs/python/srt-equalizer/anda.hcl b/anda/langs/python/srt-equalizer/anda.hcl new file mode 100644 index 0000000000..4101daa038 --- /dev/null +++ b/anda/langs/python/srt-equalizer/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "srt-equalizer.spec" + } +} diff --git a/anda/langs/python/srt-equalizer/srt-equalizer.spec b/anda/langs/python/srt-equalizer/srt-equalizer.spec new file mode 100644 index 0000000000..953347cf21 --- /dev/null +++ b/anda/langs/python/srt-equalizer/srt-equalizer.spec @@ -0,0 +1,47 @@ +%global pypi_name srt-equalizer +%global _desc A Python module to transform subtitle line lengths, splitting into multiple subtitle fragments if necessary. + +Name: python-%{pypi_name} +Version: 0.1.12 +Release: 1%?dist +Summary: A Python module to transform subtitle line lengths, splitting into multiple subtitle fragments if necessary +License: MIT +URL: https://github.com/peterk/srt_equalizer +Source0: https://github.com/peterk/srt_equalizer/archive/refs/tags/v%version.tar.gz +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-wheel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +BuildRequires: python3-poetry-core + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n srt_equalizer-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files srt_equalizer + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md +%license LICENSE + +%changelog +* Sat Jan 10 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/srt-equalizer/update.rhai b/anda/langs/python/srt-equalizer/update.rhai new file mode 100644 index 0000000000..7af616568c --- /dev/null +++ b/anda/langs/python/srt-equalizer/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("srt-equalizer")); diff --git a/anda/langs/python/srt/anda.hcl b/anda/langs/python/srt/anda.hcl new file mode 100644 index 0000000000..4d7656cd41 --- /dev/null +++ b/anda/langs/python/srt/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "srt.spec" + } +} diff --git a/anda/langs/python/srt/srt.spec b/anda/langs/python/srt/srt.spec new file mode 100644 index 0000000000..148ea46697 --- /dev/null +++ b/anda/langs/python/srt/srt.spec @@ -0,0 +1,59 @@ +%global pypi_name srt +%global _desc A simple library and set of tools for parsing, modifying, and composing SRT files. + +Name: python-%{pypi_name} +Version: 3.5.3 +Release: 1%?dist +Summary: A simple library and set of tools for parsing, modifying, and composing SRT files +License: MIT +URL: https://github.com/cdown/srt +Source0: %{pypi_source} +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-wheel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +BuildRequires: python3-poetry-core + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n srt-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files srt_tools + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.rst +%license LICENSE +%{_bindir}/srt +%{_bindir}/srt-deduplicate +%{_bindir}/srt-fixed-timeshift +%{_bindir}/srt-linear-timeshift +%{_bindir}/srt-lines-matching +%{_bindir}/srt-mux +%{_bindir}/srt-normalise +%{_bindir}/srt-play +%{_bindir}/srt-process +%{python3_sitelib}/__pycache__/srt.cpython-314.opt-1.pyc +%{python3_sitelib}/__pycache__/srt.cpython-314.pyc +%{python3_sitelib}/srt.py + +%changelog +* Sat Jan 10 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/srt/update.rhai b/anda/langs/python/srt/update.rhai new file mode 100644 index 0000000000..8186fb86a3 --- /dev/null +++ b/anda/langs/python/srt/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("srt")); diff --git a/anda/langs/python/stable-ts/anda.hcl b/anda/langs/python/stable-ts/anda.hcl new file mode 100644 index 0000000000..748ffbba2c --- /dev/null +++ b/anda/langs/python/stable-ts/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "stable-ts.spec" + } +} diff --git a/anda/langs/python/stable-ts/stable-ts.spec b/anda/langs/python/stable-ts/stable-ts.spec new file mode 100644 index 0000000000..9a22e602a5 --- /dev/null +++ b/anda/langs/python/stable-ts/stable-ts.spec @@ -0,0 +1,50 @@ +%global pypi_name stable_ts +%global real_name stable-ts +%global _desc Transcription, forced alignment, and audio indexing with OpenAI's Whisper. + +Name: python-%{real_name} +Version: 2.19.1 +Release: 2%{?dist} +Summary: Transcription, forced alignment, and audio indexing with OpenAI's Whisper +License: MIT +URL: https://github.com/jianfch/stable-ts +Source0: %{pypi_source} +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-wheel +BuildRequires: python3-setuptools +BuildRequires: python3-pip + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{real_name} +Summary: %{summary} +Obsoletes: python3-%{pypi_name} < %{evr} +%{?python_provide:%python_provide python3-%{real_name}} + +%description -n python3-%{real_name} +%_desc + +%prep +%autosetup -n %{pypi_name}-%{version} +sed -i "s/openai-whisper==20230308/openai-whisper/" setup.py + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files stable_whisper + +%files -n python3-%{real_name} -f %{pyproject_files} +%doc README.md +%license LICENSE +%{_bindir}/%{real_name} + +%changelog +* Mon May 04 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/stable-ts/update.rhai b/anda/langs/python/stable-ts/update.rhai new file mode 100644 index 0000000000..41e2d84d6f --- /dev/null +++ b/anda/langs/python/stable-ts/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("stable-ts")); diff --git a/anda/langs/python/standard-aifc/anda.hcl b/anda/langs/python/standard-aifc/anda.hcl new file mode 100644 index 0000000000..27685da8b9 --- /dev/null +++ b/anda/langs/python/standard-aifc/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "standard-aifc.spec" + } +} diff --git a/anda/langs/python/standard-aifc/standard-aifc.spec b/anda/langs/python/standard-aifc/standard-aifc.spec new file mode 100644 index 0000000000..7ff63fa7b3 --- /dev/null +++ b/anda/langs/python/standard-aifc/standard-aifc.spec @@ -0,0 +1,52 @@ +%global pypi_name standard-aifc +%global _desc Standard library aifc redistribution. + +Name: python-%{pypi_name} +Version: 3.13.0 +Release: 1%?dist +Summary: Standard library aifc redistribution +License: PSF-2.0 +URL: https://github.com/youknowone/python-deadlib +Source0: %url/archive/refs/tags/v%version.tar.gz +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-wheel +BuildRequires: python3-setuptools +BuildRequires: python3-pip + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +Provides: standard-aifc +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n python-deadlib-%{version} + +%build +pushd aifc +%pyproject_wheel +popd + +%install +pushd aifc +%pyproject_install +%pyproject_save_files aifc +popd + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc aifc/Doc/aifc.rst +%doc aifc/README.rst +%license aifc/LICENSE + +%changelog +* Fri Dec 26 2025 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/standard-aifc/update.rhai b/anda/langs/python/standard-aifc/update.rhai new file mode 100644 index 0000000000..98307ef412 --- /dev/null +++ b/anda/langs/python/standard-aifc/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("standard-aifc")); diff --git a/anda/langs/python/standard-asynchat/anda.hcl b/anda/langs/python/standard-asynchat/anda.hcl new file mode 100644 index 0000000000..012e947c60 --- /dev/null +++ b/anda/langs/python/standard-asynchat/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "standard-asynchat.spec" + } +} diff --git a/anda/langs/python/standard-asynchat/standard-asynchat.spec b/anda/langs/python/standard-asynchat/standard-asynchat.spec new file mode 100644 index 0000000000..8022aad8e0 --- /dev/null +++ b/anda/langs/python/standard-asynchat/standard-asynchat.spec @@ -0,0 +1,52 @@ +%global pypi_name standard-asynchat +%global _desc Standard library asynchat redistribution. + +Name: python-%{pypi_name} +Version: 3.13.0 +Release: 1%?dist +Summary: Standard library asynchat redistribution +License: PSF-2.0 +URL: https://github.com/youknowone/python-deadlib +Source0: %url/archive/refs/tags/v%version.tar.gz +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-wheel +BuildRequires: python3-setuptools +BuildRequires: python3-pip + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +Provides: standard-asynchat +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n python-deadlib-%{version} + +%build +pushd asynchat +%pyproject_wheel +popd + +%install +pushd asynchat +%pyproject_install +%pyproject_save_files asynchat +popd + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc asynchat/Doc/asynchat.rst +%doc asynchat/README.rst +%license asynchat/LICENSE + +%changelog +* Mon Jan 12 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/standard-asynchat/update.rhai b/anda/langs/python/standard-asynchat/update.rhai new file mode 100644 index 0000000000..1722592822 --- /dev/null +++ b/anda/langs/python/standard-asynchat/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("standard-asynchat")); diff --git a/anda/langs/python/standard-chunk/anda.hcl b/anda/langs/python/standard-chunk/anda.hcl new file mode 100644 index 0000000000..a4a563f6d0 --- /dev/null +++ b/anda/langs/python/standard-chunk/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "standard-chunk.spec" + } +} diff --git a/anda/langs/python/standard-chunk/standard-chunk.spec b/anda/langs/python/standard-chunk/standard-chunk.spec new file mode 100644 index 0000000000..c179ecdc74 --- /dev/null +++ b/anda/langs/python/standard-chunk/standard-chunk.spec @@ -0,0 +1,52 @@ +%global pypi_name standard-chunk +%global _desc Standard library chunk redistribution. + +Name: python-%{pypi_name} +Version: 3.13.0 +Release: 1%?dist +Summary: Standard library chunk redistribution +License: PSF-2.0 +URL: https://github.com/youknowone/python-deadlib +Source0: %url/archive/refs/tags/v%version.tar.gz +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-wheel +BuildRequires: python3-setuptools +BuildRequires: python3-pip + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +Provides: standard-chunk +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n python-deadlib-%{version} + +%build +pushd chunk +%pyproject_wheel +popd + +%install +pushd chunk +%pyproject_install +%pyproject_save_files chunk +popd + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc chunk/Doc/chunk.rst +%doc chunk/README.rst +%license chunk/LICENSE + +%changelog +* Fri Dec 26 2025 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/standard-chunk/update.rhai b/anda/langs/python/standard-chunk/update.rhai new file mode 100644 index 0000000000..53d1cc3399 --- /dev/null +++ b/anda/langs/python/standard-chunk/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("standard-chunk")); diff --git a/anda/langs/python/standard-sunau/anda.hcl b/anda/langs/python/standard-sunau/anda.hcl new file mode 100644 index 0000000000..3d7f393683 --- /dev/null +++ b/anda/langs/python/standard-sunau/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "standard-sunau.spec" + } +} diff --git a/anda/langs/python/standard-sunau/standard-sunau.spec b/anda/langs/python/standard-sunau/standard-sunau.spec new file mode 100644 index 0000000000..febc32dc9b --- /dev/null +++ b/anda/langs/python/standard-sunau/standard-sunau.spec @@ -0,0 +1,52 @@ +%global pypi_name standard-sunau +%global _desc Standard library sunau redistribution. + +Name: python-%{pypi_name} +Version: 3.13.0 +Release: 1%?dist +Summary: Standard library sunau redistribution +License: PSF-2.0 +URL: https://github.com/youknowone/python-deadlib +Source0: %url/archive/refs/tags/v%version.tar.gz +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-wheel +BuildRequires: python3-setuptools +BuildRequires: python3-pip + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +Provides: standard-sunau +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n python-deadlib-%{version} + +%build +pushd sunau +%pyproject_wheel +popd + +%install +pushd sunau +%pyproject_install +%pyproject_save_files sunau +popd + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc sunau/Doc/sunau.rst +%doc sunau/README.rst +%license sunau/LICENSE + +%changelog +* Sat Dec 27 2025 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/standard-sunau/update.rhai b/anda/langs/python/standard-sunau/update.rhai new file mode 100644 index 0000000000..f06c07b50a --- /dev/null +++ b/anda/langs/python/standard-sunau/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("standard-sunau")); diff --git a/anda/langs/python/stempeg/anda.hcl b/anda/langs/python/stempeg/anda.hcl new file mode 100644 index 0000000000..6535390720 --- /dev/null +++ b/anda/langs/python/stempeg/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "stempeg.spec" + } +} diff --git a/anda/langs/python/stempeg/stempeg.spec b/anda/langs/python/stempeg/stempeg.spec new file mode 100644 index 0000000000..b74c053b04 --- /dev/null +++ b/anda/langs/python/stempeg/stempeg.spec @@ -0,0 +1,47 @@ +%global pypi_name stempeg +%global _desc Python I/O for STEM audio files. + +Name: python-%{pypi_name} +Version: 0.2.6 +Release: 1%?dist +Summary: Python I/O for STEM audio files +License: MIT +URL: https://faroit.com/stempeg/ +Source0: %{pypi_source} +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-wheel +BuildRequires: python3-setuptools +BuildRequires: python3-pip + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n stempeg-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files stempeg + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md +%license LICENSE +%{_bindir}/stem2files + +%changelog +* Thu Jan 15 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/stempeg/update.rhai b/anda/langs/python/stempeg/update.rhai new file mode 100644 index 0000000000..0bfbc04fc0 --- /dev/null +++ b/anda/langs/python/stempeg/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("stempeg")); diff --git a/anda/langs/python/submitit/anda.hcl b/anda/langs/python/submitit/anda.hcl new file mode 100644 index 0000000000..fbd78c6e45 --- /dev/null +++ b/anda/langs/python/submitit/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "submitit.spec" + } +} diff --git a/anda/langs/python/submitit/submitit.spec b/anda/langs/python/submitit/submitit.spec new file mode 100644 index 0000000000..39ff45ce90 --- /dev/null +++ b/anda/langs/python/submitit/submitit.spec @@ -0,0 +1,56 @@ +%global pypi_name submitit +%global _desc Python 3.8+ toolbox for submitting jobs to Slurm. + +Name: python-%{pypi_name} +Version: 1.5.4 +Release: 1%?dist +Summary: Python 3.8+ toolbox for submitting jobs to Slurm +License: MIT +URL: https://github.com/facebookincubator/submitit +Source0: %{pypi_source} +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-wheel +BuildRequires: python3-setuptools +BuildRequires: python3-pip + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%package doc +Summary: Documentation for %{name} +Requires: python3-%{pypi_name} = %{evr} + +%description doc +Documentation for %{name}. + +%prep +%autosetup -n submitit-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files submitit + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md +%license LICENSE + +%files doc +%doc docs/ + +%changelog +* Fri Jan 09 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/submitit/update.rhai b/anda/langs/python/submitit/update.rhai new file mode 100644 index 0000000000..151e39be57 --- /dev/null +++ b/anda/langs/python/submitit/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("submitit")); diff --git a/anda/langs/python/superisoupdater/superisoupdater.spec b/anda/langs/python/superisoupdater/superisoupdater.spec index a7b7751d77..2e3aa362b0 100644 --- a/anda/langs/python/superisoupdater/superisoupdater.spec +++ b/anda/langs/python/superisoupdater/superisoupdater.spec @@ -2,8 +2,8 @@ %global _desc A powerful tool to conveniently update all of your ISOs! Name: python-%{pypi_name} -Version: 1.4.1 -Release: 1%?dist +Version: 1.5.1 +Release: 1%{?dist} Summary: %{_desc} License: GPLv3 URL: https://github.com/JoshuaVandaele/SuperISOUpdater diff --git a/anda/langs/python/superisoupdater/update.rhai b/anda/langs/python/superisoupdater/update.rhai index ddf8b96010..42efffa9a6 100644 --- a/anda/langs/python/superisoupdater/update.rhai +++ b/anda/langs/python/superisoupdater/update.rhai @@ -1 +1 @@ -rpm.version(gh("JoshuaVandaele/SuperISOUpdater")); +rpm.version(pypi("sisou")); diff --git a/anda/langs/python/synapse-s3-storage-provider/update.rhai b/anda/langs/python/synapse-s3-storage-provider/update.rhai index c1bcb54663..1794f1648a 100644 --- a/anda/langs/python/synapse-s3-storage-provider/update.rhai +++ b/anda/langs/python/synapse-s3-storage-provider/update.rhai @@ -1 +1 @@ -rpm.version(gh("matrix-org/synapse-s3-storage-provider")); +rpm.version(pypi("synapse-s3-storage-provider")); diff --git a/anda/langs/python/tekore/anda.hcl b/anda/langs/python/tekore/anda.hcl new file mode 100644 index 0000000000..cdfb820b46 --- /dev/null +++ b/anda/langs/python/tekore/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "tekore.spec" + } +} diff --git a/anda/langs/python/tekore/tekore.spec b/anda/langs/python/tekore/tekore.spec new file mode 100644 index 0000000000..87b82a259f --- /dev/null +++ b/anda/langs/python/tekore/tekore.spec @@ -0,0 +1,45 @@ +%global pypi_name tekore +%global _desc Spotify Web API client for Python 3. + +Name: python-%{pypi_name} +Version: 6.1.1 +Release: 1%?dist +Summary: Spotify Web API client for Python 3 +License: MIT +URL: https://tekore.readthedocs.io/en/stable/ +Source0: %{pypi_source} +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n %{pypi_name}-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files %{pypi_name} + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc readme_pypi.rst +%license LICENSE + +%changelog +* Thu Oct 23 2025 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/tekore/update.rhai b/anda/langs/python/tekore/update.rhai new file mode 100644 index 0000000000..5bd0687472 --- /dev/null +++ b/anda/langs/python/tekore/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("tekore")); diff --git a/anda/langs/python/tidalapi/anda.hcl b/anda/langs/python/tidalapi/anda.hcl new file mode 100644 index 0000000000..61c09996d6 --- /dev/null +++ b/anda/langs/python/tidalapi/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "tidalapi.spec" + } +} diff --git a/anda/langs/python/tidalapi/tidalapi.spec b/anda/langs/python/tidalapi/tidalapi.spec new file mode 100644 index 0000000000..6d25af8cd4 --- /dev/null +++ b/anda/langs/python/tidalapi/tidalapi.spec @@ -0,0 +1,46 @@ +%global pypi_name tidalapi +%global _desc Python API for TIDAL music streaming service. + +Name: python-%{pypi_name} +Version: 0.8.11 +Release: 1%?dist +Summary: Python API for TIDAL music streaming service +License: LGPL-3.0-or-later +URL: https://github.com/matrix-org/synapse-s3-storage-provider +Source0: %{pypi_source} +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +BuildRequires: python3-poetry-core + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n %{pypi_name}-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files %{pypi_name} + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.rst HISTORY.rst +%license LICENSE + +%changelog +* Sun Mar 29 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/tidalapi/update.rhai b/anda/langs/python/tidalapi/update.rhai new file mode 100644 index 0000000000..558dc53d97 --- /dev/null +++ b/anda/langs/python/tidalapi/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("tidalapi")); diff --git a/anda/langs/python/tokenizers/anda.hcl b/anda/langs/python/tokenizers/anda.hcl new file mode 100644 index 0000000000..f99a421b5a --- /dev/null +++ b/anda/langs/python/tokenizers/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "tokenizers.spec" + } +} diff --git a/anda/langs/python/tokenizers/tokenizers.spec b/anda/langs/python/tokenizers/tokenizers.spec new file mode 100644 index 0000000000..d4e43269ed --- /dev/null +++ b/anda/langs/python/tokenizers/tokenizers.spec @@ -0,0 +1,51 @@ +%global pypi_name tokenizers +%global _desc Fast State-of-the-Art Tokenizers optimized for Research and Production. + +Name: python-%{pypi_name} +Version: 0.23.1 +Release: 1%{?dist} +Summary: Fast State-of-the-Art Tokenizers optimized for Research and Production +License: Apache-2.0 +URL: https://github.com/huggingface/tokenizers +Source0: %{pypi_source} +Source1: https://github.com/huggingface/tokenizers/blob/main/LICENSE +Source2: https://github.com/huggingface/tokenizers/blob/main/README.md + +BuildRequires: python3-devel +BuildRequires: python3-wheel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +BuildRequires: maturin +BuildRequires: gcc-c++ + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n tokenizers-%{version} +cp %{SOURCE1} . +cp %{SOURCE2} . + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files tokenizers + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md +%license LICENSE + +%changelog +* Sat Jan 10 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/tokenizers/update.rhai b/anda/langs/python/tokenizers/update.rhai new file mode 100644 index 0000000000..a1368751fc --- /dev/null +++ b/anda/langs/python/tokenizers/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("tokenizers")); diff --git a/anda/langs/python/transformers/anda.hcl b/anda/langs/python/transformers/anda.hcl new file mode 100644 index 0000000000..19dbd51d96 --- /dev/null +++ b/anda/langs/python/transformers/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "transformers.spec" + } +} diff --git a/anda/langs/python/transformers/transformers.spec b/anda/langs/python/transformers/transformers.spec new file mode 100644 index 0000000000..df39d90825 --- /dev/null +++ b/anda/langs/python/transformers/transformers.spec @@ -0,0 +1,51 @@ +%global pypi_name transformers +%global _desc The model-definition framework for state-of-the-art machine learning models. + +Name: python-%{pypi_name} +Version: 5.8.0 +Release: 1%{?dist} +Summary: The model-definition framework for state-of-the-art machine learning models +License: Apache-2.0 +URL: https://huggingface.co/docs/transformers/index +Source0: %{pypi_source} +Patch0: versions.patch +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +Provides: synapse-s3-storage-provider +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n %{pypi_name}-%{version} -p1 + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files transformers + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md +%license LICENSE +%{_bindir}/transformers + +%changelog +* Mon May 04 2026 Owen Zimmerman +- Update spec for version 5.7.0 + +* Sat Jan 10 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/transformers/update.rhai b/anda/langs/python/transformers/update.rhai new file mode 100644 index 0000000000..8ec179c575 --- /dev/null +++ b/anda/langs/python/transformers/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("transformers")); diff --git a/anda/langs/python/transformers/versions.patch b/anda/langs/python/transformers/versions.patch new file mode 100644 index 0000000000..1ab99bd632 --- /dev/null +++ b/anda/langs/python/transformers/versions.patch @@ -0,0 +1,22 @@ +diff --git a/setup.py b/setup.py +index d24f3bb665..0f0a2803a1 100644 +--- a/setup.py ++++ b/setup.py +@@ -86,7 +86,7 @@ _deps = [ + "fugashi>=1.0", + "GitPython<3.1.19", + "hf-doc-builder", +- "huggingface-hub>=1.5.0,<2.0", ++ "huggingface-hub", + "ipadic>=1.0.0,<2.0", + "jinja2>=3.1.0", + "jmespath>=1.0.1", +@@ -147,7 +147,7 @@ _deps = [ + "tomli", + "tiktoken", + "timm>=1.0.23", +- "tokenizers>=0.22.0,<=0.23.0", ++ "tokenizers>=0.22.0", + "torch>=2.4", + "torchaudio", + "torchvision", diff --git a/anda/langs/python/treetable/anda.hcl b/anda/langs/python/treetable/anda.hcl new file mode 100644 index 0000000000..3a5b245c99 --- /dev/null +++ b/anda/langs/python/treetable/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "treetable.spec" + } +} diff --git a/anda/langs/python/treetable/treetable.spec b/anda/langs/python/treetable/treetable.spec new file mode 100644 index 0000000000..fe3aaff265 --- /dev/null +++ b/anda/langs/python/treetable/treetable.spec @@ -0,0 +1,45 @@ +%global pypi_name treetable +%global _desc Print in ascii art a table with a tree-like structure. + +Name: python-%{pypi_name} +Version: 0.2.6 +Release: 1%?dist +Summary: Print in ascii art a table with a tree-like structure +License: Unlicense +URL: https://github.com/adefossez/treetable +Source0: %{pypi_source} +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n %{pypi_name}-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files treetable + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md +%license LICENSE + +%changelog +* Fri Jan 09 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/treetable/update.rhai b/anda/langs/python/treetable/update.rhai new file mode 100644 index 0000000000..d00faed156 --- /dev/null +++ b/anda/langs/python/treetable/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("treetable")); diff --git a/anda/langs/python/txtorcon/anda.hcl b/anda/langs/python/txtorcon/anda.hcl new file mode 100644 index 0000000000..9812f24c16 --- /dev/null +++ b/anda/langs/python/txtorcon/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "txtorcon.spec" + } +} diff --git a/anda/langs/python/txtorcon/shebangs.patch b/anda/langs/python/txtorcon/shebangs.patch new file mode 100644 index 0000000000..fed9620aaa --- /dev/null +++ b/anda/langs/python/txtorcon/shebangs.patch @@ -0,0 +1,80 @@ +diff --git a/examples/launch_tor_endpoint2.py b/examples/launch_tor_endpoint2.py +index 72a24c4..30fc34e 100755 +--- a/examples/launch_tor_endpoint2.py ++++ b/examples/launch_tor_endpoint2.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + # Here we set up a Twisted Web server and then launch a slave tor + # with a configured hidden service directed at the Web server we set +diff --git a/examples/launch_tor_with_simplehttpd.py b/examples/launch_tor_with_simplehttpd.py +index 6c799c7..1edae61 100755 +--- a/examples/launch_tor_with_simplehttpd.py ++++ b/examples/launch_tor_with_simplehttpd.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + # -*- coding: utf-8 -*- + '''Create a new tor node and add a simple http server to it, serving a given + directory over http. The server is single-threaded and very limited. +diff --git a/examples/minimal_endpoint.py b/examples/minimal_endpoint.py +index fc8115d..5fd2499 100755 +--- a/examples/minimal_endpoint.py ++++ b/examples/minimal_endpoint.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + from twisted.internet import reactor + from twisted.internet.endpoints import serverFromString +diff --git a/examples/monitor.py b/examples/monitor.py +index 1f4237c..2e06475 100755 +--- a/examples/monitor.py ++++ b/examples/monitor.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + # Just listens for a few EVENTs from Tor (INFO NOTICE WARN ERR) and + # prints out the contents, so functions like a log monitor. +diff --git a/examples/stem_relay_descriptor.py b/examples/stem_relay_descriptor.py +index 2c9d1cf..08bd7b4 100755 +--- a/examples/stem_relay_descriptor.py ++++ b/examples/stem_relay_descriptor.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + # This shows how to get the detailed information about a + # relay descriptor and parse it into Stem's RelayDescriptor +diff --git a/examples/stream_circuit_logger.py b/examples/stream_circuit_logger.py +index 50a98a1..00949ec 100755 +--- a/examples/stream_circuit_logger.py ++++ b/examples/stream_circuit_logger.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + # This uses an IStreamListener and an ICircuitListener to log all + # built circuits and all streams that succeed. +diff --git a/examples/tor_info.py b/examples/tor_info.py +index e1cc8fa..a46244c 100755 +--- a/examples/tor_info.py ++++ b/examples/tor_info.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + # Simple usage example of TorInfo. This class does some magic so that + # once it's set up, all the attributes it has (or appears to) are +diff --git a/examples/webui_server.py b/examples/webui_server.py +index 28d0367..293989d 100755 +--- a/examples/webui_server.py ++++ b/examples/webui_server.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + from twisted.internet import reactor + from nevow.appserver import NevowSite diff --git a/anda/langs/python/txtorcon/txtorcon.spec b/anda/langs/python/txtorcon/txtorcon.spec new file mode 100644 index 0000000000..745fd70d95 --- /dev/null +++ b/anda/langs/python/txtorcon/txtorcon.spec @@ -0,0 +1,52 @@ +%global pypi_name txtorcon +%global _desc Twisted-based asynchronous Tor control protocol implementation. Includes unit-tests, examples, state-tracking code and configuration abstraction. + +Name: python-%{pypi_name} +Version: 24.8.0 +Release: 1%?dist +Summary: Twisted-based asynchronous Tor control protocol implementation. Includes unit-tests, examples, state-tracking code and configuration abstraction +License: MIT +URL: https://github.com/meejah/txtorcon +Source0: %{pypi_source} +Patch0: shebangs.patch +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-wheel +BuildRequires: python3-setuptools +BuildRequires: python3-pip + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +Provides: txtorcon +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -p1 -n txtorcon-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files txtorcon + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.rst INSTALL +%license LICENSE +%python3_sitelib/twisted/plugins/__pycache__/txtorcon_endpoint_parser.*.pyc +%python3_sitelib/txtorcon-%version.dist-info/* +%python3_sitelib/twisted/plugins/*.py +%{_datadir}/txtorcon/* + +%changelog +* Mon Nov 03 2025 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/txtorcon/update.rhai b/anda/langs/python/txtorcon/update.rhai new file mode 100644 index 0000000000..9e88efe672 --- /dev/null +++ b/anda/langs/python/txtorcon/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("txtorcon")); diff --git a/anda/langs/python/types-colorama/types-colorama.spec b/anda/langs/python/types-colorama/types-colorama.spec index 9b5bc45b0d..df62238d92 100644 --- a/anda/langs/python/types-colorama/types-colorama.spec +++ b/anda/langs/python/types-colorama/types-colorama.spec @@ -1,5 +1,5 @@ -%global commit 16f766b754405004471af20eeb9a5cf8dea05b44 -%global commit_date 20251027 +%global commit d541d5a20cb7533c6eaba1430b5004f9b0e504ec +%global commit_date 20260507 %global shortcommit %(c=%{commit}; echo ${c:0:7}) %global pypi_name types-colorama @@ -7,7 +7,7 @@ Name: python-%{pypi_name} Version: 0~%{commit_date}git.%shortcommit -Release: 1%?dist +Release: 1%{?dist} Summary: Typing stubs for colorama License: Apache-2.0 URL: https://github.com/python/typeshed diff --git a/anda/langs/python/upiano/anda.hcl b/anda/langs/python/upiano/anda.hcl new file mode 100644 index 0000000000..88ed01256a --- /dev/null +++ b/anda/langs/python/upiano/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "upiano.spec" + } +} diff --git a/anda/langs/python/upiano/update.rhai b/anda/langs/python/upiano/update.rhai new file mode 100644 index 0000000000..4ad97822e6 --- /dev/null +++ b/anda/langs/python/upiano/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("upiano")); diff --git a/anda/langs/python/upiano/upiano.spec b/anda/langs/python/upiano/upiano.spec new file mode 100644 index 0000000000..4345218d4c --- /dev/null +++ b/anda/langs/python/upiano/upiano.spec @@ -0,0 +1,50 @@ +%global pypi_name upiano +%global _desc Terminal Piano App. + +Name: python-%{pypi_name} +Version: 0.1.2 +Release: 1%?dist +Summary: Terminal Piano App +License: MIT +URL: https://github.com/eliasdorneles/upiano +Source0: %{pypi_source} +Source1: %url/blob/master/LICENSE +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-wheel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +BuildRequires: python3-poetry-core + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n upiano-%{version} +cp %{SOURCE1} . + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files upiano + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md +%license LICENSE +%{_bindir}/upiano + +%changelog +* Sat Jan 24 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/vulkan/anda.hcl b/anda/langs/python/vulkan/anda.hcl new file mode 100644 index 0000000000..1c563a199c --- /dev/null +++ b/anda/langs/python/vulkan/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "vulkan.spec" + } +} diff --git a/anda/langs/python/vulkan/update.rhai b/anda/langs/python/vulkan/update.rhai new file mode 100644 index 0000000000..e6574d5949 --- /dev/null +++ b/anda/langs/python/vulkan/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("vulkan")); diff --git a/anda/langs/python/vulkan/vulkan.spec b/anda/langs/python/vulkan/vulkan.spec new file mode 100644 index 0000000000..a46e96500f --- /dev/null +++ b/anda/langs/python/vulkan/vulkan.spec @@ -0,0 +1,48 @@ +%define debug_package %{nil} + +%global pypi_name vulkan +%global _desc The ultimate Python binding for Vulkan API. + +Name: python-%{pypi_name} +Version: 1.3.275.1 +Release: 1%{?dist} +Summary: The ultimate Python binding for Vulkan API +License: Apache-2.0 +URL: https://github.com/realitix/vulkan +Source0: %{pypi_source} + +BuildRequires: python3-wheel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +BuildRequires: python3-devel +BuildRequires: gcc + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n %{pypi_name}-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files %{pypi_name} + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md +%license LICENSE + +%changelog +* Mon May 04 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/west/update.rhai b/anda/langs/python/west/update.rhai index 00dbbc8bac..00da9be02d 100644 --- a/anda/langs/python/west/update.rhai +++ b/anda/langs/python/west/update.rhai @@ -1 +1 @@ -rpm.version(gh("zephyrproject-rtos/west")); +rpm.version(pypi("west")); diff --git a/anda/langs/python/west/west.spec b/anda/langs/python/west/west.spec index 1d3748b9b6..f7d40f232c 100644 --- a/anda/langs/python/west/west.spec +++ b/anda/langs/python/west/west.spec @@ -3,7 +3,7 @@ Name: python-%{pypi_name} Version: 1.5.0 -Release: 1%?dist +Release: 2%?dist Summary: West, Zephyr's meta-tool License: Apache-2.0 URL: https://github.com/zephyrproject-rtos/west @@ -46,9 +46,6 @@ Provides: west %doc README.rst MAINTAINERS.rst %license LICENSE %{_bindir}/west -%ghost %python3_sitelib/__pycache__/*.cpython-*.pyc -%ghost %python3_sitelib/%{name}/subcommands/__pycache__/*.cpython-*.pyc -%python3_sitelib/west-%version.dist-info/* %changelog * Fri Oct 10 2025 Owen Zimmerman diff --git a/anda/langs/python/whey/anda.hcl b/anda/langs/python/whey/anda.hcl new file mode 100644 index 0000000000..6e5dc6a71f --- /dev/null +++ b/anda/langs/python/whey/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "whey.spec" + } +} diff --git a/anda/langs/python/whey/update.rhai b/anda/langs/python/whey/update.rhai new file mode 100644 index 0000000000..d85c462dce --- /dev/null +++ b/anda/langs/python/whey/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("whey")); diff --git a/anda/langs/python/whey/whey.spec b/anda/langs/python/whey/whey.spec new file mode 100644 index 0000000000..11b6c0dbce --- /dev/null +++ b/anda/langs/python/whey/whey.spec @@ -0,0 +1,48 @@ +%global pypi_name whey +%global _desc A simple Python wheel builder for simple projects. + +Name: python-%{pypi_name} +Version: 0.1.1 +Release: 1%?dist +Summary: A simple Python wheel builder for simple projects +License: MIT +URL: https://github.com/deepin-community/python-whey +Source0: %{pypi_source} +BuildArch: noarch + +BuildRequires: python3-build +BuildRequires: python3-setuptools +BuildRequires: python3-wheel +BuildRequires: python3-pip +BuildRequires: python3-devel + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n whey-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files whey + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.rst +%license LICENSE +%{_bindir}/whey + +%changelog +* Sat Mar 14 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/yamale/yamale.spec b/anda/langs/python/yamale/yamale.spec index 1c31e6f317..bc70a64261 100644 --- a/anda/langs/python/yamale/yamale.spec +++ b/anda/langs/python/yamale/yamale.spec @@ -2,8 +2,8 @@ %global _desc A schema and validator for YAML. Name: python-%{pypi_name} -Version: 6.0.0 -Release: 1%?dist +Version: 6.1.0 +Release: 2%?dist Summary: A schema and validator for YAML License: MIT URL: https://github.com/23andMe/Yamale @@ -42,8 +42,6 @@ Provides: yamale %doc README.md SECURITY.md %license LICENSE %{_bindir}/yamale -%ghost %python3_sitelib/__pycache__/*.cpython-*.pyc -%ghost %python3_sitelib/%{name}/subcommands/__pycache__/*.cpython-*.pyc %python3_sitelib/yamale-%version.dist-info/* %changelog diff --git a/anda/langs/python/zipstream-ng/anda.hcl b/anda/langs/python/zipstream-ng/anda.hcl new file mode 100644 index 0000000000..ddd70e5b33 --- /dev/null +++ b/anda/langs/python/zipstream-ng/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "zipstream-ng.spec" + } +} diff --git a/anda/langs/python/zipstream-ng/update.rhai b/anda/langs/python/zipstream-ng/update.rhai new file mode 100644 index 0000000000..e6d0fd3222 --- /dev/null +++ b/anda/langs/python/zipstream-ng/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("zipstream-ng")); diff --git a/anda/langs/python/zipstream-ng/zipstream-ng.spec b/anda/langs/python/zipstream-ng/zipstream-ng.spec new file mode 100644 index 0000000000..ea421e2221 --- /dev/null +++ b/anda/langs/python/zipstream-ng/zipstream-ng.spec @@ -0,0 +1,51 @@ +%global pypi_name zipstream-ng +%global _desc 🔉 A modern and easy to use streamable zip file generator + +Name: python-%{pypi_name} +Version: 1.9.0 +Release: 1%?dist +Summary: A modern and easy to use streamable zip file generator +License: LGPL-3.0-only +URL: https://github.com/pR0Ps/zipstream-ng +Source0: %url/archive/refs/tags/v%version.tar.gz +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-wheel +BuildRequires: python3-setuptools +BuildRequires: python3-pip + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +Provides: zipstream-ng +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n zipstream-ng-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files zipstream + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md CHANGELOG.md docs/zipserver.rst +%license LICENSE +%{_bindir}/zipserver +%ghost %python3_sitelib/__pycache__/*.cpython-*.pyc +%ghost %python3_sitelib/%{name}/subcommands/__pycache__/*.cpython-*.pyc +%python3_sitelib/zipstream_ng-%version.dist-info/* + +%changelog +* Mon Nov 03 2025 Owen Zimmerman +- Initial commit diff --git a/anda/langs/rust/bacon/anda.hcl b/anda/langs/rust/bacon/anda.hcl new file mode 100644 index 0000000000..9bde42893f --- /dev/null +++ b/anda/langs/rust/bacon/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "rust-bacon.spec" + } +} diff --git a/anda/langs/rust/bacon/rust-bacon.spec b/anda/langs/rust/bacon/rust-bacon.spec new file mode 100644 index 0000000000..8472334b82 --- /dev/null +++ b/anda/langs/rust/bacon/rust-bacon.spec @@ -0,0 +1,134 @@ +# Generated by rust2rpm 27 +%bcond check 1 + +%global crate bacon +%global features "sound,clipboard" + +Name: rust-bacon +Version: 3.22.0 +Release: 1%?dist +Summary: Background rust compiler +Packager: metcya + +License: AGPL-3.0 +URL: https://crates.io/crates/bacon +Source: %{crates_source} + +BuildRequires: anda-srpm-macros +BuildRequires: mold +BuildRequires: cargo-rpm-macros >= 24 +BuildRequires: alsa-lib-devel + +%global _description %{expand: +Background rust compiler.} + +%description %{_description} + +%package -n %{crate} +Summary: %{summary} +License: AGPL-3.0 + +%description -n %{crate} %{_description} + +%files -n %{crate} +%license LICENSE +%license LICENSE.dependencies +%doc CHANGELOG.md +%doc CONTRIBUTING.md +%doc README.md +%{_bindir}/bacon + +%package devel +Summary: %{summary} +BuildArch: noarch + +%description devel %{_description} + +This package contains library source intended for building other packages which +use the "%{crate}" crate. + +%files devel +%license %{crate_instdir}/LICENSE +%doc %{crate_instdir}/CHANGELOG.md +%doc %{crate_instdir}/CONTRIBUTING.md +%doc %{crate_instdir}/README.md +%{crate_instdir}/ + +%package -n %{name}+default-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+default-devel %{_description} + +This package contains library source intended for building other packages which +use the "default" feature of the "%{crate}" crate. + +%files -n %{name}+default-devel +%ghost %{crate_instdir}/Cargo.toml + +%package -n %{name}+arboard-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+arboard-devel %{_description} + +This package contains library source intended for building other packages which +use the "arboard" feature of the "%{crate}" crate. + +%files -n %{name}+arboard-devel +%ghost %{crate_instdir}/Cargo.toml + +%package -n %{name}+clipboard-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+clipboard-devel %{_description} + +This package contains library source intended for building other packages which +use the "clipboard" feature of the "%{crate}" crate. + +%files -n %{name}+clipboard-devel +%ghost %{crate_instdir}/Cargo.toml + +%package -n %{name}+rodio-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+rodio-devel %{_description} + +This package contains library source intended for building other packages which +use the "rodio" feature of the "%{crate}" crate. + +%files -n %{name}+rodio-devel +%ghost %{crate_instdir}/Cargo.toml + +%package -n %{name}+sound-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+sound-devel %{_description} + +This package contains library source intended for building other packages which +use the "sound" feature of the "%{crate}" crate. + +%files -n %{name}+sound-devel +%ghost %{crate_instdir}/Cargo.toml + +%prep +%autosetup -n %{crate}-%{version} -p1 +%{cargo_prep_online} + +%build +%{cargo_build -f %{features}} +%{cargo_license_online -f %{features}} > LICENSE.dependencies + +%install +%{cargo_install} + +%if %{with check} +%check +%{cargo_test} +%endif + +%changelog +%autochangelog diff --git a/anda/langs/rust/bacon/update.rhai b/anda/langs/rust/bacon/update.rhai new file mode 100644 index 0000000000..7fb3bdd582 --- /dev/null +++ b/anda/langs/rust/bacon/update.rhai @@ -0,0 +1 @@ +rpm.version(crates("bacon")); diff --git a/anda/langs/rust/bottom/rust-bottom.spec b/anda/langs/rust/bottom/rust-bottom.spec index 428b7966c5..b077d38eed 100644 --- a/anda/langs/rust/bottom/rust-bottom.spec +++ b/anda/langs/rust/bottom/rust-bottom.spec @@ -5,7 +5,7 @@ %global crate bottom Name: rust-bottom -Version: 0.11.2 +Version: 0.12.3 Release: 1%?dist Summary: Customizable cross-platform graphical process/system monitor for the terminal diff --git a/anda/langs/rust/dysk/anda.hcl b/anda/langs/rust/dysk/anda.hcl new file mode 100644 index 0000000000..92007ff08b --- /dev/null +++ b/anda/langs/rust/dysk/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "rust-dysk.spec" + } +} diff --git a/anda/langs/rust/dysk/rust-dysk.spec b/anda/langs/rust/dysk/rust-dysk.spec new file mode 100644 index 0000000000..a97f42b1aa --- /dev/null +++ b/anda/langs/rust/dysk/rust-dysk.spec @@ -0,0 +1,58 @@ +# Generated by rust2rpm 28 +%bcond check 1 + +%global crate dysk + +Name: rust-dysk +Version: 3.6.1 +Release: 1%{?dist} +Summary: Give information on mounted filesystems + +License: MIT +URL: https://crates.io/crates/dysk +Source: %{crates_source} +Packager: madonuko + +BuildRequires: cargo-rpm-macros >= 24 + +%global _description %{expand: +Give information on mounted filesystems.} + +%description %{_description} + +%package -n %{crate} +URL: https://dystroy.org/dysk +Summary: %{summary} +License: (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND (BSD-2-Clause OR MIT OR Apache-2.0) AND MIT AND (MIT OR Apache-2.0) AND (Unlicense OR MIT) +# LICENSE.dependencies contains a full license breakdown + +%description -n %{crate} %{_description} + +%files -n %{crate} +%license LICENSE +%license LICENSE.dependencies +%doc CHANGELOG.md +%doc CONTRIBUTING.md +%doc README.md +%{_bindir}/dysk + +%prep +%autosetup -n %{crate}-%{version} -p1 +%cargo_prep_online + +%build +%{cargo_license_summary_online} +%{cargo_license_online} > LICENSE.dependencies +%cargo_build + +%install +%cargo_install + +%if %{with check} +%check +%cargo_test +%endif + +%changelog +* Thu Mar 05 2026 madonuko - 3.6.0-1 +- Initial package. diff --git a/anda/langs/rust/dysk/update.rhai b/anda/langs/rust/dysk/update.rhai new file mode 100644 index 0000000000..6370e40910 --- /dev/null +++ b/anda/langs/rust/dysk/update.rhai @@ -0,0 +1 @@ +rpm.version(crates("dysk")); diff --git a/anda/langs/rust/fresh/anda.hcl b/anda/langs/rust/fresh/anda.hcl new file mode 100644 index 0000000000..d34694b2d4 --- /dev/null +++ b/anda/langs/rust/fresh/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "fresh.spec" + } +} diff --git a/anda/langs/rust/fresh/fresh.spec b/anda/langs/rust/fresh/fresh.spec new file mode 100644 index 0000000000..742cdbed0e --- /dev/null +++ b/anda/langs/rust/fresh/fresh.spec @@ -0,0 +1,54 @@ +%undefine __brp_mangle_shebangs + +Name: fresh +Version: 0.3.5 +Release: 1%{?dist} +Summary: Text editor for your terminal: easy, powerful and fast +URL: https://getfresh.dev +Source0: https://github.com/sinelaw/fresh/archive/refs/tags/v%version.tar.gz +License: GPL-2.0-only +BuildRequires: cargo anda-srpm-macros cargo-rpm-macros mold +BuildRequires: clang-devel + +Packager: Owen Zimmerman + +%description +%{summary}. + +%package doc +Summary: Documentation for %{name} + +%description doc +Documentation for %{name}. + +%prep +%autosetup +%cargo_prep_online + +%build +%cargo_build + +%install +install -Dm755 target/rpm/%{name} %{buildroot}%{_bindir}/%{name} +install -Dm644 crates/fresh-editor/flatpak/io.github.sinelaw.fresh.svg %{buildroot}%{_scalableiconsdir}/io.github.sinelaw.fresh.svg +install -Dm644 crates/fresh-editor/flatpak/io.github.sinelaw.fresh.desktop %{buildroot}%{_appsdir}/io.github.sinelaw.fresh.desktop +install -Dm644 crates/fresh-editor/flatpak/io.github.sinelaw.fresh.metainfo.xml %{buildroot}%{_metainfodir}/io.github.sinelaw.fresh.metainfo.xml +%{cargo_license_online} > LICENSE.dependencies +mkdir -p %{buildroot}%{_pkgdocdir} +cp -a docs/* %{buildroot}%{_pkgdocdir}/ + +%files +%license LICENSE LICENSE.dependencies +%doc README.md CHANGELOG.md +%{_bindir}/%{name} +%{_scalableiconsdir}/io.github.sinelaw.fresh.svg +%{_appsdir}/io.github.sinelaw.fresh.desktop +%{_metainfodir}/io.github.sinelaw.fresh.metainfo.xml + +%files doc +%{_pkgdocdir}/ +%license LICENSE + +%changelog +* Sat Dec 27 2025 Owen Zimmerman - 0.1.65-1 +- Initial commit diff --git a/anda/langs/rust/fresh/update.rhai b/anda/langs/rust/fresh/update.rhai new file mode 100644 index 0000000000..4aae29f9ca --- /dev/null +++ b/anda/langs/rust/fresh/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("sinelaw/fresh")); diff --git a/anda/langs/rust/gitoxide/rust-gitoxide.spec b/anda/langs/rust/gitoxide/rust-gitoxide.spec index 10df3b1295..2ccae8cb66 100644 --- a/anda/langs/rust/gitoxide/rust-gitoxide.spec +++ b/anda/langs/rust/gitoxide/rust-gitoxide.spec @@ -5,8 +5,8 @@ %global crate gitoxide Name: rust-gitoxide -Version: 0.46.0 -Release: 1%?dist +Version: 0.53.0 +Release: 1%{?dist} Summary: Command-line application for interacting with git repositories License: MIT OR Apache-2.0 diff --git a/anda/langs/rust/jellyfin-rpc/rust-jellyfin-rpc-cli.spec b/anda/langs/rust/jellyfin-rpc/rust-jellyfin-rpc-cli.spec index a405cdb3eb..7eed036285 100644 --- a/anda/langs/rust/jellyfin-rpc/rust-jellyfin-rpc-cli.spec +++ b/anda/langs/rust/jellyfin-rpc/rust-jellyfin-rpc-cli.spec @@ -5,8 +5,8 @@ %global crate jellyfin-rpc-cli Name: rust-jellyfin-rpc-cli -Version: 1.3.3 -Release: 1%?dist +Version: 1.3.5 +Release: 1%{?dist} Summary: Displays the content you're currently watching on Discord! License: GPL-3.0-or-later diff --git a/anda/langs/rust/koji/rust-koji.spec b/anda/langs/rust/koji/rust-koji.spec index c481ac460c..8cc6e7ac9a 100644 --- a/anda/langs/rust/koji/rust-koji.spec +++ b/anda/langs/rust/koji/rust-koji.spec @@ -5,8 +5,8 @@ %global altdiffname cococonscious-%{crate} Name: rust-koji -Version: 3.2.0 -Release: 1%{?dist} +Version: 3.4.0 +Release: 1%?dist Summary: Interactive CLI for creating conventional commits License: MIT diff --git a/anda/langs/rust/kondo/rust-kondo.spec b/anda/langs/rust/kondo/rust-kondo.spec index ede9507850..75f668fa47 100644 --- a/anda/langs/rust/kondo/rust-kondo.spec +++ b/anda/langs/rust/kondo/rust-kondo.spec @@ -4,8 +4,8 @@ %global crate kondo Name: rust-kondo -Version: 0.8 -Release: 1%{?dist} +Version: 0.9 +Release: 1%?dist Summary: Filesystem cleaning tool for projects License: MIT diff --git a/anda/langs/rust/ouch/rust-ouch.spec b/anda/langs/rust/ouch/rust-ouch.spec index 73300e87ef..ababa97206 100644 --- a/anda/langs/rust/ouch/rust-ouch.spec +++ b/anda/langs/rust/ouch/rust-ouch.spec @@ -4,8 +4,8 @@ %global crate ouch Name: rust-ouch -Version: 0.6.1 -Release: 1%?dist +Version: 0.7.1 +Release: 1%{?dist} Summary: Command-line utility for easily compressing and decompressing files and directories License: MIT diff --git a/anda/langs/rust/rmpc/anda.hcl b/anda/langs/rust/rmpc/anda.hcl new file mode 100644 index 0000000000..aeba95f807 --- /dev/null +++ b/anda/langs/rust/rmpc/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "rmpc.spec" + } +} diff --git a/anda/langs/rust/rmpc/rmpc.spec b/anda/langs/rust/rmpc/rmpc.spec new file mode 100644 index 0000000000..ece1b5bbf5 --- /dev/null +++ b/anda/langs/rust/rmpc/rmpc.spec @@ -0,0 +1,46 @@ +%undefine __brp_mangle_shebangs + +Name: rmpc +Version: 0.11.0 +Release: 1%?dist +Summary: A modern, configurable, terminal based MPD Client with album art support via various terminal image protocols +URL: https://rmpc.mierak.dev/ +Source0: https://github.com/mierak/rmpc/archive/refs/tags/v%version.tar.gz +License: BSD-3-Clause +BuildRequires: cargo anda-srpm-macros cargo-rpm-macros mold + +Packager: Owen Zimmerman + +%description +Rmpc is a beautiful, modern and configurable terminal based Music Player Daemon client. +It is heavily inspired by ncmpcpp and ranger/lf file managers. + +%pkg_completion -bfz + +%prep +%autosetup +%cargo_prep_online + +%build +%cargo_build + +%install +mkdir -p %{buildroot}%{bash_completions_dir} +mkdir -p %{buildroot}%{fish_completions_dir} +mkdir -p %{buildroot}%{zsh_completions_dir} +install -Dm755 target/rpm/%{name} %{buildroot}%{_bindir}/%{name} +install -Dm644 target/completions/%{name}.bash %{buildroot}%{bash_completions_dir}/ +install -Dm644 target/completions/%{name}.fish %{buildroot}%{fish_completions_dir}/ +install -Dm644 target/completions/_%{name} %{buildroot}%{zsh_completions_dir}/ +install -Dm644 target/man/rmpc.1 %{buildroot}%{_mandir}/man1/rmpc.1 +%{cargo_license_online} > LICENSE.dependencies + +%files +%license LICENSE LICENSE.dependencies +%doc README.md CHANGELOG.md CONTRIBUTING.md +%{_bindir}/%{name} +%{_mandir}/man1/rmpc.*.* + +%changelog +* Sat Dec 27 2025 Owen Zimmerman - 0.1.65-1 +- Initial commit diff --git a/anda/langs/rust/rmpc/update.rhai b/anda/langs/rust/rmpc/update.rhai new file mode 100644 index 0000000000..ef13ab9c04 --- /dev/null +++ b/anda/langs/rust/rmpc/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("mierak/rmpc")); diff --git a/anda/langs/rust/rnote/rnote.spec b/anda/langs/rust/rnote/rnote.spec index 76092a65d4..780f004ca6 100644 --- a/anda/langs/rust/rnote/rnote.spec +++ b/anda/langs/rust/rnote/rnote.spec @@ -1,8 +1,8 @@ %global rustflags_debuginfo 1 Name: rnote -Version: 0.13.1 -Release: 1%?dist +Version: 0.14.2 +Release: 1%{?dist} Summary: Sketch and take handwritten notes License: GPL-3.0 URL: https://github.com/flxzt/rnote diff --git a/anda/langs/rust/starship/rust-starship.spec b/anda/langs/rust/starship/rust-starship.spec index 46bd1c6f04..ea49b6f1b1 100644 --- a/anda/langs/rust/starship/rust-starship.spec +++ b/anda/langs/rust/starship/rust-starship.spec @@ -4,15 +4,13 @@ %global crate starship Name: rust-starship -Version: 1.24.0 -Release: 1%?dist +Version: 1.25.1 +Release: 1%{?dist} Summary: Minimal, blazing-fast, and infinitely customizable prompt for any shell! ☄🌌️ License: ISC URL: https://crates.io/crates/starship Source: %{crates_source} -# Automatically generated patch to strip dependencies and normalize metadata -Patch: starship-fix-metadata-auto.diff BuildRequires: cargo-rpm-macros >= 24 BuildRequires: anda-srpm-macros diff --git a/anda/langs/rust/starship/starship-fix-metadata-auto.diff b/anda/langs/rust/starship/starship-fix-metadata-auto.diff deleted file mode 100644 index ce9f689d72..0000000000 --- a/anda/langs/rust/starship/starship-fix-metadata-auto.diff +++ /dev/null @@ -1,29 +0,0 @@ ---- a/Cargo.toml 2025-04-27 10:52:14.000000000 -0500 -+++ b/Cargo.toml 2025-04-27 12:39:59.385400385 -0500 -@@ -265,22 +265,6 @@ - ] - default-features = false - --[target."cfg(windows)".dependencies.deelevate] --version = "0.2.0" -- --[target."cfg(windows)".dependencies.windows] --version = "0.61.0" --features = [ -- "Win32_Foundation", -- "Win32_UI_Shell", -- "Win32_Security", -- "Win32_System_Threading", -- "Win32_Storage_FileSystem", --] -- --[target."cfg(windows)".build-dependencies.winres] --version = "0.1.12" -- - [profile.bench] - lto = "thin" - codegen-units = 16 - [dev-dependencies] - mockall = "0.13.1" - tempfile = "3.19.1" - diff --git a/anda/langs/rust/tectonic/rust-tectonic.spec b/anda/langs/rust/tectonic/rust-tectonic.spec index 580e87869b..4aa91177f7 100644 --- a/anda/langs/rust/tectonic/rust-tectonic.spec +++ b/anda/langs/rust/tectonic/rust-tectonic.spec @@ -4,7 +4,7 @@ %global crate tectonic Name: rust-tectonic -Version: 0.15.0 +Version: 0.16.9 Release: 1%{?dist} Summary: Modernized, complete, embeddable TeX/LaTeX engine diff --git a/anda/langs/rust/television/rust-television.spec b/anda/langs/rust/television/rust-television.spec index 99e4a1d967..ea50d847ef 100644 --- a/anda/langs/rust/television/rust-television.spec +++ b/anda/langs/rust/television/rust-television.spec @@ -1,13 +1,13 @@ -# Generated by rust2rpm 27 +# Generated by rust2rpm 28 %bcond check 1 %global __brp_mangle_shebangs_exclude_from ^/usr/src/.*$ %global crate television Name: rust-television -Version: 0.13.7 -Release: 1%?dist -Summary: Cross-platform, fast and extensible general purpose fuzzy finder TUI +Version: 0.15.6 +Release: 1%{?dist} +Summary: Very fast, portable and hackable fuzzy finder for the terminal License: MIT URL: https://crates.io/crates/television @@ -18,13 +18,13 @@ Patch: television-fix-metadata-auto.diff BuildRequires: cargo-rpm-macros >= 24 %global _description %{expand: -Cross-platform, fast and extensible general purpose fuzzy finder TUI.} +A very fast, portable and hackable fuzzy finder for the terminal.} %description %{_description} %package -n %{crate} Summary: %{summary} -License: (0BSD OR MIT OR Apache-2.0) AND Apache-2.0 AND (Apache-2.0 AND ISC) 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-3-Clause 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 Zlib OR Apache-2.0) AND MPL-2.0 AND (Unlicense OR MIT) AND Zlib +License: (0BSD OR MIT OR Apache-2.0) AND Apache-2.0 AND (Apache-2.0 AND ISC) 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-3-Clause 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 Zlib OR Apache-2.0) AND MPL-2.0 AND (Unlicense OR MIT) AND Zlib AND (Zlib OR Apache-2.0 OR MIT) # LICENSE.dependencies contains a full license breakdown %description -n %{crate} %{_description} diff --git a/anda/langs/rust/television/television-fix-metadata-auto.diff b/anda/langs/rust/television/television-fix-metadata-auto.diff index e330561bec..3d288f888a 100644 --- a/anda/langs/rust/television/television-fix-metadata-auto.diff +++ b/anda/langs/rust/television/television-fix-metadata-auto.diff @@ -1,9 +1,10 @@ ---- television-0.13.2/Cargo.toml 1970-01-01T00:00:01+00:00 -+++ television-0.13.2/Cargo.toml 2025-08-12T10:41:15.727396+00:00 -@@ -227,19 +227,6 @@ +--- television-0.14.4/Cargo.toml 1970-01-01T00:00:01+00:00 ++++ television-0.14.4/Cargo.toml 2026-01-04T18:45:00.790925+00:00 +@@ -251,19 +251,6 @@ + [target.'cfg(not(target_os = "macos"))'.dependencies.crossterm] version = "0.28" features = ["serde"] - +- -[target.'cfg(target_os = "macos")'.dependencies.crossterm] -version = "0.28.1" -features = [ @@ -16,12 +17,11 @@ - -[target."cfg(windows)".dependencies.winapi-util] -version = "0.1.9" -- + [lints.clippy] cast_precision_loss = "allow" - float_cmp = "allow" -@@ -277,3 +264,4 @@ +@@ -301,3 +288,4 @@ + opt-level = 3 lto = false - debug = 2 - inherits = "dev" + inherits = "release" + diff --git a/anda/langs/rust/typst/rust-typst.spec b/anda/langs/rust/typst/rust-typst.spec index 52f3202f05..082e2be580 100644 --- a/anda/langs/rust/typst/rust-typst.spec +++ b/anda/langs/rust/typst/rust-typst.spec @@ -4,7 +4,7 @@ %global crate typst Name: rust-typst -Version: 0.14.0 +Version: 0.14.2 Release: 1%?dist Summary: New markup-based typesetting system that is powerful and easy to learn @@ -35,8 +35,10 @@ Provides: %crate-cli = %version-%release %doc README.md %_bindir/typst %_mandir/man1/typst-compile.1.gz +%_mandir/man1/typst-completions.1.gz %_mandir/man1/typst-fonts.1.gz %_mandir/man1/typst-init.1.gz +%_mandir/man1/typst-info.1.gz %_mandir/man1/typst-query.1.gz %_mandir/man1/typst-update.1.gz %_mandir/man1/typst-watch.1.gz diff --git a/anda/langs/rust/typstyle/anda.hcl b/anda/langs/rust/typstyle/anda.hcl new file mode 100644 index 0000000000..8ac84d9503 --- /dev/null +++ b/anda/langs/rust/typstyle/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "rust-typstyle.spec" + } +} diff --git a/anda/langs/rust/typstyle/rust-typstyle.spec b/anda/langs/rust/typstyle/rust-typstyle.spec new file mode 100644 index 0000000000..85fb40af4b --- /dev/null +++ b/anda/langs/rust/typstyle/rust-typstyle.spec @@ -0,0 +1,64 @@ +# Generated by rust2rpm 27 +%bcond check 1 + +%global crate typstyle + +Name: rust-typstyle +Version: 0.14.4 +Release: 1%?dist +Summary: CLI for Typstyle + +License: Apache-2.0 +URL: https://crates.io/crates/typstyle +Source: %{crates_source} +Source1: https://raw.githubusercontent.com/typstyle-rs/typstyle/v%{version}/LICENSE +Packager: metcya + +BuildRequires: anda-srpm-macros rust-packaging >= 24 mold + +%global _description %{expand: +The CLI for Typstyle.} + +%description %{_description} + +%package -n %{crate} +Summary: %{summary} +License: Apache-2.0 + +%description -n %{crate} %{_description} + +%files -n %{crate} +%license LICENSE +%license LICENSE.dependencies +%doc README.md +%{_bindir}/typstyle + +%pkg_completion -Bzfn %{crate} + +%prep +%autosetup -n %{crate}-%{version} -p1 +cp %{S:1} LICENSE +%cargo_prep_online + +%build +%{cargo_license_summary_online} +%{cargo_license_online} > LICENSE.dependencies +%cargo_build +mkdir -p completions +for shell in bash zsh fish; do + target/rpm/%{crate} completions $shell > completions/%{crate}-completion.$shell +done + +%install +%crate_install_bin +install -Dm644 "completions/%{crate}-completion.bash" "%{buildroot}/%{bash_completions_dir}/%{crate}" +install -Dm644 "completions/%{crate}-completion.zsh" "%{buildroot}/%{zsh_completions_dir}/_%{crate}" +install -Dm644 "completions/%{crate}-completion.fish" "%{buildroot}/%{fish_completions_dir}/%{crate}.fish" + +%if %{with check} +%check +%cargo_test +%endif + +%changelog +%autochangelog diff --git a/anda/langs/rust/typstyle/update.rhai b/anda/langs/rust/typstyle/update.rhai new file mode 100644 index 0000000000..c6e814f121 --- /dev/null +++ b/anda/langs/rust/typstyle/update.rhai @@ -0,0 +1 @@ +rpm.version(crates("typstyle")); diff --git a/anda/langs/rust/usage/rust-usage-cli.spec b/anda/langs/rust/usage/rust-usage-cli.spec index c6d2d17c85..535a49ba9d 100644 --- a/anda/langs/rust/usage/rust-usage-cli.spec +++ b/anda/langs/rust/usage/rust-usage-cli.spec @@ -4,8 +4,8 @@ %global crate usage-cli Name: rust-usage-cli -Version: 2.5.1 -Release: 1%?dist +Version: 3.3.0 +Release: 1%{?dist} Summary: CLI for working with usage-based CLIs License: MIT diff --git a/anda/langs/rust/wild/rust-wild-linker.spec b/anda/langs/rust/wild/rust-wild-linker.spec index 66e4202223..296e08539e 100644 --- a/anda/langs/rust/wild/rust-wild-linker.spec +++ b/anda/langs/rust/wild/rust-wild-linker.spec @@ -4,7 +4,7 @@ %global crate wild-linker Name: rust-wild-linker -Version: 0.6.0 +Version: 0.8.0 Release: 1%?dist Summary: Very fast linker for Linux diff --git a/anda/langs/rust/xplr/rust-xplr.spec b/anda/langs/rust/xplr/rust-xplr.spec index bd5aa919a0..8c56a06815 100644 --- a/anda/langs/rust/xplr/rust-xplr.spec +++ b/anda/langs/rust/xplr/rust-xplr.spec @@ -4,7 +4,7 @@ %global crate xplr Name: rust-xplr -Version: 1.0.1 +Version: 1.1.0 Release: 1%?dist Summary: Hackable, minimal, fast TUI file explorer diff --git a/anda/langs/rust/xwayland-satellite/anda.hcl b/anda/langs/rust/xwayland-satellite/anda.hcl deleted file mode 100644 index 08be56162c..0000000000 --- a/anda/langs/rust/xwayland-satellite/anda.hcl +++ /dev/null @@ -1,5 +0,0 @@ -project pkg { - rpm { - spec = "xwayland-satellite.spec" - } -} diff --git a/anda/langs/rust/xwayland-satellite/update.rhai b/anda/langs/rust/xwayland-satellite/update.rhai deleted file mode 100644 index ea68a4030a..0000000000 --- a/anda/langs/rust/xwayland-satellite/update.rhai +++ /dev/null @@ -1 +0,0 @@ -rpm.version(gh("supreeeme/xwayland-satellite")); diff --git a/anda/langs/rust/xwayland-satellite/xwayland-satellite.spec b/anda/langs/rust/xwayland-satellite/xwayland-satellite.spec deleted file mode 100644 index 69dfaf030e..0000000000 --- a/anda/langs/rust/xwayland-satellite/xwayland-satellite.spec +++ /dev/null @@ -1,32 +0,0 @@ -Name: xwayland-satellite -Version: 0.7 -Release: 1%?dist -Summary: Xwayland outside your Wayland. -License: MPL-2.0 -URL: https://github.com/supreeeme/xwayland-satellite -Source0: %url/archive/refs/tags/v%version.tar.gz -BuildRequires: anda-srpm-macros cargo-rpm-macros mold -BuildRequires: pkgconfig(xcb) -BuildRequires: xcb-util-cursor-devel -BuildRequires: clang-devel - -%description -xwayland-satellite grants rootless Xwayland integration to any Wayland -compositor implementing xdg_wm_base. This is particularly useful for -compositors that (understandably) do not want to go through implementing -support for rootless Xwayland themselves. - -%prep -%autosetup -%cargo_prep_online - -%build -%cargo_build - -%install -%cargo_install - -%files -%doc README.md -%license LICENSE -%_bindir/xwayland-satellite diff --git a/anda/langs/rust/yazi/anda.hcl b/anda/langs/rust/yazi/anda.hcl new file mode 100644 index 0000000000..0e58ee86cf --- /dev/null +++ b/anda/langs/rust/yazi/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "yazi.spec" + } +} diff --git a/anda/langs/rust/yazi/update.rhai b/anda/langs/rust/yazi/update.rhai new file mode 100644 index 0000000000..692f19ffed --- /dev/null +++ b/anda/langs/rust/yazi/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("sxyazi/yazi")); diff --git a/anda/langs/rust/yazi/yazi.spec b/anda/langs/rust/yazi/yazi.spec new file mode 100644 index 0000000000..a1c4e59321 --- /dev/null +++ b/anda/langs/rust/yazi/yazi.spec @@ -0,0 +1,58 @@ +%undefine __brp_mangle_shebangs + +Name: yazi +Version: 26.5.6 +Release: 1%{?dist} +Summary: Blazing fast terminal file manager written in Rust, based on async I/O +URL: https://yazi-rs.github.io/ +Source0: https://github.com/sxyazi/yazi/archive/refs/tags/v%version.tar.gz +License: MIT AND (MIT OR Apache-2.0) AND NCSA AND Unicode-3.0 AND (0BSD OR MIT OR Apache-2.0) AND Apache-2.0 AND ISC AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND BSD-2-Clause AND BSD-3-Clause AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND (BSD-3-Clause OR Apache-2.0) AND BSL-1.0 AND CC0-1.0 AND (CC0-1.0 OR Apache-2.0) AND ISC AND (MIT OR Apache-2.0 OR BSD-1-Clause) AND (MIT OR Apache-2.0 OR CC0-1.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 (Unlicense OR MIT) AND Zlib AND (Zlib OR Apache-2.0 OR MIT) +BuildRequires: cargo anda-srpm-macros cargo-rpm-macros mold + +Packager: Owen Zimmerman + +%description +Yazi (means "duck") is a terminal file manager written in Rust, based on non-blocking async I/O. It aims to provide an efficient, user-friendly, and customizable file management experience. + +A new article explaining its internal workings: Why is Yazi Fast? + +- Full Asynchronous Support: All I/O operations are asynchronous, CPU tasks are spread across multiple threads, making the most of available resources. +- Powerful Async Task Scheduling and Management: Provides real-time progress updates, task cancellation, and internal task priority assignment. +- Built-in Support for Multiple Image Protocols: Also integrated with Überzug++ and Chafa, covering almost all terminals. +- Built-in Code Highlighting and Image Decoding: Combined with the pre-loading mechanism, greatly accelerates image and normal file loading. +- Concurrent Plugin System: UI plugins (rewriting most of the UI), functional plugins, custom previewer/preloader/spotter/fetcher; Just some pieces of Lua. +- Data Distribution Service: Built on a client-server architecture (no additional server process required), integrated with a Lua-based publish-subscribe model, achieving cross-instance communication and state persistence. +- Package Manager: Install plugins and themes with one command, keeping them up-to-date, or pin them to a specific version. +- Integration with ripgrep, fd, fzf, zoxide +- Vim-like input/pick/confirm/which/notify component, auto-completion for cd paths +- Multi-Tab Support, Cross-directory selection, Scrollable Preview (for videos, PDFs, archives, code, directories, etc.) +- Bulk Renaming, Archive Extraction, Visual Mode, File Chooser, Git Integration, Mount Manager +- Theme System, Mouse Support, Trash Bin, Custom Layouts, Virtual Filesystem, CSI u, OSC 52 +... and more! + + +%prep +%autosetup +%cargo_prep_online + +%build +%cargo_build + +%install +install -Dm755 target/rpm/ya %{buildroot}%{_bindir}/ya +install -Dm755 target/rpm/yazi %{buildroot}%{_bindir}/yazi +install -Dm644 assets/logo.png %{buildroot}%{_hicolordir}/1024x1024/apps/yazi.png +install -Dm644 assets/yazi.desktop %{buildroot}%{_appsdir}/yazi.desktop +%{cargo_license_online} > LICENSE.dependencies + +%files +%license LICENSE LICENSE-ICONS LICENSE.dependencies +%doc README.md CODE_OF_CONDUCT.md CONTRIBUTING.md +%{_bindir}/ya +%{_bindir}/yazi +%{_hicolordir}/1024x1024/apps/yazi.png +%{_appsdir}/yazi.desktop + +%changelog +* Sat Dec 27 2025 Owen Zimmerman +- Initial commit diff --git a/anda/langs/rust/youki/youki.spec b/anda/langs/rust/youki/youki.spec index 75cb7b5f4b..a028615cff 100644 --- a/anda/langs/rust/youki/youki.spec +++ b/anda/langs/rust/youki/youki.spec @@ -1,5 +1,5 @@ Name: youki -Version: 0.5.5 +Version: 0.6.0 Release: 1%?dist Summary: A container runtime written in Rust diff --git a/anda/langs/rust/zellij/rust-zellij.spec b/anda/langs/rust/zellij/rust-zellij.spec index a5d0da32c4..498f8f3980 100644 --- a/anda/langs/rust/zellij/rust-zellij.spec +++ b/anda/langs/rust/zellij/rust-zellij.spec @@ -5,8 +5,8 @@ %global crate zellij Name: rust-zellij -Version: 0.43.1 -Release: 1%?dist +Version: 0.44.2 +Release: 1%{?dist} Summary: Terminal workspace with batteries included License: MIT diff --git a/anda/langs/rust/zoi/rust-zoi-rs.spec b/anda/langs/rust/zoi/rust-zoi-rs.spec index 9e0b13ee0b..21379839cf 100644 --- a/anda/langs/rust/zoi/rust-zoi-rs.spec +++ b/anda/langs/rust/zoi/rust-zoi-rs.spec @@ -1,7 +1,7 @@ %define __brp_mangle_shebangs_exclude_from ^/usr/src/.*$ %global crate zoi-rs -%global crate_version 1.2.1 +%global crate_version 1.11.0 Name: rust-zoi-rs Version: %(echo %crate_version | sed 's/-/~/g') @@ -14,25 +14,27 @@ Source: %{crates_source %{crate} %{crate_version}} # Automatically generated patch to strip dependencies and normalize metadata Patch: zoi-rs-fix-metadata-auto.diff BuildRequires: cargo +BuildRequires: gcc-c++ BuildRequires: rpm_macro(cargo_install) BuildRequires: pkgconfig(openssl) BuildRequires: perl(FindBin) BuildRequires: perl(IPC::Cmd) BuildRequires: perl(File::Compare) BuildRequires: perl(File::Copy) +BuildRequires: perl(lib) +BuildRequires: perl(Time::Piece) Packager: madonuko %global _description %{expand: -Zoi is a universal package manager and environment setup tool, designed to simplify package management and environment configuration across multiple operating systems.} +Universal Package Manager & Environment Setup Tool.} -%description %_description +%description %{_description} %package -n %{crate} Summary: %{summary} License: ((Apache-2.0 OR MIT) AND BSD-3-Clause) AND (0BSD OR MIT OR Apache-2.0) AND Apache-2.0 AND (Apache-2.0 AND ISC) 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 AND BSD-3-Clause AND BSL-1.0 AND CDLA-Permissive-2.0 AND ISC AND LGPL-2.0-or-later AND MIT AND (MIT OR Apache-2.0) AND (MIT OR Apache-2.0 OR LGPL-2.1-or-later) AND (MIT OR Zlib OR Apache-2.0) AND MPL-2.0 AND MPL-2.0+ AND Unicode-3.0 AND (Unlicense OR MIT) AND Zlib # LICENSE.dependencies contains a full license breakdown Provides: zoi = %evr -Provides: zoi.prod.beta = %evr Requires: git %description -n %{crate} %{_description} @@ -40,8 +42,11 @@ Requires: git %files -n %{crate} %license LICENSE %license LICENSE.dependencies +%doc CHANGELOG.md %doc CODE_OF_CONDUCT.md +%doc PACKAGING.md %doc README.md +%doc RELEASE.md %doc SECURITY.md %{_bindir}/zoi @@ -58,8 +63,11 @@ use the "%{crate}" crate. %files devel %license %{crate_instdir}/LICENSE +%doc %{crate_instdir}/CHANGELOG.md %doc %{crate_instdir}/CODE_OF_CONDUCT.md +%doc %{crate_instdir}/PACKAGING.md %doc %{crate_instdir}/README.md +%doc %{crate_instdir}/RELEASE.md %doc %{crate_instdir}/SECURITY.md %{crate_instdir}/ @@ -75,7 +83,6 @@ use the "default" feature of the "%{crate}" crate. %files -n %{name}+default-devel %ghost %{crate_instdir}/Cargo.toml - %prep %autosetup -n %{crate}-%{crate_version} %cargo_prep_online diff --git a/anda/langs/rust/zoi/zoi-rs-fix-metadata-auto.diff b/anda/langs/rust/zoi/zoi-rs-fix-metadata-auto.diff index 54fe0a3877..1d59e54d5b 100644 --- a/anda/langs/rust/zoi/zoi-rs-fix-metadata-auto.diff +++ b/anda/langs/rust/zoi/zoi-rs-fix-metadata-auto.diff @@ -1,6 +1,6 @@ ---- zoi-rs-4.3.7-beta/Cargo.toml 1970-01-01T00:00:01+00:00 -+++ zoi-rs-4.3.7-beta/Cargo.toml 2025-09-01T17:17:19.316000+00:00 -@@ -200,8 +200,6 @@ +--- zoi-rs-1.3.1/Cargo.toml 1970-01-01T00:00:01+00:00 ++++ zoi-rs-1.3.1/Cargo.toml 2025-10-31T16:56:25.441725+00:00 +@@ -223,9 +223,7 @@ [build-dependencies.dotenvy] version = "0.15.7" @@ -9,4 +9,5 @@ - [lints.clippy] too_many_arguments = "allow" + type_complexity = "allow" + diff --git a/anda/langs/vala/vala-lint-nightly/vala-lint-nightly.spec b/anda/langs/vala/vala-lint-nightly/vala-lint-nightly.spec index c1d4c11cd7..e0c155982b 100644 --- a/anda/langs/vala/vala-lint-nightly/vala-lint-nightly.spec +++ b/anda/langs/vala/vala-lint-nightly/vala-lint-nightly.spec @@ -1,9 +1,9 @@ %global real_name vala-lint -%global commit a1d1a7bc0f740920e592fd788a836c402fd9825c +%global commit 28dbf44dd2c5ec2fc7273982d35ff8cb0ef46283 %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commit_date 20250804 +%global commit_date 20260224 %global snapshot_info %{commit_date}.%{shortcommit} Name: vala-lint-nightly diff --git a/anda/langs/vala/vala-nightly/vala-nightly.spec b/anda/langs/vala/vala-nightly/vala-nightly.spec index ee4f5b948d..a6caeb9216 100644 --- a/anda/langs/vala/vala-nightly/vala-nightly.spec +++ b/anda/langs/vala/vala-nightly/vala-nightly.spec @@ -3,16 +3,16 @@ %global priority 90 %global real_name vala -%global commit d680994c54dd34b8bd3bd808f0023be19ea647da +%global commit a3e522fdef952cb4449e51b1bc00316186b47a5e %global shortcommit %(c=%{commit}; echo ${c:0:7}) %global repo https://gitlab.gnome.org/GNOME/%{real_name}.git -%global commit_date 20250903 +%global commit_date 20260417 %global snapshot_info %{commit_date}.%{shortcommit} Name: vala-nightly Version: 0.58.0^%{snapshot_info} -Release: 1%?dist +Release: 1%{?dist} Summary: A modern programming language for GNOME # Most files are LGPLv2.1+, curses.vapi is 2-clause BSD @@ -138,12 +138,15 @@ cd %{real_name}-%{commit} git checkout %{commit} -%build +%conf cd %{real_name}-%{commit} ./autogen.sh --help %configure # Don't use rpath! sed -i 's|/lib /usr/lib|/lib /usr/lib /lib64 /usr/lib64|' libtool + +%build +cd %{real_name}-%{commit} %make_build %install diff --git a/anda/langs/vala/vala-panel-appmenu/vala-panel-appmenu.spec b/anda/langs/vala/vala-panel-appmenu/vala-panel-appmenu.spec index 2c668bb758..cf9bdd9990 100644 --- a/anda/langs/vala/vala-panel-appmenu/vala-panel-appmenu.spec +++ b/anda/langs/vala/vala-panel-appmenu/vala-panel-appmenu.spec @@ -1,5 +1,5 @@ %global forgeurl https://gitlab.com/vala-panel-project/vala-panel-appmenu -%global commit 6665f7708ef15baa5538f5582b81ceb75a104a24 +%global commit aea4ea398b7c75494f23f5e5bdb4f495d615059f %forgemeta Name: vala-panel-appmenu diff --git a/anda/langs/zig/bootstrap/.gitignore b/anda/langs/zig/bootstrap/.gitignore new file mode 100644 index 0000000000..8a0be3c23b --- /dev/null +++ b/anda/langs/zig/bootstrap/.gitignore @@ -0,0 +1,2 @@ +*.tar.xz +*.tar.xz.minisig diff --git a/anda/langs/zig/bootstrap/0000-remove-native-lib-directories-from-rpath.patch b/anda/langs/zig/bootstrap/0000-remove-native-lib-directories-from-rpath.patch index 1e1c1f1709..24db5827b6 100644 --- a/anda/langs/zig/bootstrap/0000-remove-native-lib-directories-from-rpath.patch +++ b/anda/langs/zig/bootstrap/0000-remove-native-lib-directories-from-rpath.patch @@ -1,9 +1,21 @@ ---- a/src/main.zig 2025-04-25 06:01:31.337458939 -0500 -+++ b/src/main.zig 2025-04-25 06:03:02.239473385 -0500 -@@ -4072,6 +4072,15 @@ +From a865b3569ace118cc1c1cd8d5d130ec316b0307d Mon Sep 17 00:00:00 2001 +From: Jan200101 +Date: Tue, 14 Apr 2026 19:04:40 +0200 +Subject: [PATCH 1/2] remove native lib directories from rpath + +Signed-off-by: Jan200101 +--- + src/main.zig | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/src/main.zig b/src/main.zig +index 0395a21a5f..86b6d9f86b 100644 +--- a/src/main.zig ++++ b/src/main.zig +@@ -4102,6 +4102,15 @@ fn createModule( try create_module.lib_directories.ensureUnusedCapacity(arena, paths.lib_dirs.items.len); - for (paths.lib_dirs.items) |path| addLibDirectoryWarn2(&create_module.lib_directories, path, true); + for (paths.lib_dirs.items) |path| addLibDirectoryWarn2(io, &create_module.lib_directories, path, true); + + for (paths.lib_dirs.items) |native_lib_dir| { + for (0.., create_module.rpath_list.items) |i, rpath_dir| { @@ -16,3 +28,6 @@ } if (create_module.libc_paths_file) |paths_file| { +-- +2.53.0 + diff --git a/anda/langs/zig/bootstrap/0001-Remove-unsupported-LLVM-targets-for-EPEL.patch b/anda/langs/zig/bootstrap/0001-Remove-unsupported-LLVM-targets-for-EPEL.patch new file mode 100644 index 0000000000..a8b942f129 --- /dev/null +++ b/anda/langs/zig/bootstrap/0001-Remove-unsupported-LLVM-targets-for-EPEL.patch @@ -0,0 +1,254 @@ +From 803935baf6a4730426afbb746adfd00c0ffc0f39 Mon Sep 17 00:00:00 2001 +From: Jan200101 +Date: Tue, 14 Apr 2026 19:20:26 +0200 +Subject: [PATCH 2/2] Remove unsupported LLVM targets for RHEL + +LLVM for RHEL is only build with a subset of targets +this blocks zig at the configuration stage. +This commit simply swaps them out with the one from +https://src.fedoraproject.org/rpms/llvm/blob/rawhide/f/llvm.spec + +Signed-off-by: Jan200101 +--- + cmake/Findllvm.cmake | 2 +- + src/codegen/llvm.zig | 97 ++++++++++---------------------------------- + src/target.zig | 43 +++++++++++--------- + 3 files changed, 45 insertions(+), 97 deletions(-) + +diff --git a/cmake/Findllvm.cmake b/cmake/Findllvm.cmake +index 0c08d4f0ac..ed4da12044 100644 +--- a/cmake/Findllvm.cmake ++++ b/cmake/Findllvm.cmake +@@ -83,7 +83,7 @@ if(ZIG_USE_LLVM_CONFIG) + OUTPUT_STRIP_TRAILING_WHITESPACE) + string(REPLACE " " ";" LLVM_TARGETS_BUILT "${LLVM_TARGETS_BUILT_SPACES}") + +- set(ZIG_LLVM_REQUIRED_TARGETS "AArch64;AMDGPU;ARM;AVR;BPF;Hexagon;Lanai;LoongArch;Mips;MSP430;NVPTX;PowerPC;RISCV;SPIRV;Sparc;SystemZ;VE;WebAssembly;X86;XCore") ++ set(ZIG_LLVM_REQUIRED_TARGETS "X86;AMDGPU;PowerPC;NVPTX;SystemZ;AArch64;BPF;WebAssembly;RISCV") + + set(ZIG_LLVM_REQUIRED_TARGETS_ENABLED TRUE) + foreach(TARGET_NAME IN LISTS ZIG_LLVM_REQUIRED_TARGETS) +diff --git a/src/codegen/llvm.zig b/src/codegen/llvm.zig +index 1ba3b272da..1ac1f6adc8 100644 +--- a/src/codegen/llvm.zig ++++ b/src/codegen/llvm.zig +@@ -4736,20 +4736,6 @@ pub fn initializeLLVMTarget(arch: std.Target.Cpu.Arch) void { + bindings.LLVMInitializeAMDGPUAsmPrinter(); + bindings.LLVMInitializeAMDGPUAsmParser(); + }, +- .thumb, .thumbeb, .arm, .armeb => { +- bindings.LLVMInitializeARMTarget(); +- bindings.LLVMInitializeARMTargetInfo(); +- bindings.LLVMInitializeARMTargetMC(); +- bindings.LLVMInitializeARMAsmPrinter(); +- bindings.LLVMInitializeARMAsmParser(); +- }, +- .avr => { +- bindings.LLVMInitializeAVRTarget(); +- bindings.LLVMInitializeAVRTargetInfo(); +- bindings.LLVMInitializeAVRTargetMC(); +- bindings.LLVMInitializeAVRAsmPrinter(); +- bindings.LLVMInitializeAVRAsmParser(); +- }, + .bpfel, .bpfeb => { + bindings.LLVMInitializeBPFTarget(); + bindings.LLVMInitializeBPFTargetInfo(); +@@ -4757,34 +4743,6 @@ pub fn initializeLLVMTarget(arch: std.Target.Cpu.Arch) void { + bindings.LLVMInitializeBPFAsmPrinter(); + bindings.LLVMInitializeBPFAsmParser(); + }, +- .hexagon => { +- bindings.LLVMInitializeHexagonTarget(); +- bindings.LLVMInitializeHexagonTargetInfo(); +- bindings.LLVMInitializeHexagonTargetMC(); +- bindings.LLVMInitializeHexagonAsmPrinter(); +- bindings.LLVMInitializeHexagonAsmParser(); +- }, +- .lanai => { +- bindings.LLVMInitializeLanaiTarget(); +- bindings.LLVMInitializeLanaiTargetInfo(); +- bindings.LLVMInitializeLanaiTargetMC(); +- bindings.LLVMInitializeLanaiAsmPrinter(); +- bindings.LLVMInitializeLanaiAsmParser(); +- }, +- .mips, .mipsel, .mips64, .mips64el => { +- bindings.LLVMInitializeMipsTarget(); +- bindings.LLVMInitializeMipsTargetInfo(); +- bindings.LLVMInitializeMipsTargetMC(); +- bindings.LLVMInitializeMipsAsmPrinter(); +- bindings.LLVMInitializeMipsAsmParser(); +- }, +- .msp430 => { +- bindings.LLVMInitializeMSP430Target(); +- bindings.LLVMInitializeMSP430TargetInfo(); +- bindings.LLVMInitializeMSP430TargetMC(); +- bindings.LLVMInitializeMSP430AsmPrinter(); +- bindings.LLVMInitializeMSP430AsmParser(); +- }, + .nvptx, .nvptx64 => { + bindings.LLVMInitializeNVPTXTarget(); + bindings.LLVMInitializeNVPTXTargetInfo(); +@@ -4806,13 +4764,6 @@ pub fn initializeLLVMTarget(arch: std.Target.Cpu.Arch) void { + bindings.LLVMInitializeRISCVAsmPrinter(); + bindings.LLVMInitializeRISCVAsmParser(); + }, +- .sparc, .sparc64 => { +- bindings.LLVMInitializeSparcTarget(); +- bindings.LLVMInitializeSparcTargetInfo(); +- bindings.LLVMInitializeSparcTargetMC(); +- bindings.LLVMInitializeSparcAsmPrinter(); +- bindings.LLVMInitializeSparcAsmParser(); +- }, + .s390x => { + bindings.LLVMInitializeSystemZTarget(); + bindings.LLVMInitializeSystemZTargetInfo(); +@@ -4843,13 +4794,6 @@ pub fn initializeLLVMTarget(arch: std.Target.Cpu.Arch) void { + bindings.LLVMInitializeXtensaAsmParser(); + } + }, +- .xcore => { +- bindings.LLVMInitializeXCoreTarget(); +- bindings.LLVMInitializeXCoreTargetInfo(); +- bindings.LLVMInitializeXCoreTargetMC(); +- bindings.LLVMInitializeXCoreAsmPrinter(); +- // There is no LLVMInitializeXCoreAsmParser function. +- }, + .m68k => { + if (build_options.llvm_has_m68k) { + bindings.LLVMInitializeM68kTarget(); +@@ -4868,13 +4812,6 @@ pub fn initializeLLVMTarget(arch: std.Target.Cpu.Arch) void { + bindings.LLVMInitializeCSKYAsmParser(); + } + }, +- .ve => { +- bindings.LLVMInitializeVETarget(); +- bindings.LLVMInitializeVETargetInfo(); +- bindings.LLVMInitializeVETargetMC(); +- bindings.LLVMInitializeVEAsmPrinter(); +- bindings.LLVMInitializeVEAsmParser(); +- }, + .arc => { + if (build_options.llvm_has_arc) { + bindings.LLVMInitializeARCTarget(); +@@ -4884,21 +4821,29 @@ pub fn initializeLLVMTarget(arch: std.Target.Cpu.Arch) void { + // There is no LLVMInitializeARCAsmParser function. + } + }, +- .loongarch32, .loongarch64 => { +- bindings.LLVMInitializeLoongArchTarget(); +- bindings.LLVMInitializeLoongArchTargetInfo(); +- bindings.LLVMInitializeLoongArchTargetMC(); +- bindings.LLVMInitializeLoongArchAsmPrinter(); +- bindings.LLVMInitializeLoongArchAsmParser(); +- }, ++ ++ // Disabled LLVM targets ++ .thumb, ++ .thumbeb, ++ .arm, ++ .armeb, ++ .avr, ++ .hexagon, ++ .lanai, ++ .mips, ++ .mipsel, ++ .mips64, ++ .mips64el, ++ .msp430, ++ .sparc, ++ .sparc64, ++ .xcore, ++ .ve, ++ .loongarch32, ++ .loongarch64, + .spirv32, + .spirv64, +- => { +- bindings.LLVMInitializeSPIRVTarget(); +- bindings.LLVMInitializeSPIRVTargetInfo(); +- bindings.LLVMInitializeSPIRVTargetMC(); +- bindings.LLVMInitializeSPIRVAsmPrinter(); +- }, ++ => unreachable, + + // LLVM does does not have a backend for these. + .alpha, +diff --git a/src/target.zig b/src/target.zig +index 3d04c06f5e..9e19836815 100644 +--- a/src/target.zig ++++ b/src/target.zig +@@ -185,23 +185,12 @@ pub fn hasLlvmSupport(target: *const std.Target, ofmt: std.Target.ObjectFormat) + } + + return switch (target.cpu.arch) { +- .arm, +- .armeb, + .aarch64, + .aarch64_be, + .arc, +- .avr, + .bpfel, + .bpfeb, +- .hexagon, +- .loongarch32, +- .loongarch64, + .m68k, +- .mips, +- .mipsel, +- .mips64, +- .mips64el, +- .msp430, + .powerpc, + .powerpcle, + .powerpc64, +@@ -211,24 +200,38 @@ pub fn hasLlvmSupport(target: *const std.Target, ofmt: std.Target.ObjectFormat) + .riscv32be, + .riscv64, + .riscv64be, +- .sparc, +- .sparc64, +- .spirv32, +- .spirv64, + .s390x, +- .thumb, +- .thumbeb, + .x86, + .x86_64, +- .xcore, + .nvptx, + .nvptx64, +- .lanai, + .wasm32, + .wasm64, +- .ve, + => true, + ++ // Disabled LLVM targets ++ .thumb, ++ .thumbeb, ++ .arm, ++ .armeb, ++ .avr, ++ .hexagon, ++ .lanai, ++ .mips, ++ .mipsel, ++ .mips64, ++ .mips64el, ++ .msp430, ++ .sparc, ++ .sparc64, ++ .xcore, ++ .ve, ++ .loongarch32, ++ .loongarch64, ++ .spirv32, ++ .spirv64, ++ => false, ++ + // LLVM backend exists but can produce neither assembly nor object files. + .csky, + .xtensa, +-- +2.53.0 + diff --git a/anda/langs/zig/bootstrap/0005-link.Elf-add-root-directory-of-libraries-to-linker-p.patch b/anda/langs/zig/bootstrap/0005-link.Elf-add-root-directory-of-libraries-to-linker-p.patch deleted file mode 100644 index d4dd5bb4eb..0000000000 --- a/anda/langs/zig/bootstrap/0005-link.Elf-add-root-directory-of-libraries-to-linker-p.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 1796a91063dc5ed71418f164bb7d98ca65c33d4a Mon Sep 17 00:00:00 2001 -From: Jan200101 -Date: Mon, 16 Jun 2025 20:46:25 +0200 -Subject: [PATCH] link.Elf: add root directory of libraries to linker path - -All the given dynamic shared objects will be linked with an absolute -path however they may link to other dynamic shared objects which won't -have an absolute path, for this we need to add the library path so that -lld can resolve it. - -Signed-off-by: Jan200101 ---- - src/link/Lld.zig | 12 +++++++++++- - 1 file changed, 11 insertions(+), 1 deletion(-) - -diff --git a/src/link/Lld.zig b/src/link/Lld.zig -index 4ea809428e..b8421dd60a 100644 ---- a/src/link/Lld.zig -+++ b/src/link/Lld.zig -@@ -1109,9 +1109,19 @@ fn elfLink(lld: *Lld, arena: Allocator) !void { - // Positional arguments to the linker such as object files. - var whole_archive = false; - -+ var lib_directories = std.StringArrayHashMap(void).init(gpa); -+ defer lib_directories.deinit(); -+ - for (base.comp.link_inputs) |link_input| switch (link_input) { - .res => unreachable, // Windows-only -- .dso => continue, -+ .dso => |dso| { -+ if (dso.path.root_dir.path) |root_dir| { -+ const lib_dir = try lib_directories.getOrPut(root_dir); -+ if (lib_dir.found_existing) continue; -+ try argv.append("-L"); -+ try argv.append(root_dir); -+ } -+ }, - .object, .archive => |obj| { - if (obj.must_link and !whole_archive) { - try argv.append("-whole-archive"); --- -2.49.0 - diff --git a/anda/langs/zig/bootstrap/pre.rhai b/anda/langs/zig/bootstrap/pre.rhai new file mode 100644 index 0000000000..edc85ef10e --- /dev/null +++ b/anda/langs/zig/bootstrap/pre.rhai @@ -0,0 +1,2 @@ +let dir = sub(`/[^/]+$`, "", __script_path); +sh(`./setup.sh fetch`, #{ "cwd": dir }); diff --git a/anda/langs/zig/bootstrap/setup.sh b/anda/langs/zig/bootstrap/setup.sh new file mode 100755 index 0000000000..a7dd2b6690 --- /dev/null +++ b/anda/langs/zig/bootstrap/setup.sh @@ -0,0 +1,36 @@ +#!/usr/bin/bash + +version=0.17.0-dev.261+3d1fb4fac + +mirrors=() + +for m in $(curl -s https://ziglang.org/download/community-mirrors.txt); do + mirrors+=($m) +done + + +# Self explanatory +function randomize_mirrors() { + number=${#mirrors[@]} + index=$(( RANDOM % number )) + mirror=${mirrors[$index]} +} + +if [ "$1" == "fetch" ]; then + until curl -If ${mirror}/zig-${version}.tar.xz &>/dev/null && curl -If ${mirror}/zig-${version}.tar.xz.minisig &>/dev/null; do + randomize_mirrors + done + echo -e "\033[0;32mNote:\033[0m Selected mirror $mirror" + curl -A "rpmdev-spectool" -H "Accept-Encoding: identity" -O ${mirror}/zig-${version}.tar.xz?source=terrapkg.com + curl -A "rpmdev-spectool" -H "Accept-Encoding: identity" -O ${mirror}/zig-${version}.tar.xz.minisig?source=terrapkg.com +elif [ "$1" == "version" ]; then + echo $version +# Grab a random mirror. For debugging purposes. +elif [ "$1" == "mirror" ]; then + randomize_mirrors + echo "Your random mirror is $mirror" +elif [ "$1" == "mirrors" ]; then + echo "$mirrors" +fi + +exit 0 diff --git a/anda/langs/zig/bootstrap/update.rhai b/anda/langs/zig/bootstrap/update.rhai index 4e64359f58..ddbcbc1d86 100644 --- a/anda/langs/zig/bootstrap/update.rhai +++ b/anda/langs/zig/bootstrap/update.rhai @@ -2,6 +2,16 @@ let url = `https://ziglang.org/download/index.json`; let json = get(url).json(); let v = json.master.version; rpm.global("ver", v); + if rpm.changed() { rpm.release(); + // Update the Zig version in the script + let dir = sub(`/[^/]+$`, "", __script_path); + sh(`sed -i 's|version=.*|version=${v}|' setup.sh`, #{ "cwd": dir }); + // Update the needed LLVM version + let rawfile = codeberg_rawfile("ziglang/zig", "master", "README.md"); + let l = find(`releases\.llvm\.org/download\.html#([\d.]+)`, rawfile, 1); + rpm.global("llvm_version", l); + l.truncate(2); + rpm.define("llvm_compat", l); } diff --git a/anda/langs/zig/bootstrap/zig-master-bootstrap.spec b/anda/langs/zig/bootstrap/zig-master-bootstrap.spec index 560a8f28e0..abf1a2f42e 100644 --- a/anda/langs/zig/bootstrap/zig-master-bootstrap.spec +++ b/anda/langs/zig/bootstrap/zig-master-bootstrap.spec @@ -2,15 +2,21 @@ %global zig_arches x86_64 aarch64 riscv64 %{mips64} # Signing key from https://ziglang.org/download/ %global public_key RWSGOq2NVecA2UPNdBUZykf1CCb147pkmdtYxgb3Ti+JO/wCYvhbAb/U -# Not needed yet -%if 0%{?fedora} >= 42 || 0%{?rhel} >= 9 -%define llvm_compat 20 +%if 0%{?fedora} >= 46 +%define llvm_compat 22 %endif -%global llvm_version 20.0.0 -%global ver 0.16.0-dev.747+493ad58ff +%global llvm_version 22.0.0 +%global ver 0.17.0-dev.261+3d1fb4fac %bcond bootstrap 1 %bcond docs %{without bootstrap} %bcond test 1 +# GCC < 16.0 miscompiles on RISC-V +%ifarch riscv64 +%if 0%{?fedora} < 44 +%global toolchain clang +%endif +%endif +%global archive_name zig-%{ver}.tar.xz %global zig_cache_dir %{builddir}/zig-cache %global zig_build_options %{shrink: \ --verbose \ @@ -36,26 +42,30 @@ %global zig_install_options %zig_build_options %{shrink: \ --prefix "%{_prefix}" \ } -%global zig_mirrors ("https://pkg.machengine.org/zig" "https://zigmirror.hryx.net/zig" "https://zig.linus.dev/zig" "https://zig.squirl.dev" "https://zig.florent.dev") -%global mirror_url %(mirrors=%{zig_mirrors}; index=$(( RANDOM % ${#mirrors[@]} )); echo ${mirrors[$index]}) -Name: zig-master-bootstrap +Name: zig-master Version: %(echo %{ver} | sed 's/-/~/g') -Release: 1%?dist -Summary: Boostrap builds for Zig. +Release: 1%{?dist} +Summary: Bootstrapped build of Zig from master. License: MIT AND NCSA AND LGPL-2.1-or-later AND LGPL-2.1-or-later WITH GCC-exception-2.0 AND GPL-2.0-or-later AND GPL-2.0-or-later WITH GCC-exception-2.0 AND BSD-3-Clause AND Inner-Net-2.0 AND ISC AND LicenseRef-Fedora-Public-Domain AND GFDL-1.1-or-later AND ZPL-2.1 URL: https://ziglang.org -Source0: %{mirror_url}/zig-%{ver}.tar.xz -Source1: %{mirror_url}/zig-%{ver}.tar.xz.minisig +Source0: %{archive_name} +Source1: %{archive_name}.minisig Patch0: 0000-remove-native-lib-directories-from-rpath.patch -Patch3: 0005-link.Elf-add-root-directory-of-libraries-to-linker-p.patch +%if %{defined rhel} +Patch1: 0001-Remove-unsupported-LLVM-targets-for-EPEL.patch +%endif BuildRequires: cmake +%if %["%{toolchain}" == "clang"] +BuildRequires: clang +%else BuildRequires: gcc BuildRequires: gcc-c++ +%endif BuildRequires: libxml2-devel -BuildRequires: llvm-devel -BuildRequires: clang-devel -BuildRequires: lld-devel +BuildRequires: llvm%{?llvm_compat}-devel +BuildRequires: clang%{?llvm_compat}-devel +BuildRequires: lld%{?llvm_compat}-devel BuildRequires: zlib-devel # for man page generation BuildRequires: help2man @@ -63,16 +73,19 @@ BuildRequires: help2man BuildRequires: minisign %if %{without bootstrap} BuildRequires: %{name} = %{version} +Obsoletes: %{name}-bootstrap < %{version} %endif %if %{with test} BuildRequires: elfutils-libelf-devel BuildRequires: libstdc++-static %endif +# For the version_no_tilde macro +BuildRequires: rust-srpm-macros Requires: %{name}-libs = %{version} # Apache-2.0 WITH LLVM-exception OR NCSA OR MIT Provides: bundled(compiler-rt) = %{llvm_version} # LGPL-2.1-or-later AND SunPro AND LGPL-2.1-or-later WITH GCC-exception-2.0 AND BSD-3-Clause AND GPL-2.0-or-later AND LGPL-2.1-or-later WITH GNU-compiler-exception AND GPL-2.0-only AND ISC AND LicenseRef-Fedora-Public-Domain AND HPND AND CMU-Mach AND LGPL-2.0-or-later AND Unicode-3.0 AND GFDL-1.1-or-later AND GPL-1.0-or-later AND FSFUL AND MIT AND Inner-Net-2.0 AND X11 AND GPL-2.0-or-later WITH GCC-exception-2.0 AND GFDL-1.3-only AND GFDL-1.1-only -Provides: bundled(glibc) = 2.41 +Provides: bundled(glibc) = 2.43 # Apache-2.0 WITH LLVM-exception OR MIT OR NCSA Provides: bundled(libcxx) = %{llvm_version} # Apache-2.0 WITH LLVM-exception OR MIT OR NCSA @@ -87,11 +100,11 @@ Provides: bundled(musl) = 1.2.5 Provides: bundled(wasi-libc) = d03829489904d38c624f6de9983190f1e5e7c9c5 Conflicts: zig ExclusiveArch: %{zig_arches} -Packager: Gilver E. +Packager: Gilver E. %description Zig is an open source alternative to C. -This package provides the bootstrap to build full "prerelease"/master builds of Zig. +This package provides the bootstrapped build to build full "prerelease"/master builds of Zig. It is not recommended to use this build on its own. # The Zig stdlib only contains uncompiled code @@ -104,14 +117,18 @@ BuildArch: noarch Zig Standard Library %prep -/usr/bin/minisign -V -m %{SOURCE0} -x %{SOURCE1} -P %{public_key} +/usr/bin/minisign -V -m %{SOURCE0} -x %{SOURCE1} -P %{public_key} | grep -F -C5 "file:%{archive_name}" || exit 1 %autosetup -p1 -n zig-%{ver} %if %{without bootstrap} # Ensure that the pre-build stage1 binary is not used rm -f stage1/zig1.wasm %endif -%build +%conf +# Force the correct LLVM version +%if %{defined llvm_compat} +export LLVM_DIR=%{_libdir}/llvm%{?llvm_compat}/%{_lib}/cmake +%endif # zig doesn't know how to dynamically link llvm on its own so we need cmake to generate a header ahead of time # if we provide the header we need to also build zigcpp @@ -122,7 +139,7 @@ rm -f stage1/zig1.wasm -DCMAKE_C_FLAGS_RELWITHDEBINFO:STRING="-DNDEBUG -Wno-unused" \ -DCMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING="-DNDEBUG -Wno-unused" \ \ - -DZIG_EXTRA_BUILD_ARGS:STRING="--verbose;--build-id=sha1" \ + -DZIG_EXTRA_BUILD_ARGS:STRING="--verbose;--build-id=sha1;-Dno-langref=true" \ -DZIG_SHARED_LLVM:BOOL=true \ -DZIG_PIE:BOOL=true \ \ @@ -131,6 +148,7 @@ rm -f stage1/zig1.wasm \ -DZIG_VERSION:STRING="%(v=%{ver}; echo ${v:0:6})" +%build %if %{with bootstrap} %cmake_build --target stage3 %else @@ -148,14 +166,16 @@ help2man --no-discard-stderr --no-info "./zig-out/bin/zig" --version-option=vers # Zig has an extremely annoying issue with transitive failures when trying to build the docs, retry until it succeeds max=3 attempt=1 -while ./zig-out/bin/zig build docs \ +while + ./zig-out/bin/zig build docs \ --verbose \ --global-cache-dir "%{zig_cache_dir}" \ - -Dversion-string="%(v=%{ver}; echo ${v:0:6})"; [[ $? -ne 0 ]]; + -Dversion-string="%(v=%{ver}; echo ${v:0:6})" + [[ $? != 0 ]] do - echo "Transitive failure. Trying again." + echo "Transitive failure. Trying again." >&2 - if [[ $attempt -eq $max ]] + if [[ $attempt == $max ]] then break fi @@ -198,6 +218,8 @@ install -Dpm644 zig.1 -t %{buildroot}%{_mandir}/man1/ %endif %changelog +* Mon Nov 24 2025 Gilver E. - 0.16.0~dev.1456+16fc083f2-2 +- Moved to new method of bootstrapping, deprecated zig-master-bootstrap * Sat May 10 2025 Gilver E. - 0.15.0~dev.482+2c241b263-2 - Added GCC runtime dependency to pass system information to Zig * Fri Apr 25 2025 Gilver E. - 0.15.0~dev.384+c06fecd46-2 diff --git a/anda/langs/zig/master/.gitignore b/anda/langs/zig/master/.gitignore new file mode 100644 index 0000000000..8a0be3c23b --- /dev/null +++ b/anda/langs/zig/master/.gitignore @@ -0,0 +1,2 @@ +*.tar.xz +*.tar.xz.minisig diff --git a/anda/langs/zig/master/0000-remove-native-lib-directories-from-rpath.patch b/anda/langs/zig/master/0000-remove-native-lib-directories-from-rpath.patch index 1e1c1f1709..24db5827b6 100644 --- a/anda/langs/zig/master/0000-remove-native-lib-directories-from-rpath.patch +++ b/anda/langs/zig/master/0000-remove-native-lib-directories-from-rpath.patch @@ -1,9 +1,21 @@ ---- a/src/main.zig 2025-04-25 06:01:31.337458939 -0500 -+++ b/src/main.zig 2025-04-25 06:03:02.239473385 -0500 -@@ -4072,6 +4072,15 @@ +From a865b3569ace118cc1c1cd8d5d130ec316b0307d Mon Sep 17 00:00:00 2001 +From: Jan200101 +Date: Tue, 14 Apr 2026 19:04:40 +0200 +Subject: [PATCH 1/2] remove native lib directories from rpath + +Signed-off-by: Jan200101 +--- + src/main.zig | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/src/main.zig b/src/main.zig +index 0395a21a5f..86b6d9f86b 100644 +--- a/src/main.zig ++++ b/src/main.zig +@@ -4102,6 +4102,15 @@ fn createModule( try create_module.lib_directories.ensureUnusedCapacity(arena, paths.lib_dirs.items.len); - for (paths.lib_dirs.items) |path| addLibDirectoryWarn2(&create_module.lib_directories, path, true); + for (paths.lib_dirs.items) |path| addLibDirectoryWarn2(io, &create_module.lib_directories, path, true); + + for (paths.lib_dirs.items) |native_lib_dir| { + for (0.., create_module.rpath_list.items) |i, rpath_dir| { @@ -16,3 +28,6 @@ } if (create_module.libc_paths_file) |paths_file| { +-- +2.53.0 + diff --git a/anda/langs/zig/master/0001-Remove-unsupported-LLVM-targets-for-EPEL.patch b/anda/langs/zig/master/0001-Remove-unsupported-LLVM-targets-for-EPEL.patch new file mode 100644 index 0000000000..a8b942f129 --- /dev/null +++ b/anda/langs/zig/master/0001-Remove-unsupported-LLVM-targets-for-EPEL.patch @@ -0,0 +1,254 @@ +From 803935baf6a4730426afbb746adfd00c0ffc0f39 Mon Sep 17 00:00:00 2001 +From: Jan200101 +Date: Tue, 14 Apr 2026 19:20:26 +0200 +Subject: [PATCH 2/2] Remove unsupported LLVM targets for RHEL + +LLVM for RHEL is only build with a subset of targets +this blocks zig at the configuration stage. +This commit simply swaps them out with the one from +https://src.fedoraproject.org/rpms/llvm/blob/rawhide/f/llvm.spec + +Signed-off-by: Jan200101 +--- + cmake/Findllvm.cmake | 2 +- + src/codegen/llvm.zig | 97 ++++++++++---------------------------------- + src/target.zig | 43 +++++++++++--------- + 3 files changed, 45 insertions(+), 97 deletions(-) + +diff --git a/cmake/Findllvm.cmake b/cmake/Findllvm.cmake +index 0c08d4f0ac..ed4da12044 100644 +--- a/cmake/Findllvm.cmake ++++ b/cmake/Findllvm.cmake +@@ -83,7 +83,7 @@ if(ZIG_USE_LLVM_CONFIG) + OUTPUT_STRIP_TRAILING_WHITESPACE) + string(REPLACE " " ";" LLVM_TARGETS_BUILT "${LLVM_TARGETS_BUILT_SPACES}") + +- set(ZIG_LLVM_REQUIRED_TARGETS "AArch64;AMDGPU;ARM;AVR;BPF;Hexagon;Lanai;LoongArch;Mips;MSP430;NVPTX;PowerPC;RISCV;SPIRV;Sparc;SystemZ;VE;WebAssembly;X86;XCore") ++ set(ZIG_LLVM_REQUIRED_TARGETS "X86;AMDGPU;PowerPC;NVPTX;SystemZ;AArch64;BPF;WebAssembly;RISCV") + + set(ZIG_LLVM_REQUIRED_TARGETS_ENABLED TRUE) + foreach(TARGET_NAME IN LISTS ZIG_LLVM_REQUIRED_TARGETS) +diff --git a/src/codegen/llvm.zig b/src/codegen/llvm.zig +index 1ba3b272da..1ac1f6adc8 100644 +--- a/src/codegen/llvm.zig ++++ b/src/codegen/llvm.zig +@@ -4736,20 +4736,6 @@ pub fn initializeLLVMTarget(arch: std.Target.Cpu.Arch) void { + bindings.LLVMInitializeAMDGPUAsmPrinter(); + bindings.LLVMInitializeAMDGPUAsmParser(); + }, +- .thumb, .thumbeb, .arm, .armeb => { +- bindings.LLVMInitializeARMTarget(); +- bindings.LLVMInitializeARMTargetInfo(); +- bindings.LLVMInitializeARMTargetMC(); +- bindings.LLVMInitializeARMAsmPrinter(); +- bindings.LLVMInitializeARMAsmParser(); +- }, +- .avr => { +- bindings.LLVMInitializeAVRTarget(); +- bindings.LLVMInitializeAVRTargetInfo(); +- bindings.LLVMInitializeAVRTargetMC(); +- bindings.LLVMInitializeAVRAsmPrinter(); +- bindings.LLVMInitializeAVRAsmParser(); +- }, + .bpfel, .bpfeb => { + bindings.LLVMInitializeBPFTarget(); + bindings.LLVMInitializeBPFTargetInfo(); +@@ -4757,34 +4743,6 @@ pub fn initializeLLVMTarget(arch: std.Target.Cpu.Arch) void { + bindings.LLVMInitializeBPFAsmPrinter(); + bindings.LLVMInitializeBPFAsmParser(); + }, +- .hexagon => { +- bindings.LLVMInitializeHexagonTarget(); +- bindings.LLVMInitializeHexagonTargetInfo(); +- bindings.LLVMInitializeHexagonTargetMC(); +- bindings.LLVMInitializeHexagonAsmPrinter(); +- bindings.LLVMInitializeHexagonAsmParser(); +- }, +- .lanai => { +- bindings.LLVMInitializeLanaiTarget(); +- bindings.LLVMInitializeLanaiTargetInfo(); +- bindings.LLVMInitializeLanaiTargetMC(); +- bindings.LLVMInitializeLanaiAsmPrinter(); +- bindings.LLVMInitializeLanaiAsmParser(); +- }, +- .mips, .mipsel, .mips64, .mips64el => { +- bindings.LLVMInitializeMipsTarget(); +- bindings.LLVMInitializeMipsTargetInfo(); +- bindings.LLVMInitializeMipsTargetMC(); +- bindings.LLVMInitializeMipsAsmPrinter(); +- bindings.LLVMInitializeMipsAsmParser(); +- }, +- .msp430 => { +- bindings.LLVMInitializeMSP430Target(); +- bindings.LLVMInitializeMSP430TargetInfo(); +- bindings.LLVMInitializeMSP430TargetMC(); +- bindings.LLVMInitializeMSP430AsmPrinter(); +- bindings.LLVMInitializeMSP430AsmParser(); +- }, + .nvptx, .nvptx64 => { + bindings.LLVMInitializeNVPTXTarget(); + bindings.LLVMInitializeNVPTXTargetInfo(); +@@ -4806,13 +4764,6 @@ pub fn initializeLLVMTarget(arch: std.Target.Cpu.Arch) void { + bindings.LLVMInitializeRISCVAsmPrinter(); + bindings.LLVMInitializeRISCVAsmParser(); + }, +- .sparc, .sparc64 => { +- bindings.LLVMInitializeSparcTarget(); +- bindings.LLVMInitializeSparcTargetInfo(); +- bindings.LLVMInitializeSparcTargetMC(); +- bindings.LLVMInitializeSparcAsmPrinter(); +- bindings.LLVMInitializeSparcAsmParser(); +- }, + .s390x => { + bindings.LLVMInitializeSystemZTarget(); + bindings.LLVMInitializeSystemZTargetInfo(); +@@ -4843,13 +4794,6 @@ pub fn initializeLLVMTarget(arch: std.Target.Cpu.Arch) void { + bindings.LLVMInitializeXtensaAsmParser(); + } + }, +- .xcore => { +- bindings.LLVMInitializeXCoreTarget(); +- bindings.LLVMInitializeXCoreTargetInfo(); +- bindings.LLVMInitializeXCoreTargetMC(); +- bindings.LLVMInitializeXCoreAsmPrinter(); +- // There is no LLVMInitializeXCoreAsmParser function. +- }, + .m68k => { + if (build_options.llvm_has_m68k) { + bindings.LLVMInitializeM68kTarget(); +@@ -4868,13 +4812,6 @@ pub fn initializeLLVMTarget(arch: std.Target.Cpu.Arch) void { + bindings.LLVMInitializeCSKYAsmParser(); + } + }, +- .ve => { +- bindings.LLVMInitializeVETarget(); +- bindings.LLVMInitializeVETargetInfo(); +- bindings.LLVMInitializeVETargetMC(); +- bindings.LLVMInitializeVEAsmPrinter(); +- bindings.LLVMInitializeVEAsmParser(); +- }, + .arc => { + if (build_options.llvm_has_arc) { + bindings.LLVMInitializeARCTarget(); +@@ -4884,21 +4821,29 @@ pub fn initializeLLVMTarget(arch: std.Target.Cpu.Arch) void { + // There is no LLVMInitializeARCAsmParser function. + } + }, +- .loongarch32, .loongarch64 => { +- bindings.LLVMInitializeLoongArchTarget(); +- bindings.LLVMInitializeLoongArchTargetInfo(); +- bindings.LLVMInitializeLoongArchTargetMC(); +- bindings.LLVMInitializeLoongArchAsmPrinter(); +- bindings.LLVMInitializeLoongArchAsmParser(); +- }, ++ ++ // Disabled LLVM targets ++ .thumb, ++ .thumbeb, ++ .arm, ++ .armeb, ++ .avr, ++ .hexagon, ++ .lanai, ++ .mips, ++ .mipsel, ++ .mips64, ++ .mips64el, ++ .msp430, ++ .sparc, ++ .sparc64, ++ .xcore, ++ .ve, ++ .loongarch32, ++ .loongarch64, + .spirv32, + .spirv64, +- => { +- bindings.LLVMInitializeSPIRVTarget(); +- bindings.LLVMInitializeSPIRVTargetInfo(); +- bindings.LLVMInitializeSPIRVTargetMC(); +- bindings.LLVMInitializeSPIRVAsmPrinter(); +- }, ++ => unreachable, + + // LLVM does does not have a backend for these. + .alpha, +diff --git a/src/target.zig b/src/target.zig +index 3d04c06f5e..9e19836815 100644 +--- a/src/target.zig ++++ b/src/target.zig +@@ -185,23 +185,12 @@ pub fn hasLlvmSupport(target: *const std.Target, ofmt: std.Target.ObjectFormat) + } + + return switch (target.cpu.arch) { +- .arm, +- .armeb, + .aarch64, + .aarch64_be, + .arc, +- .avr, + .bpfel, + .bpfeb, +- .hexagon, +- .loongarch32, +- .loongarch64, + .m68k, +- .mips, +- .mipsel, +- .mips64, +- .mips64el, +- .msp430, + .powerpc, + .powerpcle, + .powerpc64, +@@ -211,24 +200,38 @@ pub fn hasLlvmSupport(target: *const std.Target, ofmt: std.Target.ObjectFormat) + .riscv32be, + .riscv64, + .riscv64be, +- .sparc, +- .sparc64, +- .spirv32, +- .spirv64, + .s390x, +- .thumb, +- .thumbeb, + .x86, + .x86_64, +- .xcore, + .nvptx, + .nvptx64, +- .lanai, + .wasm32, + .wasm64, +- .ve, + => true, + ++ // Disabled LLVM targets ++ .thumb, ++ .thumbeb, ++ .arm, ++ .armeb, ++ .avr, ++ .hexagon, ++ .lanai, ++ .mips, ++ .mipsel, ++ .mips64, ++ .mips64el, ++ .msp430, ++ .sparc, ++ .sparc64, ++ .xcore, ++ .ve, ++ .loongarch32, ++ .loongarch64, ++ .spirv32, ++ .spirv64, ++ => false, ++ + // LLVM backend exists but can produce neither assembly nor object files. + .csky, + .xtensa, +-- +2.53.0 + diff --git a/anda/langs/zig/master/0005-link.Elf-add-root-directory-of-libraries-to-linker-p.patch b/anda/langs/zig/master/0005-link.Elf-add-root-directory-of-libraries-to-linker-p.patch deleted file mode 100644 index d4dd5bb4eb..0000000000 --- a/anda/langs/zig/master/0005-link.Elf-add-root-directory-of-libraries-to-linker-p.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 1796a91063dc5ed71418f164bb7d98ca65c33d4a Mon Sep 17 00:00:00 2001 -From: Jan200101 -Date: Mon, 16 Jun 2025 20:46:25 +0200 -Subject: [PATCH] link.Elf: add root directory of libraries to linker path - -All the given dynamic shared objects will be linked with an absolute -path however they may link to other dynamic shared objects which won't -have an absolute path, for this we need to add the library path so that -lld can resolve it. - -Signed-off-by: Jan200101 ---- - src/link/Lld.zig | 12 +++++++++++- - 1 file changed, 11 insertions(+), 1 deletion(-) - -diff --git a/src/link/Lld.zig b/src/link/Lld.zig -index 4ea809428e..b8421dd60a 100644 ---- a/src/link/Lld.zig -+++ b/src/link/Lld.zig -@@ -1109,9 +1109,19 @@ fn elfLink(lld: *Lld, arena: Allocator) !void { - // Positional arguments to the linker such as object files. - var whole_archive = false; - -+ var lib_directories = std.StringArrayHashMap(void).init(gpa); -+ defer lib_directories.deinit(); -+ - for (base.comp.link_inputs) |link_input| switch (link_input) { - .res => unreachable, // Windows-only -- .dso => continue, -+ .dso => |dso| { -+ if (dso.path.root_dir.path) |root_dir| { -+ const lib_dir = try lib_directories.getOrPut(root_dir); -+ if (lib_dir.found_existing) continue; -+ try argv.append("-L"); -+ try argv.append(root_dir); -+ } -+ }, - .object, .archive => |obj| { - if (obj.must_link and !whole_archive) { - try argv.append("-whole-archive"); --- -2.49.0 - diff --git a/anda/langs/zig/master/pre.rhai b/anda/langs/zig/master/pre.rhai new file mode 100644 index 0000000000..88dc7a63bb --- /dev/null +++ b/anda/langs/zig/master/pre.rhai @@ -0,0 +1,2 @@ +let dir = sub(`/[^/]+$`, "", __script_path); +sh(`../bootstrap/setup.sh fetch`, #{ "cwd": dir }); diff --git a/anda/langs/zig/master/update.rhai b/anda/langs/zig/master/update.rhai index 1ddb84e899..57939139b8 100644 --- a/anda/langs/zig/master/update.rhai +++ b/anda/langs/zig/master/update.rhai @@ -1,3 +1,15 @@ import "andax/bump_extras.rhai" as bump; -rpm.version(bump::madoguchi("zig-master-bootstrap", labels.branch)); +rpm.version(bump::madoguchi("zig-master", labels.branch)); + +if rpm.changed() { + let r = bump::madoguchi_json("zig-master", labels.branch).rel; + let r = sub(`(?m)(\.fc.*?|)$`, "", r).parse_int(); + rpm.release(r + 1); + // Update the needed LLVM version + let rawfile = codeberg_rawfile("ziglang/zig", "master", "README.md"); + let l = find(`releases\.llvm\.org/download\.html#([\d.]+)`, rawfile, 1); + rpm.global("llvm_version", l); + l.truncate(2); + rpm.define("llvm_compat", l); +} diff --git a/anda/langs/zig/master/zig-master.spec b/anda/langs/zig/master/zig-master.spec index 174f56ca23..75d014658b 100644 --- a/anda/langs/zig/master/zig-master.spec +++ b/anda/langs/zig/master/zig-master.spec @@ -2,42 +2,53 @@ %global zig_arches x86_64 aarch64 riscv64 %{mips64} # Signing key from https://ziglang.org/download/ %global public_key RWSGOq2NVecA2UPNdBUZykf1CCb147pkmdtYxgb3Ti+JO/wCYvhbAb/U -# Not needed yet -%if 0%{?fedora} >= 42 || 0%{?rhel} >= 9 -%define llvm_compat 20 +%if 0%{?fedora} >= 46 +%define llvm_compat 22 %endif -%global llvm_version 20.0.0 +%global llvm_version 22.0.0 %bcond bootstrap 0 %bcond docs %{without bootstrap} %bcond test 1 +# GCC < 16.0 miscompiles on RISC-V +%ifarch riscv64 +%if 0%{?fedora} < 44 +%global toolchain clang +%endif +%endif %global zig_cache_dir %{builddir}/zig-cache -%global zig_mirrors ("https://pkg.machengine.org/zig" "https://zigmirror.hryx.net/zig" "https://zig.linus.dev/zig" "https://zig.squirl.dev" "https://zig.florent.dev") -%global mirror_url %(mirrors=%{zig_mirrors}; index=$(( RANDOM % ${#mirrors[@]} )); echo ${mirrors[$index]}) Name: zig-master -Version: 0.16.0~dev.747+493ad58ff -Release: 1%?dist +Version: 0.17.0~dev.261+3d1fb4fac +Release: 2%{?dist} Summary: Master builds of the Zig language License: MIT AND NCSA AND LGPL-2.1-or-later AND LGPL-2.1-or-later WITH GCC-exception-2.0 AND GPL-2.0-or-later AND GPL-2.0-or-later WITH GCC-exception-2.0 AND BSD-3-Clause AND Inner-Net-2.0 AND ISC AND LicenseRef-Fedora-Public-Domain AND GFDL-1.1-or-later AND ZPL-2.1 URL: https://ziglang.org -Source0: %{mirror_url}/zig-%{version_no_tilde}.tar.xz -Source1: %{mirror_url}/zig-%{version_no_tilde}.tar.xz.minisig +%global archive_name zig-%{version_no_tilde}.tar.xz +Source0: %{archive_name} +Source1: %{archive_name}.minisig Patch0: 0000-remove-native-lib-directories-from-rpath.patch -Patch3: 0005-link.Elf-add-root-directory-of-libraries-to-linker-p.patch +%if %{defined rhel} +Patch1: 0001-Remove-unsupported-LLVM-targets-for-EPEL.patch +%endif BuildRequires: cmake +%if %["%{toolchain}" == "clang"] +BuildRequires: clang +%else BuildRequires: gcc BuildRequires: gcc-c++ +%endif BuildRequires: libxml2-devel -BuildRequires: llvm-devel -BuildRequires: clang-devel -BuildRequires: lld-devel +BuildRequires: llvm%{?llvm_compat}-devel +BuildRequires: clang%{?llvm_compat}-devel +BuildRequires: lld%{?llvm_compat}-devel BuildRequires: zlib-devel # for man page generation BuildRequires: help2man # for signature verification BuildRequires: minisign %if %{without bootstrap} -BuildRequires: %{name}-bootstrap = %{version} +BuildRequires: %{name} = %{version} +Obsoletes: %{name}-bootstrap < %{version} %endif %if %{with test} BuildRequires: elfutils-libelf-devel @@ -49,7 +60,7 @@ Requires: %{name}-libs = %{version} # Apache-2.0 WITH LLVM-exception OR NCSA OR MIT Provides: bundled(compiler-rt) = %{llvm_version} # LGPL-2.1-or-later AND SunPro AND LGPL-2.1-or-later WITH GCC-exception-2.0 AND BSD-3-Clause AND GPL-2.0-or-later AND LGPL-2.1-or-later WITH GNU-compiler-exception AND GPL-2.0-only AND ISC AND LicenseRef-Fedora-Public-Domain AND HPND AND CMU-Mach AND LGPL-2.0-or-later AND Unicode-3.0 AND GFDL-1.1-or-later AND GPL-1.0-or-later AND FSFUL AND MIT AND Inner-Net-2.0 AND X11 AND GPL-2.0-or-later WITH GCC-exception-2.0 AND GFDL-1.3-only AND GFDL-1.1-only -Provides: bundled(glibc) = 2.41 +Provides: bundled(glibc) = 2.43 # Apache-2.0 WITH LLVM-exception OR MIT OR NCSA Provides: bundled(libcxx) = %{llvm_version} # Apache-2.0 WITH LLVM-exception OR MIT OR NCSA @@ -64,7 +75,7 @@ Provides: bundled(musl) = 1.2.5 Provides: bundled(wasi-libc) = d03829489904d38c624f6de9983190f1e5e7c9c5 Conflicts: zig ExclusiveArch: %{zig_arches} -Packager: Gilver E. +Packager: Gilver E. # Must be defined AFTER the version is %global zig_build_options %{shrink: \ @@ -118,14 +129,18 @@ Documentation for Zig. For more information, visit %{url} %endif %prep -/usr/bin/minisign -V -m %{SOURCE0} -x %{SOURCE1} -P %{public_key} +/usr/bin/minisign -V -m %{SOURCE0} -x %{SOURCE1} -P %{public_key} | grep -F -C5 "file:%{archive_name}" || exit 1 %autosetup -p1 -n zig-%{version_no_tilde} %if %{without bootstrap} # Ensure that the pre-build stage1 binary is not used rm -f stage1/zig1.wasm %endif -%build +%conf +# Force the correct LLVM version +%if %{defined llvm_compat} +export LLVM_DIR=%{_libdir}/llvm%{?llvm_compat}/%{_lib}/cmake +%endif # zig doesn't know how to dynamically link llvm on its own so we need cmake to generate a header ahead of time # if we provide the header we need to also build zigcpp @@ -136,7 +151,7 @@ rm -f stage1/zig1.wasm -DCMAKE_C_FLAGS_RELWITHDEBINFO:STRING="-DNDEBUG -Wno-unused" \ -DCMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING="-DNDEBUG -Wno-unused" \ \ - -DZIG_EXTRA_BUILD_ARGS:STRING="--verbose;--build-id=sha1" \ + -DZIG_EXTRA_BUILD_ARGS:STRING="--verbose;--build-id=sha1;-Dno-langref=true" \ -DZIG_SHARED_LLVM:BOOL=true \ -DZIG_PIE:BOOL=true \ \ @@ -145,6 +160,8 @@ rm -f stage1/zig1.wasm \ -DZIG_VERSION:STRING="%(v=%{version_no_tilde}; echo ${v:0:6})" + +%build %if %{with bootstrap} %cmake_build --target stage3 %else @@ -162,14 +179,16 @@ help2man --no-discard-stderr --no-info "./zig-out/bin/zig" --version-option=vers # Zig has an extremely annoying issue with transitive failures when trying to build the docs, retry until it succeeds max=3 attempt=1 -while ./zig-out/bin/zig build docs \ +while + ./zig-out/bin/zig build docs \ --verbose \ --global-cache-dir "%{zig_cache_dir}" \ - -Dversion-string="%(v=%{version_no_tilde}; echo ${v:0:6})"; [[ $? -ne 0 ]]; + -Dversion-string="%(v=%{version_no_tilde}; echo ${v:0:6})" + [[ $? != 0 ]] do - echo "Transitive failure. Trying again." + echo "Transitive failure. Trying again." >&2 - if [[ $attempt -eq $max ]] + if [[ $attempt == $max ]] then break fi diff --git a/anda/lib/DirectX-Headers/DirectX-Headers.spec b/anda/lib/DirectX-Headers/DirectX-Headers.spec new file mode 100644 index 0000000000..c288ba73b6 --- /dev/null +++ b/anda/lib/DirectX-Headers/DirectX-Headers.spec @@ -0,0 +1,148 @@ +%global mingw_build_ucrt64 1 +%{?mingw_package_header} + +# Disable debug as this package only provides a static archive (and no shared object). +# debuginfo will be made available via consumer (mesa) instead. +%global debug_package %{nil} +%global __strip /bin/true + +# There is no LTO in mesa, so drop that in stub archives also +# see mesa comment: +# We've gotten a report that enabling LTO for mesa breaks some games. See +# https://bugzilla.redhat.com/show_bug.cgi?id=1862771 for details. +# Disable LTO for now +%define _lto_cflags %{nil} + +Name: DirectX-Headers +Version: 1.618.1 +Release: 1%{?dist} +Summary: Official Direct3D 12 headers + +License: MIT +URL: https://github.com/microsoft/DirectX-Headers +Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz + +BuildRequires: meson +BuildRequires: gcc-c++ +# Test assumes the build is under WSL, which is unlikely +%{?_with_test:BuildRequires: gtest-devel} + +BuildRequires: mingw32-filesystem +BuildRequires: mingw32-gcc-c++ + +BuildRequires: mingw64-filesystem +BuildRequires: mingw64-gcc-c++ + +BuildRequires: ucrt64-filesystem +BuildRequires: ucrt64-gcc-c++ + + +%description +Official Direct3D 12 headers + +%package devel +Summary: Development files for %{name} +# This only provides -static files, so only +Provides: %{name}-static = %{version}-%{release} + +%description devel +The %{name}-devel package contains libraries and header files for +developing applications that use %{name}. + + +%package -n mingw32-directx-headers +Summary: Official DirectX headers available under an open source license + +%description -n mingw32-directx-headers +Official DirectX headers available under an open source license + +%package -n mingw64-directx-headers +Summary: Official DirectX headers available under an open source license + +%description -n mingw64-directx-headers +Official DirectX headers available under an open source license + +%package -n ucrt64-directx-headers +Summary: Official DirectX headers available under an open source license + +%description -n ucrt64-directx-headers +Official DirectX headers available under an open source license + + +%prep +%autosetup -p1 +# Change EOL encoding +for i in LICENSE README.md ; do + sed -i -e 's/\r$//' ${i} + touch -r SECURITY.md ${i} +done + + +%build +%meson \ + %{?!_with_test:-Dbuild-test=false} + +%meson_build + +%mingw_meson +%mingw_ninja + + +%install +%meson_install + +%mingw_ninja_install + +%check +%{?_with_test: +%meson_test +} + + +%files devel +%license LICENSE +%doc README.md SECURITY.md +%{_includedir}/composition +%{_includedir}/directx +%{_includedir}/dxguids +%{_includedir}/wsl +%{_libdir}/libDirectX-Guids.a +%{_libdir}/libd3dx12-format-properties.a +%{_libdir}/pkgconfig/DirectX-Headers.pc + +%files -n mingw32-directx-headers +%doc README.md SECURITY.md +%license LICENSE +%{mingw32_libdir}/pkgconfig/DirectX-Headers.pc +%{mingw32_libdir}/libDirectX-Guids.a +%{mingw32_libdir}/libd3dx12-format-properties.a +%{mingw32_includedir}/composition +%{mingw32_includedir}/wsl/ +%{mingw32_includedir}/dxguids/ +%{mingw32_includedir}/directx/ + +%files -n mingw64-directx-headers +%doc README.md SECURITY.md +%license LICENSE +%{mingw64_libdir}/pkgconfig/DirectX-Headers.pc +%{mingw64_libdir}/libDirectX-Guids.a +%{mingw64_libdir}/libd3dx12-format-properties.a +%{mingw64_includedir}/composition +%{mingw64_includedir}/wsl/ +%{mingw64_includedir}/dxguids/ +%{mingw64_includedir}/directx/ + +%files -n ucrt64-directx-headers +%doc README.md SECURITY.md +%license LICENSE +%{ucrt64_libdir}/pkgconfig/DirectX-Headers.pc +%{ucrt64_libdir}/libDirectX-Guids.a +%{ucrt64_libdir}/libd3dx12-format-properties.a +%{ucrt64_includedir}/composition +%{ucrt64_includedir}/wsl/ +%{ucrt64_includedir}/dxguids/ +%{ucrt64_includedir}/directx/ + + +%changelog +%autochangelog diff --git a/anda/multimedia/x264-bootstrap/anda.hcl b/anda/lib/DirectX-Headers/anda.hcl similarity index 55% rename from anda/multimedia/x264-bootstrap/anda.hcl rename to anda/lib/DirectX-Headers/anda.hcl index 46255b7fbc..7751199f0e 100644 --- a/anda/multimedia/x264-bootstrap/anda.hcl +++ b/anda/lib/DirectX-Headers/anda.hcl @@ -1,9 +1,10 @@ project pkg { arches = ["x86_64", "aarch64", "i386"] - rpm { - spec = "x264-bootstrap.spec" - } + rpm { + spec = "DirectX-Headers.spec" + } labels { mock = 1 + subrepo = "extras" } } diff --git a/anda/lib/VK_hdr_layer/VK_hdr_layer.spec b/anda/lib/VK_hdr_layer/VK_hdr_layer.spec new file mode 100644 index 0000000000..7dc32cd0dc --- /dev/null +++ b/anda/lib/VK_hdr_layer/VK_hdr_layer.spec @@ -0,0 +1,83 @@ +%global commit 57b26b8927b133566be13a7702f74a62109bad15 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global commitdate 20260325 + +Name: VK_hdr_layer +Version: 0^%{commitdate}git%{shortcommit} +Release: 1%{?dist} +Epoch: 1 +Summary: Vulkan Wayland HDR WSI Layer +License: MIT +URL: https://github.com/zamundaaa/VK_hdr_layer +Source: %{url}/archive/%{commit}/%{name}-%{shortcommit}.tar.gz +BuildRequires: gcc-c++ +BuildRequires: meson >= 0.58 +BuildRequires: pkgconfig(vulkan) +BuildRequires: vulkan-headers +BuildRequires: pkgconfig(wayland-scanner) +# Temporary solution until upstream builds with newer VKroots +%dnl BuildRequires: pkgconfig(vkroots) +BuildRequires: pkgconfig(wayland-client) +# KWin is the main reference supported compositor +Enhances: kwin-wayland >= 6.3 +Obsoletes: VK_hdr_layer < 1:0^20250416git3b276e6 +Packager: Gilver E. + +%description +Vulkan layer utilizing a small color management/HDR +protocol for experimentation. +The proposed mainline protocol for color management is +wp_color_management. + +This implements the following vulkan extensions, +if the protocol is supported by the compositor. + +* VK_EXT_swapchain_colorspace +* VK_EXT_hdr_metadata + + +%prep +%dnl %autosetup -n %{name}-%{commit} -p1 +%git_clone %{url}.git %{commit} + +%conf +%meson --libdir=%{_libdir}/%{name} + +%build +%meson_build + +%install +%meson_install --skip-subprojects=vkroots + +%files +%license LICENSE +%doc README.md +%{_libdir}/%{name}/libVkLayer_hdr_wsi.so +%{_datadir}/vulkan/implicit_layer.d/VkLayer_hdr_wsi.*.json + + +%changelog +* Sat Apr 18 2026 Gilver E. - 1:0^20260325git57b26b8-1 +- Adopt for Terra + +* Fri Jan 16 2026 Fedora Release Engineering - 0~git20250416.3b276e6-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild + +* Fri Jan 16 2026 Fedora Release Engineering - 0~git20250416.3b276e6-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild + +* Wed Jul 23 2025 Fedora Release Engineering - 0~git20250416.3b276e6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Mon Apr 21 2025 Neal Gompa - 0~git20250416.3b276e6-1 +- Update to git snapshot with support for finalized color management protocol + +* Thu Jan 16 2025 Fedora Release Engineering - 0~git20241018.e173f26-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Fri Oct 18 2024 Neal Gompa - 0~git20241018.e173f26-1 +- Update to git snapshot +- Install library to private subdirectory + +* Sun Sep 08 2024 Neal Gompa - 0~git20240427.e47dc6d-1 +- Initial package diff --git a/anda/lib/VK_hdr_layer/anda.hcl b/anda/lib/VK_hdr_layer/anda.hcl new file mode 100644 index 0000000000..27b519c219 --- /dev/null +++ b/anda/lib/VK_hdr_layer/anda.hcl @@ -0,0 +1,11 @@ +project pkg { + arches = ["x86_64", "aarch64", "i386"] + rpm { + spec = "VK_hdr_layer.spec" + } + labels { + subrepo = "nvidia" + nightly = 1 + mock = 1 + } +} diff --git a/anda/lib/VK_hdr_layer/update.rhai b/anda/lib/VK_hdr_layer/update.rhai new file mode 100644 index 0000000000..e576ab0d01 --- /dev/null +++ b/anda/lib/VK_hdr_layer/update.rhai @@ -0,0 +1,5 @@ +rpm.global("commit", gh_commit("zamundaaa/VK_hdr_layer")); +if rpm.changed() { + rpm.release(); + rpm.global("commitdate", date()); +} diff --git a/anda/lib/apparmor/apparmor.spec b/anda/lib/apparmor/apparmor.spec index 30d0b05792..a79c67ead3 100644 --- a/anda/lib/apparmor/apparmor.spec +++ b/anda/lib/apparmor/apparmor.spec @@ -6,8 +6,8 @@ %bcond_with tests Name: apparmor -Version: 5.0.0~alpha2 -Release: 1%?dist +Version: 5.0.0 +Release: 1%{?dist} Summary: AppArmor userspace components %define baseversion %(echo %{version} | cut -d. -f-2) @@ -38,6 +38,7 @@ BuildRequires: systemd-rpm-macros BuildRequires: autoconf-archive BuildRequires: gawk BuildRequires: which +BuildRequires: libzstd-devel %if %{with tests} BuildRequires: %{_bindir}/runtest BuildRequires: %{_bindir}/prove @@ -143,10 +144,11 @@ changehat abilities exposed through libapparmor. %prep %autosetup -p1 -n %name-v%normver + +%conf sed -i 's/@VERSION@/%normver/g' libraries/libapparmor/swig/python/setup.py.in sed -i 's/${VERSION}/%normver/g' utils/Makefile -%build export PYTHON=%{__python3} export PYTHON_VERSION=3 export PYTHON_VERSIONS=python3 @@ -154,8 +156,12 @@ export PYTHON_VERSIONS=python3 pushd libraries/libapparmor ./autogen.sh %configure \ - --with-python \ + --with-python +popd +%build + +pushd libraries/libapparmor %make_build VERSION=%normver popd @@ -185,6 +191,9 @@ install -Dm644 %{SOURCE1} %{buildroot}%{_presetdir}/70-apparmor.preset find %{buildroot} \( -name "*.a" -o -name "*.la" \) -delete +mkdir -p %buildroot%python3_sitearch/LibAppArmor +mv %buildroot%python3_sitearch/{LibAppArmor.py,_LibAppArmor.cpython-*-linux-gnu.so,__pycache__/LibAppArmor.*} %buildroot%python3_sitearch/LibAppArmor/ + %find_lang aa-binutils %find_lang apparmor-parser %find_lang apparmor-utils @@ -276,6 +285,7 @@ make -C utils check %{_bindir}/aa-exec %{_bindir}/aa-features-abi %{_sbindir}/aa-load +#{_sbindir}/aa-show-usage %{_sbindir}/aa-teardown %{_unitdir}/apparmor.service %{_presetdir}/70-apparmor.preset @@ -293,6 +303,7 @@ make -C utils check %{_mandir}/man7/apparmor.7.gz %{_mandir}/man7/apparmor_xattrs.7.gz %{_mandir}/man8/aa-load.8.gz +#{_mandir}/man8/aa-show-usage.8.gz %{_mandir}/man8/aa-teardown.8.gz %{_mandir}/man8/apparmor_parser.8.gz diff --git a/anda/lib/args-hxx/args-hxx.spec b/anda/lib/args-hxx/args-hxx.spec index 53c28571ce..d4b8769b05 100644 --- a/anda/lib/args-hxx/args-hxx.spec +++ b/anda/lib/args-hxx/args-hxx.spec @@ -1,8 +1,8 @@ %define debug_package %nil Name: args-hxx -Version: 6.4.7 -Release: 1%?dist +Version: 6.4.15 +Release: 1%{?dist} Summary: A simple header-only C++ argument parser library License: MIT URL: https://github.com/Taywee/args diff --git a/anda/lib/astal/ags/ags.spec b/anda/lib/astal/ags/ags.spec index 7e6cb42bef..758750820e 100644 --- a/anda/lib/astal/ags/ags.spec +++ b/anda/lib/astal/ags/ags.spec @@ -12,7 +12,7 @@ # https://github.com/Aylur/ags %global goipath github.com/Aylur/ags -Version: 3.0.0 +Version: 3.1.2 %gometa -f @@ -23,7 +23,7 @@ Scaffolding CLI for Astal+TypeScript.} %global godocs docs README.md Name: ags -Release: 1%?dist +Release: 1%{?dist} Summary: Scaffolding CLI for Astal+TypeScript License: GPL-3.0-only @@ -41,11 +41,13 @@ Packager: madonuko %autopatch -p1 %build +cd cli %define currentgoldflags -X main.version=%version %define gomodulesmode GO111MODULE=on %gobuild -o %{gobuilddir}/bin/ags . %install +cd cli %gopkginstall install -m 0755 -vd %{buildroot}%{_bindir} install -m 0755 -vp %{gobuilddir}/bin/* %{buildroot}%{_bindir}/ diff --git a/anda/lib/astal/astal-gtk/astal-gtk.spec b/anda/lib/astal/astal-gtk/astal-gtk.spec index 76f499c08c..5a7d489dd4 100644 --- a/anda/lib/astal/astal-gtk/astal-gtk.spec +++ b/anda/lib/astal/astal-gtk/astal-gtk.spec @@ -1,10 +1,10 @@ -%global commit 189bf73016c26d7d32729a913d6436cd7b1a0885 -%global shortcommit 189bf73 -%global commit_date 20251024 +%global commit 67ddc83e0bdbda6de7f6f15e4fbc5d6b9d2d1b18 +%global shortcommit 67ddc83 +%global commit_date 20260501 Name: astal Version: 0^%commit_date.%commit -Release: 1%?dist +Release: 1%{?dist} Summary: Building blocks for creating custom desktop shells License: LGPL-2.1-only URL: https://aylur.github.io/astal diff --git a/anda/lib/astal/astal/astal.spec b/anda/lib/astal/astal/astal.spec index 6977fd7e26..a0c43cfef5 100644 --- a/anda/lib/astal/astal/astal.spec +++ b/anda/lib/astal/astal/astal.spec @@ -1,11 +1,11 @@ -%global commit 189bf73016c26d7d32729a913d6436cd7b1a0885 +%global commit 67ddc83e0bdbda6de7f6f15e4fbc5d6b9d2d1b18 %global shortcommit %{sub %commit 1 7} -%global commit_date 20251024 +%global commit_date 20260501 Name: astal Version: 0^%commit_date.%shortcommit -Release: 1%?dist +Release: 1%{?dist} Summary: Building blocks for creating custom desktop shells License: LGPL-2.1-only URL: https://aylur.github.io/astal diff --git a/anda/lib/audec/libaudec.spec b/anda/lib/audec/libaudec.spec index 21c72412f3..65891801d0 100644 --- a/anda/lib/audec/libaudec.spec +++ b/anda/lib/audec/libaudec.spec @@ -32,8 +32,10 @@ This package contains the development files for the %name package. rm -r tests %endif -%build +%conf %meson + +%build %meson_build %install diff --git a/anda/lib/backtrace/libbacktrace-nightly.spec b/anda/lib/backtrace/libbacktrace-nightly.spec index ef1e45fc77..046cc9e547 100644 --- a/anda/lib/backtrace/libbacktrace-nightly.spec +++ b/anda/lib/backtrace/libbacktrace-nightly.spec @@ -1,8 +1,8 @@ %global debug_package %nil -%global commit 2f67a3abfd1947ddec71fc11965a9cf9191d45ad +%global commit 96664e69b1ecdb76e824be1d9e8f475b76dd08cf %global shortcommit %(c=%commit; echo ${c:0:7}) -%global commit_date 20250929 +%global commit_date 20260504 %global _desc %{expand: A C library that may be linked into a C/C++ program to produce symbolic backtraces. @@ -10,7 +10,7 @@ A C library that may be linked into a C/C++ program to produce symbolic backtrac Name: libbacktrace-nightly Version: 1.0^%commit_date.%shortcommit -Release: 1%?dist +Release: 1%{?dist} Summary: Library to produce symbolic backtraces License: BSD-3-Clause URL: https://github.com/ianlancetaylor/libbacktrace @@ -36,13 +36,15 @@ This package contains the development files for the %name package. %prep %autosetup -n libbacktrace-%commit -%build +%conf autoreconf -fiv %configure \ --disable-static \ --enable-shared \ --with-system-libunwind \ --enable-silent-rules + +%build %make_build %check diff --git a/anda/lib/breakpad/anda.hcl b/anda/lib/breakpad/anda.hcl new file mode 100644 index 0000000000..9242fd816b --- /dev/null +++ b/anda/lib/breakpad/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "breakpad.spec" + } +} diff --git a/anda/lib/breakpad/breakpad.spec b/anda/lib/breakpad/breakpad.spec new file mode 100644 index 0000000000..3133f09c6d --- /dev/null +++ b/anda/lib/breakpad/breakpad.spec @@ -0,0 +1,65 @@ +Name: breakpad +Version: 2024.02.16 +Release: 3%?dist +Summary: Google Breakpad crash-reporting system +License: BSD-3-Clause +Group: System +URL: https://github.com/google/breakpad +Source0: https://github.com/google/breakpad/archive/refs/tags/v%{version}.tar.gz +Source1: https://chromium.googlesource.com/linux-syscall-support/+archive/refs/heads/main.tar.gz#/lss.tar.gz + +BuildRequires: gcc-c++ +BuildRequires: pkgconfig(gmock) +BuildRequires: pkgconfig(gtest) +BuildRequires: pkgconfig(zlib) +BuildRequires: anda-srpm-macros + +Packager: Willow Reed + +%description +A set of client and server components which implement a crash-reporting system. + +%package devel +Requires: %{name} = %{evr} +%pkg_devel_files + +%package static +%pkg_static_files + +%prep +%autosetup -n breakpad-%{version} +mkdir -p src/third_party/lss +cd src/third_party/lss +tar -xzf %{SOURCE1} --strip-components=0 + +%conf +export CFLAGS="$CFLAGS -Wno-error" +export CXXFLAGS="$CXXFLAGS -Wno-error" + +%configure + +%build +%make_build + +%install +%make_install + +rm -rf %{buildroot}%{_docdir}/breakpad-0.1 + +%files +%license LICENSE +%doc README.md AUTHORS ChangeLog INSTALL NEWS +%{_bindir}/core2md +%{_bindir}/dump_sym* +%{_bindir}/microdump_stackwalk +%{_bindir}/minidump-2-core +%{_bindir}/minidump_dump +%{_bindir}/minidump_stackwalk +%{_bindir}/minidump_upload +%{_bindir}/pid2md +%{_bindir}/sym_upload +%{_libexecdir}/core_handler + +%changelog +* Fri Jan 02 2026 Willow Reed +- Initial commit diff --git a/anda/lib/breakpad/update.rhai b/anda/lib/breakpad/update.rhai new file mode 100644 index 0000000000..ec009aeafc --- /dev/null +++ b/anda/lib/breakpad/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("google/breakpad")); diff --git a/anda/lib/clay/anda.hcl b/anda/lib/clay/anda.hcl new file mode 100644 index 0000000000..47b53d5a90 --- /dev/null +++ b/anda/lib/clay/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "clay.spec" + } +} diff --git a/anda/lib/clay/clay.spec b/anda/lib/clay/clay.spec new file mode 100644 index 0000000000..1792100f7a --- /dev/null +++ b/anda/lib/clay/clay.spec @@ -0,0 +1,39 @@ +%global debug_package %{nil} + +Name: clay-devel +Version: 0.14 +Release: 1%?dist +License: Zlib +URL: https://www.nicbarker.com/clay +Source: https://github.com/nicbarker/clay/archive/refs/tags/v%version.tar.gz +Summary: High performance UI layout library in C +Packager: Owen Zimmerman + +%description +Clay (short for C Layout) is a high performance 2D UI layout library. +Major Features: + +- Microsecond layout performance +- Flex-box like layout model for complex, responsive layouts including text wrapping, scrolling containers and aspect ratio scaling +- Single ~4k LOC clay.h file with zero dependencies (including no standard library) +- Wasm support: compile with clang to a 15kb uncompressed .wasm file for use in the browser +- Static arena based memory use with no malloc / free, and low total memory overhead (e.g. ~3.5mb for 8192 layout elements). +- React-like nested declarative syntax +- Renderer agnostic: outputs a sorted list of rendering primitives that can be easily composited in any 3D engine, and even compiled to HTML (examples provided) + +%prep +%autosetup -n clay-%{version} + +%build + +%install +install -Dm644 clay.h %{buildroot}%{_includedir}/clay.h + +%files +%license LICENSE.md +%doc README.md +%{_includedir}/clay.h + +%changelog +* Wed Dec 31 2025 Owen Zimmerman +- Initial commit diff --git a/anda/lib/clay/update.rhai b/anda/lib/clay/update.rhai new file mode 100644 index 0000000000..a3bcaeae36 --- /dev/null +++ b/anda/lib/clay/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("nicbarker/clay")); diff --git a/anda/lib/cmake-extras/cmake-extras.spec b/anda/lib/cmake-extras/cmake-extras.spec index ac7a1a9375..65f6e54bf6 100644 --- a/anda/lib/cmake-extras/cmake-extras.spec +++ b/anda/lib/cmake-extras/cmake-extras.spec @@ -4,9 +4,9 @@ Name: cmake-extras Version: 1.9 -Release: 1%?dist +Release: 2%?dist Summary: A collection of add-ons for the CMake build tool -License: GPL-3.0 +License: GPL-3.0-or-later URL: https://gitlab.com/ubports/development/core/cmake-extras Source0: %{url}/-/archive/%commit/cmake-extras-%commit.tar.gz BuildArch: noarch @@ -31,8 +31,14 @@ sed -i 's/#!\/bin\/sh/#!\/usr\/bin\/sh/' src/CopyrightTest/check_copyright.sh sed -i 's/python/python3/' src/IncludeChecker/include_checker.py sed -i 'sX/usr/lib/qt5X${CMAKE_LIBDIR}/qt5X' src/QmlPlugins/QmlPluginsConfig.cmake +%conf +%if 0%{?fedora} >= 44 + %cmake -DCMAKE_POLICY_VERSION_MINIMUM=3.5 +%else + %cmake +%endif + %build -%cmake %cmake_build %install diff --git a/anda/lib/cmark-gfm/anda.hcl b/anda/lib/cmark-gfm/anda.hcl new file mode 100644 index 0000000000..59f0f51f06 --- /dev/null +++ b/anda/lib/cmark-gfm/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "cmark-gfm.spec" + } +} diff --git a/anda/lib/cmark-gfm/cmark-gfm.spec b/anda/lib/cmark-gfm/cmark-gfm.spec new file mode 100644 index 0000000000..225eff124c --- /dev/null +++ b/anda/lib/cmark-gfm/cmark-gfm.spec @@ -0,0 +1,68 @@ +Name: cmark-gfm +Version: 0.29.0.gfm.13 +Release: 2%{?dist} +License: BSD-2-Clause AND MIT +URL: https://github.com/github/cmark-gfm +Source: %{url}/archive/refs/tags/%{version}.tar.gz +Patch0: fix-cmake-dir.patch +Summary: GitHub's fork of cmark, a CommonMark parsing and rendering library and program in C +Packager: metcya + +BuildRequires: cmake +BuildRequires: gcc-c++ + +%description +cmark-gfm is an extended version of the C reference implementation of +CommonMark, a rationalized version of Markdown syntax with a spec. This +repository adds GitHub Flavored Markdown extensions to the upstream +implementation, as defined in the spec. + +%package libs +Summary: Library files for %{name} +%pkg_libs_files + +%description libs +Library files for %{name}. + +%package static +Summary: Static library files for %{name} +%pkg_static_files + +%description static +Static library files for %{name}. + +%package devel +Summary: Development files for %{name} +Requires: %{name}-libs = %{evr} +%pkg_devel_files + +%description devel +Development files for %{name}. + +%prep +%autosetup -p1 + +%build +%cmake +%cmake_build + +%install +%cmake_install + +%files +%license COPYING +%doc README.md +%{_bindir}/%{name} +%{_mandir}/man1/%{name}.1.* +%{_mandir}/man3/%{name}.3.* + +%files devel +%{_libdir}/cmake/cmark-gfm/ +%{_libdir}/cmake-gfm-extensions/ + +%changelog +* Thu Dec 25 2025 metcya - 0.29.0.gfm.13-2 +- Fix cmake install directories + +* Wed Dec 24 2025 metcya - 0.29.0.gfm.13-1 +- Package cmark-gfm diff --git a/anda/lib/cmark-gfm/fix-cmake-dir.patch b/anda/lib/cmark-gfm/fix-cmake-dir.patch new file mode 100644 index 0000000000..fa554034da --- /dev/null +++ b/anda/lib/cmark-gfm/fix-cmake-dir.patch @@ -0,0 +1,13 @@ +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 84dd2a0..d8f5ffa 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -175,7 +175,7 @@ if(CMARK_SHARED OR CMARK_STATIC) + DESTINATION include + ) + +- install(EXPORT cmark-gfm DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake) ++ install(EXPORT cmark-gfm DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/cmark-gfm) + endif() + + # Feature tests diff --git a/anda/lib/cmark-gfm/update.rhai b/anda/lib/cmark-gfm/update.rhai new file mode 100644 index 0000000000..e39744cdcc --- /dev/null +++ b/anda/lib/cmark-gfm/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("github/cmark-gfm")); diff --git a/anda/lib/davs2/davs2.spec b/anda/lib/davs2/davs2.spec index c89632dde4..c1465e48b3 100644 --- a/anda/lib/davs2/davs2.spec +++ b/anda/lib/davs2/davs2.spec @@ -4,10 +4,10 @@ Name: davs2 Version: 1.7 -Release: 1%{?shortcommit:.%{date}git%{shortcommit}}%{?dist} +Release: 2%{?shortcommit:.%{date}git%{shortcommit}}%{?dist} Summary: An open-source decoder of AVS2-P2/IEEE1857.4 video coding standard URL: https://github.com/pkuvcl/%{name} -License: GPLv2 +License: GPL-2.0-or-later %if %len %{commit0} != 0 Source0: https://github.com/pkuvcl/%{name}/archive/%{commit0}/%{name}-%{commit0}.tar.gz#/%{name}-%{shortcommit0}.tar.gz @@ -50,7 +50,7 @@ This package contains the shared library development files. %autosetup %endif -%build +%conf cd build/linux %configure \ --bit-depth='8' \ @@ -67,6 +67,8 @@ sed -i \ -e 's|CFLAGS=.*%{optflags}|CFLAGS=%{optflags}|g' \ config.mak +%build +cd build/linux %make_build %install diff --git a/anda/lib/deviceinfo/deviceinfo.spec b/anda/lib/deviceinfo/deviceinfo.spec index a60e87c428..53f08b3bfa 100644 --- a/anda/lib/deviceinfo/deviceinfo.spec +++ b/anda/lib/deviceinfo/deviceinfo.spec @@ -4,17 +4,18 @@ Name: deviceinfo Version: 0.2.4 -Release: 1%?dist +Release: 2%?dist Summary: Library to detect and configure devices -License: GPLv3+ +License: GPL-3.0-or-later URL: https://gitlab.com/ubports/development/core/deviceinfo Source0: %{url}/-/archive/%commit/deviceinfo-%commit.tar.gz -Source1: https://salsa.debian.org/ubports-team/deviceinfo/-/raw/master/debian/device-info.1 BuildRequires: cmake BuildRequires: cmake-extras BuildRequires: pkgconfig(yaml-cpp) BuildRequires: gcc-c++ +BuildRequires: gtest-devel +BuildRequires: gmock-devel %description Library to detect and configure devices for Lomiri. @@ -30,13 +31,15 @@ developing applications that use %{name}. %prep %autosetup -n deviceinfo-%commit -%build +%conf %cmake + +%build %cmake_build %install %cmake_install -install -Dm644 '%{SOURCE1}' %{buildroot}%{_mandir}/man1/device-info.1 +install -Dm644 tools/device-info.1 %{buildroot}%{_mandir}/man1/device-info.1 %files %license LICENSE diff --git a/anda/lib/directxshadercompiler/DirectXShaderCompiler.spec b/anda/lib/directxshadercompiler/DirectXShaderCompiler.spec index 98a8837bc1..5e51088eca 100644 --- a/anda/lib/directxshadercompiler/DirectXShaderCompiler.spec +++ b/anda/lib/directxshadercompiler/DirectXShaderCompiler.spec @@ -3,8 +3,8 @@ # Metadata. Name: DirectXShaderCompiler -Version: 1.8.2505.1 -Release: 5%?dist +Version: 1.10.2605.2 +Release: 1%{?dist} Summary: A Direct X Shader compiler. License: MIT Packager: libffi diff --git a/anda/lib/dwarfs/dwarfs.spec b/anda/lib/dwarfs/dwarfs.spec index d939d161a7..fb842901a3 100644 --- a/anda/lib/dwarfs/dwarfs.spec +++ b/anda/lib/dwarfs/dwarfs.spec @@ -2,69 +2,58 @@ The Deduplicating Warp-speed Advanced Read-only File System. A fast high compression read-only file system for Linux and Windows.} +%global _distro_extra_cxxflags -include %{_includedir}/c++/*/cstdint Name: dwarfs -Version: 0.14.1 -Release: 1%?dist +Version: 0.15.3 +Release: 1%{?dist} Summary: A fast high compression read-only file system for Linux, Windows and macOS License: GPL-3.0-or-later URL: https://github.com/mhx/%{name} -Source0: https://github.com/mhx/%{name}/releases/download/v%{version}/%{name}-%{version}.tar.xz +Source0: %{url}/archive/refs/tags/v%{version}.tar.gz BuildRequires: binutils-devel -BuildRequires: bison -BuildRequires: boost-chrono -BuildRequires: boost-context BuildRequires: boost-devel -BuildRequires: boost-filesystem -BuildRequires: boost-iostreams -BuildRequires: boost-program-options -BuildRequires: boost-regex +%if 0%{?fedora} >= 44 +BuildRequires: boost-process +%else BuildRequires: boost-system -BuildRequires: boost-thread +%endif BuildRequires: brotli-devel +BuildRequires: bubblewrap BuildRequires: ccache BuildRequires: clang BuildRequires: cmake -BuildRequires: date-devel -BuildRequires: double-conversion-devel -BuildRequires: elfutils-devel -BuildRequires: file-devel BuildRequires: flac-devel -BuildRequires: flex BuildRequires: fmt-devel +BuildRequires: fuse BuildRequires: fuse3 BuildRequires: fuse3-devel +BuildRequires: fuse-devel +BuildRequires: g++ BuildRequires: gcc -BuildRequires: gcc-c++ BuildRequires: git -BuildRequires: glog-devel -BuildRequires: gmock-devel -BuildRequires: google-benchmark-devel -BuildRequires: gtest-devel +BuildRequires: google-benchmark BuildRequires: jemalloc-devel BuildRequires: json-devel -BuildRequires: libacl-devel BuildRequires: libarchive-devel -BuildRequires: libdwarf-devel -BuildRequires: libevent-devel -BuildRequires: libunwind-devel +BuildRequires: libzstd-devel BuildRequires: lz4-devel BuildRequires: make +BuildRequires: man BuildRequires: ninja-build BuildRequires: openssl-devel -BuildRequires: pkgconf +BuildRequires: pkg-config BuildRequires: range-v3-devel BuildRequires: rubygem-ronn-ng BuildRequires: utf8cpp-devel BuildRequires: xxhash-devel BuildRequires: xz-devel -Requires: bzip2-libs -Requires: gflags +BuildRequires: zstd Requires: libattr Requires: libxml2 Requires: libzstd -Requires: zlib-ng-compat -Packager: Gilver E. +Requires: (zlib-ng-compat or zlib) +Packager: Gilver E. %description %_description @@ -75,19 +64,46 @@ Requires: %{name} %description devel This package contains the development files for DWARFS. +%package bash-completion +Summary: dwarfs Bash completion +Requires: %{name} +Requires: bash +Requires: bash-completion +Supplements: (%{name} and bash) +BuildArch: noarch + +%description bash-completion +Bash shell completion for dwarfs. + +%package zsh-completion +Summary: dwarfs Zsh completion +Requires: %{name} +Requires: zsh +Supplements: (%{name} and zsh) +BuildArch: noarch + +%description zsh-completion +Zsh shell completion for dwarfs. + %prep -%autosetup +%git_clone %{url}.git v%{version} %build -%cmake -DWITH_TESTS=ON \ +%cmake \ +-DWITH_TESTS=ON \ -DWITH_LIBDWARFS=ON \ -DWITH_TOOLS=ON \ -DWITH_FUSE_DRIVER=ON \ -DBUILD_SHARED_LIBS=ON \ -DWITH_MAN_OPTION=OFF \ --DCMAKE_INSTALL_SBINDIR=%{_sbindir} \ -%cmake_build -%ctest -j +-DCMAKE_INSTALL_SBINDIR="%(echo %{_sbindir} | sed 's|^/usr||')" \ +%cmake_build +%ifarch aarch64 +-DCMAKE_C_FLAGS="$CFLAGS -fno-lto -fno-use-linker-plugin" \ +-DCMAKE_CXX_FLAGS="$CXXFLAGS -fno-lto -fno-use-linker-plugin" \ +-DCMAKE_SHARED_LINKER_FLAGS="$LDFLAGS -fno-lto -fno-use-linker-plugin" \ +%endif +%cmake_build %install %cmake_install @@ -96,25 +112,48 @@ This package contains the development files for DWARFS. %doc README.md %doc CHANGES.md %license LICENSE -%{_bindir}/dwarfsck -%{_bindir}/dwarfsextract -%{_bindir}/mkdwarfs -%{_sbindir}/dwarfs -%{_sbindir}/mount.dwarfs -%{_libdir}/libdwarfs_*.so.* -%{_mandir}/man1/dwarfs.1* -%{_mandir}/man1/dwarfsck.1* -%{_mandir}/man1/dwarfsextract.1* -%{_mandir}/man1/mkdwarfs.1* -%{_mandir}/man5/dwarfs-format.5* +%{_bindir}/%{name} +%{_bindir}/%{name}ck +%{_bindir}/%{name}extract +%{_bindir}/mk%{name} +%{_sbindir}/mount.%{name} +%{_libdir}/lib%{name}_*.so.* +%{_mandir}/man1/%{name}.1* +%{_mandir}/man1/%{name}ck.1* +%{_mandir}/man1/%{name}extract.1* +%{_mandir}/man1/mk%{name}.1* +%{_mandir}/man5/%{name}-format.5* +%{_mandir}/man7/%{name}-env.7* +%{_appsdir}/%{name}-mount-handler.desktop +%{_datadir}/mime/packages/%{name}.xml %files devel -%dir %{_libdir}/cmake/dwarfs -%{_libdir}/cmake/dwarfs/*.cmake -%{_libdir}/libdwarfs_*.so -%{_includedir}/dwarfs/*.h -%{_includedir}/dwarfs/*/*.h +%dir %{_libdir}/cmake/%{name} +%{_libdir}/cmake/%{name}/*.cmake +%{_libdir}/lib%{name}_*.so +%{_includedir}/%{name}/*.h +%{_includedir}/%{name}/*/*.h +%{_includedir}/%{name}/*/*/*.h + +%files bash-completion +%{bash_completions_dir}/%{name} +%{bash_completions_dir}/%{name}ck +%{bash_completions_dir}/%{name}extract +%{bash_completions_dir}/mk%{name} + +%files zsh-completion +%{zsh_completions_dir}/_%{name} +%{zsh_completions_dir}/_%{name}ck +%{zsh_completions_dir}/_%{name}extract +%{zsh_completions_dir}/_mk%{name} %changelog +* Sat Nov 08 2025 Owen Zimmerman +- Create shell completion subpackages + +* Fri Nov 07 2025 A. Garcia +- Fix up INSTALL_SBINDIR path with duplicated /usr +- Add missing installed files to the package + * Thu Mar 20 2025 Gilver E. - Initial package diff --git a/anda/lib/fdk-aac/anda.hcl b/anda/lib/fdk-aac/anda.hcl index 06dac1bc18..1c976b995e 100644 --- a/anda/lib/fdk-aac/anda.hcl +++ b/anda/lib/fdk-aac/anda.hcl @@ -1,9 +1,11 @@ project pkg { + arches = ["x86_64", "aarch64", "i386"] rpm { spec = "fdk-aac.spec" } labels { - subrepo = "extras" + mock=1 + subrepo = "multimedia" weekly = 1 } } diff --git a/anda/lib/fdk-aac/fdk-aac.spec b/anda/lib/fdk-aac/fdk-aac.spec index 071a69aee1..7fe0d33a91 100644 --- a/anda/lib/fdk-aac/fdk-aac.spec +++ b/anda/lib/fdk-aac/fdk-aac.spec @@ -35,9 +35,11 @@ This package contains libraries and header files for developing applications tha %prep %autosetup -n %{name}-%{version} -%build +%conf autoreconf -vif %configure --disable-static + +%build %make_build %install diff --git a/anda/lib/geonames/geonames.spec b/anda/lib/geonames/geonames.spec index 3f3560c041..c1dec10d0e 100644 --- a/anda/lib/geonames/geonames.spec +++ b/anda/lib/geonames/geonames.spec @@ -1,9 +1,9 @@ %global forgeurl https://gitlab.com/ubports/development/core/geonames -%global commit 447653042655072bdd5e539ed509623e56c418ec +%global commit 91792a7f85ced64915652c33e3c3a9513c106f58 %forgemeta Name: geonames -Version: 0.3.1 +Version: 0.3.2 Release: 1%{?dist} Summary: Parse and query the geonames database License: GPL-3.0 diff --git a/anda/lib/glaze/anda.hcl b/anda/lib/glaze/anda.hcl new file mode 100644 index 0000000000..dcc7d97e09 --- /dev/null +++ b/anda/lib/glaze/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "glaze.spec" + } +} diff --git a/anda/lib/glaze/glaze.spec b/anda/lib/glaze/glaze.spec new file mode 100644 index 0000000000..dc9fbfce41 --- /dev/null +++ b/anda/lib/glaze/glaze.spec @@ -0,0 +1,60 @@ +# not needed because this is a header only library +%global debug_package %{nil} + +Name: glaze-devel +Version: 7.5.0 +Release: 1%{?dist} +License: MIT +URL: https://stephenberry.github.io/glaze +Source: https://github.com/stephenberry/glaze/archive/refs/tags/v%{version}.tar.gz +Summary: in memory JSON parsing and reflection library for modern C++ +Packager: metcya + +BuildRequires: cmake +# even though we're not building anything, cmake still wants a c++ compiler +BuildRequires: gcc-c++ +BuildRequires: mkdocs +BuildRequires: mkdocs-material +BuildRequires: python3-mkdocs-autorefs + +%description +One of the fastest JSON libraries in the world. Glaze reads and writes from +object memory, simplifying interfaces and offering incredible performance. + +%package -n glaze-docs +Summary: Documentation files for glaze + +%description -n glaze-docs +Documentation files for glaze. + +%prep +%autosetup -n glaze-%{version} + +%build +%cmake -Dglaze_DEVELOPER_MODE=OFF \ + -Dglaze_INSTALL_CMAKEDIR=%{_libdir}/cmake/glaze +mkdocs build + +%install +%cmake_install +pushd site +find -type f -exec install -Dm 644 '{}' '%{buildroot}%{_pkgdocdir}/{}' \; +popd + +%files +%license LICENSE +%doc README.md +%{_includedir}/glaze/ +%{_libdir}/cmake/glaze/ + +%files -n glaze-docs +%license LICENSE +%{_pkgdocdir}/ + +%changelog +* Thu Dec 25 2025 metcya - 6.4.0-2 +- Install cmake files to correct location + +* Wed Dec 24 2025 metcya - 6.4.0-1 +- Package glaze + diff --git a/anda/lib/glaze/update.rhai b/anda/lib/glaze/update.rhai new file mode 100644 index 0000000000..8fc68f4c2e --- /dev/null +++ b/anda/lib/glaze/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("stephenberry/glaze")); diff --git a/anda/lib/gmenuharness/gmenuharness.spec b/anda/lib/gmenuharness/gmenuharness.spec index 555efbce71..4b2f7cb55f 100644 --- a/anda/lib/gmenuharness/gmenuharness.spec +++ b/anda/lib/gmenuharness/gmenuharness.spec @@ -4,9 +4,9 @@ Name: gmenuharness Version: 0.1.4 -Release: %autorelease +Release: 2%{?dist} Summary: GMenu harness library -License: LGPLv3 +License: LGPL-3.0-or-later URL: https://gitlab.com/ubports/development/core/gmenuharness Source0: %{url}/-/archive/%commit/gmenuharness-%commit.tar.gz diff --git a/anda/lib/grail/grail.spec b/anda/lib/grail/grail.spec index 8ee1dd6911..48cae7d135 100644 --- a/anda/lib/grail/grail.spec +++ b/anda/lib/grail/grail.spec @@ -38,7 +38,7 @@ developing applications that use %{name}. %prep %autosetup -n grail-%{version} -%build +%conf autoreconf --force --install PYTHON=%{__python3} export PYTHON @@ -49,6 +49,7 @@ export PYTHON --with-x11 \ --disable-static +%build %make_build %install diff --git a/anda/lib/inputtino/anda.hcl b/anda/lib/inputtino/anda.hcl new file mode 100644 index 0000000000..c1d2548c97 --- /dev/null +++ b/anda/lib/inputtino/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "inputtino.spec" + } +} diff --git a/anda/lib/inputtino/fix-pkgconfig-install-location.patch b/anda/lib/inputtino/fix-pkgconfig-install-location.patch new file mode 100644 index 0000000000..37214f1c79 --- /dev/null +++ b/anda/lib/inputtino/fix-pkgconfig-install-location.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 2546b78..c6ca674 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -174,7 +174,7 @@ if (CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME) + @ONLY + ) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libinputtino.pc +- DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/pkgconfig) ++ DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) + endif () + endif () + diff --git a/anda/lib/inputtino/inputtino.spec b/anda/lib/inputtino/inputtino.spec new file mode 100644 index 0000000000..0a17d1a316 --- /dev/null +++ b/anda/lib/inputtino/inputtino.spec @@ -0,0 +1,48 @@ +%global commit f4ce2b0df536ef309e9ff318f75b460f7097d7c1 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global commitdate 20250816 + +Name: inputtino +Version: 0^%{commitdate}.%{shortcommit} +Release: 1%{?dist} +License: MIT +URL: https://github.com/games-on-whales/%{name} +Source: %{url}/archive/%{commit}.tar.gz +Patch0: fix-pkgconfig-install-location.patch +Summary: A virtual input library: supports mouse, keyboard, joypad, trackpad and more +Packager: metcya + +BuildRequires: gcc-c++ +BuildRequires: cmake +BuildRequires: pkgconfig(libevdev) +BuildRequires: pkgconfig(libinput) +BuildRequires: pkgconfig(sdl2) + +%description +An easy to use virtual input library for Linux built on top of uinput, evdev +and uhid. + +%package devel +%pkg_devel_files + +%prep +%autosetup -n %{name}-%{commit} -p1 + +%build +%cmake -DBUILD_TESTING=OFF \ + -DLIBINPUTTINO_INSTALL=ON +%cmake_build + +%install +%cmake_install + +%files +%doc README.md +%license LICENSE +# huh? +%{_libdir}/liblib%{name}.so.* + +%changelog +* Mon Jan 05 2026 metcya - 0^20250816.504f0ab +- Initial package + diff --git a/anda/lib/inputtino/update.rhai b/anda/lib/inputtino/update.rhai new file mode 100644 index 0000000000..04f1555b85 --- /dev/null +++ b/anda/lib/inputtino/update.rhai @@ -0,0 +1,5 @@ +rpm.global("commit", gh_commit("games-on-whales/inputtino")); +if rpm.changed() { + rpm.release(); + rpm.global("commit_date", date()); +} diff --git a/anda/lib/ipu6-camera-bins/ipu6-camera-bins.spec b/anda/lib/ipu6-camera-bins/ipu6-camera-bins.spec index 1ae3f79089..b11c522249 100644 --- a/anda/lib/ipu6-camera-bins/ipu6-camera-bins.spec +++ b/anda/lib/ipu6-camera-bins/ipu6-camera-bins.spec @@ -7,7 +7,7 @@ Name: ipu6-camera-bins Summary: Libraries for Intel IPU6 Version: %{ver}^%{commit_date}git.%{shortcommit} -Release: 1%?dist +Release: 2%{?dist} %if 0%{?fedora} <= 43 || 0%{?rhel} <= 10 Epoch: 1 %endif @@ -36,7 +36,7 @@ Provides: %{name} = %{?epoch:%{epoch}:}%{commit_date}.%{shortcommit}-%{rel Obsoletes: %{name} < %{?epoch:%{epoch}:}%{commit_date}.%{shortcommit}-2 %endif ExclusiveArch: x86_64 -Packager: Gilver E. +Packager: Gilver E. %description Provides binary libraries for Intel IPU6. diff --git a/anda/lib/libayatana-appindicator-glib/anda.hcl b/anda/lib/libayatana-appindicator-glib/anda.hcl new file mode 100644 index 0000000000..21debf4611 --- /dev/null +++ b/anda/lib/libayatana-appindicator-glib/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "libayatana-appindicator-glib.spec" + } +} diff --git a/anda/lib/libayatana-appindicator-glib/libayatana-appindicator-glib.spec b/anda/lib/libayatana-appindicator-glib/libayatana-appindicator-glib.spec new file mode 100644 index 0000000000..d4a440ab59 --- /dev/null +++ b/anda/lib/libayatana-appindicator-glib/libayatana-appindicator-glib.spec @@ -0,0 +1,70 @@ +%undefine __brp_add_determinism + +Name: libayatana-appindicator-glib +Summary: Ayatana Application Indicators Shared Library +Version: 2.0.1 +Release: 3%?dist +License: GPL-3.0-or-later +Packager: veuxit +URL: https://github.com/AyatanaIndicators/libayatana-appindicator-glib +Source0: %{url}/archive/refs/tags/%{version}.tar.gz + +BuildRequires: cmake +BuildRequires: cmake-extras +BuildRequires: glib2 +BuildRequires: glib2-devel +BuildRequires: gobject-introspection +BuildRequires: gi-docgen +BuildRequires: vala-devel +BuildRequires: vala +BuildRequires: intltool + +%description +Ayatana Application Indicators Shared Library (GLib-2.0 reimplementation, 100% GTK-free, 100% dbusmenu-free) + +%prep +%autosetup -n %{name}-%{version} + +%conf +%cmake + +%build +%cmake_build + +%install +%cmake_install + +%package devel +Summary: Development files for %{name} +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description devel +The %{name}-devel package contains libraries and header files for +developing applications that use %{name}. + +%files devel +%{_includedir}/libayatana-appindicator-glib/ +%{_libdir}/libayatana-appindicator-glib.so +%{_libdir}/pkgconfig/ayatana-appindicator-glib.pc +%{_datadir}/gir-1.0/AyatanaAppIndicatorGlib-2.0.gir +%{_datadir}/vala/vapi/ayatana-appindicator-glib.deps +%{_datadir}/vala/vapi/ayatana-appindicator-glib.vapi + +%package doc +Summary: Documentation for %{name} +BuildArch: noarch + +%description doc +Documentation for %{name}. + +%files doc +%{_datadir}/doc/libayatana-appindicator-glib-dev/ + +%files +%license COPYING +%{_libdir}/libayatana-appindicator-glib.so.2* +%{_libdir}/girepository-1.0/AyatanaAppIndicatorGlib-2.0.typelib + +%changelog +* Fri Feb 27 2026 veux - 2.0.1 +- Initial package release \ No newline at end of file diff --git a/anda/lib/libayatana-appindicator-glib/update.rhai b/anda/lib/libayatana-appindicator-glib/update.rhai new file mode 100644 index 0000000000..69136c0ba6 --- /dev/null +++ b/anda/lib/libayatana-appindicator-glib/update.rhai @@ -0,0 +1 @@ +rpm.version(gh_tag("AyatanaIndicators/libayatana-appindicator-glib")); diff --git a/anda/lib/libayatana-common/libayatana-common.spec b/anda/lib/libayatana-common/libayatana-common.spec index d649cd8f52..ca8f31ad9e 100644 --- a/anda/lib/libayatana-common/libayatana-common.spec +++ b/anda/lib/libayatana-common/libayatana-common.spec @@ -1,8 +1,8 @@ Name: libayatana-common Summary: Common functions for Ayatana System Indicators Version: 0.9.11 -Release: 2%?dist -License: GPL-3.0 +Release: 3%?dist +License: GPL-3.0-or-later URL: https://github.com/AyatanaIndicators/libayatana-common Source0: %{url}/archive/refs/tags/%{version}.tar.gz @@ -17,6 +17,8 @@ BuildRequires: pkgconfig(gobject-introspection-1.0) BuildRequires: vala-devel BuildRequires: vala BuildRequires: intltool +BuildRequires: gcc-c++ +BuildRequires: gtest-devel %description The Ayatana Indicators project is the continuation of Application Indicators @@ -33,11 +35,12 @@ This package contains the development header files for %{name}. %prep %autosetup -n %{name}-%{version} -%build +%conf %cmake -DENABLE_LOMIRI_FEATURES=ON \ -DENABLE_TESTS=ON \ -DENABLE_COVERAGE=OFF +%build %cmake_build %install diff --git a/anda/lib/libbismuth/libbismuth.spec b/anda/lib/libbismuth/libbismuth.spec index be80f6c288..d1cb9d8cb8 100644 --- a/anda/lib/libbismuth/libbismuth.spec +++ b/anda/lib/libbismuth/libbismuth.spec @@ -33,13 +33,13 @@ for writing applications with libbismuth. %prep %autosetup -n libbismuth-%{version} -%build +%conf %meson + +%build %meson_build %install -# Install licenses -mkdir -p licenses %meson_install rm -rf %{buildroot}%{_bindir}/blueprint-compiler diff --git a/anda/lib/libde265/anda.hcl b/anda/lib/libde265/anda.hcl index cc0f1db0fd..f1ca67f6cb 100644 --- a/anda/lib/libde265/anda.hcl +++ b/anda/lib/libde265/anda.hcl @@ -2,8 +2,10 @@ project pkg { arches = ["x86_64", "aarch64", "i386"] rpm { spec = "libde265.spec" + extra_repos = ["https://repos.fyralabs.com/terrarawhide-multimedia"] } labels { mock = 1 + subrepo = "multimedia" } } diff --git a/anda/lib/libde265/libde265.spec b/anda/lib/libde265/libde265.spec index f9baa6453d..f04c5f0261 100644 --- a/anda/lib/libde265/libde265.spec +++ b/anda/lib/libde265/libde265.spec @@ -1,7 +1,7 @@ Name: libde265 Summary: Open H.265 video codec implementation -Version: 1.0.16 -Release: 1%?dist +Version: 1.0.18 +Release: 1%{?dist} License: LGPL-3.0-or-later URL: https://www.libde265.org/ Source0: https://github.com/strukturag/%{name}/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz @@ -41,9 +41,11 @@ Various sample and test applications using %{name} are provided by this package. %prep %autosetup -%build +%conf autoreconf -vif %configure --disable-silent-rules --disable-static --enable-encoder + +%build %make_build %install diff --git a/anda/lib/libfiber/add-missing-header.patch b/anda/lib/libfiber/add-missing-header.patch new file mode 100644 index 0000000000..dc81dc6e2c --- /dev/null +++ b/anda/lib/libfiber/add-missing-header.patch @@ -0,0 +1,12 @@ +diff --git a/cpp/include/fiber/go_fiber.hpp b/cpp/include/fiber/go_fiber.hpp +index 5e1df06..8d6ad2a 100644 +--- a/cpp/include/fiber/go_fiber.hpp ++++ b/cpp/include/fiber/go_fiber.hpp +@@ -15,6 +15,7 @@ + #include + #include "fiber.hpp" + #include "fiber_tbox.hpp" ++#include + + struct ACL_FIBER; + diff --git a/anda/lib/libfiber/anda.hcl b/anda/lib/libfiber/anda.hcl new file mode 100644 index 0000000000..d714a0a0fd --- /dev/null +++ b/anda/lib/libfiber/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "libfiber.spec" + } +} diff --git a/anda/lib/libfiber/libfiber.spec b/anda/lib/libfiber/libfiber.spec new file mode 100644 index 0000000000..0d887f16a0 --- /dev/null +++ b/anda/lib/libfiber/libfiber.spec @@ -0,0 +1,42 @@ +%define debug_package %{nil} + +%global _description %{expand: +libfiber is a high-performance coroutine library designed for building efficient network applications across multiple platforms. +Originating from the coroutine module in the acl project, libfiber supports Linux, FreeBSD, macOS, and Windows operating systems. +The library enables developers to write highly concurrent applications using synchronous programming paradigms while achieving performance comparable to or better than asynchronous frameworks.} + +Name: libfiber-devel +Version: 1.1.0 +Release: 2%?dist +URL: https://deepwiki.com/iqiyi/libfiber +Source0: https://github.com/iqiyi/libfiber/archive/refs/tags/v%version.tar.gz +Patch0: add-missing-header.patch +Summary: The high performance c/c++ coroutine/fiber library for Linux/FreeBSD/MacOS/Windows, supporting select/poll/epoll/kqueue/iouring/iocp/windows GUI +License: LGPL-3.0-or-later +ExclusiveArch: x86_64 + +Packager: Owen Zimmerman + +BuildRequires: gcc-c++ make + +%description %_description + +%prep +%autosetup -n libfiber-%{version} -p1 + +%build +%make_build + +%install +mkdir -p %{buildroot}%{_includedir}/fiber/ +install -Dm644 c/include/fiber/*.h %{buildroot}%{_includedir}/fiber/ +install -Dm644 cpp/include/fiber/*.hpp %{buildroot}%{_includedir}/fiber/ + +%files +%license LICENSE.txt +%doc README.md README_cn.md changes.txt +%{_includedir}/fiber/ + +%changelog +* Wed Dec 31 2025 Owen Zimmerman +- Initial commit diff --git a/anda/lib/libfiber/update.rhai b/anda/lib/libfiber/update.rhai new file mode 100644 index 0000000000..43cf72991d --- /dev/null +++ b/anda/lib/libfiber/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("iqiyi/libfiber")); diff --git a/anda/lib/libfprint-tod/anda.hcl b/anda/lib/libfprint-tod/anda.hcl new file mode 100644 index 0000000000..15ab77e67b --- /dev/null +++ b/anda/lib/libfprint-tod/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "libfprint-tod.spec" + } +} diff --git a/anda/lib/libfprint-tod/libfprint-tod.spec b/anda/lib/libfprint-tod/libfprint-tod.spec new file mode 100644 index 0000000000..c8de865f4e --- /dev/null +++ b/anda/lib/libfprint-tod/libfprint-tod.spec @@ -0,0 +1,65 @@ +%global appid org.freedesktop.libfprint + +Name: libfprint-tod +Version: 1.95.1+tod1 +Release: 1%{?dist} +URL: https://gitlab.freedesktop.org/3v1n0/libfprint/ +Source: %{url}/-/archive/v%{version}/libfprint-v%{version}.tar.gz +Summary: a light fork of libfprint to expose internal Drivers API in order to create drivers as shared libraries +License: GPL-2.1 +Conflicts: libfprint + +BuildRequires: gcc-c++ +BuildRequires: meson +BuildRequires: cmake +BuildRequires: gtk-doc +BuildRequires: pkgconfig(glib-2.0) +BuildRequires: pkgconfig(gio-unix-2.0) +BuildRequires: pkgconfig(gobject-2.0) +BuildRequires: pkgconfig(gobject-introspection-1.0) +BuildRequires: pkgconfig(gusb) +BuildRequires: pkgconfig(openssl) +BuildRequires: pkgconfig(gudev-1.0) +BuildRequires: pkgconfig(udev) +BuildRequires: pkgconfig(pixman-1) +BuildRequires: terra-appstream-helper + +%description +%summary. + +%package devel +%pkg_devel_files + +%package doc +Summary: Documentation for %{name} + +%description doc +Documentation for %{name}. + +%prep +%autosetup -n libfprint-v%{version} +%meson -Ddrivers=all -Dinstalled-tests=false + +%build +%meson_build + +%install +%meson_install +%terra_appstream + +%files +%license COPYING +%doc AUTHORS HACKING.md INSTALL MAINTAINERS NEWS NEWS.tod.md README.md README.tod.md THANKS code-of-conduct.md +%{_libdir}/*.so.* +%{_libdir}/girepository-1.0/*.typelib +%{_udevhwdbdir}/60-autosuspend-libfprint-2.hwdb +%{_udevrulesdir}/70-libfprint-2.rules +%{_metainfodir}/%{appid}.metainfo.xml + +%files doc +%dir %{_datadir}/gtk-doc/html/libfprint-2 +%{_datadir}/gtk-doc/html/libfprint-2/*.{html,css,png,devhelp2} + +%changelog +* Fri Dec 5 2025 metcya +- Package libfprint-tod diff --git a/anda/lib/libfprint-tod/update.rhai b/anda/lib/libfprint-tod/update.rhai new file mode 100644 index 0000000000..b8324f0d42 --- /dev/null +++ b/anda/lib/libfprint-tod/update.rhai @@ -0,0 +1 @@ +rpm.version(gitlab("gitlab.freedesktop.org", "4792")); diff --git a/anda/lib/libfreeaptx/anda.hcl b/anda/lib/libfreeaptx/anda.hcl index bac6cc9f1b..1c0f5d7f4e 100644 --- a/anda/lib/libfreeaptx/anda.hcl +++ b/anda/lib/libfreeaptx/anda.hcl @@ -6,5 +6,6 @@ project pkg { labels { weekly = 1 mock = 1 + subrepo = "multimedia" } } diff --git a/anda/lib/libtrueforce/anda.hcl b/anda/lib/libtrueforce/anda.hcl new file mode 100644 index 0000000000..6b598949a3 --- /dev/null +++ b/anda/lib/libtrueforce/anda.hcl @@ -0,0 +1,10 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "libtrueforce.spec" + } + labels { + updbranch = 1 + mock = 1 + } +} diff --git a/anda/lib/libtrueforce/libtrueforce.spec b/anda/lib/libtrueforce/libtrueforce.spec new file mode 100644 index 0000000000..06ceb70d96 --- /dev/null +++ b/anda/lib/libtrueforce/libtrueforce.spec @@ -0,0 +1,70 @@ +%global commit 1635bbd0ea044d1c3681b1843b5a0f3e878d0ed0 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global commitdate 20260504 +%global debug_package %{nil} + +Name: libtrueforce +Version: 1.3.11^%{commitdate}git.%{shortcommit} +Release: 1%{?dist} +Summary: Native Linux implementation of the Logitech Trueforce SDK +License: GPL-2.0-only +URL: https://github.com/mescon/logitech-rs50-linux-driver +Source0: %{url}/archive/%{commit}.tar.gz#/%{name}-%{shortcommit}.tar.gz +BuildRequires: gcc +BuildRequires: make +Requires: logitech-rs50-linux-driver +Provides: trueforce-sdk = %{?epoch:%{epoch}:}%{version} +Packager: Luan V. + + +%description +Native Linux implementation of the Logitech Trueforce SDK +(trueforce_sdk_x64.dll, version 1.3.11). Supports both the RS50 (046d:c276) and +the G Pro Racing Wheel (046d:c272 / 046d:c268) the two wheels use byte-for-byte +identical init and streaming packets, so the same library drives both. See +docs/TRUEFORCE_PROTOCOL.md in the parent repo for the protocol documentation. + +%package static +Summary: Static library for %{name} +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description static +The %{name}-static package contains the static library for %{name}. + + +%package devel +Summary: Development files for %{name} +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description devel +The %{name}-devel package contains libraries and header files for +developing applications that use %{name}. + +%prep +%autosetup -c -n %{name}-%{commit} +mv ./logitech-rs50-linux-driver-%{commit}/userspace/%{name}/* . +mv ./logitech-rs50-linux-driver-%{commit}/docs/TRUEFORCE_PROTOCOL.md . +rm -rf ./logitech-rs50-linux-driver-%{commit} + +%build +%make_build PREFIX=%{_prefix} LIBDIR=%{_libdir} CFLAGS="%{build_cflags}" + +%install +%make_install PREFIX=%{_prefix} LIBDIR=%{_libdir} +install -D -m644 %{name}.a %{buildroot}%{_libdir}/ + +%files +%doc README.md TRUEFORCE_PROTOCOL.md +%{_libdir}/*.so.* + +%files devel +%{_libdir}/*.so +%{_includedir}/trueforce.h + +%files static +%{_libdir}/*.a + + +%changelog +* Fri May 01 2026 Luan V. - 1.3.11^20260430git.df7f149-1 +- Initial package diff --git a/anda/lib/libtrueforce/update.rhai b/anda/lib/libtrueforce/update.rhai new file mode 100644 index 0000000000..d55bf59bae --- /dev/null +++ b/anda/lib/libtrueforce/update.rhai @@ -0,0 +1,9 @@ + let c = sh("cat anda/system/logitech-rs50-linux-driver/kmod-common/logitech-rs50-linux-driver.spec | grep '%global commit ' | sed -E 's/.+commit //'", #{"stdout": "piped"}).ctx.stdout; +c.pop(); +rpm.global("commit", c); +if rpm.changed() { + rpm.release(); + let d = sh("cat anda/system/logitech-rs50-linux-driver/kmod-common/logitech-rs50-linux-driver.spec | grep '%global commitdate' | sed -E 's/.+commitdate //'", #{"stdout": "piped"}).ctx.stdout; + d.pop(); + rpm.global("commitdate", d); +} diff --git a/anda/lib/libusermetrics/libusermetrics.spec b/anda/lib/libusermetrics/libusermetrics.spec index 30e4df3648..10f9928671 100644 --- a/anda/lib/libusermetrics/libusermetrics.spec +++ b/anda/lib/libusermetrics/libusermetrics.spec @@ -1,8 +1,8 @@ Name: libusermetrics -Version: 1.3.3 -Release: 1%?dist +Version: 1.4.1 +Release: 2%?dist Summary: library for retrieving anonymous metrics about users -License: GPLv3 AND LGPLv3 AND LGPLv2 +License: GPL-3.0-or-later AND LGPL-3.0-or-later AND LGPL-2.1-or-later URL: https://gitlab.com/ubports/development/core/libusermetrics Source0: %url/-/archive/%version/libusermetrics-%version.tar.gz @@ -20,6 +20,8 @@ BuildRequires: pkgconfig(libqtdbustest-1) BuildRequires: pkgconfig(libapparmor) BuildRequires: qdjango-devel BuildRequires: fdupes +BuildRequires: gmock-devel +BuildRequires: gtest-devel %description library for retrieving anonymous metrics about users @@ -55,7 +57,7 @@ The %{name}-doc contains documentation for %{name}. %files -f %{name}.lang %doc ChangeLog %license LGPL_EXCEPTION.txt LICENSE.GPL LICENSE.LGPL LICENSE.LGPL-3 -%{_sysconfdir}/dbus-1/system.d/com.lomiri.UserMetrics.conf +%{_datadir}/dbus-1/system.d/com.lomiri.UserMetrics.conf %{_bindir}/usermetricsinput %{_bindir}/usermetricsinput-increment %{_libdir}/libusermetricsinput.so.* diff --git a/anda/lib/lovely-injector/lovely-injector.spec b/anda/lib/lovely-injector/lovely-injector.spec index a8a8a05a51..71ab5f48db 100644 --- a/anda/lib/lovely-injector/lovely-injector.spec +++ b/anda/lib/lovely-injector/lovely-injector.spec @@ -1,6 +1,6 @@ # Generated by rust2rpm 27 %bcond check 0 -%bcond rust_nightly 1 +%bcond rust_nightly 0 %global debug_package %{nil} %if %{with rust_nightly} %define __cargo /usr/bin/env CARGO_HOME=.cargo RUSTC_BOOTSTRAP=1 RUSTFLAGS='%{build_rustflags}' $HOME/.cargo/bin/cargo @@ -9,7 +9,7 @@ %endif Name: lovely-injector -Version: 0.8.0 +Version: 0.9.0 Release: 1%?dist Summary: A runtime lua injector for games built with LÖVE diff --git a/anda/lib/lsp-dsp/liblsp-dsp.spec b/anda/lib/lsp-dsp/liblsp-dsp.spec index 5fa7fbbd9f..5800be8884 100644 --- a/anda/lib/lsp-dsp/liblsp-dsp.spec +++ b/anda/lib/lsp-dsp/liblsp-dsp.spec @@ -3,8 +3,8 @@ #define _empty_manifest_terminate_build 0 Name: liblsp-dsp -Version: 1.0.32 -Release: 1%?dist +Version: 1.0.35 +Release: 1%{?dist} Summary: DSP library for signal processing License: LGPL-3.0 #Group: System/Libraries diff --git a/anda/lib/mesa-compat/0001-c11-threads-fix-build-on-fedora-44.patch b/anda/lib/mesa-compat/0001-c11-threads-fix-build-on-fedora-44.patch new file mode 100644 index 0000000000..71322c9a45 --- /dev/null +++ b/anda/lib/mesa-compat/0001-c11-threads-fix-build-on-fedora-44.patch @@ -0,0 +1,47 @@ +From 6e3646c81143477008e448d3b0b5c349169e4112 Mon Sep 17 00:00:00 2001 +From: Dave Airlie +Date: Fri, 7 Nov 2025 13:14:56 +1000 +Subject: [PATCH] c11/threads: fix build on fedora 44. + +glibc is now including once_init in stdlib.h + +https://patchwork.sourceware.org/project/glibc/patch/78061085-f04a-0c45-107b-5a8a15521083@redhat.com/#213088 + +Just fix up our use of it. +--- + src/c11/impl/threads_posix.c | 2 +- + src/c11/threads.h | 3 +++ + 2 files changed, 4 insertions(+), 1 deletion(-) + +diff --git a/src/c11/impl/threads_posix.c b/src/c11/impl/threads_posix.c +index 3b8692482bb..4769c029bad 100644 +--- a/src/c11/impl/threads_posix.c ++++ b/src/c11/impl/threads_posix.c +@@ -49,7 +49,7 @@ impl_thrd_routine(void *p) + void + call_once(once_flag *flag, void (*func)(void)) + { +- pthread_once(flag, func); ++ pthread_once((pthread_once_t *)flag, func); + } + + +diff --git a/src/c11/threads.h b/src/c11/threads.h +index dbcb3459a9b..053636f6674 100644 +--- a/src/c11/threads.h ++++ b/src/c11/threads.h +@@ -118,8 +118,11 @@ typedef pthread_cond_t cnd_t; + typedef pthread_t thrd_t; + typedef pthread_key_t tss_t; + typedef pthread_mutex_t mtx_t; ++#ifndef __once_flag_defined ++#define __once_flag_defined 1 + typedef pthread_once_t once_flag; + # define ONCE_FLAG_INIT PTHREAD_ONCE_INIT ++#endif + # ifdef PTHREAD_DESTRUCTOR_ITERATIONS + # define TSS_DTOR_ITERATIONS PTHREAD_DESTRUCTOR_ITERATIONS + # else +-- +2.51.1 + diff --git a/anda/lib/mesa-compat/cd129dbf8af2d16b1243f2ce287ff69c6a5dc557.patch b/anda/lib/mesa-compat/cd129dbf8af2d16b1243f2ce287ff69c6a5dc557.patch new file mode 100644 index 0000000000..59efa33fe3 --- /dev/null +++ b/anda/lib/mesa-compat/cd129dbf8af2d16b1243f2ce287ff69c6a5dc557.patch @@ -0,0 +1,54 @@ +From cd129dbf8af2d16b1243f2ce287ff69c6a5dc557 Mon Sep 17 00:00:00 2001 +From: no92 +Date: Wed, 27 Aug 2025 16:02:31 +0200 +Subject: [PATCH] gallivm: support LLVM 21 + +LLVM PR#146819 changed the signature of `setObjectLinkingLayerCreator`, +dropping the Triple argument. The PR was first included in the LLVM 21 +series, and the new signature is gated behind a version check for that. + +`LLVMOrcThreadSafeContextGetContext` was removed in LLVM commit b18e5b6, +and the ORC examples in the LLVM tree seem to just create a context +instead, which we replicate here. + +With this commit, mesa successfully builds the llvmpipe gallium driver +on riscv64 with LLVM 21.1.0. + +Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13785 +Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13852 + +Reviewed-by: David Heidelberg +Part-of: +--- + src/gallium/auxiliary/gallivm/lp_bld_init_orc.cpp | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_init_orc.cpp b/src/gallium/auxiliary/gallivm/lp_bld_init_orc.cpp +index 6651ea439da86..e5d8e461dd6c0 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_init_orc.cpp ++++ b/src/gallium/auxiliary/gallivm/lp_bld_init_orc.cpp +@@ -339,7 +339,12 @@ LPJit::LPJit() :jit_dylib_count(0) { + .setJITTargetMachineBuilder(std::move(JTMB)) + #ifdef USE_JITLINK + .setObjectLinkingLayerCreator( ++#if LLVM_VERSION_MAJOR >= 21 ++ /* LLVM 21 removed the Triple argument */ ++ [&](ExecutionSession &ES) { ++#else + [&](ExecutionSession &ES, const llvm::Triple &TT) { ++#endif + return std::make_unique( + ES, ExitOnErr(llvm::jitlink::InProcessMemoryManager::Create())); + }) +@@ -551,7 +556,7 @@ init_gallivm_state(struct gallivm_state *gallivm, const char *name, + gallivm->cache = cache; + + gallivm->_ts_context = context->ref; +- gallivm->context = LLVMOrcThreadSafeContextGetContext(context->ref); ++ gallivm->context = LLVMContextCreate(); + + gallivm->module_name = LPJit::get_unique_name(name); + gallivm->module = LLVMModuleCreateWithNameInContext(gallivm->module_name, +-- +GitLab + diff --git a/anda/lib/mesa-compat/mesa-compat.spec b/anda/lib/mesa-compat/mesa-compat.spec index eb20fbcd17..b3d67f5693 100644 --- a/anda/lib/mesa-compat/mesa-compat.spec +++ b/anda/lib/mesa-compat/mesa-compat.spec @@ -1,22 +1,30 @@ -# Credit to LionHeartP from Nobara for most of the spec and letting me know about the need for this package <3 %global origname mesa -%global ver 25.0.4 + +# We've gotten a report that enabling LTO for mesa breaks some games. See +# https://bugzilla.redhat.com/show_bug.cgi?id=1862771 for details. +# Disable LTO for now +%global _lto_cflags %nil Name: %{origname}-compat Summary: Mesa graphics libraries - legacy compatibility libraries +%global ver 25.0.7 Version: %{lua:ver = string.gsub(rpm.expand("%{ver}"), "-", "~"); print(ver)} -Release: 1%{?dist} +Release: 3%{?dist} Epoch: 1 License: MIT AND BSD-3-Clause AND SGI-B-2.0 URL: http://www.mesa3d.org - Source0: https://archive.mesa3d.org/mesa-%{ver}.tar.xz # src/gallium/auxiliary/postprocess/pp_mlaa* have an ... interestingly worded license. # Source1 contains email correspondence clarifying the license terms. # Fedora opts to ignore the optional part of clause 2 and treat that code as 2 clause BSD. Source1: Mesa-MLAA-License-Clarification-Email.txt -# Keep Mesa builds relatively the same -Patch0: bazzite.patch +# fix c11/threads builds problem on f44 +Patch0: 0001-c11-threads-fix-build-on-fedora-44.patch +# Support LLVM 21 +Patch1: cd129dbf8af2d16b1243f2ce287ff69c6a5dc557.patch + +# Older version of the Bazzite/OGC patches +Patch2: bazzite.patch BuildRequires: meson >= 1.3.0 BuildRequires: gcc @@ -41,6 +49,27 @@ BuildRequires: python3-pyyaml %description %{summary}. +%package libxatracker +Summary: Mesa XA state tracker +Provides: libxatracker%{?_isa} +Provides: mesa-libxatracker%{?_isa} +Obsoletes: mesa-libxatracker < 25.3 +# New things should not rely on this as this library is dead upstream +Provides: deprecated() + +%description libxatracker +%{summary}. + +%package libxatracker-devel +Summary: Mesa XA state tracker development package +Requires: %{name}-libxatracker%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +Obsoletes: mesa-libxatracker-devel < 25.3 +# New things should not rely on this as this library is dead upstream +Provides: deprecated() + +%description libxatracker-devel +%{summary}. + %package libOSMesa Summary: Mesa offscreen rendering libraries Provides: libOSMesa @@ -65,18 +94,13 @@ Provides: deprecated() cp %{SOURCE1} docs/ %build -# We've gotten a report that enabling LTO for mesa breaks some games. See -# https://bugzilla.redhat.com/show_bug.cgi?id=1862771 for details. -# Disable LTO for now -%define _lto_cflags %{nil} - %meson \ -Dplatforms= \ -Dosmesa=true \ - -Dgallium-drivers=llvmpipe \ + -Dgallium-drivers=llvmpipe,svga \ -Dgallium-vdpau=disabled \ -Dgallium-va=disabled \ - -Dgallium-xa=disabled \ + -Dgallium-xa=enabled \ -Dgallium-nine=false \ -Dgallium-opencl=disabled \ -Dgallium-rusticl=false \ @@ -121,6 +145,17 @@ rm -rf %{buildroot}%{_includedir}/KHR %{_libdir}/libOSMesa.so %{_libdir}/pkgconfig/osmesa.pc +%files libxatracker +%{_libdir}/libxatracker.so.2* +%{_libdir}/libxatracker.so.2.* + +%files libxatracker-devel +%{_libdir}/libxatracker.so +%{_includedir}/xa_tracker.h +%{_includedir}/xa_composite.h +%{_includedir}/xa_context.h +%{_libdir}/pkgconfig/xatracker.pc + %changelog -* Thu Apr 24 2025 Neal Gompa - 25.0.4-1 -- Initial split from mesa for compat libraries (rhbz#2362203) +* Sun Apr 26 2026 Gilver E. - 25.0.7-3 +- Updated build for Fedora 44 diff --git a/anda/lib/mesa/bazzite.patch b/anda/lib/mesa/bazzite.patch deleted file mode 100644 index e05c18db0c..0000000000 --- a/anda/lib/mesa/bazzite.patch +++ /dev/null @@ -1,2751 +0,0 @@ -From 21b062a757a202dcb737d40442b6145c34bb1e48 Mon Sep 17 00:00:00 2001 -From: Bas Nieuwenhuizen -Date: Fri, 14 Jan 2022 15:58:45 +0100 -Subject: [PATCH 01/11] STEAMOS: radv: min image count override for FH5 - -Otherwise in combination with the vblank time reservation in -gamescope the game could get stuck in low power states. ---- - src/util/00-radv-defaults.conf | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/src/util/00-radv-defaults.conf b/src/util/00-radv-defaults.conf -index b82e8d4da4d..c8d059571ad 100644 ---- a/src/util/00-radv-defaults.conf -+++ b/src/util/00-radv-defaults.conf -@@ -234,5 +234,9 @@ Application bugs worked around in this file: - - -+ -+ -+ - - --- -2.50.1 - - -From e837814b4f33e48eaf6a79975cb738da39ed0fd2 Mon Sep 17 00:00:00 2001 -From: Samuel Pitoiset -Date: Thu, 22 Feb 2024 22:32:45 +0100 -Subject: [PATCH 02/11] STEAMOS: Dynamic swapchain override for gamescope - limiter for DRI3 only - -The original patch (from Bas) contained WSI VK support too but it's -been removed because the Gamescope WSI layer already handles that. - -Signed-off-by: Samuel Pitoiset ---- - .../frontends/dri/loader_dri3_helper.c | 42 ++++++++++++++++++- - .../frontends/dri/loader_dri3_helper.h | 1 + - 2 files changed, 41 insertions(+), 2 deletions(-) - -diff --git a/src/gallium/frontends/dri/loader_dri3_helper.c b/src/gallium/frontends/dri/loader_dri3_helper.c -index a795d45ce29..435ea2405a8 100644 ---- a/src/gallium/frontends/dri/loader_dri3_helper.c -+++ b/src/gallium/frontends/dri/loader_dri3_helper.c -@@ -297,6 +297,30 @@ dri3_update_max_num_back(struct loader_dri3_drawable *draw) - } - } - -+static unsigned -+gamescope_swapchain_override() -+{ -+ const char *path = getenv("GAMESCOPE_LIMITER_FILE"); -+ if (!path) -+ return 0; -+ -+ static simple_mtx_t mtx = SIMPLE_MTX_INITIALIZER; -+ static int fd = -1; -+ -+ simple_mtx_lock(&mtx); -+ if (fd < 0) { -+ fd = open(path, O_RDONLY); -+ } -+ simple_mtx_unlock(&mtx); -+ -+ if (fd < 0) -+ return 0; -+ -+ uint32_t override_value = 0; -+ pread(fd, &override_value, sizeof(override_value), 0); -+ return override_value; -+} -+ - void - loader_dri3_set_swap_interval(struct loader_dri3_drawable *draw, int interval) - { -@@ -311,10 +335,12 @@ loader_dri3_set_swap_interval(struct loader_dri3_drawable *draw, int interval) - * PS. changing from value A to B and A < B won't cause swap out of order but - * may still gets wrong target_msc value at the beginning. - */ -- if (draw->swap_interval != interval) -+ if (draw->orig_swap_interval != interval) - loader_dri3_swapbuffer_barrier(draw); - -- draw->swap_interval = interval; -+ draw->orig_swap_interval = interval; -+ if (gamescope_swapchain_override() != 1) -+ draw->swap_interval = interval; - } - - static void -@@ -443,6 +469,12 @@ loader_dri3_drawable_init(xcb_connection_t *conn, - - draw->swap_interval = dri_get_initial_swap_interval(draw->dri_screen_render_gpu); - -+ draw->orig_swap_interval = draw->swap_interval; -+ -+ unsigned gamescope_override = gamescope_swapchain_override(); -+ if (gamescope_override == 1) -+ draw->swap_interval = 1; -+ - dri3_update_max_num_back(draw); - - /* Create a new drawable */ -@@ -1085,6 +1117,12 @@ loader_dri3_swap_buffers_msc(struct loader_dri3_drawable *draw, - if (draw->type == LOADER_DRI3_DRAWABLE_WINDOW) { - dri3_fence_reset(draw->conn, back); - -+ unsigned gamescope_override = gamescope_swapchain_override(); -+ if (gamescope_override == 1) -+ draw->swap_interval = 1; -+ else -+ draw->swap_interval = draw->orig_swap_interval; -+ - /* Compute when we want the frame shown by taking the last known - * successful MSC and adding in a swap interval for each outstanding swap - * request. target_msc=divisor=remainder=0 means "Use glXSwapBuffers() -diff --git a/src/gallium/frontends/dri/loader_dri3_helper.h b/src/gallium/frontends/dri/loader_dri3_helper.h -index 26f138d1b83..3f0f3f66fac 100644 ---- a/src/gallium/frontends/dri/loader_dri3_helper.h -+++ b/src/gallium/frontends/dri/loader_dri3_helper.h -@@ -169,6 +169,7 @@ struct loader_dri3_drawable { - bool block_on_depleted_buffers; - bool queries_buffer_age; - int swap_interval; -+ int orig_swap_interval; - - const struct loader_dri3_vtable *vtable; - --- -2.50.1 - - -From 354cf8783e49b082c97982f2e5be305ad6e4ab50 Mon Sep 17 00:00:00 2001 -From: Antheas Kapenekakis -Date: Sat, 15 Mar 2025 16:39:25 +0100 -Subject: [PATCH 03/11] [BEGIN] SteamOS Backports - --- -2.50.1 - - -From c5a4eab20075dfa2f2bdfb87e55ecec262ef00f6 Mon Sep 17 00:00:00 2001 -From: Antheas Kapenekakis -Date: Sat, 15 Mar 2025 16:39:33 +0100 -Subject: [PATCH 04/11] [BEGIN] Our Mesa backports - --- -2.50.1 - - -From 221b11df6d9cd7b66c8502fa51d8d72cfc377e5e Mon Sep 17 00:00:00 2001 -From: Antheas Kapenekakis -Date: Mon, 24 Mar 2025 19:50:51 +0100 -Subject: [PATCH 05/11] Revert "winsys/amdgpu: use VM_ALWAYS_VALID for all VRAM - and GTT allocations" - -This reverts commit 8c91624614c1f939974fe0d2d1a3baf83335cecb. - -Messes with AutoVRAM, who would have thought? ---- - src/gallium/winsys/amdgpu/drm/amdgpu_bo.c | 5 ----- - 1 file changed, 5 deletions(-) - -diff --git a/src/gallium/winsys/amdgpu/drm/amdgpu_bo.c b/src/gallium/winsys/amdgpu/drm/amdgpu_bo.c -index d5646e9660b..a51348b44a8 100644 ---- a/src/gallium/winsys/amdgpu/drm/amdgpu_bo.c -+++ b/src/gallium/winsys/amdgpu/drm/amdgpu_bo.c -@@ -624,11 +624,6 @@ static struct amdgpu_winsys_bo *amdgpu_create_bo(struct amdgpu_winsys *aws, - if (flags & RADEON_FLAG_GTT_WC) - request.flags |= AMDGPU_GEM_CREATE_CPU_GTT_USWC; - -- if (aws->info.has_vm_always_valid && -- initial_domain & (RADEON_DOMAIN_VRAM_GTT | RADEON_DOMAIN_DOORBELL) && -- flags & RADEON_FLAG_NO_INTERPROCESS_SHARING) -- request.flags |= AMDGPU_GEM_CREATE_VM_ALWAYS_VALID; -- - if (flags & RADEON_FLAG_DISCARDABLE && - aws->info.drm_minor >= 47) - request.flags |= AMDGPU_GEM_CREATE_DISCARDABLE; --- -2.50.1 - - -From cf8c0d66ed49f99d0d259c28fe72174d58c06de7 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= -Date: Mon, 24 Mar 2025 21:25:29 +0100 -Subject: [PATCH 06/11] vulkan: implement VK_AMD_anti_lag as implicit vulkan - layer - -VkLayer_MESA_anti_lag is a lightweight implicit layer which provides -an open-source implementation of the VK_AMD_anti_lag vulkan extension. - -The algorithm used by this layer is very simplistic and only aims to -minimize the delay between calls to vkQueueSubmit or vkQueueSubmit2 -and the begin of the execution of the submission. - -In order to build VkLayer_MESA_anti_lag, pass -Dlayers=anti-lag to meson. -It is possible to either install the layer or to use - - VK_ADD_IMPLICIT_LAYER_PATH=/share/vulkan/implicit_layer.d/ - -for testing purposes. -(Keep in mind that you have to adjust the library_path in the json file in that case.) - -Part-of: ---- - meson.build | 1 + - meson.options | 2 +- - .../anti-lag-layer/VkLayer_MESA_anti_lag.json | 26 + - src/vulkan/anti-lag-layer/anti_lag_layer.c | 590 ++++++++++++ - src/vulkan/anti-lag-layer/anti_lag_layer.h | 111 +++ - .../anti-lag-layer/anti_lag_layer_interface.c | 899 ++++++++++++++++++ - src/vulkan/anti-lag-layer/meson.build | 26 + - src/vulkan/anti-lag-layer/ringbuffer.h | 58 ++ - src/vulkan/meson.build | 3 + - 9 files changed, 1715 insertions(+), 1 deletion(-) - create mode 100644 src/vulkan/anti-lag-layer/VkLayer_MESA_anti_lag.json - create mode 100644 src/vulkan/anti-lag-layer/anti_lag_layer.c - create mode 100644 src/vulkan/anti-lag-layer/anti_lag_layer.h - create mode 100644 src/vulkan/anti-lag-layer/anti_lag_layer_interface.c - create mode 100644 src/vulkan/anti-lag-layer/meson.build - create mode 100644 src/vulkan/anti-lag-layer/ringbuffer.h - -diff --git a/meson.build b/meson.build -index 427cfde435c..c6c6457abae 100644 ---- a/meson.build -+++ b/meson.build -@@ -95,6 +95,7 @@ with_vulkan_overlay_layer = get_option('vulkan-layers').contains('overlay') - with_vulkan_device_select_layer = get_option('vulkan-layers').contains('device-select') - with_vulkan_screenshot_layer = get_option('vulkan-layers').contains('screenshot') - with_vulkan_vram_report_limit_layer = get_option('vulkan-layers').contains('vram-report-limit') -+with_vulkan_anti_lag_layer = get_option('vulkan-layers').contains('anti-lag') - with_tools = get_option('tools') - if with_tools.contains('all') - with_tools = [ -diff --git a/meson.options b/meson.options -index c3c02c4c94f..cd0e56cc429 100644 ---- a/meson.options -+++ b/meson.options -@@ -299,7 +299,7 @@ option( - type : 'array', - value : [], - choices : [ -- 'device-select', 'intel-nullhw', 'overlay', 'screenshot', -+ 'device-select', 'intel-nullhw', 'overlay', 'screenshot', 'anti-lag', - 'vram-report-limit', - ], - description : 'List of vulkan layers to build' -diff --git a/src/vulkan/anti-lag-layer/VkLayer_MESA_anti_lag.json b/src/vulkan/anti-lag-layer/VkLayer_MESA_anti_lag.json -new file mode 100644 -index 00000000000..4e2ab794c9e ---- /dev/null -+++ b/src/vulkan/anti-lag-layer/VkLayer_MESA_anti_lag.json -@@ -0,0 +1,26 @@ -+{ -+ "file_format_version": "1.2.1", -+ "layer": { -+ "name": "VK_LAYER_MESA_anti_lag", -+ "type": "GLOBAL", -+ "library_path": "libVkLayer_MESA_anti_lag.so", -+ "api_version": "1.4.303", -+ "implementation_version": "1", -+ "description": "Open-source implementation of the VK_AMD_anti_lag extension.", -+ "functions": { -+ "vkNegotiateLoaderLayerInterfaceVersion": "anti_lag_NegotiateLoaderLayerInterfaceVersion" -+ }, -+ "device_extensions": [ -+ { -+ "name": "VK_AMD_anti_lag", -+ "spec_version": "1", -+ "entrypoints": [ -+ "vkAntiLagUpdateAMD" -+ ] -+ } -+ ], -+ "disable_environment": { -+ "DISABLE_LAYER_MESA_ANTI_LAG": "1" -+ } -+ } -+} -\ No newline at end of file -diff --git a/src/vulkan/anti-lag-layer/anti_lag_layer.c b/src/vulkan/anti-lag-layer/anti_lag_layer.c -new file mode 100644 -index 00000000000..6c21e074024 ---- /dev/null -+++ b/src/vulkan/anti-lag-layer/anti_lag_layer.c -@@ -0,0 +1,590 @@ -+/* -+ * Copyright © 2025 Valve Corporation -+ * -+ * SPDX-License-Identifier: MIT -+ */ -+ -+#include "anti_lag_layer.h" -+#include -+#include "util/os_time.h" -+#include "util/simple_mtx.h" -+#include "vulkan/vulkan_core.h" -+#include "ringbuffer.h" -+#include "vk_alloc.h" -+#include "vk_util.h" -+ -+static bool -+evaluate_frame(device_context *ctx, frame *frame, bool force_wait) -+{ -+ if (frame->state != FRAME_PRESENT) { -+ /* This frame is not finished yet. */ -+ assert(!force_wait); -+ return false; -+ } -+ -+ int query_flags = VK_QUERY_RESULT_64_BIT | VK_QUERY_RESULT_WAIT_BIT; -+ const uint32_t frame_idx = ringbuffer_index(ctx->frames, frame); -+ -+ /* Before we commit to completing a frame, all submits on all queues must have completed. */ -+ for (unsigned i = 0; i < ctx->num_queues; i++) { -+ queue_context *queue_ctx = &ctx->queues[i]; -+ ringbuffer_lock(queue_ctx->queries); -+ uint64_t expected_signal_value = queue_ctx->semaphore_value - queue_ctx->queries.size + -+ queue_ctx->submissions_per_frame[frame_idx]; -+ ringbuffer_unlock(queue_ctx->queries); -+ -+ if (force_wait) { -+ /* Wait for the timeline semaphore of the frame to be signaled. */ -+ struct VkSemaphoreWaitInfo wait_info = { -+ .sType = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO, -+ .semaphoreCount = 1, -+ .pSemaphores = &queue_ctx->semaphore, -+ .pValues = &expected_signal_value, -+ }; -+ ctx->vtable.WaitSemaphores(ctx->device, &wait_info, 0); -+ } else { -+ /* Return early if the last timeline semaphore of the frame has not been signaled yet. */ -+ uint64_t signal_value; -+ ctx->vtable.GetSemaphoreCounterValue(ctx->device, queue_ctx->semaphore, &signal_value); -+ if (signal_value < expected_signal_value) -+ return false; -+ } -+ } -+ -+ /* For each queue, retrieve timestamp query results. */ -+ for (unsigned i = 0; i < ctx->num_queues; i++) { -+ queue_context *queue_ctx = &ctx->queues[i]; -+ -+ /* As we hold a global mtx and this is the only place where queries are free'd, -+ * we don't need to lock the query ringbuffer here in order to read the first entry. -+ */ -+ struct query *query = ringbuffer_first(queue_ctx->queries); -+ uint32_t query_idx = ringbuffer_index(queue_ctx->queries, query); -+ int num_timestamps = -+ MIN2(queue_ctx->submissions_per_frame[frame_idx], MAX_QUERIES - query_idx); -+ -+ while (num_timestamps > 0) { -+ /* Retreive timestamp results from this queue. */ -+ ctx->vtable.GetQueryPoolResults(ctx->device, queue_ctx->queryPool, query_idx, -+ num_timestamps, sizeof(uint64_t), &query->begin_gpu_ts, -+ sizeof(struct query), query_flags); -+ -+ ringbuffer_lock(queue_ctx->queries); -+ for (unsigned j = 0; j < num_timestamps; j++) { -+ -+ /* Calibrate device timestamps. */ -+ query->begin_gpu_ts = -+ ctx->calibration.delta + -+ (uint64_t)(query->begin_gpu_ts * ctx->calibration.timestamp_period); -+ if (query->begin_gpu_ts > query->submit_cpu_ts) -+ frame->min_delay = -+ MIN2(frame->min_delay, query->begin_gpu_ts - query->submit_cpu_ts); -+ -+ /* Check if we can reset half of the query pool at once. */ -+ uint32_t next_idx = ringbuffer_index(queue_ctx->queries, query) + 1; -+ const bool reset = next_idx == MAX_QUERIES || next_idx == MAX_QUERIES / 2; -+ if (reset) { -+ ringbuffer_unlock(queue_ctx->queries); -+ ctx->vtable.ResetQueryPool(ctx->device, queue_ctx->queryPool, -+ next_idx - MAX_QUERIES / 2, MAX_QUERIES / 2); -+ ringbuffer_lock(queue_ctx->queries); -+ } -+ -+ /* Free query. */ -+ ringbuffer_free(queue_ctx->queries, query); -+ queue_ctx->submissions_per_frame[frame_idx]--; -+ -+ query = ringbuffer_first(queue_ctx->queries); -+ } -+ -+ /* Ensure that the total number of queries across all frames is correct. */ -+ ASSERTED uint32_t count = 0; -+ for (unsigned i = 0; i < MAX_FRAMES; i++) -+ count += queue_ctx->submissions_per_frame[i]; -+ assert(count == queue_ctx->queries.size); -+ -+ query_idx = ringbuffer_index(queue_ctx->queries, query); -+ num_timestamps = -+ MIN2(queue_ctx->submissions_per_frame[frame_idx], MAX_QUERIES - query_idx); -+ -+ ringbuffer_unlock(queue_ctx->queries); -+ } -+ } -+ -+ frame->min_delay++; /* wrap UINT64_MAX in case we didn't have any submissions. */ -+ -+ return true; -+} -+ -+static bool -+calibrate_timestamps(device_context *ctx) -+{ -+ uint64_t ts[2]; -+ uint64_t deviation; -+ -+ VkCalibratedTimestampInfoKHR info[2] = { -+ { -+ .sType = VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR, -+ .timeDomain = VK_TIME_DOMAIN_CLOCK_MONOTONIC_KHR, -+ }, -+ { -+ .sType = VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR, -+ .timeDomain = VK_TIME_DOMAIN_DEVICE_KHR, -+ }, -+ }; -+ -+ VkResult result = ctx->vtable.GetCalibratedTimestampsKHR(ctx->device, 2, info, ts, &deviation); -+ if (result == VK_SUCCESS) { -+ /* We take a moving average in order to avoid variance. */ -+ int64_t new_delta = ts[0] - (int64_t)(ts[1] * ctx->calibration.timestamp_period); -+ -+ if (ctx->calibration.delta == 0) { -+ ctx->calibration.delta = new_delta; -+ } else { -+ int64_t diff = new_delta - ctx->calibration.delta; -+ ctx->calibration.delta += diff / 8; -+ } -+ -+ /* Take a new calibrated timestamp every second. */ -+ ctx->calibration.recalibrate_when = ts[0] + 1000000000ull; -+ } -+ -+ return result == VK_SUCCESS; -+} -+ -+static void -+begin_next_frame(device_context *ctx) -+{ -+ frame *next_frame; -+ if (ctx->active_frame) { -+ assert(ctx->active_frame->state == FRAME_SUBMIT); -+ ctx->active_frame->state = FRAME_PRESENT; -+ next_frame = ringbuffer_next(ctx->frames, ctx->active_frame); -+ } else { -+ next_frame = ringbuffer_last(ctx->frames); -+ } -+ -+ /* If there is a frame ready, it becomes active. */ -+ if (next_frame->state == FRAME_INPUT) { -+ next_frame->state = FRAME_SUBMIT; -+ ctx->active_frame = next_frame; -+ } else { -+ ctx->active_frame = NULL; -+ } -+} -+ -+static void -+anti_lag_disable(device_context *ctx) -+{ -+ ringbuffer_lock(ctx->frames); -+ while (ctx->frames.size) { -+ /* Set force-wait=true, so that all pending timestamp queries get completed. */ -+ begin_next_frame(ctx); -+ frame *frame = ringbuffer_first(ctx->frames); -+ evaluate_frame(ctx, frame, true); -+ frame->state = FRAME_INVALID; -+ ringbuffer_free(ctx->frames, frame); -+ } -+ assert(!ctx->active_frame); -+ ringbuffer_unlock(ctx->frames); -+} -+ -+#define TARGET_DELAY 4000000ll /* 4 ms */ -+/** -+ * Returns the amount of time that we want the next frame to be delayed. -+ * -+ * The algorithm used by this function is very simplistic and only aims -+ * to minimize the delay between calls to vkQueueSubmit or vkQueueSubmit2 -+ * and the begin of the execution of the submission. -+ */ -+static int64_t -+get_wait_time(device_context *ctx) -+{ -+ /* Take the previous evaluated frame's delay as baseline. */ -+ int64_t imposed_delay = ctx->base_delay; -+ int64_t adaptation = 0; -+ -+ ringbuffer_lock(ctx->frames); -+ /* In case our ringbuffer is completely full and no frame is in PRESENT stage, -+ * just move the oldest frame to PRESENT stage, and force-wait. -+ */ -+ bool force_wait = ctx->frames.size == MAX_FRAMES; -+ frame *next_frame = ringbuffer_first(ctx->frames); -+ if (force_wait && next_frame->state != FRAME_PRESENT) -+ begin_next_frame(ctx); -+ -+ /* Also force-wait for the oldest frame if there is already 2 frames in PRESENT stage. */ -+ force_wait |= ringbuffer_next(ctx->frames, next_frame)->state == FRAME_PRESENT; -+ ringbuffer_unlock(ctx->frames); -+ -+ /* Take new evaluated frames into consideration. */ -+ while (evaluate_frame(ctx, next_frame, force_wait)) { -+ -+ if (next_frame->min_delay < TARGET_DELAY / 2 && ctx->adaptation <= 0) { -+ /* If there is no delay between submission and GPU start, halve the base delay and -+ * set the delay for this frame to zero, in order to account for sudden changes. -+ */ -+ ctx->base_delay = ctx->base_delay / 2; -+ adaptation = -ctx->base_delay; -+ } else { -+ /* We use some kind of exponential weighted moving average function here, -+ * in order to determine a base-delay. We use a smoothing-factor of roughly -+ * 3%, but don't discount the previous value. This helps keeping the delay -+ * slightly below the target of 5 ms, most of the time. -+ */ -+ int64_t diff = (int64_t)next_frame->min_delay - TARGET_DELAY; -+ ctx->base_delay = MAX2(0, ctx->base_delay + diff / 32); /* corresponds to ~3 % */ -+ -+ /* As the base-delay gets adjusted rather slowly, we additionally use the half of the -+ * diff as adaptation delay to account for sudden changes. A quarter of the adaptation -+ * is then subtracted for the next frame, so that we can avoid overcompensation. -+ */ -+ adaptation = diff / 2 - ctx->adaptation / 4; -+ } -+ -+ /* We only need space for one frame. */ -+ force_wait = false; -+ -+ ringbuffer_lock(ctx->frames); -+ next_frame->state = FRAME_INVALID; -+ ringbuffer_free(ctx->frames, next_frame); -+ next_frame = ringbuffer_first(ctx->frames); -+ ringbuffer_unlock(ctx->frames); -+ } -+ imposed_delay = ctx->base_delay + adaptation; -+ ctx->adaptation = adaptation; -+ -+ if (imposed_delay > 100000000) { -+ /* This corresponds to <10 FPS. Something might have gone wrong. */ -+ calibrate_timestamps(ctx); -+ ctx->base_delay = ctx->adaptation = imposed_delay = 0; -+ } -+ -+ return MAX2(0, imposed_delay); -+} -+ -+static void -+reset_frame(frame *frame) -+{ -+ assert(frame->state == FRAME_INVALID); -+ frame->frame_idx = 0; -+ frame->frame_start_time = 0; -+ frame->min_delay = UINT64_MAX; -+ frame->state = FRAME_INPUT; -+} -+ -+VKAPI_ATTR void VKAPI_CALL -+anti_lag_AntiLagUpdateAMD(VkDevice device, const VkAntiLagDataAMD *pData) -+{ -+ if (pData == NULL) -+ return; -+ -+ device_context *ctx = get_device_context(device); -+ if (pData->mode == VK_ANTI_LAG_MODE_OFF_AMD) { -+ /* Application request to disable Anti-Lag. */ -+ simple_mtx_lock(&ctx->mtx); -+ anti_lag_disable(ctx); -+ simple_mtx_unlock(&ctx->mtx); -+ return; -+ } -+ -+ uint64_t frame_idx = 0; -+ int64_t now = os_time_get_nano(); -+ int64_t imposed_delay = 0; -+ int64_t last_frame_begin = 0; -+ -+ if (pData->pPresentationInfo) { -+ /* The same frameIndex value should be used with VK_ANTI_LAG_STAGE_INPUT_AMD before -+ * the frame begins and with VK_ANTI_LAG_STAGE_PRESENT_AMD when the frame ends. -+ */ -+ frame_idx = pData->pPresentationInfo->frameIndex; -+ -+ /* This marks the end of the current frame. */ -+ if (pData->pPresentationInfo->stage == VK_ANTI_LAG_STAGE_PRESENT_AMD) { -+ /* If there is already a new frame pending, any submission that happens afterwards -+ * gets associated with the new frame. -+ */ -+ ringbuffer_lock(ctx->frames); -+ /* Check that the currently active frame is indeed the frame we are ending now. */ -+ while (ctx->active_frame && ctx->active_frame->frame_idx <= frame_idx) { -+ begin_next_frame(ctx); -+ } -+ ringbuffer_unlock(ctx->frames); -+ return; -+ } -+ } -+ -+ /* Lock this function, in order to avoid race conditions on frame allocation. */ -+ simple_mtx_lock(&ctx->mtx); -+ -+ /* VK_ANTI_LAG_STAGE_INPUT_AMD: This marks the begin of a new frame. -+ * Evaluate previous frames in order to determine the wait time. -+ */ -+ imposed_delay = get_wait_time(ctx); -+ int64_t next_deadline = now + imposed_delay; -+ -+ /* Ensure maxFPS adherence. */ -+ if (pData->maxFPS) { -+ int64_t frametime_period = 1000000000u / pData->maxFPS; -+ last_frame_begin = ringbuffer_last(ctx->frames)->frame_start_time; -+ next_deadline = MAX2(next_deadline, last_frame_begin + frametime_period); -+ } -+ -+ /* Recalibrate every now and then. */ -+ if (next_deadline > ctx->calibration.recalibrate_when) -+ calibrate_timestamps(ctx); -+ -+ /* Sleep until deadline is met. */ -+ os_time_nanosleep_until(next_deadline); -+ -+ /* Initialize new frame. */ -+ ringbuffer_lock(ctx->frames); -+ frame *new_frame = ringbuffer_alloc(ctx->frames); -+ reset_frame(new_frame); -+ new_frame->frame_start_time = next_deadline; -+ new_frame->imposed_delay = imposed_delay; -+ new_frame->frame_idx = frame_idx; -+ -+ /* Immediately set the frame active if there is no other frame already active. */ -+ if (!ctx->active_frame) -+ begin_next_frame(ctx); -+ -+ ringbuffer_unlock(ctx->frames); -+ simple_mtx_unlock(&ctx->mtx); -+} -+ -+static queue_context * -+get_queue_context(device_context *ctx, VkQueue queue) -+{ -+ for (unsigned i = 0; i < ctx->num_queues; i++) { -+ if (ctx->queues[i].queue == queue) -+ return &ctx->queues[i]; -+ } -+ -+ return NULL; -+} -+ -+static struct query * -+allocate_query(device_context *ctx, queue_context *queue_ctx) -+{ -+ if (!ctx->active_frame) -+ return NULL; -+ -+ /* Allow for a single frame to use at most half of the query pool. */ -+ uint32_t frame_idx = ringbuffer_index(ctx->frames, ctx->active_frame); -+ if (queue_ctx->submissions_per_frame[frame_idx] > MAX_QUERIES / 2) -+ return NULL; -+ -+ /* Check that the next query index has been reset properly: -+ * -+ * We use some double-buffering here in order to reduce the number of -+ * VkResetQueryPool commands. -+ * Return false if the next query-index allocation crosses into the half -+ * which still contains active queries, -+ */ -+ if (queue_ctx->queries.size > MAX_QUERIES / 2) { -+ struct query *last_query = ringbuffer_last(queue_ctx->queries); -+ uint32_t next_idx = ringbuffer_index(queue_ctx->queries, last_query) + 1; -+ if (next_idx == MAX_QUERIES || next_idx == MAX_QUERIES / 2) -+ return NULL; -+ } -+ -+ return ringbuffer_alloc(queue_ctx->queries); -+} -+ -+static bool -+get_commandbuffer(device_context *ctx, queue_context *queue_ctx, VkCommandBuffer *cmdbuffer) -+{ -+ uint64_t now = os_time_get_nano(); -+ -+ /* Begin critical section. */ -+ ringbuffer_lock(ctx->frames); -+ ringbuffer_lock(queue_ctx->queries); -+ struct query *query = allocate_query(ctx, queue_ctx); -+ if (query == NULL) { -+ ringbuffer_unlock(queue_ctx->queries); -+ ringbuffer_unlock(ctx->frames); -+ return false; -+ } -+ -+ query->submit_cpu_ts = now; -+ -+ /* Assign commandBuffer for timestamp. */ -+ *cmdbuffer = query->cmdbuffer; -+ -+ /* Increment timeline semaphore count. */ -+ queue_ctx->semaphore_value++; -+ -+ /* Add new submission entry for the current frame */ -+ assert(ctx->active_frame->state == FRAME_SUBMIT); -+ uint32_t frame_idx = ringbuffer_index(ctx->frames, ctx->active_frame); -+ queue_ctx->submissions_per_frame[frame_idx]++; -+ -+ ringbuffer_unlock(queue_ctx->queries); -+ ringbuffer_unlock(ctx->frames); -+ return true; -+} -+ -+static VkResult -+queue_submit2(device_context *ctx, VkQueue queue, uint32_t submitCount, -+ const VkSubmitInfo2 *pSubmits, VkFence fence, PFN_vkQueueSubmit2 queueSubmit2) -+{ -+ queue_context *queue_ctx = get_queue_context(ctx, queue); -+ if (!ctx->active_frame || !queue_ctx) -+ return queueSubmit2(queue, submitCount, pSubmits, fence); -+ -+ int first = -1; -+ VkCommandBuffer timestamp_cmdbuffer; -+ /* Check if any submission contains commandbuffers. */ -+ for (unsigned i = 0; i < submitCount; i++) { -+ if (pSubmits[i].commandBufferInfoCount) { -+ first = i; -+ break; -+ } -+ } -+ -+ /* Get timestamp commandbuffer. */ -+ if (first == -1 || !get_commandbuffer(ctx, queue_ctx, ×tamp_cmdbuffer)) -+ return queueSubmit2(queue, submitCount, pSubmits, fence); -+ -+ VkSubmitInfo2 *submits; -+ VkCommandBufferSubmitInfo *cmdbuffers; -+ VkSemaphoreSubmitInfo *semaphores; -+ VK_MULTIALLOC(ma); -+ vk_multialloc_add(&ma, &submits, VkSubmitInfo2, submitCount); -+ vk_multialloc_add(&ma, &cmdbuffers, VkCommandBufferSubmitInfo, -+ pSubmits[first].commandBufferInfoCount + 1); -+ vk_multialloc_add(&ma, &semaphores, VkSemaphoreSubmitInfo, -+ pSubmits[first].signalSemaphoreInfoCount + 1); -+ void *buf = vk_multialloc_zalloc(&ma, &ctx->alloc, VK_SYSTEM_ALLOCATION_SCOPE_COMMAND); -+ if (!buf) -+ return VK_ERROR_OUT_OF_HOST_MEMORY; -+ -+ memcpy(submits, pSubmits, sizeof(VkSubmitInfo2) * submitCount); -+ VkSubmitInfo2 *submit_info = &submits[first]; -+ -+ /* Add commandbuffer to submission. */ -+ cmdbuffers[0] = (VkCommandBufferSubmitInfo){ -+ .sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO, -+ .commandBuffer = timestamp_cmdbuffer, -+ }; -+ memcpy(&cmdbuffers[1], submit_info->pCommandBufferInfos, -+ sizeof(VkCommandBufferSubmitInfo) * submit_info->commandBufferInfoCount); -+ submit_info->pCommandBufferInfos = cmdbuffers; -+ submit_info->commandBufferInfoCount++; -+ -+ /* Add timeline semaphore to submission. */ -+ memcpy(semaphores, submit_info->pSignalSemaphoreInfos, -+ sizeof(VkSemaphoreSubmitInfo) * submit_info->signalSemaphoreInfoCount); -+ semaphores[submit_info->signalSemaphoreInfoCount] = (VkSemaphoreSubmitInfo){ -+ .sType = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO, -+ .semaphore = queue_ctx->semaphore, -+ .value = queue_ctx->semaphore_value, -+ .stageMask = VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, -+ }; -+ submit_info->pSignalSemaphoreInfos = semaphores; -+ submit_info->signalSemaphoreInfoCount++; -+ -+ /* Submit with added timestamp query commandbuffer. */ -+ VkResult res = queueSubmit2(queue, submitCount, submits, fence); -+ vk_free(&ctx->alloc, submits); -+ return res; -+} -+ -+VKAPI_ATTR VkResult VKAPI_CALL -+anti_lag_QueueSubmit2KHR(VkQueue queue, uint32_t submitCount, const VkSubmitInfo2 *pSubmits, -+ VkFence fence) -+{ -+ device_context *ctx = get_device_context(queue); -+ return queue_submit2(ctx, queue, submitCount, pSubmits, fence, ctx->vtable.QueueSubmit2KHR); -+} -+ -+VKAPI_ATTR VkResult VKAPI_CALL -+anti_lag_QueueSubmit2(VkQueue queue, uint32_t submitCount, const VkSubmitInfo2 *pSubmits, -+ VkFence fence) -+{ -+ device_context *ctx = get_device_context(queue); -+ return queue_submit2(ctx, queue, submitCount, pSubmits, fence, ctx->vtable.QueueSubmit2); -+} -+ -+VKAPI_ATTR VkResult VKAPI_CALL -+anti_lag_QueueSubmit(VkQueue queue, uint32_t submitCount, const VkSubmitInfo *pSubmits, -+ VkFence fence) -+{ -+ device_context *ctx = get_device_context(queue); -+ queue_context *queue_ctx = get_queue_context(ctx, queue); -+ if (!ctx->active_frame || !queue_ctx) -+ return ctx->vtable.QueueSubmit(queue, submitCount, pSubmits, fence); -+ -+ int first = -1; -+ VkCommandBuffer timestamp_cmdbuffer; -+ /* Check if any submission contains commandbuffers. */ -+ for (unsigned i = 0; i < submitCount; i++) { -+ if (pSubmits[i].commandBufferCount) { -+ first = i; -+ break; -+ } -+ } -+ -+ /* Get timestamp commandbuffer. */ -+ if (first == -1 || !get_commandbuffer(ctx, queue_ctx, ×tamp_cmdbuffer)) -+ return ctx->vtable.QueueSubmit(queue, submitCount, pSubmits, fence); -+ -+ VkSubmitInfo *submits; -+ VkCommandBuffer *cmdbuffers; -+ VkSemaphore *semaphores; -+ VkTimelineSemaphoreSubmitInfo *semaphore_info; -+ uint64_t *semaphore_values; -+ VK_MULTIALLOC(ma); -+ vk_multialloc_add(&ma, &submits, VkSubmitInfo, submitCount); -+ vk_multialloc_add(&ma, &cmdbuffers, VkCommandBuffer, pSubmits[first].commandBufferCount + 1); -+ vk_multialloc_add(&ma, &semaphores, VkSemaphore, pSubmits[first].signalSemaphoreCount + 1); -+ vk_multialloc_add(&ma, &semaphore_info, VkTimelineSemaphoreSubmitInfo, 1); -+ vk_multialloc_add(&ma, &semaphore_values, uint64_t, pSubmits[first].signalSemaphoreCount + 1); -+ void *buf = vk_multialloc_zalloc(&ma, &ctx->alloc, VK_SYSTEM_ALLOCATION_SCOPE_COMMAND); -+ if (!buf) -+ return VK_ERROR_OUT_OF_HOST_MEMORY; -+ -+ memcpy(submits, pSubmits, sizeof(VkSubmitInfo) * submitCount); -+ VkSubmitInfo *submit_info = &submits[first]; -+ -+ /* Add commandbuffer to submission. */ -+ cmdbuffers[0] = timestamp_cmdbuffer; -+ memcpy(&cmdbuffers[1], submit_info->pCommandBuffers, -+ sizeof(VkCommandBuffer) * submit_info->commandBufferCount); -+ submit_info->pCommandBuffers = cmdbuffers; -+ submit_info->commandBufferCount++; -+ -+ /* Add timeline semaphore to submission. */ -+ const VkTimelineSemaphoreSubmitInfo *tlssi = -+ vk_find_struct_const(pSubmits[first].pNext, TIMELINE_SEMAPHORE_SUBMIT_INFO); -+ semaphores[0] = queue_ctx->semaphore; -+ memcpy(&semaphores[1], submit_info->pSignalSemaphores, -+ sizeof(VkSemaphore) * submit_info->signalSemaphoreCount); -+ submit_info->pSignalSemaphores = semaphores; -+ submit_info->signalSemaphoreCount++; -+ semaphore_values[0] = queue_ctx->semaphore_value; -+ if (tlssi) { -+ *semaphore_info = *tlssi; /* save original values */ -+ memcpy(&semaphore_values[1], tlssi->pSignalSemaphoreValues, -+ sizeof(uint64_t) * tlssi->signalSemaphoreValueCount); -+ ((VkTimelineSemaphoreSubmitInfo *)tlssi)->pSignalSemaphoreValues = semaphore_values; -+ ((VkTimelineSemaphoreSubmitInfo *)tlssi)->signalSemaphoreValueCount = -+ submit_info->signalSemaphoreCount; -+ } else { -+ *semaphore_info = (VkTimelineSemaphoreSubmitInfo){ -+ .sType = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO, -+ .pNext = submit_info->pNext, -+ .signalSemaphoreValueCount = submit_info->signalSemaphoreCount, -+ .pSignalSemaphoreValues = semaphore_values, -+ }; -+ submit_info->pNext = semaphore_info; -+ } -+ -+ /* Submit with added timestamp query commandbuffer. */ -+ VkResult res = ctx->vtable.QueueSubmit(queue, submitCount, submits, fence); -+ if (tlssi) -+ *(VkTimelineSemaphoreSubmitInfo *)tlssi = *semaphore_info; /* restore */ -+ vk_free(&ctx->alloc, buf); -+ return res; -+} -diff --git a/src/vulkan/anti-lag-layer/anti_lag_layer.h b/src/vulkan/anti-lag-layer/anti_lag_layer.h -new file mode 100644 -index 00000000000..31abb0f9aee ---- /dev/null -+++ b/src/vulkan/anti-lag-layer/anti_lag_layer.h -@@ -0,0 +1,111 @@ -+/* -+ * Copyright © 2025 Valve Corporation -+ * -+ * SPDX-License-Identifier: MIT -+ */ -+ -+#ifndef ANTI_LAG_LAYER_H -+#define ANTI_LAG_LAYER_H -+ -+#include "util/simple_mtx.h" -+#include "vulkan/vk_layer.h" -+#include "vulkan/vulkan_core.h" -+#include "ringbuffer.h" -+ -+#define MAX_FRAMES 8 -+#define MAX_QUERIES 256 -+ -+enum frame_state { -+ FRAME_INVALID = 0, -+ FRAME_INPUT, /* Frame is in input stage. */ -+ FRAME_SUBMIT, /* All current queueSubmit calls are associated with this frame. */ -+ FRAME_PRESENT, /* Frame is in present stage and latencies can be evaluated. */ -+}; -+ -+typedef struct frame { -+ uint64_t frame_idx; -+ uint64_t frame_start_time; -+ uint64_t min_delay; -+ uint64_t imposed_delay; -+ enum frame_state state; -+} frame; -+ -+struct query { -+ uint64_t begin_gpu_ts; -+ uint64_t submit_cpu_ts; -+ VkCommandBuffer cmdbuffer; -+}; -+ -+typedef struct queue_context { -+ VkQueue queue; -+ uint32_t queue_family_idx; -+ VkCommandPool cmdPool; -+ VkQueryPool queryPool; -+ VkSemaphore semaphore; -+ uint64_t semaphore_value; -+ uint8_t submissions_per_frame[MAX_FRAMES]; -+ RINGBUFFER_DECLARE(queries, struct query, MAX_QUERIES); -+} queue_context; -+ -+typedef struct device_context { -+ -+ struct DeviceDispatchTable { -+#define DECLARE_HOOK(fn) PFN_vk##fn fn -+ DECLARE_HOOK(GetDeviceProcAddr); -+ DECLARE_HOOK(SetDeviceLoaderData); -+ DECLARE_HOOK(DestroyDevice); -+ DECLARE_HOOK(QueueSubmit); -+ DECLARE_HOOK(QueueSubmit2); -+ DECLARE_HOOK(QueueSubmit2KHR); -+ DECLARE_HOOK(GetDeviceQueue); -+ DECLARE_HOOK(CreateCommandPool); -+ DECLARE_HOOK(DestroyCommandPool); -+ DECLARE_HOOK(CreateQueryPool); -+ DECLARE_HOOK(ResetQueryPool); -+ DECLARE_HOOK(DestroyQueryPool); -+ DECLARE_HOOK(GetQueryPoolResults); -+ DECLARE_HOOK(AllocateCommandBuffers); -+ DECLARE_HOOK(FreeCommandBuffers); -+ DECLARE_HOOK(BeginCommandBuffer); -+ DECLARE_HOOK(EndCommandBuffer); -+ DECLARE_HOOK(GetCalibratedTimestampsKHR); -+ DECLARE_HOOK(CmdWriteTimestamp); -+ DECLARE_HOOK(CreateSemaphore); -+ DECLARE_HOOK(DestroySemaphore); -+ DECLARE_HOOK(GetSemaphoreCounterValue); -+ DECLARE_HOOK(WaitSemaphores); -+#undef DECLARE_HOOK -+ } vtable; -+ -+ VkDevice device; -+ VkAllocationCallbacks alloc; -+ simple_mtx_t mtx; -+ -+ struct { -+ int64_t delta; -+ uint64_t recalibrate_when; -+ float timestamp_period; -+ } calibration; -+ -+ RINGBUFFER_DECLARE(frames, frame, MAX_FRAMES); -+ frame *active_frame; -+ int64_t base_delay; -+ int64_t adaptation; -+ -+ unsigned num_queues; -+ queue_context queues[]; -+} device_context; -+ -+device_context *get_device_context(const void *object); -+ -+void anti_lag_AntiLagUpdateAMD(VkDevice device, const VkAntiLagDataAMD *pData); -+VkResult anti_lag_QueueSubmit2KHR(VkQueue queue, uint32_t submitCount, -+ const VkSubmitInfo2 *pSubmits, VkFence fence); -+VkResult anti_lag_QueueSubmit2(VkQueue queue, uint32_t submitCount, const VkSubmitInfo2 *pSubmits, -+ VkFence fence); -+VkResult anti_lag_QueueSubmit(VkQueue queue, uint32_t submitCount, const VkSubmitInfo *pSubmits, -+ VkFence fence); -+ -+VkResult anti_lag_NegotiateLoaderLayerInterfaceVersion(VkNegotiateLayerInterface *pVersionStruct); -+ -+#endif /* ANTI_LAG_LAYER_H */ -diff --git a/src/vulkan/anti-lag-layer/anti_lag_layer_interface.c b/src/vulkan/anti-lag-layer/anti_lag_layer_interface.c -new file mode 100644 -index 00000000000..d2ca4a7dd44 ---- /dev/null -+++ b/src/vulkan/anti-lag-layer/anti_lag_layer_interface.c -@@ -0,0 +1,899 @@ -+/* -+ * Copyright © 2025 Valve Corporation -+ * -+ * SPDX-License-Identifier: MIT -+ */ -+ -+#include "util/simple_mtx.h" -+#include "vulkan/vk_layer.h" -+#include "vulkan/vulkan_core.h" -+#include "anti_lag_layer.h" -+#include "vk_alloc.h" -+#include "vk_util.h" -+ -+static uintptr_t -+object_to_key(const void *object) -+{ -+ return (uintptr_t)*(uintptr_t *)object; -+} -+ -+typedef struct instance_data { -+ struct InstanceDispatchTable { -+#define DECLARE_HOOK(fn) PFN_vk##fn fn -+ DECLARE_HOOK(GetInstanceProcAddr); -+ DECLARE_HOOK(CreateInstance); -+ DECLARE_HOOK(DestroyInstance); -+ DECLARE_HOOK(CreateDevice); -+ DECLARE_HOOK(EnumerateDeviceExtensionProperties); -+ DECLARE_HOOK(GetPhysicalDeviceFeatures2KHR); -+ DECLARE_HOOK(GetPhysicalDeviceFeatures2); -+ DECLARE_HOOK(GetPhysicalDeviceProperties); -+ DECLARE_HOOK(GetPhysicalDeviceCalibrateableTimeDomainsEXT); -+ DECLARE_HOOK(GetPhysicalDeviceCalibrateableTimeDomainsKHR); -+ DECLARE_HOOK(GetPhysicalDeviceQueueFamilyProperties); -+#undef DECLARE_HOOK -+ } vtable; -+ -+ VkInstance instance; -+ uint32_t apiVersion; -+ VkAllocationCallbacks alloc; -+ struct instance_data *next; -+} instance_data; -+ -+static void -+init_instance_vtable(instance_data *ctx, PFN_vkGetInstanceProcAddr gpa) -+{ -+ ctx->vtable.GetInstanceProcAddr = gpa; -+#define INIT_HOOK(fn) ctx->vtable.fn = (PFN_vk##fn)gpa(ctx->instance, "vk" #fn) -+ INIT_HOOK(CreateInstance); -+ INIT_HOOK(DestroyInstance); -+ INIT_HOOK(CreateDevice); -+ INIT_HOOK(EnumerateDeviceExtensionProperties); -+ INIT_HOOK(GetPhysicalDeviceFeatures2KHR); -+ INIT_HOOK(GetPhysicalDeviceFeatures2); -+ INIT_HOOK(GetPhysicalDeviceProperties); -+ INIT_HOOK(GetPhysicalDeviceCalibrateableTimeDomainsEXT); -+ INIT_HOOK(GetPhysicalDeviceCalibrateableTimeDomainsKHR); -+ INIT_HOOK(GetPhysicalDeviceQueueFamilyProperties); -+#undef INIT_HOOK -+} -+ -+static simple_mtx_t instance_mtx = SIMPLE_MTX_INITIALIZER; -+static instance_data *instance_list = NULL; -+ -+static void -+add_instance(instance_data *instance) -+{ -+ simple_mtx_lock(&instance_mtx); -+ instance_data **ptr = &instance_list; -+ while (*ptr != NULL) -+ ptr = &(*ptr)->next; -+ *ptr = instance; -+ simple_mtx_unlock(&instance_mtx); -+} -+ -+static instance_data * -+remove_instance(const void *object) -+{ -+ uintptr_t key = object_to_key(object); -+ simple_mtx_lock(&instance_mtx); -+ instance_data **ptr = &instance_list; -+ while (*ptr && key != object_to_key((*ptr)->instance)) -+ ptr = &(*ptr)->next; -+ -+ instance_data *ctx = *ptr; -+ *ptr = ctx ? ctx->next : NULL; -+ simple_mtx_unlock(&instance_mtx); -+ return ctx; -+} -+ -+static instance_data * -+get_instance_data(const void *object) -+{ -+ uintptr_t key = object_to_key(object); -+ simple_mtx_lock(&instance_mtx); -+ instance_data *ctx = instance_list; -+ while (ctx && key != object_to_key(ctx->instance)) -+ ctx = ctx->next; -+ simple_mtx_unlock(&instance_mtx); -+ return ctx; -+} -+ -+static VKAPI_ATTR VkResult VKAPI_CALL -+anti_lag_CreateInstance(const VkInstanceCreateInfo *pCreateInfo, -+ const VkAllocationCallbacks *pAllocator, VkInstance *pInstance) -+{ -+ VkLayerInstanceCreateInfo *chain_info = (VkLayerInstanceCreateInfo *)(pCreateInfo->pNext); -+ while (chain_info && !(chain_info->sType == VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO && -+ chain_info->function == VK_LAYER_LINK_INFO)) { -+ chain_info = (VkLayerInstanceCreateInfo *)(chain_info->pNext); -+ } -+ -+ assert(chain_info && chain_info->u.pLayerInfo); -+ PFN_vkGetInstanceProcAddr fpGetInstanceProcAddr = -+ chain_info->u.pLayerInfo->pfnNextGetInstanceProcAddr; -+ PFN_vkCreateInstance fpCreateInstance = -+ (PFN_vkCreateInstance)fpGetInstanceProcAddr(NULL, "vkCreateInstance"); -+ if (fpCreateInstance == NULL) -+ return VK_ERROR_INITIALIZATION_FAILED; -+ -+ /* Advance the link info for the next element on the chain. */ -+ chain_info->u.pLayerInfo = chain_info->u.pLayerInfo->pNext; -+ -+ /* Create Instance. */ -+ VkResult result = fpCreateInstance(pCreateInfo, pAllocator, pInstance); -+ if (result != VK_SUCCESS) -+ return result; -+ -+ /* Create Instance context. */ -+ const VkAllocationCallbacks *alloc = pAllocator ? pAllocator : vk_default_allocator(); -+ void *buf = vk_alloc(alloc, sizeof(instance_data), alignof(instance_data), -+ VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE); -+ if (!buf) { -+ PFN_vkDestroyInstance fpDestroyInstance = -+ (PFN_vkDestroyInstance)fpGetInstanceProcAddr(*pInstance, "vkDestroyInstance"); -+ fpDestroyInstance(*pInstance, alloc); -+ return VK_ERROR_OUT_OF_HOST_MEMORY; -+ } -+ instance_data *ctx = (instance_data *)buf; -+ ctx->apiVersion = pCreateInfo->pApplicationInfo && pCreateInfo->pApplicationInfo->apiVersion -+ ? pCreateInfo->pApplicationInfo->apiVersion -+ : VK_API_VERSION_1_0; -+ ctx->instance = *pInstance; -+ ctx->alloc = *alloc; -+ ctx->next = NULL; -+ init_instance_vtable(ctx, fpGetInstanceProcAddr); -+ add_instance(ctx); -+ -+ return VK_SUCCESS; -+} -+ -+static VKAPI_ATTR void VKAPI_CALL -+anti_lag_DestroyInstance(VkInstance instance, const VkAllocationCallbacks *pAllocator) -+{ -+ instance_data *ctx = remove_instance(instance); -+ if (ctx) { -+ ctx->vtable.DestroyInstance(instance, pAllocator); -+ vk_free(&ctx->alloc, ctx); -+ } -+} -+ -+typedef struct device_data { -+ VkDevice device; -+ PFN_vkGetDeviceProcAddr GetDeviceProcAddr; -+ device_context *ctx; /* NULL if anti-lag ext is not enabled. */ -+ struct device_data *next; -+} device_data; -+ -+static void -+init_device_vtable(device_context *ctx, PFN_vkGetDeviceProcAddr gpa, PFN_vkSetDeviceLoaderData sld, -+ bool calibrated_timestamps_khr, bool host_query_reset_ext, -+ bool timeline_semaphore_khr) -+{ -+ ctx->vtable.GetDeviceProcAddr = gpa; -+ ctx->vtable.SetDeviceLoaderData = sld; -+#define INIT_HOOK(fn) ctx->vtable.fn = (PFN_vk##fn)gpa(ctx->device, "vk" #fn) -+#define INIT_HOOK_ALIAS(fn, alias, cond) \ -+ ctx->vtable.fn = (PFN_vk##fn)gpa(ctx->device, cond ? "vk" #alias : "vk" #fn) -+ INIT_HOOK(DestroyDevice); -+ INIT_HOOK(QueueSubmit); -+ INIT_HOOK(QueueSubmit2); -+ INIT_HOOK(QueueSubmit2KHR); -+ INIT_HOOK(GetDeviceQueue); -+ INIT_HOOK(CreateCommandPool); -+ INIT_HOOK(DestroyCommandPool); -+ INIT_HOOK(CreateQueryPool); -+ INIT_HOOK_ALIAS(ResetQueryPool, ResetQueryPoolEXT, host_query_reset_ext); -+ INIT_HOOK(DestroyQueryPool); -+ INIT_HOOK(GetQueryPoolResults); -+ INIT_HOOK(AllocateCommandBuffers); -+ INIT_HOOK(FreeCommandBuffers); -+ INIT_HOOK(BeginCommandBuffer); -+ INIT_HOOK(EndCommandBuffer); -+ INIT_HOOK_ALIAS(GetCalibratedTimestampsKHR, GetCalibratedTimestampsEXT, !calibrated_timestamps_khr); -+ INIT_HOOK(CmdWriteTimestamp); -+ INIT_HOOK(CreateSemaphore); -+ INIT_HOOK(DestroySemaphore); -+ INIT_HOOK_ALIAS(GetSemaphoreCounterValue, GetSemaphoreCounterValueKHR, timeline_semaphore_khr); -+ INIT_HOOK_ALIAS(WaitSemaphores, WaitSemaphoresKHR, timeline_semaphore_khr); -+#undef INIT_HOOK -+#undef INIT_HOOK_ALIAS -+} -+ -+static simple_mtx_t device_mtx = SIMPLE_MTX_INITIALIZER; -+static device_data *device_list = NULL; -+ -+static void -+add_device(device_data *device) -+{ -+ simple_mtx_lock(&device_mtx); -+ device_data **ptr = &device_list; -+ while (*ptr != NULL) -+ ptr = &(*ptr)->next; -+ *ptr = device; -+ simple_mtx_unlock(&device_mtx); -+} -+ -+static device_data * -+remove_device(const void *object) -+{ -+ uintptr_t key = object_to_key(object); -+ simple_mtx_lock(&device_mtx); -+ device_data **ptr = &device_list; -+ while (*ptr && key != object_to_key((*ptr)->device)) -+ ptr = &(*ptr)->next; -+ -+ device_data *ctx = *ptr; -+ *ptr = ctx ? ctx->next : NULL; -+ simple_mtx_unlock(&device_mtx); -+ return ctx; -+} -+ -+static device_data * -+get_device_data(const void *object) -+{ -+ uintptr_t key = object_to_key(object); -+ simple_mtx_lock(&device_mtx); -+ device_data *ctx = device_list; -+ while (ctx && key != object_to_key(ctx->device)) -+ ctx = ctx->next; -+ simple_mtx_unlock(&device_mtx); -+ return ctx; -+} -+ -+device_context * -+get_device_context(const void *object) -+{ -+ device_data *data = get_device_data(object); -+ assert(data && data->ctx); -+ return data->ctx; -+} -+ -+static VkLayerDeviceCreateInfo * -+get_device_chain_info(const VkDeviceCreateInfo *pCreateInfo, VkLayerFunction func) -+{ -+ vk_foreach_struct_const (item, pCreateInfo->pNext) { -+ if (item->sType == VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO && -+ ((VkLayerDeviceCreateInfo *)item)->function == func) -+ return (VkLayerDeviceCreateInfo *)item; -+ } -+ return NULL; -+} -+ -+static bool -+should_enable_layer(instance_data *ctx, VkPhysicalDevice physicalDevice, -+ VkPhysicalDeviceAntiLagFeaturesAMD ext_feature) -+{ -+ /* The extension is not requested by the application. */ -+ if (!ext_feature.antiLag) -+ return false; -+ -+ /* Ensure that the underlying implementation does not expose VK_AMD_anti_lag itself. */ -+ ext_feature.antiLag = false; -+ VkPhysicalDeviceFeatures2 features = { -+ .sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2, -+ .pNext = &ext_feature, -+ }; -+ -+ if (ctx->vtable.GetPhysicalDeviceFeatures2KHR) { -+ ctx->vtable.GetPhysicalDeviceFeatures2KHR(physicalDevice, &features); -+ return !ext_feature.antiLag; -+ } -+ -+ if (ctx->vtable.GetPhysicalDeviceFeatures2) { -+ ctx->vtable.GetPhysicalDeviceFeatures2(physicalDevice, &features); -+ return !ext_feature.antiLag; -+ } -+ -+ return false; -+} -+ -+static bool -+check_calibrated_timestamps(instance_data *data, VkPhysicalDevice physicalDevice, bool *has_khr) -+{ -+ VkResult res; -+ uint32_t count = 0; -+ res = data->vtable.EnumerateDeviceExtensionProperties(physicalDevice, NULL, &count, NULL); -+ VkExtensionProperties *extensions = -+ vk_alloc(&data->alloc, count * sizeof(VkExtensionProperties), alignof(VkExtensionProperties), -+ VK_SYSTEM_ALLOCATION_SCOPE_COMMAND); -+ if (!extensions) -+ return false; -+ -+ res |= data->vtable.EnumerateDeviceExtensionProperties(physicalDevice, NULL, &count, extensions); -+ -+ *has_khr = false; -+ bool has_ext = false; -+ if (res == VK_SUCCESS) { -+ for (unsigned i = 0; i < count; i++) { -+ if (strcmp(extensions[i].extensionName, VK_KHR_CALIBRATED_TIMESTAMPS_EXTENSION_NAME) == 0) -+ *has_khr = true; -+ if (strcmp(extensions[i].extensionName, VK_EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME) == 0) -+ has_ext = true; -+ } -+ } -+ -+ vk_free(&data->alloc, extensions); -+ return *has_khr || has_ext; -+} -+ -+/* Initialize per-queue context: -+ * -+ * This includes creating one CommandPool and one QueryPool per Queue as well as -+ * recording one CommandBuffer per timestamp query. -+ */ -+static VkResult -+init_queue_context(device_context *ctx, queue_context *queue_ctx) -+{ -+#define CHECK_RESULT(res, label) \ -+ if (res != VK_SUCCESS) { \ -+ goto label; \ -+ } -+ -+ VkResult result; -+ -+ /* Create command pool */ -+ struct VkCommandPoolCreateInfo pool_info = { -+ .sType = VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO, -+ .pNext = NULL, -+ .flags = 0, -+ .queueFamilyIndex = queue_ctx->queue_family_idx, -+ }; -+ result = -+ ctx->vtable.CreateCommandPool(ctx->device, &pool_info, &ctx->alloc, &queue_ctx->cmdPool); -+ CHECK_RESULT(result, fail_cmdpool) -+ -+ /* Create query pool */ -+ VkQueryPoolCreateInfo query_pool_info = { -+ .sType = VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO, -+ .queryType = VK_QUERY_TYPE_TIMESTAMP, -+ .queryCount = MAX_QUERIES, -+ }; -+ result = ctx->vtable.CreateQueryPool(ctx->device, &query_pool_info, &ctx->alloc, -+ &queue_ctx->queryPool); -+ CHECK_RESULT(result, fail_querypool) -+ ctx->vtable.ResetQueryPool(ctx->device, queue_ctx->queryPool, 0, MAX_QUERIES); -+ ringbuffer_init(queue_ctx->queries); -+ -+ /* Create timeline semaphore */ -+ VkSemaphoreTypeCreateInfo timelineCreateInfo = { -+ .sType = VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO, -+ .pNext = NULL, -+ .semaphoreType = VK_SEMAPHORE_TYPE_TIMELINE, -+ .initialValue = 0, -+ }; -+ VkSemaphoreCreateInfo createInfo = { -+ .sType = VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO, -+ .pNext = &timelineCreateInfo, -+ .flags = 0, -+ }; -+ result = -+ ctx->vtable.CreateSemaphore(ctx->device, &createInfo, &ctx->alloc, &queue_ctx->semaphore); -+ CHECK_RESULT(result, fail_semaphore); -+ -+ for (unsigned j = 0; j < MAX_QUERIES; j++) { -+ struct query *query = &queue_ctx->queries.data[j]; -+ -+ /* Allocate commandBuffer for timestamp. */ -+ VkCommandBufferAllocateInfo buffer_info = { -+ .sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO, -+ .commandPool = queue_ctx->cmdPool, -+ .level = VK_COMMAND_BUFFER_LEVEL_PRIMARY, -+ .commandBufferCount = 1, -+ }; -+ result = ctx->vtable.AllocateCommandBuffers(ctx->device, &buffer_info, &query->cmdbuffer); -+ CHECK_RESULT(result, fail) -+ result = ctx->vtable.SetDeviceLoaderData(ctx->device, query->cmdbuffer); -+ CHECK_RESULT(result, fail) -+ -+ /* Record commandbuffer. */ -+ VkCommandBufferBeginInfo beginInfo = { -+ .sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO, -+ }; -+ -+ result = ctx->vtable.BeginCommandBuffer(query->cmdbuffer, &beginInfo); -+ CHECK_RESULT(result, fail) -+ ctx->vtable.CmdWriteTimestamp(query->cmdbuffer, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, -+ queue_ctx->queryPool, j); -+ result = ctx->vtable.EndCommandBuffer(query->cmdbuffer); -+ CHECK_RESULT(result, fail) -+ } -+ -+#undef CHECK_RESULT -+ return result; -+ -+fail: -+ ctx->vtable.DestroySemaphore(ctx->device, queue_ctx->semaphore, &ctx->alloc); -+fail_semaphore: -+ ctx->vtable.DestroyQueryPool(ctx->device, queue_ctx->queryPool, &ctx->alloc); -+fail_querypool: -+ ctx->vtable.DestroyCommandPool(ctx->device, queue_ctx->cmdPool, &ctx->alloc); -+fail_cmdpool: -+ for (queue_context *qctx = ctx->queues; qctx != queue_ctx; qctx++) { -+ ctx->vtable.DestroyQueryPool(ctx->device, qctx->queryPool, &ctx->alloc); -+ ctx->vtable.DestroyCommandPool(ctx->device, qctx->cmdPool, &ctx->alloc); -+ } -+ -+ return result; -+} -+ -+static VKAPI_ATTR VkResult VKAPI_CALL -+anti_lag_CreateDevice(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo *pCreateInfo, -+ const VkAllocationCallbacks *pAllocator, VkDevice *pDevice) -+{ -+ instance_data *instance_ctx = get_instance_data(physicalDevice); -+ VkLayerDeviceCreateInfo *chain_info = get_device_chain_info(pCreateInfo, VK_LAYER_LINK_INFO); -+ PFN_vkGetDeviceProcAddr fpGetDeviceProcAddr = chain_info->u.pLayerInfo->pfnNextGetDeviceProcAddr; -+ PFN_vkGetInstanceProcAddr fpGetInstanceProcAddr = -+ chain_info->u.pLayerInfo->pfnNextGetInstanceProcAddr; -+ PFN_vkCreateDevice fpCreateDevice = -+ (PFN_vkCreateDevice)fpGetInstanceProcAddr(instance_ctx->instance, "vkCreateDevice"); -+ if (fpCreateDevice == NULL) -+ return VK_ERROR_INITIALIZATION_FAILED; -+ -+ /* Advance the link info for the next element on the chain. */ -+ chain_info->u.pLayerInfo = chain_info->u.pLayerInfo->pNext; -+ -+ const VkAllocationCallbacks *alloc = pAllocator ? pAllocator : &instance_ctx->alloc; -+ device_data *data; -+ VkResult result; -+ -+ /* Only allocate a context and add to dispatch if the extension is enabled. */ -+ const VkPhysicalDeviceAntiLagFeaturesAMD *ext_features = -+ vk_find_struct_const(pCreateInfo->pNext, PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD); -+ bool enable = ext_features && should_enable_layer(instance_ctx, physicalDevice, *ext_features); -+ if (enable) { -+ /* Count queues with sufficient timestamp valid bits. */ -+ // TODO: make it work with less than 64 valid bits -+ unsigned num_queue_families = 0; -+ unsigned num_queues = 0; -+ for (unsigned i = 0; i < pCreateInfo->queueCreateInfoCount; i++) -+ num_queue_families = -+ MAX2(num_queue_families, pCreateInfo->pQueueCreateInfos[i].queueFamilyIndex + 1); -+ VkQueueFamilyProperties *queue_family_props = -+ vk_alloc(alloc, num_queue_families * sizeof(VkQueueFamilyProperties), -+ alignof(VkQueueFamilyProperties), VK_SYSTEM_ALLOCATION_SCOPE_COMMAND); -+ if (!queue_family_props) -+ return VK_ERROR_OUT_OF_HOST_MEMORY; -+ -+ instance_ctx->vtable.GetPhysicalDeviceQueueFamilyProperties( -+ physicalDevice, &num_queue_families, queue_family_props); -+ for (unsigned i = 0; i < pCreateInfo->queueCreateInfoCount; i++) { -+ uint32_t queue_family_idx = pCreateInfo->pQueueCreateInfos[i].queueFamilyIndex; -+ if (queue_family_props[queue_family_idx].timestampValidBits == 64 && -+ (queue_family_props[queue_family_idx].queueFlags & -+ (VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT))) { -+ num_queues += pCreateInfo->pQueueCreateInfos[i].queueCount; -+ } -+ } -+ -+ /* Allocate the context. */ -+ device_context *ctx; -+ queue_context *queues; -+ VK_MULTIALLOC(ma); -+ vk_multialloc_add(&ma, &data, device_data, 1); -+ vk_multialloc_add(&ma, &ctx, struct device_context, 1); -+ vk_multialloc_add(&ma, &queues, queue_context, num_queues); -+ void *buf = vk_multialloc_zalloc(&ma, alloc, VK_SYSTEM_ALLOCATION_SCOPE_DEVICE); -+ if (!buf) { -+ vk_free(alloc, queue_family_props); -+ return VK_ERROR_OUT_OF_HOST_MEMORY; -+ } -+ -+ VkPhysicalDeviceProperties properties; -+ instance_ctx->vtable.GetPhysicalDeviceProperties(physicalDevice, &properties); -+ -+ /* Ensure that calibrated timestamps and host query reset extensions are enabled. */ -+ bool has_calibrated_timestamps = false; -+ bool has_calibrated_timestamps_khr = false; -+ bool has_vk12 = instance_ctx->apiVersion >= VK_API_VERSION_1_2 && -+ properties.apiVersion >= VK_API_VERSION_1_2; -+ bool has_host_query_reset = has_vk12; -+ bool has_host_query_reset_ext = false; -+ bool has_timeline_semaphore = has_vk12; -+ bool has_timeline_semaphore_khr = false; -+ for (unsigned i = 0; i < pCreateInfo->enabledExtensionCount; i++) { -+ if (strcmp(pCreateInfo->ppEnabledExtensionNames[i], -+ VK_KHR_CALIBRATED_TIMESTAMPS_EXTENSION_NAME) == 0) -+ has_calibrated_timestamps = has_calibrated_timestamps_khr = true; -+ if (strcmp(pCreateInfo->ppEnabledExtensionNames[i], -+ VK_EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME) == 0) -+ has_calibrated_timestamps = true; -+ if (strcmp(pCreateInfo->ppEnabledExtensionNames[i], -+ VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME) == 0) -+ has_host_query_reset = has_host_query_reset_ext = true; -+ if (strcmp(pCreateInfo->ppEnabledExtensionNames[i], -+ VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME) == 0) -+ has_timeline_semaphore = has_timeline_semaphore_khr = true; -+ } -+ -+ /* Add missing extensions. */ -+ VkDeviceCreateInfo create_info = *pCreateInfo; -+ const char **ext_names = NULL; -+ uint32_t num_extra_extensions = -+ !has_calibrated_timestamps + !has_host_query_reset + !has_timeline_semaphore; -+ if (num_extra_extensions) { -+ ext_names = vk_alloc( -+ alloc, (pCreateInfo->enabledExtensionCount + num_extra_extensions) * sizeof(char *), -+ alignof(char *), VK_SYSTEM_ALLOCATION_SCOPE_COMMAND); -+ if (!ext_names) { -+ result = VK_ERROR_OUT_OF_HOST_MEMORY; -+ goto fail; -+ } -+ -+ memcpy(ext_names, pCreateInfo->ppEnabledExtensionNames, -+ sizeof(char *) * pCreateInfo->enabledExtensionCount); -+ -+ if (!has_timeline_semaphore) { -+ has_timeline_semaphore_khr = true; -+ ext_names[create_info.enabledExtensionCount++] = -+ VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME; -+ } -+ if (!has_host_query_reset) { -+ has_host_query_reset_ext = true; -+ ext_names[create_info.enabledExtensionCount++] = VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME; -+ } -+ if (!has_calibrated_timestamps) { -+ check_calibrated_timestamps(instance_ctx, physicalDevice, -+ &has_calibrated_timestamps_khr); -+ ext_names[create_info.enabledExtensionCount++] = -+ has_calibrated_timestamps_khr ? VK_KHR_CALIBRATED_TIMESTAMPS_EXTENSION_NAME -+ : VK_EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME; -+ } -+ create_info.ppEnabledExtensionNames = ext_names; -+ } -+ -+ /* Ensure that hostQueryReset feature is enabled. */ -+ const VkPhysicalDeviceVulkan12Features *vk12 = -+ vk_find_struct_const(pCreateInfo->pNext, PHYSICAL_DEVICE_VULKAN_1_2_FEATURES); -+ const VkPhysicalDeviceHostQueryResetFeatures *query_reset = -+ vk_find_struct_const(pCreateInfo->pNext, PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES); -+ const VkPhysicalDeviceTimelineSemaphoreFeatures *timeline_semaphore = -+ vk_find_struct_const(pCreateInfo->pNext, PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES); -+ uint32_t prev_hostQueryReset; -+ uint32_t prev_timelineSemaphore; -+ if (vk12) { -+ prev_hostQueryReset = vk12->hostQueryReset; -+ prev_timelineSemaphore = vk12->timelineSemaphore; -+ ((VkPhysicalDeviceVulkan12Features *)vk12)->hostQueryReset = VK_TRUE; -+ ((VkPhysicalDeviceVulkan12Features *)vk12)->timelineSemaphore = VK_TRUE; -+ } else { -+ if (query_reset) { -+ prev_hostQueryReset = query_reset->hostQueryReset; -+ ((VkPhysicalDeviceHostQueryResetFeatures *)query_reset)->hostQueryReset = VK_TRUE; -+ } else { -+ VkPhysicalDeviceHostQueryResetFeatures *feat = -+ alloca(sizeof(VkPhysicalDeviceHostQueryResetFeatures)); -+ *feat = (VkPhysicalDeviceHostQueryResetFeatures){ -+ .sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES, -+ .pNext = (void *)create_info.pNext, -+ .hostQueryReset = VK_TRUE, -+ }; -+ create_info.pNext = feat; -+ } -+ if (timeline_semaphore) { -+ prev_timelineSemaphore = timeline_semaphore->timelineSemaphore; -+ ((VkPhysicalDeviceTimelineSemaphoreFeatures *)timeline_semaphore)->timelineSemaphore = -+ VK_TRUE; -+ } else { -+ VkPhysicalDeviceTimelineSemaphoreFeatures *feat = -+ alloca(sizeof(VkPhysicalDeviceTimelineSemaphoreFeatures)); -+ *feat = (VkPhysicalDeviceTimelineSemaphoreFeatures){ -+ .sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES, -+ .pNext = (void *)create_info.pNext, -+ .timelineSemaphore = VK_TRUE, -+ }; -+ create_info.pNext = feat; -+ } -+ } -+ -+ /* Create Device. */ -+ result = fpCreateDevice(physicalDevice, &create_info, pAllocator, pDevice); -+ -+ if (vk12) { -+ ((VkPhysicalDeviceVulkan12Features *)vk12)->hostQueryReset = prev_hostQueryReset; -+ ((VkPhysicalDeviceVulkan12Features *)vk12)->timelineSemaphore = prev_timelineSemaphore; -+ } else { -+ if (query_reset) -+ ((VkPhysicalDeviceHostQueryResetFeatures *)query_reset)->hostQueryReset = -+ prev_hostQueryReset; -+ if (timeline_semaphore) -+ ((VkPhysicalDeviceTimelineSemaphoreFeatures *)timeline_semaphore)->timelineSemaphore = -+ prev_timelineSemaphore; -+ } -+ if (ext_names) -+ vk_free(alloc, ext_names); -+ -+ if (result != VK_SUCCESS) -+ goto fail; -+ -+ /* Initialize Context. */ -+ data->ctx = ctx; -+ ctx->device = *pDevice; -+ chain_info = get_device_chain_info(pCreateInfo, VK_LOADER_DATA_CALLBACK); -+ PFN_vkSetDeviceLoaderData fpSetDeviceLoaderData = -+ (PFN_vkSetDeviceLoaderData)chain_info->u.pfnSetDeviceLoaderData; -+ init_device_vtable(ctx, fpGetDeviceProcAddr, fpSetDeviceLoaderData, -+ has_calibrated_timestamps_khr, has_host_query_reset_ext, -+ has_timeline_semaphore_khr); -+ simple_mtx_init(&ctx->mtx, mtx_plain); -+ ctx->num_queues = num_queues; -+ ctx->alloc = *alloc; -+ ctx->calibration.timestamp_period = properties.limits.timestampPeriod; -+ ringbuffer_init(ctx->frames); -+ -+ /* Initialize Queue contexts. */ -+ unsigned idx = 0; -+ for (unsigned i = 0; i < pCreateInfo->queueCreateInfoCount; i++) { -+ /* Skip queue families without sufficient timestamp valid bits. -+ * Also skip queue families which cannot do GRAPHICS or COMPUTE since they -+ * always heavily async in nature (DMA transfers and sparse for example). -+ * Video is also irrelvant here since it should never be a critical path -+ * in a game that wants anti-lag. */ -+ uint32_t queue_family_idx = pCreateInfo->pQueueCreateInfos[i].queueFamilyIndex; -+ if (queue_family_props[queue_family_idx].timestampValidBits != 64 || -+ !(queue_family_props[queue_family_idx].queueFlags & -+ (VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT))) -+ continue; -+ -+ for (unsigned j = 0; j < pCreateInfo->pQueueCreateInfos[i].queueCount; j++) { -+ VkQueue queue; -+ ctx->vtable.GetDeviceQueue(*pDevice, queue_family_idx, j, &queue); -+ ctx->queues[idx].queue = queue; -+ ctx->queues[idx].queue_family_idx = queue_family_idx; -+ result = init_queue_context(ctx, &ctx->queues[idx]); -+ idx++; -+ if (result != VK_SUCCESS) -+ goto fail; -+ } -+ } -+ assert(idx == num_queues); -+ fail: -+ vk_free(alloc, queue_family_props); -+ } else { -+ data = (device_data *)vk_alloc(alloc, sizeof(device_data), alignof(device_data), -+ VK_SYSTEM_ALLOCATION_SCOPE_DEVICE); -+ if (!data) -+ return VK_ERROR_OUT_OF_HOST_MEMORY; -+ result = fpCreateDevice(physicalDevice, pCreateInfo, pAllocator, pDevice); -+ data->ctx = NULL; -+ } -+ -+ if (result == VK_SUCCESS) { -+ data->device = *pDevice; -+ data->GetDeviceProcAddr = fpGetDeviceProcAddr; -+ data->next = NULL; -+ add_device(data); -+ } else { -+ vk_free(alloc, data); -+ } -+ -+ return result; -+} -+ -+static VKAPI_ATTR void VKAPI_CALL -+anti_lag_DestroyDevice(VkDevice pDevice, const VkAllocationCallbacks *pAllocator) -+{ -+ device_data *data = remove_device(pDevice); -+ assert(data && data->ctx); -+ device_context *ctx = data->ctx; -+ -+ /* Destroy per-queue context. -+ * The application must ensure that no work is active on the device. -+ */ -+ for (unsigned i = 0; i < ctx->num_queues; i++) { -+ queue_context *queue_ctx = &ctx->queues[i]; -+ ctx->vtable.DestroyQueryPool(ctx->device, queue_ctx->queryPool, &ctx->alloc); -+ ctx->vtable.DestroyCommandPool(ctx->device, queue_ctx->cmdPool, &ctx->alloc); -+ ctx->vtable.DestroySemaphore(ctx->device, queue_ctx->semaphore, &ctx->alloc); -+ } -+ -+ ctx->vtable.DestroyDevice(pDevice, pAllocator); -+ vk_free(&ctx->alloc, data); -+} -+ -+static bool -+is_anti_lag_supported(VkPhysicalDevice physicalDevice) -+{ -+ instance_data *data = get_instance_data(physicalDevice); -+ VkPhysicalDeviceProperties properties; -+ data->vtable.GetPhysicalDeviceProperties(physicalDevice, &properties); -+ if (properties.limits.timestampPeriod == 0.0 || !properties.limits.timestampComputeAndGraphics) -+ return false; -+ -+ /* Check whether calibrated timestamps are supported. */ -+ bool has_khr; -+ if (!check_calibrated_timestamps(data, physicalDevice, &has_khr)) -+ return false; -+ -+ /* Check whether timeline semaphores and host query reset are supported. */ -+ VkPhysicalDeviceTimelineSemaphoreFeatures timeline_semaphore = { -+ .sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES, -+ .timelineSemaphore = VK_FALSE, -+ }; -+ VkPhysicalDeviceHostQueryResetFeatures query_reset = { -+ .sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES, -+ .pNext = &timeline_semaphore, -+ .hostQueryReset = VK_FALSE, -+ }; -+ VkPhysicalDeviceFeatures2 features = { -+ .sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2, -+ .pNext = &query_reset, -+ }; -+ if (data->vtable.GetPhysicalDeviceFeatures2KHR) -+ data->vtable.GetPhysicalDeviceFeatures2KHR(physicalDevice, &features); -+ else if (data->vtable.GetPhysicalDeviceFeatures2) -+ data->vtable.GetPhysicalDeviceFeatures2(physicalDevice, &features); -+ if (!timeline_semaphore.timelineSemaphore || !query_reset.hostQueryReset) -+ return false; -+ -+ /* Check that DEVICE and CLOCK_MONOTONIC time domains are available. */ -+ VkResult res; -+ uint32_t count = 0; -+ PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR ctd = -+ has_khr ? data->vtable.GetPhysicalDeviceCalibrateableTimeDomainsKHR -+ : data->vtable.GetPhysicalDeviceCalibrateableTimeDomainsEXT; -+ res = ctd(physicalDevice, &count, NULL); -+ VkTimeDomainKHR *time_domains = alloca(count * sizeof(VkTimeDomainKHR)); -+ res |= ctd(physicalDevice, &count, time_domains); -+ if (res != VK_SUCCESS) -+ return false; -+ -+ bool has_device_domain = false; -+ bool has_host_domain = false; -+ for (unsigned i = 0; i < count; i++) { -+ has_device_domain |= time_domains[i] == VK_TIME_DOMAIN_DEVICE_KHR; -+ has_host_domain |= time_domains[i] == VK_TIME_DOMAIN_CLOCK_MONOTONIC_KHR; -+ } -+ -+ return has_device_domain && has_host_domain; -+} -+ -+static VKAPI_ATTR VkResult VKAPI_CALL -+anti_lag_EnumerateDeviceExtensionProperties(VkPhysicalDevice physicalDevice, const char *pLayerName, -+ uint32_t *pPropertyCount, -+ VkExtensionProperties *pProperties) -+{ -+ instance_data *instance_data = get_instance_data(physicalDevice); -+ -+ if (pLayerName && strcmp(pLayerName, "VK_LAYER_MESA_anti_lag") == 0) { -+ if (!is_anti_lag_supported(physicalDevice)) { -+ *pPropertyCount = 0; -+ return VK_SUCCESS; -+ } -+ -+ VK_OUTARRAY_MAKE_TYPED(VkExtensionProperties, out, pProperties, pPropertyCount); -+ vk_outarray_append_typed(VkExtensionProperties, &out, prop) -+ { -+ *prop = -+ (VkExtensionProperties){VK_AMD_ANTI_LAG_EXTENSION_NAME, VK_AMD_ANTI_LAG_SPEC_VERSION}; -+ } -+ return vk_outarray_status(&out); -+ } -+ -+ return instance_data->vtable.EnumerateDeviceExtensionProperties(physicalDevice, pLayerName, -+ pPropertyCount, pProperties); -+} -+ -+static VKAPI_ATTR void VKAPI_CALL -+anti_lag_GetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice, -+ VkPhysicalDeviceFeatures2 *pFeatures) -+{ -+ instance_data *ctx = get_instance_data(physicalDevice); -+ ctx->vtable.GetPhysicalDeviceFeatures2(physicalDevice, pFeatures); -+ VkPhysicalDeviceAntiLagFeaturesAMD *anti_lag_features = -+ vk_find_struct(pFeatures->pNext, PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD); -+ -+ if (anti_lag_features) { -+ anti_lag_features->antiLag |= is_anti_lag_supported(physicalDevice); -+ } -+} -+ -+static VKAPI_ATTR void VKAPI_CALL -+anti_lag_GetPhysicalDeviceFeatures2KHR(VkPhysicalDevice physicalDevice, -+ VkPhysicalDeviceFeatures2 *pFeatures) -+{ -+ instance_data *ctx = get_instance_data(physicalDevice); -+ ctx->vtable.GetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures); -+ VkPhysicalDeviceAntiLagFeaturesAMD *anti_lag_features = -+ vk_find_struct(pFeatures->pNext, PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD); -+ -+ if (anti_lag_features) { -+ anti_lag_features->antiLag |= is_anti_lag_supported(physicalDevice); -+ } -+} -+ -+static VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL -+anti_lag_GetInstanceProcAddr(VkInstance instance, const char *pName); -+ -+static VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL -+anti_lag_GetDeviceProcAddr(VkDevice device, const char *pName); -+ -+#define ADD_HOOK(fn) {"vk" #fn, (PFN_vkVoidFunction)anti_lag_##fn} -+static const struct { -+ const char *name; -+ PFN_vkVoidFunction ptr; -+} instance_funcptr_map[] = { -+ ADD_HOOK(GetInstanceProcAddr), -+ ADD_HOOK(CreateInstance), -+ ADD_HOOK(DestroyInstance), -+ ADD_HOOK(EnumerateDeviceExtensionProperties), -+ ADD_HOOK(CreateDevice), -+ ADD_HOOK(GetPhysicalDeviceFeatures2), -+ ADD_HOOK(GetPhysicalDeviceFeatures2KHR), -+}; -+ -+static const struct { -+ const char *name; -+ PFN_vkVoidFunction ptr; -+} device_funcptr_map[] = { -+ ADD_HOOK(GetDeviceProcAddr), -+ ADD_HOOK(DestroyDevice), -+ ADD_HOOK(AntiLagUpdateAMD), -+ ADD_HOOK(QueueSubmit), -+ ADD_HOOK(QueueSubmit2), -+ ADD_HOOK(QueueSubmit2KHR), -+}; -+#undef ADD_HOOK -+ -+static VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL -+anti_lag_GetInstanceProcAddr(VkInstance instance, const char *pName) -+{ -+ if (!pName) -+ return NULL; -+ -+ PFN_vkVoidFunction result = NULL; -+ if (instance) { -+ instance_data *ctx = get_instance_data(instance); -+ if (ctx) -+ result = ctx->vtable.GetInstanceProcAddr(instance, pName); -+ } -+ -+ /* Only hook instance functions which are exposed by the underlying impl. -+ * Ignore instance parameter for vkCreateInstance and vkCreateDevice. -+ */ -+ if (result || strcmp(pName, "vkCreateInstance") == 0 || strcmp(pName, "vkCreateDevice") == 0) { -+ for (uint32_t i = 0; i < ARRAY_SIZE(instance_funcptr_map); i++) { -+ if (strcmp(pName, instance_funcptr_map[i].name) == 0) -+ return instance_funcptr_map[i].ptr; -+ } -+ } -+ -+ return result; -+} -+ -+static VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL -+anti_lag_GetDeviceProcAddr(VkDevice device, const char *pName) -+{ -+ if (!pName || !device) -+ return NULL; -+ -+ device_data *data = get_device_data(device); -+ PFN_vkVoidFunction result = data->GetDeviceProcAddr(device, pName); -+ -+ /* Only hook device functions if the Layer extension is enabled. */ -+ if (data->ctx && (result || strcmp(pName, "vkAntiLagUpdateAMD") == 0)) { -+ for (uint32_t i = 0; i < ARRAY_SIZE(device_funcptr_map); i++) { -+ if (strcmp(pName, device_funcptr_map[i].name) == 0) -+ return device_funcptr_map[i].ptr; -+ } -+ } -+ -+ return result; -+} -+ -+PUBLIC VKAPI_ATTR VkResult VKAPI_CALL -+anti_lag_NegotiateLoaderLayerInterfaceVersion(VkNegotiateLayerInterface *pVersionStruct) -+{ -+ assert(pVersionStruct != NULL); -+ assert(pVersionStruct->sType == LAYER_NEGOTIATE_INTERFACE_STRUCT); -+ -+ if (pVersionStruct->loaderLayerInterfaceVersion >= 2) { -+ pVersionStruct->loaderLayerInterfaceVersion = 2; -+ pVersionStruct->pfnGetInstanceProcAddr = anti_lag_GetInstanceProcAddr; -+ pVersionStruct->pfnGetDeviceProcAddr = anti_lag_GetDeviceProcAddr; -+ pVersionStruct->pfnGetPhysicalDeviceProcAddr = NULL; -+ } -+ -+ return VK_SUCCESS; -+} -diff --git a/src/vulkan/anti-lag-layer/meson.build b/src/vulkan/anti-lag-layer/meson.build -new file mode 100644 -index 00000000000..264c55c8e75 ---- /dev/null -+++ b/src/vulkan/anti-lag-layer/meson.build -@@ -0,0 +1,26 @@ -+# Copyright © 2025 Valve Corporation -+# SPDX-License-Identifier: MIT -+ -+vklayer_files = files( -+ 'anti_lag_layer.c', -+ 'anti_lag_layer_interface.c', -+) -+ -+shared_library( -+ 'VkLayer_MESA_anti_lag', -+ vklayer_files, -+ c_args : [no_override_init_args], -+ gnu_symbol_visibility : 'hidden', -+ dependencies : [ -+ idep_vulkan_util, idep_mesautil, -+ ], -+ include_directories : [inc_include, inc_util, inc_src], -+ link_args : cc.get_supported_link_arguments(['-Wl,-Bsymbolic-functions', '-Wl,-z,relro']), -+ install : true -+) -+ -+install_data( -+ files('VkLayer_MESA_anti_lag.json'), -+ install_dir : join_paths(get_option('datadir'), 'vulkan', 'implicit_layer.d'), -+ install_tag : 'runtime', -+) -diff --git a/src/vulkan/anti-lag-layer/ringbuffer.h b/src/vulkan/anti-lag-layer/ringbuffer.h -new file mode 100644 -index 00000000000..1747b7e720f ---- /dev/null -+++ b/src/vulkan/anti-lag-layer/ringbuffer.h -@@ -0,0 +1,58 @@ -+/* -+ * Copyright © 2025 Valve Corporation -+ * -+ * SPDX-License-Identifier: MIT -+ */ -+ -+#ifndef RINGBUFFER_H -+#define RINGBUFFER_H -+ -+#include "util/macros.h" -+ -+#define RINGBUFFER_DECLARE(name, type, N) \ -+ struct { \ -+ type data[N]; \ -+ uint32_t head; \ -+ uint32_t tail; \ -+ uint32_t size; \ -+ simple_mtx_t mtx; \ -+ } name -+ -+#define ringbuffer_init(buffer) \ -+ (buffer.head = buffer.tail = buffer.size = 0, simple_mtx_init(&buffer.mtx, mtx_plain)) -+ -+#define ringbuffer_lock(buffer) simple_mtx_lock(&buffer.mtx) -+#define ringbuffer_unlock(buffer) simple_mtx_unlock(&buffer.mtx) -+ -+static inline uint32_t -+__ringbuffer_add_wrap(uint32_t *val, uint32_t *size, uint32_t N) -+{ -+ uint32_t prev = *val; -+ *val = (*val + 1) % N; -+ *size = *size + 1; -+ assert(*size <= N); -+ return prev; -+} -+ -+#define ringbuffer_alloc(buffer) \ -+ (buffer.size == ARRAY_SIZE(buffer.data) \ -+ ? NULL \ -+ : &buffer.data[__ringbuffer_add_wrap(&buffer.head, &buffer.size, ARRAY_SIZE(buffer.data))]) -+ -+#define ringbuffer_free(buffer, elem) \ -+ assert(elem == NULL || elem == &buffer.data[buffer.tail]); \ -+ buffer.size--; \ -+ assert(buffer.size < ARRAY_SIZE(buffer.data)); \ -+ buffer.tail = (buffer.tail + 1) % ARRAY_SIZE(buffer.data) -+ -+#define ringbuffer_first(buffer) (&buffer.data[buffer.tail]) -+ -+#define ringbuffer_last(buffer) \ -+ (&buffer.data[(buffer.head + ARRAY_SIZE(buffer.data) - 1) % ARRAY_SIZE(buffer.data)]) -+ -+#define ringbuffer_index(buffer, elem) (elem - buffer.data) -+ -+#define ringbuffer_next(buffer, elem) \ -+ (&buffer.data[(ringbuffer_index(buffer, elem) + 1) % ARRAY_SIZE(buffer.data)]) -+ -+#endif /* RINGBUFFER_H */ -diff --git a/src/vulkan/meson.build b/src/vulkan/meson.build -index 3225b5f4a9d..cf62ecc6ae7 100644 ---- a/src/vulkan/meson.build -+++ b/src/vulkan/meson.build -@@ -98,3 +98,6 @@ endif - if with_vulkan_vram_report_limit_layer - subdir('vram-report-limit-layer') - endif -+if with_vulkan_anti_lag_layer -+ subdir('anti-lag-layer') -+endif --- -2.50.1 - - -From e4adbbe12d9aafdaf80f340f685cf7bd7758d385 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= -Date: Thu, 30 May 2024 11:55:46 +0200 -Subject: [PATCH 07/11] util/time: add os_time_nanosleep_until() function - -Part-of: ---- - src/util/os_time.c | 16 +++++++++++++++- - src/util/os_time.h | 2 ++ - 2 files changed, 17 insertions(+), 1 deletion(-) - -diff --git a/src/util/os_time.c b/src/util/os_time.c -index da8ad7a80b8..209b7ae442c 100644 ---- a/src/util/os_time.c -+++ b/src/util/os_time.c -@@ -60,7 +60,21 @@ os_time_get_nano(void) - return ts.tv_nsec + ts.tv_sec*INT64_C(1000000000); - } - -- -+void -+os_time_nanosleep_until(int64_t deadline) -+{ -+#if DETECT_OS_LINUX || DETECT_OS_MANAGARM -+ struct timespec time; -+ time.tv_sec = deadline / INT64_C(1000000000); -+ time.tv_nsec = deadline % INT64_C(1000000000); -+ while (clock_nanosleep(CLOCK_MONOTONIC, TIMER_ABSTIME, &time, &time) == EINTR); -+#else -+ int64_t duration = deadline - os_time_get_nano(); -+ if (duration > 0) { -+ os_time_sleep(duration / 1000); -+ } -+#endif -+} - - void - os_time_sleep(int64_t usecs) -diff --git a/src/util/os_time.h b/src/util/os_time.h -index 6ca37eac769..4217ff37b68 100644 ---- a/src/util/os_time.h -+++ b/src/util/os_time.h -@@ -74,6 +74,8 @@ os_localtime(const time_t *timer, struct tm *buf) - #endif - } - -+void -+os_time_nanosleep_until(int64_t deadline); - - /* - * Sleep. --- -2.50.1 - - -From 22d1adddbaff70c62207396a12576329f477174f Mon Sep 17 00:00:00 2001 -From: Hans-Kristian Arntzen -Date: Thu, 26 Jun 2025 13:00:20 +0200 -Subject: [PATCH 08/11] anti-lag: Only consider timestamps from queues which - have presented. - -Avoids stray submissions to compute queues to nullify the delay. - -Signed-off-by: Hans-Kristian Arntzen -Part-of: ---- - src/vulkan/anti-lag-layer/anti_lag_layer.c | 24 ++++++++++++++++++- - src/vulkan/anti-lag-layer/anti_lag_layer.h | 3 +++ - .../anti-lag-layer/anti_lag_layer_interface.c | 2 ++ - 3 files changed, 28 insertions(+), 1 deletion(-) - -diff --git a/src/vulkan/anti-lag-layer/anti_lag_layer.c b/src/vulkan/anti-lag-layer/anti_lag_layer.c -index 6c21e074024..d7543a5dfd9 100644 ---- a/src/vulkan/anti-lag-layer/anti_lag_layer.c -+++ b/src/vulkan/anti-lag-layer/anti_lag_layer.c -@@ -8,6 +8,7 @@ - #include - #include "util/os_time.h" - #include "util/simple_mtx.h" -+#include "util/u_atomic.h" - #include "vulkan/vulkan_core.h" - #include "ringbuffer.h" - #include "vk_alloc.h" -@@ -400,7 +401,11 @@ get_commandbuffer(device_context *ctx, queue_context *queue_ctx, VkCommandBuffer - /* Begin critical section. */ - ringbuffer_lock(ctx->frames); - ringbuffer_lock(queue_ctx->queries); -- struct query *query = allocate_query(ctx, queue_ctx); -+ -+ /* Don't record timestamps for queues that are not deemed sensitive to latency. */ -+ struct query *query = -+ p_atomic_read(&queue_ctx->latency_sensitive) ? allocate_query(ctx, queue_ctx) : NULL; -+ - if (query == NULL) { - ringbuffer_unlock(queue_ctx->queries); - ringbuffer_unlock(ctx->frames); -@@ -588,3 +593,20 @@ anti_lag_QueueSubmit(VkQueue queue, uint32_t submitCount, const VkSubmitInfo *pS - vk_free(&ctx->alloc, buf); - return res; - } -+ -+VKAPI_ATTR VkResult VKAPI_CALL -+anti_lag_QueuePresentKHR(VkQueue queue, const VkPresentInfoKHR *pPresentInfo) -+{ -+ /* When multiple queues are in flight, the min-delay approach -+ * has problems. An async compute queue could be submitted to -+ * with very low delay while the main graphics queue would be swamped with work. -+ * If we take a global min-delay over all queues, the algorithm would -+ * assume that there is very low delay and thus sleeps are disabled, but -+ * unless the graphics work depends directly on the async compute work, -+ * this is a false assumption. */ -+ device_context *ctx = get_device_context(queue); -+ queue_context *queue_ctx = get_queue_context(ctx, queue); -+ p_atomic_set(&queue_ctx->latency_sensitive, true); -+ -+ return ctx->vtable.QueuePresentKHR(queue, pPresentInfo); -+} -diff --git a/src/vulkan/anti-lag-layer/anti_lag_layer.h b/src/vulkan/anti-lag-layer/anti_lag_layer.h -index 31abb0f9aee..d03d246d79c 100644 ---- a/src/vulkan/anti-lag-layer/anti_lag_layer.h -+++ b/src/vulkan/anti-lag-layer/anti_lag_layer.h -@@ -39,6 +39,7 @@ struct query { - typedef struct queue_context { - VkQueue queue; - uint32_t queue_family_idx; -+ bool latency_sensitive; - VkCommandPool cmdPool; - VkQueryPool queryPool; - VkSemaphore semaphore; -@@ -74,6 +75,7 @@ typedef struct device_context { - DECLARE_HOOK(DestroySemaphore); - DECLARE_HOOK(GetSemaphoreCounterValue); - DECLARE_HOOK(WaitSemaphores); -+ DECLARE_HOOK(QueuePresentKHR); - #undef DECLARE_HOOK - } vtable; - -@@ -105,6 +107,7 @@ VkResult anti_lag_QueueSubmit2(VkQueue queue, uint32_t submitCount, const VkSubm - VkFence fence); - VkResult anti_lag_QueueSubmit(VkQueue queue, uint32_t submitCount, const VkSubmitInfo *pSubmits, - VkFence fence); -+VkResult anti_lag_QueuePresentKHR(VkQueue queue, const VkPresentInfoKHR *pPresentInfo); - - VkResult anti_lag_NegotiateLoaderLayerInterfaceVersion(VkNegotiateLayerInterface *pVersionStruct); - -diff --git a/src/vulkan/anti-lag-layer/anti_lag_layer_interface.c b/src/vulkan/anti-lag-layer/anti_lag_layer_interface.c -index d2ca4a7dd44..6a803e24fe6 100644 ---- a/src/vulkan/anti-lag-layer/anti_lag_layer_interface.c -+++ b/src/vulkan/anti-lag-layer/anti_lag_layer_interface.c -@@ -194,6 +194,7 @@ init_device_vtable(device_context *ctx, PFN_vkGetDeviceProcAddr gpa, PFN_vkSetDe - INIT_HOOK(CmdWriteTimestamp); - INIT_HOOK(CreateSemaphore); - INIT_HOOK(DestroySemaphore); -+ INIT_HOOK(QueuePresentKHR); - INIT_HOOK_ALIAS(GetSemaphoreCounterValue, GetSemaphoreCounterValueKHR, timeline_semaphore_khr); - INIT_HOOK_ALIAS(WaitSemaphores, WaitSemaphoresKHR, timeline_semaphore_khr); - #undef INIT_HOOK -@@ -833,6 +834,7 @@ static const struct { - ADD_HOOK(QueueSubmit), - ADD_HOOK(QueueSubmit2), - ADD_HOOK(QueueSubmit2KHR), -+ ADD_HOOK(QueuePresentKHR), - }; - #undef ADD_HOOK - --- -2.50.1 - - -From be19fb7abf7dba7aaff2ff809a6a0a8f6ac68ce4 Mon Sep 17 00:00:00 2001 -From: Hans-Kristian Arntzen -Date: Thu, 26 Jun 2025 14:22:07 +0200 -Subject: [PATCH 09/11] anti-lag: Submit timestamps early in a frame. - -Allows detecting if the queue ends up going idle due to -a cross-queue dependency. Since we're only considering delays from -specific queues, we would not be able to detect low-latency situations -arising from the start of a frame happening on async queues. - -Until we observe real work happening for a queue in a frame context, -submit timestamps ahead of any other waits. - -Signed-off-by: Hans-Kristian Arntzen -Part-of: ---- - src/vulkan/anti-lag-layer/anti_lag_layer.c | 114 ++++++++++++++++----- - 1 file changed, 86 insertions(+), 28 deletions(-) - -diff --git a/src/vulkan/anti-lag-layer/anti_lag_layer.c b/src/vulkan/anti-lag-layer/anti_lag_layer.c -index d7543a5dfd9..f730ca00f9c 100644 ---- a/src/vulkan/anti-lag-layer/anti_lag_layer.c -+++ b/src/vulkan/anti-lag-layer/anti_lag_layer.c -@@ -366,13 +366,9 @@ get_queue_context(device_context *ctx, VkQueue queue) - } - - static struct query * --allocate_query(device_context *ctx, queue_context *queue_ctx) -+allocate_query(queue_context *queue_ctx, uint32_t frame_idx) - { -- if (!ctx->active_frame) -- return NULL; -- - /* Allow for a single frame to use at most half of the query pool. */ -- uint32_t frame_idx = ringbuffer_index(ctx->frames, ctx->active_frame); - if (queue_ctx->submissions_per_frame[frame_idx] > MAX_QUERIES / 2) - return NULL; - -@@ -394,7 +390,8 @@ allocate_query(device_context *ctx, queue_context *queue_ctx) - } - - static bool --get_commandbuffer(device_context *ctx, queue_context *queue_ctx, VkCommandBuffer *cmdbuffer) -+get_commandbuffer(device_context *ctx, queue_context *queue_ctx, VkCommandBuffer *cmdbuffer, -+ bool has_command_buffer, bool has_wait_before_cmdbuffer, bool *early_submit) - { - uint64_t now = os_time_get_nano(); - -@@ -403,8 +400,24 @@ get_commandbuffer(device_context *ctx, queue_context *queue_ctx, VkCommandBuffer - ringbuffer_lock(queue_ctx->queries); - - /* Don't record timestamps for queues that are not deemed sensitive to latency. */ -- struct query *query = -- p_atomic_read(&queue_ctx->latency_sensitive) ? allocate_query(ctx, queue_ctx) : NULL; -+ bool need_query = ctx->active_frame && p_atomic_read(&queue_ctx->latency_sensitive); -+ uint32_t frame_idx; -+ struct query *query = NULL; -+ -+ if (need_query) { -+ assert(ctx->active_frame->state == FRAME_SUBMIT); -+ frame_idx = ringbuffer_index(ctx->frames, ctx->active_frame); -+ -+ /* For the very first submissions in a frame (until we observe real GPU work happening), -+ * we would want to submit a timestamp before anything else, including waits. -+ * This allows us to detect a sensitive queue going idle before we can submit work to it. -+ * If the queue in question depends on semaphores from other unrelated queues, -+ * we may not easily be able to detect that situation without adding a lot more complexity. -+ */ -+ *early_submit = has_wait_before_cmdbuffer && queue_ctx->submissions_per_frame[frame_idx] == 0; -+ if (has_command_buffer || *early_submit) -+ query = allocate_query(queue_ctx, frame_idx); -+ } - - if (query == NULL) { - ringbuffer_unlock(queue_ctx->queries); -@@ -421,8 +434,6 @@ get_commandbuffer(device_context *ctx, queue_context *queue_ctx, VkCommandBuffer - queue_ctx->semaphore_value++; - - /* Add new submission entry for the current frame */ -- assert(ctx->active_frame->state == FRAME_SUBMIT); -- uint32_t frame_idx = ringbuffer_index(ctx->frames, ctx->active_frame); - queue_ctx->submissions_per_frame[frame_idx]++; - - ringbuffer_unlock(queue_ctx->queries); -@@ -435,13 +446,17 @@ queue_submit2(device_context *ctx, VkQueue queue, uint32_t submitCount, - const VkSubmitInfo2 *pSubmits, VkFence fence, PFN_vkQueueSubmit2 queueSubmit2) - { - queue_context *queue_ctx = get_queue_context(ctx, queue); -- if (!ctx->active_frame || !queue_ctx) -+ if (!ctx->active_frame || !queue_ctx || !submitCount) - return queueSubmit2(queue, submitCount, pSubmits, fence); - -+ bool has_wait_before_cmdbuffer = false; - int first = -1; - VkCommandBuffer timestamp_cmdbuffer; - /* Check if any submission contains commandbuffers. */ - for (unsigned i = 0; i < submitCount; i++) { -+ if (pSubmits[i].waitSemaphoreInfoCount != 0) -+ has_wait_before_cmdbuffer = true; -+ - if (pSubmits[i].commandBufferInfoCount) { - first = i; - break; -@@ -449,23 +464,42 @@ queue_submit2(device_context *ctx, VkQueue queue, uint32_t submitCount, - } - - /* Get timestamp commandbuffer. */ -- if (first == -1 || !get_commandbuffer(ctx, queue_ctx, ×tamp_cmdbuffer)) -+ bool early_submit; -+ if (!get_commandbuffer(ctx, queue_ctx, ×tamp_cmdbuffer, first >= 0, -+ has_wait_before_cmdbuffer, &early_submit)) { - return queueSubmit2(queue, submitCount, pSubmits, fence); -+ } - - VkSubmitInfo2 *submits; - VkCommandBufferSubmitInfo *cmdbuffers; - VkSemaphoreSubmitInfo *semaphores; - VK_MULTIALLOC(ma); -- vk_multialloc_add(&ma, &submits, VkSubmitInfo2, submitCount); -- vk_multialloc_add(&ma, &cmdbuffers, VkCommandBufferSubmitInfo, -- pSubmits[first].commandBufferInfoCount + 1); -- vk_multialloc_add(&ma, &semaphores, VkSemaphoreSubmitInfo, -- pSubmits[first].signalSemaphoreInfoCount + 1); -+ -+ if (early_submit) { -+ vk_multialloc_add(&ma, &submits, VkSubmitInfo2, submitCount + 1); -+ vk_multialloc_add(&ma, &cmdbuffers, VkCommandBufferSubmitInfo, 1); -+ vk_multialloc_add(&ma, &semaphores, VkSemaphoreSubmitInfo, 1); -+ first = 0; -+ } else { -+ vk_multialloc_add(&ma, &submits, VkSubmitInfo2, submitCount); -+ vk_multialloc_add(&ma, &cmdbuffers, VkCommandBufferSubmitInfo, -+ pSubmits[first].commandBufferInfoCount + 1); -+ vk_multialloc_add(&ma, &semaphores, VkSemaphoreSubmitInfo, -+ pSubmits[first].signalSemaphoreInfoCount + 1); -+ } -+ - void *buf = vk_multialloc_zalloc(&ma, &ctx->alloc, VK_SYSTEM_ALLOCATION_SCOPE_COMMAND); - if (!buf) - return VK_ERROR_OUT_OF_HOST_MEMORY; - -- memcpy(submits, pSubmits, sizeof(VkSubmitInfo2) * submitCount); -+ if (early_submit) { -+ memcpy(submits + 1, pSubmits, sizeof(VkSubmitInfo2) * submitCount); -+ submits[0] = (VkSubmitInfo2){.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO_2}; -+ submitCount++; -+ } else { -+ memcpy(submits, pSubmits, sizeof(VkSubmitInfo2) * submitCount); -+ } -+ - VkSubmitInfo2 *submit_info = &submits[first]; - - /* Add commandbuffer to submission. */ -@@ -518,13 +552,17 @@ anti_lag_QueueSubmit(VkQueue queue, uint32_t submitCount, const VkSubmitInfo *pS - { - device_context *ctx = get_device_context(queue); - queue_context *queue_ctx = get_queue_context(ctx, queue); -- if (!ctx->active_frame || !queue_ctx) -+ if (!ctx->active_frame || !queue_ctx || !submitCount) - return ctx->vtable.QueueSubmit(queue, submitCount, pSubmits, fence); - -+ bool has_wait_before_cmdbuffer = false; - int first = -1; - VkCommandBuffer timestamp_cmdbuffer; -- /* Check if any submission contains commandbuffers. */ -+ /* Check if any submission contains commandbuffers or waits before those. */ - for (unsigned i = 0; i < submitCount; i++) { -+ if (pSubmits[i].waitSemaphoreCount != 0) -+ has_wait_before_cmdbuffer = true; -+ - if (pSubmits[i].commandBufferCount) { - first = i; - break; -@@ -532,8 +570,11 @@ anti_lag_QueueSubmit(VkQueue queue, uint32_t submitCount, const VkSubmitInfo *pS - } - - /* Get timestamp commandbuffer. */ -- if (first == -1 || !get_commandbuffer(ctx, queue_ctx, ×tamp_cmdbuffer)) -+ bool early_submit; -+ if (!get_commandbuffer(ctx, queue_ctx, ×tamp_cmdbuffer, first >= 0, -+ has_wait_before_cmdbuffer, &early_submit)) { - return ctx->vtable.QueueSubmit(queue, submitCount, pSubmits, fence); -+ } - - VkSubmitInfo *submits; - VkCommandBuffer *cmdbuffers; -@@ -541,16 +582,33 @@ anti_lag_QueueSubmit(VkQueue queue, uint32_t submitCount, const VkSubmitInfo *pS - VkTimelineSemaphoreSubmitInfo *semaphore_info; - uint64_t *semaphore_values; - VK_MULTIALLOC(ma); -- vk_multialloc_add(&ma, &submits, VkSubmitInfo, submitCount); -- vk_multialloc_add(&ma, &cmdbuffers, VkCommandBuffer, pSubmits[first].commandBufferCount + 1); -- vk_multialloc_add(&ma, &semaphores, VkSemaphore, pSubmits[first].signalSemaphoreCount + 1); -- vk_multialloc_add(&ma, &semaphore_info, VkTimelineSemaphoreSubmitInfo, 1); -- vk_multialloc_add(&ma, &semaphore_values, uint64_t, pSubmits[first].signalSemaphoreCount + 1); -+ -+ if (early_submit) { -+ vk_multialloc_add(&ma, &submits, VkSubmitInfo, submitCount + 1); -+ vk_multialloc_add(&ma, &cmdbuffers, VkCommandBuffer, 1); -+ vk_multialloc_add(&ma, &semaphores, VkSemaphore, 1); -+ vk_multialloc_add(&ma, &semaphore_info, VkTimelineSemaphoreSubmitInfo, 1); -+ vk_multialloc_add(&ma, &semaphore_values, uint64_t, 1); -+ first = 0; -+ } else { -+ vk_multialloc_add(&ma, &submits, VkSubmitInfo, submitCount); -+ vk_multialloc_add(&ma, &cmdbuffers, VkCommandBuffer, pSubmits[first].commandBufferCount + 1); -+ vk_multialloc_add(&ma, &semaphores, VkSemaphore, pSubmits[first].signalSemaphoreCount + 1); -+ vk_multialloc_add(&ma, &semaphore_info, VkTimelineSemaphoreSubmitInfo, 1); -+ vk_multialloc_add(&ma, &semaphore_values, uint64_t, pSubmits[first].signalSemaphoreCount + 1); -+ } - void *buf = vk_multialloc_zalloc(&ma, &ctx->alloc, VK_SYSTEM_ALLOCATION_SCOPE_COMMAND); - if (!buf) - return VK_ERROR_OUT_OF_HOST_MEMORY; - -- memcpy(submits, pSubmits, sizeof(VkSubmitInfo) * submitCount); -+ if (early_submit) { -+ memcpy(submits + 1, pSubmits, sizeof(VkSubmitInfo) * submitCount); -+ submits[0] = (VkSubmitInfo){.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO}; -+ submitCount++; -+ } else { -+ memcpy(submits, pSubmits, sizeof(VkSubmitInfo) * submitCount); -+ } -+ - VkSubmitInfo *submit_info = &submits[first]; - - /* Add commandbuffer to submission. */ -@@ -562,7 +620,7 @@ anti_lag_QueueSubmit(VkQueue queue, uint32_t submitCount, const VkSubmitInfo *pS - - /* Add timeline semaphore to submission. */ - const VkTimelineSemaphoreSubmitInfo *tlssi = -- vk_find_struct_const(pSubmits[first].pNext, TIMELINE_SEMAPHORE_SUBMIT_INFO); -+ vk_find_struct_const(submit_info->pNext, TIMELINE_SEMAPHORE_SUBMIT_INFO); - semaphores[0] = queue_ctx->semaphore; - memcpy(&semaphores[1], submit_info->pSignalSemaphores, - sizeof(VkSemaphore) * submit_info->signalSemaphoreCount); --- -2.50.1 - - -From aaaa9d5cd9891b88b8a94692f0f49036233da227 Mon Sep 17 00:00:00 2001 -From: Kyle Gospodnetich -Date: Sun, 18 May 2025 09:40:01 -0700 -Subject: [PATCH 10/11] [BEGIN] Proton-GE Patches - --- -2.50.1 - - -From c4bb61d428cc14bc21f9a10f530fd37aa32a4c24 Mon Sep 17 00:00:00 2001 -From: Kyle Gospodnetich -Date: Sun, 18 May 2025 09:42:23 -0700 -Subject: [PATCH 11/11] radv: min image count patch for Wine Wayland/Path of - Exile 2 Credit to Glorious Eggroll. - ---- - src/amd/vulkan/radv_instance.c | 2 +- - src/asahi/vulkan/hk_instance.c | 2 +- - src/freedreno/vulkan/tu_device.cc | 2 +- - src/intel/vulkan/anv_instance.c | 2 +- - src/intel/vulkan_hasvk/anv_device.c | 2 +- - src/nouveau/vulkan/nvk_instance.c | 2 +- - src/panfrost/vulkan/panvk_instance.c | 2 +- - src/util/00-mesa-defaults.conf | 10 ++++++---- - src/util/driconf.h | 4 ++-- - src/virtio/vulkan/vn_instance.c | 2 +- - src/vulkan/wsi/wsi_common.c | 2 +- - src/vulkan/wsi/wsi_common.h | 4 ++++ - src/vulkan/wsi/wsi_common_private.h | 3 ++- - src/vulkan/wsi/wsi_common_wayland.c | 21 +++++++++++++++++---- - src/vulkan/wsi/wsi_common_x11.c | 4 ++-- - 15 files changed, 42 insertions(+), 22 deletions(-) - -diff --git a/src/amd/vulkan/radv_instance.c b/src/amd/vulkan/radv_instance.c -index 6bcf18847bd..2773003911b 100644 ---- a/src/amd/vulkan/radv_instance.c -+++ b/src/amd/vulkan/radv_instance.c -@@ -151,7 +151,7 @@ static const struct debug_control trace_options[] = { - static const driOptionDescription radv_dri_options[] = { - DRI_CONF_SECTION_PERFORMANCE - DRI_CONF_ADAPTIVE_SYNC(true) -- DRI_CONF_VK_X11_OVERRIDE_MIN_IMAGE_COUNT(0) -+ DRI_CONF_VK_OVERRIDE_MIN_IMAGE_COUNT(0) - DRI_CONF_VK_X11_STRICT_IMAGE_COUNT(false) - DRI_CONF_VK_X11_ENSURE_MIN_IMAGE_COUNT(false) - DRI_CONF_VK_KHR_PRESENT_WAIT(false) -diff --git a/src/asahi/vulkan/hk_instance.c b/src/asahi/vulkan/hk_instance.c -index 69e315ff979..b0361133793 100644 ---- a/src/asahi/vulkan/hk_instance.c -+++ b/src/asahi/vulkan/hk_instance.c -@@ -80,7 +80,7 @@ hk_EnumerateInstanceExtensionProperties(const char *pLayerName, - static const driOptionDescription hk_dri_options[] = { - DRI_CONF_SECTION_PERFORMANCE - DRI_CONF_ADAPTIVE_SYNC(true) -- DRI_CONF_VK_X11_OVERRIDE_MIN_IMAGE_COUNT(0) -+ DRI_CONF_VK_OVERRIDE_MIN_IMAGE_COUNT(0) - DRI_CONF_VK_X11_STRICT_IMAGE_COUNT(false) - DRI_CONF_VK_X11_ENSURE_MIN_IMAGE_COUNT(false) - DRI_CONF_VK_KHR_PRESENT_WAIT(false) -diff --git a/src/freedreno/vulkan/tu_device.cc b/src/freedreno/vulkan/tu_device.cc -index 2c72aff780d..f9d95c63bbe 100644 ---- a/src/freedreno/vulkan/tu_device.cc -+++ b/src/freedreno/vulkan/tu_device.cc -@@ -1671,7 +1671,7 @@ tu_destroy_physical_device(struct vk_physical_device *device) - - static const driOptionDescription tu_dri_options[] = { - DRI_CONF_SECTION_PERFORMANCE -- DRI_CONF_VK_X11_OVERRIDE_MIN_IMAGE_COUNT(0) -+ DRI_CONF_VK_OVERRIDE_MIN_IMAGE_COUNT(0) - DRI_CONF_VK_KHR_PRESENT_WAIT(false) - DRI_CONF_VK_X11_STRICT_IMAGE_COUNT(false) - DRI_CONF_VK_X11_ENSURE_MIN_IMAGE_COUNT(false) -diff --git a/src/intel/vulkan/anv_instance.c b/src/intel/vulkan/anv_instance.c -index 268a5f3425b..0ab889654ae 100644 ---- a/src/intel/vulkan/anv_instance.c -+++ b/src/intel/vulkan/anv_instance.c -@@ -10,7 +10,7 @@ - static const driOptionDescription anv_dri_options[] = { - DRI_CONF_SECTION_PERFORMANCE - DRI_CONF_ADAPTIVE_SYNC(true) -- DRI_CONF_VK_X11_OVERRIDE_MIN_IMAGE_COUNT(0) -+ DRI_CONF_VK_OVERRIDE_MIN_IMAGE_COUNT(0) - DRI_CONF_VK_X11_STRICT_IMAGE_COUNT(false) - DRI_CONF_VK_KHR_PRESENT_WAIT(false) - DRI_CONF_VK_XWAYLAND_WAIT_READY(false) -diff --git a/src/intel/vulkan_hasvk/anv_device.c b/src/intel/vulkan_hasvk/anv_device.c -index 81f08e50e5d..7e9d43df7ce 100644 ---- a/src/intel/vulkan_hasvk/anv_device.c -+++ b/src/intel/vulkan_hasvk/anv_device.c -@@ -65,7 +65,7 @@ - static const driOptionDescription anv_dri_options[] = { - DRI_CONF_SECTION_PERFORMANCE - DRI_CONF_ADAPTIVE_SYNC(true) -- DRI_CONF_VK_X11_OVERRIDE_MIN_IMAGE_COUNT(0) -+ DRI_CONF_VK_OVERRIDE_MIN_IMAGE_COUNT(0) - DRI_CONF_VK_X11_STRICT_IMAGE_COUNT(false) - DRI_CONF_VK_KHR_PRESENT_WAIT(false) - DRI_CONF_VK_XWAYLAND_WAIT_READY(true) -diff --git a/src/nouveau/vulkan/nvk_instance.c b/src/nouveau/vulkan/nvk_instance.c -index 37e7abe1584..29da7e3a0b3 100644 ---- a/src/nouveau/vulkan/nvk_instance.c -+++ b/src/nouveau/vulkan/nvk_instance.c -@@ -98,7 +98,7 @@ nvk_init_debug_flags(struct nvk_instance *instance) - static const driOptionDescription nvk_dri_options[] = { - DRI_CONF_SECTION_PERFORMANCE - DRI_CONF_ADAPTIVE_SYNC(true) -- DRI_CONF_VK_X11_OVERRIDE_MIN_IMAGE_COUNT(0) -+ DRI_CONF_VK_OVERRIDE_MIN_IMAGE_COUNT(0) - DRI_CONF_VK_X11_STRICT_IMAGE_COUNT(false) - DRI_CONF_VK_X11_ENSURE_MIN_IMAGE_COUNT(false) - DRI_CONF_VK_KHR_PRESENT_WAIT(false) -diff --git a/src/panfrost/vulkan/panvk_instance.c b/src/panfrost/vulkan/panvk_instance.c -index 31abc8f4369..8c8f7a8ca0c 100644 ---- a/src/panfrost/vulkan/panvk_instance.c -+++ b/src/panfrost/vulkan/panvk_instance.c -@@ -151,7 +151,7 @@ panvk_kmod_free(const struct pan_kmod_allocator *allocator, void *data) - static const driOptionDescription panvk_dri_options[] = { - DRI_CONF_SECTION_PERFORMANCE - DRI_CONF_ADAPTIVE_SYNC(true) -- DRI_CONF_VK_X11_OVERRIDE_MIN_IMAGE_COUNT(0) -+ DRI_CONF_VK_OVERRIDE_MIN_IMAGE_COUNT(0) - DRI_CONF_VK_X11_STRICT_IMAGE_COUNT(false) - DRI_CONF_VK_X11_ENSURE_MIN_IMAGE_COUNT(false) - DRI_CONF_VK_KHR_PRESENT_WAIT(false) -diff --git a/src/util/00-mesa-defaults.conf b/src/util/00-mesa-defaults.conf -index d42526732fa..eaab8afc3e9 100644 ---- a/src/util/00-mesa-defaults.conf -+++ b/src/util/00-mesa-defaults.conf -@@ -634,24 +634,24 @@ TODO: document the other workarounds. - - - - - -- - - -- - - - -- - -@@ -712,10 +712,12 @@ TODO: document the other workarounds. - - - - - - - - -diff --git a/src/util/driconf.h b/src/util/driconf.h -index 8faa15fb560..c94de3f45fe 100644 ---- a/src/util/driconf.h -+++ b/src/util/driconf.h -@@ -449,8 +449,8 @@ - DRI_CONF_OPT_B(vk_wsi_force_swapchain_to_current_extent, def, \ - "Force VkSwapchainCreateInfoKHR::imageExtent to be VkSurfaceCapabilities2KHR::currentExtent") - --#define DRI_CONF_VK_X11_OVERRIDE_MIN_IMAGE_COUNT(def) \ -- DRI_CONF_OPT_I(vk_x11_override_min_image_count, def, 0, 999, \ -+#define DRI_CONF_VK_OVERRIDE_MIN_IMAGE_COUNT(def) \ -+ DRI_CONF_OPT_I(vk_override_min_image_count, def, 0, 999, \ - "Override the VkSurfaceCapabilitiesKHR::minImageCount (0 = no override)") - - #define DRI_CONF_VK_X11_STRICT_IMAGE_COUNT(def) \ -diff --git a/src/virtio/vulkan/vn_instance.c b/src/virtio/vulkan/vn_instance.c -index 1942d77f67c..23c8e19188c 100644 ---- a/src/virtio/vulkan/vn_instance.c -+++ b/src/virtio/vulkan/vn_instance.c -@@ -70,8 +70,8 @@ static const struct vk_instance_extension_table - static const driOptionDescription vn_dri_options[] = { - /* clang-format off */ - DRI_CONF_SECTION_PERFORMANCE -+ DRI_CONF_VK_OVERRIDE_MIN_IMAGE_COUNT(0) - DRI_CONF_VK_X11_ENSURE_MIN_IMAGE_COUNT(false) -- DRI_CONF_VK_X11_OVERRIDE_MIN_IMAGE_COUNT(0) - DRI_CONF_VK_X11_STRICT_IMAGE_COUNT(false) - DRI_CONF_VK_XWAYLAND_WAIT_READY(true) - DRI_CONF_VENUS_IMPLICIT_FENCING(false) -diff --git a/src/vulkan/wsi/wsi_common.c b/src/vulkan/wsi/wsi_common.c -index f78e4baa22a..047d5dcdeaf 100644 ---- a/src/vulkan/wsi/wsi_common.c -+++ b/src/vulkan/wsi/wsi_common.c -@@ -220,7 +220,7 @@ wsi_device_init(struct wsi_device *wsi, - #endif - - #ifdef VK_USE_PLATFORM_WAYLAND_KHR -- result = wsi_wl_init_wsi(wsi, alloc, pdevice); -+ result = wsi_wl_init_wsi(wsi, alloc, pdevice, dri_options); - if (result != VK_SUCCESS) - goto fail; - #endif -diff --git a/src/vulkan/wsi/wsi_common.h b/src/vulkan/wsi/wsi_common.h -index 44c81ccddf0..a97e7c2a948 100644 ---- a/src/vulkan/wsi/wsi_common.h -+++ b/src/vulkan/wsi/wsi_common.h -@@ -209,6 +209,10 @@ struct wsi_device { - struct { - /* Don't use the commit-timing protocol for pacing */ - bool disable_timestamps; -+ -+ /* Override the minimum number of images on the swapchain. -+ * 0 = no override */ -+ double override_minImageCount; - } wayland; - - /* -diff --git a/src/vulkan/wsi/wsi_common_private.h b/src/vulkan/wsi/wsi_common_private.h -index f138fee5519..1d1b55ac7e5 100644 ---- a/src/vulkan/wsi/wsi_common_private.h -+++ b/src/vulkan/wsi/wsi_common_private.h -@@ -420,7 +420,8 @@ void wsi_x11_finish_wsi(struct wsi_device *wsi_device, - const VkAllocationCallbacks *alloc); - VkResult wsi_wl_init_wsi(struct wsi_device *wsi_device, - const VkAllocationCallbacks *alloc, -- VkPhysicalDevice physical_device); -+ VkPhysicalDevice physical_device, -+ const struct driOptionCache *dri_options); - void wsi_wl_finish_wsi(struct wsi_device *wsi_device, - const VkAllocationCallbacks *alloc); - VkResult wsi_win32_init_wsi(struct wsi_device *wsi_device, -diff --git a/src/vulkan/wsi/wsi_common_wayland.c b/src/vulkan/wsi/wsi_common_wayland.c -index dd15d03846b..df68d2ea006 100644 ---- a/src/vulkan/wsi/wsi_common_wayland.c -+++ b/src/vulkan/wsi/wsi_common_wayland.c -@@ -58,6 +58,7 @@ - #include - #include - #include -+#include - - #include - -@@ -1668,9 +1669,12 @@ wsi_wl_surface_get_support(VkIcdSurfaceBase *surface, - #define WSI_WL_DEFAULT_NUM_IMAGES 3 - - static uint32_t --wsi_wl_surface_get_min_image_count(struct wsi_wl_display *display, -+wsi_wl_surface_get_min_image_count(struct wsi_device *wsi_device, struct wsi_wl_display *display, - const VkSurfacePresentModeEXT *present_mode) - { -+ if (wsi_device->wayland.override_minImageCount) -+ return wsi_device->wayland.override_minImageCount; -+ - if (present_mode) { - return present_mode->presentMode == VK_PRESENT_MODE_MAILBOX_KHR ? - WSI_WL_BUMPED_NUM_IMAGES : WSI_WL_DEFAULT_NUM_IMAGES; -@@ -1719,7 +1723,7 @@ wsi_wl_surface_get_capabilities(VkIcdSurfaceBase *icd_surface, - display = &temp_display; - } - -- caps->minImageCount = wsi_wl_surface_get_min_image_count(display, present_mode); -+ caps->minImageCount = wsi_wl_surface_get_min_image_count(wsi_device, display, present_mode); - - if (!wsi_wl_surface->display) - wsi_wl_display_finish(&temp_display); -@@ -3481,7 +3485,7 @@ wsi_wl_surface_create_swapchain(VkIcdSurfaceBase *icd_surface, - const VkSurfacePresentModeEXT mode = - { VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT, NULL, pCreateInfo->presentMode }; - -- uint32_t min_images = wsi_wl_surface_get_min_image_count(wsi_wl_surface->display, &mode); -+ uint32_t min_images = wsi_wl_surface_get_min_image_count(wsi_device, wsi_wl_surface->display, &mode); - bool requires_image_count_bump = min_images == WSI_WL_BUMPED_NUM_IMAGES; - if (requires_image_count_bump) - num_images = MAX2(min_images, num_images); -@@ -3676,7 +3680,8 @@ fail: - VkResult - wsi_wl_init_wsi(struct wsi_device *wsi_device, - const VkAllocationCallbacks *alloc, -- VkPhysicalDevice physical_device) -+ VkPhysicalDevice physical_device, -+ const struct driOptionCache *dri_options) - { - struct wsi_wayland *wsi; - VkResult result; -@@ -3702,6 +3707,14 @@ wsi_wl_init_wsi(struct wsi_device *wsi_device, - - wsi_device->wsi[VK_ICD_WSI_PLATFORM_WAYLAND] = &wsi->base; - -+ if (dri_options) -+ { -+ if (driCheckOption(dri_options, "vk_override_min_image_count", DRI_INT)) { -+ wsi_device->wayland.override_minImageCount = -+ driQueryOptioni(dri_options, "vk_override_min_image_count"); -+ } -+ } -+ - return VK_SUCCESS; - - fail: -diff --git a/src/vulkan/wsi/wsi_common_x11.c b/src/vulkan/wsi/wsi_common_x11.c -index 2edb7bf2bf3..0f9e2a422c0 100644 ---- a/src/vulkan/wsi/wsi_common_x11.c -+++ b/src/vulkan/wsi/wsi_common_x11.c -@@ -2924,9 +2924,9 @@ wsi_x11_init_wsi(struct wsi_device *wsi_device, - } - - if (dri_options) { -- if (driCheckOption(dri_options, "vk_x11_override_min_image_count", DRI_INT)) { -+ if (driCheckOption(dri_options, "vk_override_min_image_count", DRI_INT)) { - wsi_device->x11.override_minImageCount = -- driQueryOptioni(dri_options, "vk_x11_override_min_image_count"); -+ driQueryOptioni(dri_options, "vk_override_min_image_count"); - } - if (driCheckOption(dri_options, "vk_x11_strict_image_count", DRI_BOOL)) { - wsi_device->x11.strict_imageCount = --- -2.50.1 - diff --git a/anda/lib/mesa/gnome-shell-glthread-disable.patch b/anda/lib/mesa/gnome-shell-glthread-disable.patch deleted file mode 100644 index b2caeb8df5..0000000000 --- a/anda/lib/mesa/gnome-shell-glthread-disable.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -up mesa-22.3.0-rc4/src/util/00-mesa-defaults.conf.dma mesa-22.3.0-rc4/src/util/00-mesa-defaults.conf ---- mesa-22.3.0-rc4/src/util/00-mesa-defaults.conf.dma 2022-11-25 10:32:32.175879868 +1000 -+++ mesa-22.3.0-rc4/src/util/00-mesa-defaults.conf 2022-11-25 10:32:43.743067470 +1000 -@@ -653,6 +653,7 @@ TODO: document the other workarounds. - - - -

Your everyday TUI IRC student + + +

+ senpai is an IRC client that works best with bouncers: +

+
    +
  • no logs are kept
  • +
  • history is fetched from the server via CHATHISTORY
  • +
  • networks are fetched from the server via bouncer-networks
  • +
  • messages can be searched in logs via SEARCH
  • +
  • files can be uploaded via FILEHOST (with drag & drop!)
  • +
+
+ +senpai.desktop + + https://sr.ht/~taiite/senpai/ + + + + + diff --git a/anda/misc/senpai/senpai.spec b/anda/misc/senpai/senpai.spec new file mode 100644 index 0000000000..1e33ba23d0 --- /dev/null +++ b/anda/misc/senpai/senpai.spec @@ -0,0 +1,55 @@ +%global appid org.sr.ht.delthas.senpai + +Name: senpai +Version: 0.4.1 +Release: 3%?dist +Summary: Your everyday IRC student +License: ISC +URL: https://sr.ht/~delthas/senpai/ +Source0: https://github.com/delthas/senpai/archive/refs/tags/v%version.tar.gz +Source1: org.sr.ht.delthas.senpai.metainfo.xml +BuildRequires: golang scdoc gcc anda-srpm-macros terra-appstream-helper + +Packager: Owen Zimmerman + +%description +senpai is an IRC client that works best with bouncers: + + - no logs are kept, + - history is fetched from the server via CHATHISTORY, + - networks are fetched from the server via bouncer-networks, + - messages can be searched in logs via SEARCH, + - files can be uploaded via FILEHOST (with drag & drop!) + +%prep +%autosetup -n %{name}-%{version} + +%build +%make_build + +%install +install -Dm755 senpai %{buildroot}%{_bindir}/senpai +install -Dm644 doc/senpai.1 %{buildroot}%{_mandir}/man1/senpai.1 +install -Dm644 doc/senpai.5 %{buildroot}%{_mandir}/man5/senpai.5 +install -Dm644 contrib/senpai.desktop %{buildroot}%{_datadir}/applications/senpai.desktop +install -Dm644 res/icon.48.png %{buildroot}%{_iconsdir}/hicolor/48x48/apps/senpai.png +install -Dm644 res/icon.svg %{buildroot}%{_iconsdir}/hicolor/scalable/apps/senpai.svg + +%terra_appstream -o %{SOURCE1} + +%files +%doc README.md +%license LICENSE +%_bindir/senpai +%{_mandir}/man1/senpai.1.gz +%{_mandir}/man5/senpai.5.gz +%{_datadir}/applications/senpai.desktop +%{_iconsdir}/hicolor/48x48/apps/senpai.png +%{_iconsdir}/hicolor/scalable/apps/senpai.svg +%{_metainfodir}/org.sr.ht.delthas.senpai.metainfo.xml + +%changelog +* Tue Nov 18 2025 Owen Zimmerman +- Add metainfo +* Fri Oct 31 2025 Owen Zimmerman +- Initial commit diff --git a/anda/misc/senpai/update.rhai b/anda/misc/senpai/update.rhai new file mode 100644 index 0000000000..7427ad0a82 --- /dev/null +++ b/anda/misc/senpai/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("delthas/senpai")); diff --git a/anda/misc/shitpost/anda.hcl b/anda/misc/shitpost/anda.hcl new file mode 100644 index 0000000000..b9f3e6f6f8 --- /dev/null +++ b/anda/misc/shitpost/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "shitpost.spec" + } +} \ No newline at end of file diff --git a/anda/misc/shitpost/shitpost.spec b/anda/misc/shitpost/shitpost.spec new file mode 100644 index 0000000000..f4d1c0f290 --- /dev/null +++ b/anda/misc/shitpost/shitpost.spec @@ -0,0 +1,31 @@ +Name: shitpost +Version: 1 +Release: 2%?dist +Summary: A tool to create memes using CLI +License: WTFPL +URL: https://redd.it/5ezk1f +Source0: https://raw.githubusercontent.com/magnus-ISU/aur-scripts/master/shitpost +Requires: bash +BuildArch: noarch + +Packager: Its-J + +%description +%{summary}. + +%prep + +%build + +%install +install -Dm 755 %{SOURCE0} %{buildroot}%{_bindir}/shitpost + +%files +%{_bindir}/shitpost + +%changelog +* Tue Apr 14 2026 Its-J +- Add email to my previous contributor attributions + +* Sun Nov 09 2025 Its-J +- Package shitpost diff --git a/anda/misc/signal-cli/anda.hcl b/anda/misc/signal-cli/anda.hcl new file mode 100644 index 0000000000..05cf91dd5e --- /dev/null +++ b/anda/misc/signal-cli/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "signal-cli.spec" + } +} diff --git a/anda/misc/signal-cli/signal-cli.spec b/anda/misc/signal-cli/signal-cli.spec new file mode 100644 index 0000000000..9d9fc83a46 --- /dev/null +++ b/anda/misc/signal-cli/signal-cli.spec @@ -0,0 +1,121 @@ +%global appid org.asamk.SignalCli + +%define debug_package %{nil} + +Name: signal-cli +Version: 0.14.3 +Release: 1%{?dist} +Summary: signal-cli provides an unofficial commandline, JSON-RPC and dbus interface for the Signal messenger +License: GPL-3.0-only +URL: https://github.com/AsamK/signal-cli +Source0: %url/releases/download/v%version/%name-%version.tar.gz +BuildArch: noarch + +BuildRequires: gcc-c++ +BuildRequires: gradle +BuildRequires: anda-srpm-macros +BuildRequires: java-25-openjdk +BuildRequires: java-25-openjdk-devel +BuildRequires: systemd-rpm-macros +BuildRequires: make +BuildRequires: asciidoc + +Recommends: java-21-openjdk + +Packager: Owen Zimmerman + +%description +signal-cli is a commandline interface for the Signal messenger. +It supports registering, verifying, sending and receiving messages. +signal-cli uses a patched libsignal-service-java, extracted from the Signal-Android source code. +For registering you need a phone number where you can receive SMS or incoming calls. + +signal-cli is primarily intended to be used on servers to notify admins of important events. +For this use-case, it has a daemon mode with JSON-RPC interface (man page) and D-BUS interface (man page). +For the JSON-RPC interface there's also a simple example client, written in Rust. + +signal-cli needs to be kept up-to-date to keep up with Signal-Server changes. +The official Signal clients expire after three months and then the Signal-Server can make incompatible changes. +So signal-cli releases older than three months may not work correctly. + +%prep +# The release tarballs don't include buildable source code +%git_clone %{url} v%{version} + +%build +./gradlew build \ +--no-daemon +./gradlew installDist + +pushd man +%{make_build} +popd + +%install +mkdir -p %{buildroot}%{_unitdir} +mkdir -p %{buildroot}%{_iconsdir}/hicolor/scalable/apps +mkdir -p %{buildroot}%{_javadir}/%{name}/lib +install -Dm755 build/install/signal-cli/bin/signal-cli %{buildroot}%{_bindir}/%{name} +install -Dm644 data/signal-cli.sysusers.conf %{buildroot}%{_libdir}/sysusers.d/signal-cli.sysusers.conf +install -Dm644 data/signal-cli.tmpfiles.conf %{buildroot}%{_libdir}/tmpfiles.d/signal-cli.tmpfiles.conf +install -Dm644 data/org.asamk.Signal.conf %{buildroot}%{_sysconfdir}/dbus-1/system.d/org.asamk.Signal.conf +install -Dm644 data/*.service %{buildroot}%{_unitdir}/ +install -Dm644 data/*.socket %{buildroot}%{_unitdir}/ +install -Dm644 data/org.asamk.SignalCli.metainfo.xml %{buildroot}%{_metainfodir}/org.asamk.SignalCli.metainfo.xml +install -Dm644 data/org.asamk.SignalCli.svg %{buildroot}%{_iconsdir}/hicolor/scalable/apps/ + +install -Dm644 man/%{name}.1 %{buildroot}%{_mandir}/man1/%{name}.1 +install -Dm644 man/%{name}-dbus.5 %{buildroot}%{_mandir}/man5/%{name}-dbus.5 +install -Dm644 man/%{name}-jsonrpc.5 %{buildroot}%{_mandir}/man5/%{name}-jsonrpc.5 + +rm -f lib/commons-logging-*.jar +rm -f lib/libsignal-client*.jar +install -Dm644 build/install/signal-cli/lib/*.jar %{buildroot}%{_javadir}/%{name}/lib/ + +# Fix launcher to use the package-installed jars +sed -i \ + 's|^APP_HOME=.*$|APP_HOME=%{_javadir}/%{name}|' \ + %{buildroot}%{_bindir}/signal-cli + +%terra_appstream + +%post +%systemd_post org.asamk.Signal.service +%systemd_post signal-cli.service +%systemd_post signal-cli@.service +%systemd_post signal-cli-socket.service + +%preun +%systemd_preun org.asamk.Signal.service +%systemd_preun signal-cli.service +%systemd_preun signal-cli@.service +%systemd_preun signal-cli-socket.service + +%postun +%systemd_postun_with_restart org.asamk.Signal.service +%systemd_postun_with_restart signal-cli.service +%systemd_postun_with_restart signal-cli@.service +%systemd_postun_with_restart signal-cli-socket.service + +%files +%doc README.md CONTRIBUTING.md CHANGELOG.md +%license LICENSE +%{_bindir}/%{name} +%{_libdir}/sysusers.d/signal-cli.sysusers.conf +%{_libdir}/tmpfiles.d/signal-cli.tmpfiles.conf +%{_sysconfdir}/dbus-1/system.d/org.asamk.Signal.conf +%{_unitdir}/org.asamk.Signal.service +%{_unitdir}/%{name}.service +%{_unitdir}/%{name}@.service +%{_unitdir}/%{name}-socket.service +%{_unitdir}/%{name}-socket.socket +%{_mandir}/man1/%{name}.1.* +%{_mandir}/man5/%{name}-dbus.5.* +%{_mandir}/man5/%{name}-jsonrpc.5.* +%{_metainfodir}/%{appid}.metainfo.xml +%{_iconsdir}/hicolor/scalable/apps/%{appid}.svg +%{_javadir}/%{name}/lib/*.jar + +%changelog +* Sun Dec 07 2025 Owen Zimmerman +- Initial commit diff --git a/anda/misc/signal-cli/update.rhai b/anda/misc/signal-cli/update.rhai new file mode 100644 index 0000000000..f2df82b8d7 --- /dev/null +++ b/anda/misc/signal-cli/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("AsamK/signal-cli")); diff --git a/anda/misc/uwufetch/update.rhai b/anda/misc/uwufetch/update.rhai index 599bb2194c..90eca7ef68 100644 --- a/anda/misc/uwufetch/update.rhai +++ b/anda/misc/uwufetch/update.rhai @@ -1,8 +1,11 @@ -rpm.global("commit", gh_commit("ad-oliviero/uwufetch")); +let json = get(`https://api.github.com/repos/ad-oliviero/uwufetch/commits/development`).json(); +let c = json.sha; +let d = json.commit.author.date; +d.truncate(10); +rpm.global("commit", c); if rpm.changed() { rpm.release(); - rpm.global("commit_date", date()); + rpm.global("fulldate", d); let ver = gh_tag("ad-oliviero/uwufetch"); - ver.crop(1); rpm.global("ver", ver); } diff --git a/anda/misc/uwufetch/uwufetch.spec b/anda/misc/uwufetch/uwufetch.spec index b033f1aa9e..3de4f761db 100644 --- a/anda/misc/uwufetch/uwufetch.spec +++ b/anda/misc/uwufetch/uwufetch.spec @@ -1,16 +1,17 @@ -%global commit 28b471b813d1c9aab77eeeb61f65304e586fb275 +%global commit b02d6d4ed86129f87dff0be9e0abe091ea7e159f %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commit_date 20240423 +%global fulldate 2026-04-14 +%global commit_date %(echo %{fulldate} | sed 's/-//g') %global ver 2.1 %global debug_package %{nil} Name: uwufetch Version: %{ver}^%{commit_date}git.%{shortcommit} -Release: 1%?dist +Release: 1%{?dist} Summary: A meme system info tool for Linux, based on nyan/uwu trend on r/linuxmasterrace. License: GPL-3.0 URL: https://github.com/ad-oliviero/uwufetch -BuildRequires: make gcc git anda-srpm-macros +BuildRequires: make gcc git anda-srpm-macros pciutils-devel Requires: freecolor Requires: xwininfo Recommends: lshw diff --git a/anda/misc/uxn/stable/anda.hcl b/anda/misc/uxn/stable/anda.hcl new file mode 100644 index 0000000000..329e61e67c --- /dev/null +++ b/anda/misc/uxn/stable/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "uxn.spec" + } +} diff --git a/anda/misc/uxn/stable/uxn.spec b/anda/misc/uxn/stable/uxn.spec new file mode 100644 index 0000000000..f6e4df5e8f --- /dev/null +++ b/anda/misc/uxn/stable/uxn.spec @@ -0,0 +1,48 @@ +# uxn stable has no update script because this version +# is permanently frozen. A nightly will be added once the +# sourcehut versioning script is done. + +Name: uxn +Version: 1.0 +Release: 1%?dist +Summary: An emulator for the Varvara virtual machine +URL: https://100r.ca/site/%{name}.html +Source0: https://git.sr.ht/~rabbits/%{name}/archive/%{version}.tar.gz +License: MIT +BuildRequires: SDL2-devel gcc + +Packager: arbormoss + +%description +%summary. + +%prep +%autosetup -n %name-%version + +%build +# credit: based on the build script for uxn +# https://git.sr.ht/~rabbits/uxn/tree/1.0/item/build.sh + +mkdir -p bin +UXNEMU_LDFLAGS="-L/usr/local/lib $(sdl2-config --cflags --libs)" +CFLAGS="%{build_cflags}" + +%{__cc} ${CFLAGS} src/%{name}asm.c %{build_ldflags} -o bin/%{name}asm +%{__cc} ${CFLAGS} src/%{name}.c src/devices/system.c src/devices/console.c src/devices/file.c src/devices/datetime.c src/devices/mouse.c src/devices/controller.c src/devices/screen.c src/devices/audio.c src/%{name}emu.c ${UXNEMU_LDFLAGS} ${FILE_LDFLAGS} %{build_ldflags} -o bin/%{name}emu +%{__cc} ${CFLAGS} src/%{name}.c src/devices/system.c src/devices/console.c src/devices/file.c src/devices/datetime.c src/%{name}cli.c ${FILE_LDFLAGS} %{build_ldflags} -o bin/%{name}cli + +%install +install -Dm755 bin/%{name}asm %{buildroot}%{_bindir}/%{name}asm +install -Dm755 bin/%{name}cli %{buildroot}%{_bindir}/%{name}cli +install -Dm755 bin/%{name}emu %{buildroot}%{_bindir}/%{name}emu + +%files +%doc README.md +%license LICENSE +%{_bindir}/%{name}asm +%{_bindir}/%{name}cli +%{_bindir}/%{name}emu + +%changelog +* Sun Dec 21 2025 arbormoss +- Intial Commit diff --git a/anda/misc/v2ray-domain-list-community/anda.hcl b/anda/misc/v2ray-domain-list-community/anda.hcl new file mode 100644 index 0000000000..16ab2d1a00 --- /dev/null +++ b/anda/misc/v2ray-domain-list-community/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "v2ray-domain-list-community.spec" + } + labels { + nightly = 1 + } +} diff --git a/anda/misc/v2ray-domain-list-community/update.rhai b/anda/misc/v2ray-domain-list-community/update.rhai new file mode 100644 index 0000000000..be7acc0491 --- /dev/null +++ b/anda/misc/v2ray-domain-list-community/update.rhai @@ -0,0 +1,7 @@ +rpm.global("commit", gh_commit("v2fly/domain-list-community")); +if rpm.changed() { + rpm.release(); + rpm.global("commit_date", date()); + let v = gh("v2fly/domain-list-community"); + rpm.global("ver", v); +} \ No newline at end of file diff --git a/anda/misc/v2ray-domain-list-community/v2ray-domain-list-community.spec b/anda/misc/v2ray-domain-list-community/v2ray-domain-list-community.spec new file mode 100644 index 0000000000..f5e300925e --- /dev/null +++ b/anda/misc/v2ray-domain-list-community/v2ray-domain-list-community.spec @@ -0,0 +1,37 @@ +%global commit 2b2fae988c6afeff5a32722fb46188092a70b821 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global ver 20260506123139 +%global commit_date 20260507 + +Name: v2ray-domain-list-community +Version: %{ver}^%{commit_date}git.%{shortcommit} +Release: 1%{?dist} +Summary: Community managed domain list (geosite.dat) for V2Ray +License: MIT +Packager: veuxit +URL: https://github.com/v2fly/domain-list-community +BuildArch: noarch + +Source0: %{url}/archive/%{commit}/%{ver}-%{commit}.tar.gz + +BuildRequires: golang +BuildRequires: go-rpm-macros go-srpm-macros anda-srpm-macros + +%description +%summary. + +%prep +%autosetup -n domain-list-community-%{commit} +go run main.go + +%install +install -Dm644 dlc.dat %{buildroot}%{_datadir}/v2ray/geosite.dat + +%files +%doc README.md +%license LICENSE +%{_datadir}/v2ray/geosite.dat + +%changelog +* Mon Mar 9 2026 veuxit - 20260309041918^20260309git.6bb4a68-1 +- Initial package release diff --git a/anda/misc/v2ray-geoip/anda.hcl b/anda/misc/v2ray-geoip/anda.hcl new file mode 100644 index 0000000000..b50cb332e3 --- /dev/null +++ b/anda/misc/v2ray-geoip/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "v2ray-geoip.spec" + } + labels { + nightly = 1 + } +} diff --git a/anda/misc/v2ray-geoip/update.rhai b/anda/misc/v2ray-geoip/update.rhai new file mode 100644 index 0000000000..8d194140ff --- /dev/null +++ b/anda/misc/v2ray-geoip/update.rhai @@ -0,0 +1,7 @@ +rpm.global("commit", gh_commit("v2fly/geoip")); +if rpm.changed() { + rpm.release(); + rpm.global("commit_date", date()); + let v = gh("v2fly/geoip"); + rpm.global("ver", v); +} \ No newline at end of file diff --git a/anda/misc/v2ray-geoip/v2ray-geoip.spec b/anda/misc/v2ray-geoip/v2ray-geoip.spec new file mode 100644 index 0000000000..501e42d9bb --- /dev/null +++ b/anda/misc/v2ray-geoip/v2ray-geoip.spec @@ -0,0 +1,43 @@ +%global commit 3211cac2e6f92fc7d5e0ac492de433b2a1153af2 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global ver 202604200545 +%global commit_date 20260421 + +%global year %{gsub %commit_date %%d%%d%%d%%d$ %{quote:}} +%global month %{gsub %commit_date %%d%%d%%d%%d(%%d%%d)%%d%%d %%1} + +Name: v2ray-geoip +Version: %{ver}^%{commit_date}git.%{shortcommit} +Release: 1%{?dist} +Summary: GeoIP for V2Ray +License: CC-BY-SA-4.0 +Packager: veuxit +URL: https://github.com/v2fly/geoip +BuildArch: noarch + +Source0: %{url}/archive/%{commit}/%{ver}-%{commit}.tar.gz +Source1: https://download.db-ip.com/free/dbip-country-lite-%year-%month.mmdb.gz + +BuildRequires: golang + +%description +%summary. + +%prep +%autosetup -n geoip-%{commit} +mkdir -p db-ip +gzip -d %SOURCE1 -c > ./db-ip/dbip-country-lite.mmdb + +%build +go run ./ -c ./config.json + +%install +install -Dm644 output/geoip.dat %{buildroot}%{_datadir}/v2ray/geoip.dat + +%files +%license LICENSE +%{_datadir}/v2ray/geoip.dat + +%changelog +* Mon Mar 9 2026 veuxit - 202603050223^20260122git.7a6498a-1 +- Initial package release diff --git a/anda/misc/vencord-installer/anda.hcl b/anda/misc/vencord-installer/anda.hcl new file mode 100644 index 0000000000..3b47e3bee6 --- /dev/null +++ b/anda/misc/vencord-installer/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "vencord-installer.spec" + } +} diff --git a/anda/misc/vencord-installer/dev.vencord.Installer.desktop b/anda/misc/vencord-installer/dev.vencord.Installer.desktop new file mode 100644 index 0000000000..1bdd1e7134 --- /dev/null +++ b/anda/misc/vencord-installer/dev.vencord.Installer.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Name=Vencord Installer +Type=Application +GenericName=Discord Mod Installer +Comment=Install and manage Vencord on your Discord installation +Exec=vencord-installer +Icon=dev.vencord.Installer +Categories=Network;InstantMessaging; +Keywords=discord;vencord;mod; +StartupNotify=true diff --git a/anda/misc/vencord-installer/dev.vencord.Installer.metainfo.xml b/anda/misc/vencord-installer/dev.vencord.Installer.metainfo.xml new file mode 100644 index 0000000000..f59e40f6d3 --- /dev/null +++ b/anda/misc/vencord-installer/dev.vencord.Installer.metainfo.xml @@ -0,0 +1,10 @@ + + dev.vencord.Installer + com.discordapp.Discord + Vencord Installer + Installer for Vencord + GPL-3.0+ + + Internet + + diff --git a/anda/misc/vencord-installer/dev.vencord.Installer.policy b/anda/misc/vencord-installer/dev.vencord.Installer.policy new file mode 100644 index 0000000000..2659c50d04 --- /dev/null +++ b/anda/misc/vencord-installer/dev.vencord.Installer.policy @@ -0,0 +1,20 @@ + + + + Vencord + https://vencord.dev + + + Run the Vencord Installer + Authentication is required to patch Discord with Vencord + + auth_admin + auth_admin + auth_admin_keep + + /usr/bin/vencord-installer + true + + diff --git a/anda/misc/vencord-installer/vencord-installer.spec b/anda/misc/vencord-installer/vencord-installer.spec new file mode 100644 index 0000000000..9d8e7e6bf7 --- /dev/null +++ b/anda/misc/vencord-installer/vencord-installer.spec @@ -0,0 +1,197 @@ + +%global debug_package %{nil} + +%bcond_without openasar + +%global appstream_component addon +# https://github.com/vencord/installer +%global goipath github.com/Vencord/Installer +Version: 1.4.0 +%global commit 8bd9dfd8de2926bb55cf7709b8c31f0704372cec + +%global appid dev.vencord.Installer + +%gometa -L -f + +%global common_description %{expand: +A cross platform gui/cli app for installing Vencord.} + +%global golicenses LICENSE +%global godocs README.md + +Name: vencord-installer +Release: 2%{?dist} +Provides: golang-github-vencord-installer = %{version}-%{release} +Summary: A cross platform gui/cli app for installing Vencord +Packager: Cappy Ishihara +License: GPL-3.0-only +URL: %{gourl} + +Source: %{gosource} +Source1: %appid.metainfo.xml +Source2: dev.vencord.Installer.desktop +Source3: dev.vencord.Installer.policy + +BuildRequires: go-rpm-macros +BuildRequires: go-srpm-macros +BuildRequires: anda-srpm-macros +BuildRequires: gcc-c++ +BuildRequires: pkg-config +BuildRequires: libGL-devel +BuildRequires: libXxf86vm-devel +BuildRequires: libXcursor-devel +BuildRequires: libXi-devel +BuildRequires: libXinerama-devel +BuildRequires: libXrandr-devel +BuildRequires: wayland-devel +BuildRequires: libxkbcommon-devel +BuildRequires: wayland-protocols-devel +BuildRequires: extra-cmake-modules +BuildRequires: desktop-file-utils + +%description %{common_description} + +%package cli +Summary: CLI version of %{name} +%description cli %{common_description} (CLI version) + + +%package discord-stable +Summary: Automatic Discord integration for %{name} (stable) +Requires: %{name}-cli +Requires(posttrans): %{name}-cli +%description discord-stable +discord-stable Automatic Discord integration for %{name} (stable branch). + +%package discord-canary +Summary: Automatic Discord integration for %{name} (canary) +Requires: %{name}-cli +Requires(posttrans): %{name}-cli +%description discord-canary +discord-canary Automatic Discord integration for %{name} (canary branch). + +%package discord-ptb +Summary: Automatic Discord integration for %{name} (ptb) +Requires: %{name}-cli +Requires(posttrans): %{name}-cli +%description discord-ptb +Automatic Discord integration for %{name} (ptb branch). + +%if %{with openasar} +%package discord-stable+openasar +Summary: Automatic Discord integration for %{name} (stable, OpenAsar) +Requires: %{name}-cli +Requires(posttrans): %{name}-cli +Conflicts: %{name}-discord-stable +Conflicts: discord-openasar +%description discord-stable+openasar +discord-stable+openasar Automatic Discord integration for %{name} (stable branch, OpenAsar). + +%package discord-canary+openasar +Summary: Automatic Discord integration for %{name} (canary, OpenAsar) +Requires: %{name}-cli +Requires(posttrans): %{name}-cli +Conflicts: %{name}-discord-canary +Conflicts: discord-canary-openasar +%description discord-canary+openasar +discord-canary+openasar Automatic Discord integration for %{name} (canary branch, OpenAsar). + +%package discord-ptb+openasar +Summary: Automatic Discord integration for %{name} (ptb, OpenAsar) +Requires: %{name}-cli +Requires(posttrans): %{name}-cli +Conflicts: %{name}-discord-ptb +Conflicts: discord-ptb-openasar +%description discord-ptb+openasar +Automatic Discord integration for %{name} (ptb branch, OpenAsar). +%endif + +%gopkg + +%prep +%goprep_online -A + + +%build +%define gomodulesmode GO111MODULE=on +export CGO_CPPFLAGS="${CPPFLAGS}" +export CGO_CFLAGS="${CFLAGS}" +export CGO_CXXFLAGS="${CXXFLAGS}" +export CGO_LDFLAGS="${LDFLAGS}" +%gobuild -o %{gobuilddir}/bin/vencord-installer +%gobuild -o %{gobuilddir}/bin/vencord-installer-cli -tags cli + + +%install +%gopkginstall +install -m 0755 -vd %{buildroot}%{_bindir} +install -m 0755 -vp %{gobuilddir}/bin/* %{buildroot}%{_bindir}/ +%terra_appstream -o %{SOURCE1} +%desktop_file_install %{S:2} +install -Dm644 %{SOURCE3} %{buildroot}%{_datadir}/polkit-1/actions/%{appid} + +%files +%license LICENSE +%doc README.md +%{_bindir}/vencord-installer +%{_datadir}/metainfo/%appid.metainfo.xml +%{_datadir}/applications/%{appid}.desktop +%{_datadir}/polkit-1/actions/%{appid} + + +%files cli +%license LICENSE +%doc README.md +%{_bindir}/vencord-installer-cli + +%files discord-stable +%license LICENSE +%doc README.md + +%files discord-canary +%license LICENSE +%doc README.md + +%files discord-ptb +%license LICENSE +%doc README.md + +%if %{with openasar} +%files discord-stable+openasar +%license LICENSE +%doc README.md + +%files discord-canary+openasar +%license LICENSE +%doc README.md + +%files discord-ptb+openasar +%license LICENSE +%doc README.md +%endif + +%gopkgfiles + + +%transfiletriggerin -n %{name}-discord-stable -- /usr/share/discord +%{_bindir}/vencord-installer-cli -install -location /usr/share/discord + +%transfiletriggerin -n %{name}-discord-canary -- /usr/share/discord-canary +%{_bindir}/vencord-installer-cli -install -location /usr/share/discord-canary + +%transfiletriggerin -n %{name}-discord-ptb -- /usr/share/discord-ptb +%{_bindir}/vencord-installer-cli -install -location /usr/share/discord-ptb + +%if %{with openasar} +%transfiletriggerin -n %{name}-discord-stable+openasar -- /usr/share/discord +%{_bindir}/vencord-installer-cli -install -install-openasar -location /usr/share/discord + +%transfiletriggerin -n %{name}-discord-canary+openasar -- /usr/share/discord-canary +%{_bindir}/vencord-installer-cli -install -install-openasar -location /usr/share/discord-canary + +%transfiletriggerin -n %{name}-discord-ptb+openasar -- /usr/share/discord-ptb +%{_bindir}/vencord-installer-cli -install -install-openasar -location /usr/share/discord-ptb +%endif + +%changelog +%autochangelog diff --git a/anda/misc/xdg-terminal-exec-nautilus/anda.hcl b/anda/misc/xdg-terminal-exec-nautilus/anda.hcl new file mode 100644 index 0000000000..f64f7b2a07 --- /dev/null +++ b/anda/misc/xdg-terminal-exec-nautilus/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "xdg-terminal-exec-nautilus.spec" + } +} diff --git a/anda/misc/xdg-terminal-exec-nautilus/update.rhai b/anda/misc/xdg-terminal-exec-nautilus/update.rhai new file mode 100644 index 0000000000..4d1b439e12 --- /dev/null +++ b/anda/misc/xdg-terminal-exec-nautilus/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("zirconium-dev/xdg-terminal-exec-nautilus")); diff --git a/anda/misc/xdg-terminal-exec-nautilus/xdg-terminal-exec-nautilus.spec b/anda/misc/xdg-terminal-exec-nautilus/xdg-terminal-exec-nautilus.spec new file mode 100644 index 0000000000..76509b6d8a --- /dev/null +++ b/anda/misc/xdg-terminal-exec-nautilus/xdg-terminal-exec-nautilus.spec @@ -0,0 +1,32 @@ +Name: xdg-terminal-exec-nautilus +Version: 0.1.0 +Release: 1%?dist +Summary: xdg-terminal-exec extension for nautilus-python +License: Apache-2.0 +Group: System +URL: https://github.com/zirconium-dev/xdg-terminal-exec-nautilus +Source0: %{url}/archive/refs/tags/%{version}.tar.gz + +BuildArch: noarch +Requires: nautilus-python +Packager: Tulip Blossom (tulilirockz@outlook.com) + +%description +%{summary}. + +%prep +%autosetup -n xdg-terminal-exec-nautilus-%{version} + +%build + +%install +install -Dpm0644 -t %{buildroot}%{_datadir}/nautilus-python/extensions/ ./xdg-terminal-exec-nautilus.py + +%files +%license LICENSE +%doc README.md +%{_datadir}/nautilus-python/extensions/xdg-terminal-exec-nautilus.py + +%changelog +* Fri Mar 13 2026 Tulip Blossom +- Initial commit diff --git a/anda/misc/zapret/zapret.spec b/anda/misc/zapret/zapret.spec index 078c0806b4..f1a31169ed 100644 --- a/anda/misc/zapret/zapret.spec +++ b/anda/misc/zapret/zapret.spec @@ -1,6 +1,6 @@ Name: zapret -Version: 72.2 -Release: 1%?dist +Version: 72.12 +Release: 1%{?dist} Summary: A multi-platform Deep Packet Inspection (DPI) bypass tool License: MIT ExcludeArch: s390x diff --git a/anda/multimedia/lcevcdec/LCEVCdec.spec b/anda/multimedia/LCEVCdec/LCEVCdec.spec similarity index 96% rename from anda/multimedia/lcevcdec/LCEVCdec.spec rename to anda/multimedia/LCEVCdec/LCEVCdec.spec index 584d527e49..f0ef271b46 100644 --- a/anda/multimedia/lcevcdec/LCEVCdec.spec +++ b/anda/multimedia/LCEVCdec/LCEVCdec.spec @@ -9,8 +9,8 @@ %bcond docs 0 Name: LCEVCdec -Version: 4.0.2 -Release: 1%?dist +Version: 4.0.3 +Release: 1%{?dist} Summary: MPEG-5 LCEVC Decoder License: BSD-3-Clause-Clear URL: https://docs.v-nova.com/v-nova/lcevc/lcevc-sdk-overview @@ -23,7 +23,7 @@ BuildRequires: cmake(nlohmann_json) BuildRequires: cmake(range-v3) BuildRequires: gcc-c++ BuildRequires: git -BuildRequires: vulkan-loader +BuildRequires: gmock-devel BuildRequires: pkgconfig(libavcodec) BuildRequires: pkgconfig(libavdevice) BuildRequires: pkgconfig(libxxhash) @@ -64,7 +64,7 @@ Summary: Development files for %{name} Provides: %{name}-static = %{version}-%{release} Obsoletes: %{name}-static < %{version}-%{release} Requires: %{name}%{?_isa} = %{version}-%{release} -Requires: plutovg-devel%{?_isa} +Requires: plutovg-devel%{?_isa} %description devel The %{name}-devel package contains libraries and header files for @@ -118,7 +118,6 @@ rm -fr %{buildroot}%{_docdir} %{buildroot}%{_prefix}/licenses python3 src/func_tests/run_tests.py %endif - %files %license LICENSE.md COPYING %doc README.md @@ -129,8 +128,6 @@ python3 src/func_tests/run_tests.py %{_libdir}/liblcevc_dec_pipeline_legacy.so.1 %files devel -%license LICENSE.md COPYING -%doc README.md %{_includedir}/LCEVC %{_libdir}/liblcevc_dec_api.so %{_libdir}/liblcevc_dec_legacy.so diff --git a/anda/multimedia/LCEVCdec/VERSION_ffmpeg.txt b/anda/multimedia/LCEVCdec/VERSION_ffmpeg.txt new file mode 100644 index 0000000000..a8a1887568 --- /dev/null +++ b/anda/multimedia/LCEVCdec/VERSION_ffmpeg.txt @@ -0,0 +1 @@ +7.1.2 diff --git a/anda/multimedia/lcevcdec/anda.hcl b/anda/multimedia/LCEVCdec/anda.hcl similarity index 56% rename from anda/multimedia/lcevcdec/anda.hcl rename to anda/multimedia/LCEVCdec/anda.hcl index fc1d38512a..e97d525175 100644 --- a/anda/multimedia/lcevcdec/anda.hcl +++ b/anda/multimedia/LCEVCdec/anda.hcl @@ -2,8 +2,10 @@ project pkg { arches = ["x86_64", "aarch64", "i386"] rpm { spec = "LCEVCdec.spec" + extra_repos = ["https://repos.fyralabs.com/terrarawhide-multimedia"] } labels { mock = 1 + subrepo = "multimedia" } } diff --git a/anda/multimedia/LCEVCdec/update.rhai b/anda/multimedia/LCEVCdec/update.rhai new file mode 100644 index 0000000000..311126ca0e --- /dev/null +++ b/anda/multimedia/LCEVCdec/update.rhai @@ -0,0 +1,12 @@ +import "andax/bump_extras.rhai" as bump; +import "andax/spec.rhai" as spec; + +rpm.version(find(`\s+VERSION ([\d.]+)`, gh_rawfile("v-novaltd/LCEVCdec", "main", "CMakeLists.txt"), 1)); + +open_file("anda/multimedia/LCEVCdec/VERSION_ffmpeg.txt", "w").write(bump::madoguchi("ffmpeg", labels.branch)); + +let dir = sub(`/[^/]+$`, "", __script_path); +if sh("[[ `git status " + dir + " --porcelain` ]] && exit 1 || exit 0", #{}).ctx.rc == 1 { + let rel = spec::get_release(rpm).parse_int(); + rpm.release(rel + 1); +} diff --git a/anda/multimedia/carla/Carla-nightly.spec b/anda/multimedia/carla/Carla-nightly.spec index 2c59c15181..09707dacc3 100644 --- a/anda/multimedia/carla/Carla-nightly.spec +++ b/anda/multimedia/carla/Carla-nightly.spec @@ -1,12 +1,12 @@ %global pname carla %global ver 2.5.10 -%global commit 1d8dcb5aab5e0c30352e9f928ce3e40cbc86a439 +%global commit 97a9e0740baf6df2df942495c02532a624c44682 %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commit_date 20251010 +%global commit_date 20260320 Name: Carla-nightly Version: %(echo %ver | tr -d 'v')^%commit_date.git~%shortcommit -Release: 1%?dist +Release: 1%{?dist} Summary: Audio plugin host # The entire source code is GPLv2+ except diff --git a/anda/multimedia/deadbeef-mpris2-plugin/deadbeef-mpris2-plugin.spec b/anda/multimedia/deadbeef-mpris2-plugin/deadbeef-mpris2-plugin.spec index d5ae65c335..e0a1609032 100644 --- a/anda/multimedia/deadbeef-mpris2-plugin/deadbeef-mpris2-plugin.spec +++ b/anda/multimedia/deadbeef-mpris2-plugin/deadbeef-mpris2-plugin.spec @@ -30,13 +30,14 @@ will only support version two. %prep %autosetup + +%conf autoreconf -fiv - - -%build %configure \ --disable-silent-rules \ --disable-static + +%build %{make_build} diff --git a/anda/multimedia/deadbeef/deadbeef.spec b/anda/multimedia/deadbeef/deadbeef.spec index 649106268f..17d0aa6642 100644 --- a/anda/multimedia/deadbeef/deadbeef.spec +++ b/anda/multimedia/deadbeef/deadbeef.spec @@ -74,7 +74,7 @@ sed -i "s|size_t|std::size_t|" external/ddb_dsp_libretro/sinc_resampler.h sed -i -re 's/^(.*)\s+([-]msse3)\s+(.*)$/\1 \3/g' external/ddb_dsp_libretro/Makefile.am %endif -# Regenerate the build files +%conf autoreconf -fiv # Remove exec permission from source files @@ -86,7 +86,6 @@ do sed -i "s|$data Shortcut Group|X-$data Shortcut Group|" deadbeef.desktop.in done -%build %configure \ --enable-ffmpeg \ --docdir=%{_defaultdocdir}/%{name}-%{version} \ @@ -102,8 +101,9 @@ done --enable-gtk3 \ --disable-pulse \ --enable-pipewire -%make_build +%build +%make_build %install %make_install @@ -119,7 +119,6 @@ sed -i -e "s!MP3!MP3;!" %{buildroot}%{_datadir}/applications/%{name}.desktop %check desktop-file-validate %{buildroot}%{_datadir}/applications/%{name}.desktop - %files -f %{name}.lang %doc README ChangeLog AUTHORS %license COPYING @@ -131,13 +130,11 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/%{name}.desktop %{_datadir}/pixmaps/%{name}.png %{_iconsdir}/hicolor/*/apps/* - %files plugins %{_libdir}/%{name}/convpresets %{_libdir}/%{name}/*.so %{_libdir}/%{name}/data68 - %changelog * Fri May 30 2025 Leigh Scott - 1.10.0-2 - Rebuild for new flac .so version diff --git a/anda/multimedia/ffmpeg/VERSION_LCEVCdec.txt b/anda/multimedia/ffmpeg/VERSION_LCEVCdec.txt index 1454f6ed4b..c4e41f9459 100644 --- a/anda/multimedia/ffmpeg/VERSION_LCEVCdec.txt +++ b/anda/multimedia/ffmpeg/VERSION_LCEVCdec.txt @@ -1 +1 @@ -4.0.1 +4.0.3 diff --git a/anda/multimedia/ffmpeg/VERSION_libbluray.txt b/anda/multimedia/ffmpeg/VERSION_libbluray.txt new file mode 100644 index 0000000000..88c5fb891d --- /dev/null +++ b/anda/multimedia/ffmpeg/VERSION_libbluray.txt @@ -0,0 +1 @@ +1.4.0 diff --git a/anda/multimedia/ffmpeg/VERSION_libchromaprint.txt b/anda/multimedia/ffmpeg/VERSION_libchromaprint.txt new file mode 100644 index 0000000000..dc1e644a10 --- /dev/null +++ b/anda/multimedia/ffmpeg/VERSION_libchromaprint.txt @@ -0,0 +1 @@ +1.6.0 diff --git a/anda/multimedia/ffmpeg/VERSION_rubberband.txt b/anda/multimedia/ffmpeg/VERSION_rubberband.txt new file mode 100644 index 0000000000..fcdb2e109f --- /dev/null +++ b/anda/multimedia/ffmpeg/VERSION_rubberband.txt @@ -0,0 +1 @@ +4.0.0 diff --git a/anda/multimedia/ffmpeg/VERSION_svt-av1.txt b/anda/multimedia/ffmpeg/VERSION_svt-av1.txt new file mode 100644 index 0000000000..ef538c2810 --- /dev/null +++ b/anda/multimedia/ffmpeg/VERSION_svt-av1.txt @@ -0,0 +1 @@ +3.1.2 diff --git a/anda/multimedia/ffmpeg/VERSION_tesseract.txt b/anda/multimedia/ffmpeg/VERSION_tesseract.txt index a70b636b69..1ee56cf7c6 100644 --- a/anda/multimedia/ffmpeg/VERSION_tesseract.txt +++ b/anda/multimedia/ffmpeg/VERSION_tesseract.txt @@ -1 +1 @@ -0.3.13 \ No newline at end of file +5.2.43 \ No newline at end of file diff --git a/anda/multimedia/ffmpeg/VERSION_x264.txt b/anda/multimedia/ffmpeg/VERSION_x264.txt new file mode 100644 index 0000000000..cd71b913c4 --- /dev/null +++ b/anda/multimedia/ffmpeg/VERSION_x264.txt @@ -0,0 +1 @@ +0.165 diff --git a/anda/multimedia/ffmpeg/VERSION_xevd.txt b/anda/multimedia/ffmpeg/VERSION_xevd.txt new file mode 100644 index 0000000000..8f0916f768 --- /dev/null +++ b/anda/multimedia/ffmpeg/VERSION_xevd.txt @@ -0,0 +1 @@ +0.5.0 diff --git a/anda/multimedia/ffmpeg/VERSION_xeve.txt b/anda/multimedia/ffmpeg/VERSION_xeve.txt new file mode 100644 index 0000000000..4b9fcbec10 --- /dev/null +++ b/anda/multimedia/ffmpeg/VERSION_xeve.txt @@ -0,0 +1 @@ +0.5.1 diff --git a/anda/multimedia/ffmpeg/anda.hcl b/anda/multimedia/ffmpeg/anda.hcl index 44b1659420..002c167e92 100644 --- a/anda/multimedia/ffmpeg/anda.hcl +++ b/anda/multimedia/ffmpeg/anda.hcl @@ -2,11 +2,11 @@ project pkg { arches = ["x86_64", "aarch64", "i386"] rpm { spec = "ffmpeg.spec" - extra_repos = ["https://repos.fyralabs.com/terrarawhide-nvidia"] + extra_repos = ["https://repos.fyralabs.com/terrarawhide-nvidia", "https://repos.fyralabs.com/terrarawhide-multimedia"] } labels { updbranch = 1 mock = 1 - subrepo = "extras" + subrepo = "multimedia" } } diff --git a/anda/multimedia/ffmpeg/ffmpeg-HandBrake.patch b/anda/multimedia/ffmpeg/ffmpeg-HandBrake.patch index 0326da27f5..e34c256b10 100644 --- a/anda/multimedia/ffmpeg/ffmpeg-HandBrake.patch +++ b/anda/multimedia/ffmpeg/ffmpeg-HandBrake.patch @@ -1,7 +1,24 @@ -diff -Naur ffmpeg-7.1.1.old/configure ffmpeg-7.1.1/configure ---- ffmpeg-7.1.1.old/configure 2025-03-24 10:54:39.093543820 +0100 -+++ ffmpeg-7.1.1/configure 2025-03-24 10:54:39.281929795 +0100 -@@ -3338,6 +3338,7 @@ +diff -Naur ffmpeg-7.1.2.old/configure ffmpeg-7.1.2/configure +--- ffmpeg-7.1.2.old/configure 2025-10-27 10:07:02.407490033 +0100 ++++ ffmpeg-7.1.2/configure 2025-10-27 10:07:02.458434476 +0100 +@@ -2466,6 +2466,7 @@ + kCMVideoCodecType_HEVC + kCMVideoCodecType_HEVCWithAlpha + kCMVideoCodecType_VP9 ++ kCMVideoCodecType_AV1 + kCVPixelFormatType_420YpCbCr10BiPlanarVideoRange + kCVPixelFormatType_422YpCbCr8BiPlanarVideoRange + kCVPixelFormatType_422YpCbCr10BiPlanarVideoRange +@@ -3172,6 +3173,8 @@ + av1_vaapi_hwaccel_select="av1_decoder" + av1_vdpau_hwaccel_deps="vdpau VdpPictureInfoAV1" + av1_vdpau_hwaccel_select="av1_decoder" ++av1_videotoolbox_hwaccel_deps="videotoolbox" ++av1_videotoolbox_hwaccel_select="av1_decoder" + av1_vulkan_hwaccel_deps="vulkan" + av1_vulkan_hwaccel_select="av1_decoder" + h263_vaapi_hwaccel_deps="vaapi" +@@ -3342,6 +3345,7 @@ av1_mediacodec_decoder_deps="mediacodec" av1_mediacodec_encoder_deps="mediacodec" av1_mediacodec_encoder_select="extract_extradata_bsf" @@ -9,9 +26,461 @@ diff -Naur ffmpeg-7.1.1.old/configure ffmpeg-7.1.1/configure av1_nvenc_encoder_deps="nvenc NV_ENC_PIC_PARAMS_AV1" av1_nvenc_encoder_select="atsc_a53" av1_qsv_decoder_select="qsvdec" -diff -Naur ffmpeg-7.1.1.old/libavcodec/allcodecs.c ffmpeg-7.1.1/libavcodec/allcodecs.c ---- ffmpeg-7.1.1.old/libavcodec/allcodecs.c 2025-03-24 10:54:39.094862193 +0100 -+++ ffmpeg-7.1.1/libavcodec/allcodecs.c 2025-03-24 10:54:39.282298069 +0100 +@@ -6724,6 +6728,7 @@ + check_func_headers CoreMedia/CMFormatDescription.h kCMVideoCodecType_HEVC "-framework CoreMedia" + check_func_headers CoreMedia/CMFormatDescription.h kCMVideoCodecType_HEVCWithAlpha "-framework CoreMedia" + check_func_headers CoreMedia/CMFormatDescription.h kCMVideoCodecType_VP9 "-framework CoreMedia" ++ check_func_headers CoreMedia/CMFormatDescription.h kCMVideoCodecType_AV1 "-framework CoreMedia" + check_func_headers CoreVideo/CVPixelBuffer.h kCVPixelFormatType_420YpCbCr10BiPlanarVideoRange "-framework CoreVideo" + check_func_headers CoreVideo/CVPixelBuffer.h kCVPixelFormatType_422YpCbCr8BiPlanarVideoRange "-framework CoreVideo" + check_func_headers CoreVideo/CVPixelBuffer.h kCVPixelFormatType_422YpCbCr10BiPlanarVideoRange "-framework CoreVideo" +diff -Naur ffmpeg-7.1.2.old/libavcodec/ac3dec.c ffmpeg-7.1.2/libavcodec/ac3dec.c +--- ffmpeg-7.1.2.old/libavcodec/ac3dec.c 2025-10-27 10:07:00.254471036 +0100 ++++ ffmpeg-7.1.2/libavcodec/ac3dec.c 2025-10-27 10:07:02.463169316 +0100 +@@ -253,72 +253,6 @@ + } + + /** +- * Parse the 'sync info' and 'bit stream info' from the AC-3 bitstream. +- * GetBitContext within AC3DecodeContext must point to +- * the start of the synchronized AC-3 bitstream. +- */ +-static int ac3_parse_header(AC3DecodeContext *s) +-{ +- GetBitContext *gbc = &s->gbc; +- int i; +- +- /* read the rest of the bsi. read twice for dual mono mode. */ +- i = !s->channel_mode; +- do { +- s->dialog_normalization[(!s->channel_mode)-i] = -get_bits(gbc, 5); +- if (s->dialog_normalization[(!s->channel_mode)-i] == 0) { +- s->dialog_normalization[(!s->channel_mode)-i] = -31; +- } +- if (s->target_level != 0) { +- s->level_gain[(!s->channel_mode)-i] = powf(2.0f, +- (float)(s->target_level - +- s->dialog_normalization[(!s->channel_mode)-i])/6.0f); +- } +- if (s->compression_exists[(!s->channel_mode)-i] = get_bits1(gbc)) { +- s->heavy_dynamic_range[(!s->channel_mode)-i] = +- AC3_HEAVY_RANGE(get_bits(gbc, 8)); +- } +- if (get_bits1(gbc)) +- skip_bits(gbc, 8); //skip language code +- if (get_bits1(gbc)) +- skip_bits(gbc, 7); //skip audio production information +- } while (i--); +- +- skip_bits(gbc, 2); //skip copyright bit and original bitstream bit +- +- /* skip the timecodes or parse the Alternate Bit Stream Syntax */ +- if (s->bitstream_id != 6) { +- if (get_bits1(gbc)) +- skip_bits(gbc, 14); //skip timecode1 +- if (get_bits1(gbc)) +- skip_bits(gbc, 14); //skip timecode2 +- } else { +- if (get_bits1(gbc)) { +- s->preferred_downmix = get_bits(gbc, 2); +- s->center_mix_level_ltrt = get_bits(gbc, 3); +- s->surround_mix_level_ltrt = av_clip(get_bits(gbc, 3), 3, 7); +- s->center_mix_level = get_bits(gbc, 3); +- s->surround_mix_level = av_clip(get_bits(gbc, 3), 3, 7); +- } +- if (get_bits1(gbc)) { +- s->dolby_surround_ex_mode = get_bits(gbc, 2); +- s->dolby_headphone_mode = get_bits(gbc, 2); +- skip_bits(gbc, 10); // skip adconvtyp (1), xbsi2 (8), encinfo (1) +- } +- } +- +- /* skip additional bitstream info */ +- if (get_bits1(gbc)) { +- i = get_bits(gbc, 6); +- do { +- skip_bits(gbc, 8); +- } while (i--); +- } +- +- return 0; +-} +- +-/** + * Common function to parse AC-3 or E-AC-3 frame header + */ + static int parse_frame_header(AC3DecodeContext *s) +@@ -375,10 +309,25 @@ + s->dba_syntax = 1; + s->skip_syntax = 1; + memset(s->channel_uses_aht, 0, sizeof(s->channel_uses_aht)); +- return ac3_parse_header(s); ++ /* volume control params */ ++ for (int i = 0; i < (s->channel_mode ? 1 : 2); i++) { ++ s->dialog_normalization[i] = hdr.dialog_normalization[i]; ++ if (s->dialog_normalization[i] == 0) { ++ s->dialog_normalization[i] = -31; ++ } ++ if (s->target_level != 0) { ++ s->level_gain[i] = powf(2.0f, ++ (float)(s->target_level - s->dialog_normalization[i])/6.0f); ++ } ++ s->compression_exists[i] = hdr.compression_exists[i]; ++ if (s->compression_exists[i]) { ++ s->heavy_dynamic_range[i] = AC3_HEAVY_RANGE(hdr.heavy_dynamic_range[i]); ++ } ++ } ++ return 0; + } else if (CONFIG_EAC3_DECODER) { + s->eac3 = 1; +- return ff_eac3_parse_header(s); ++ return ff_eac3_parse_header(s, &hdr); + } else { + av_log(s->avctx, AV_LOG_ERROR, "E-AC-3 support not compiled in\n"); + return AVERROR(ENOSYS); +@@ -1562,6 +1511,9 @@ + av_log(avctx, AV_LOG_ERROR, "invalid frame type\n"); + } + break; ++ case AC3_PARSE_ERROR_CHANNEL_MAP: ++ av_log(avctx, AV_LOG_ERROR, "invalid channel map\n"); ++ return AVERROR_INVALIDDATA; + case AC3_PARSE_ERROR_CRC: + break; + default: // Normal AVERROR do not try to recover. +diff -Naur ffmpeg-7.1.2.old/libavcodec/ac3dec.h ffmpeg-7.1.2/libavcodec/ac3dec.h +--- ffmpeg-7.1.2.old/libavcodec/ac3dec.h 2025-10-27 10:07:00.587473974 +0100 ++++ ffmpeg-7.1.2/libavcodec/ac3dec.h 2025-10-27 10:07:02.463287298 +0100 +@@ -255,11 +255,12 @@ + AVChannelLayout downmix_layout; + } AC3DecodeContext; + ++struct AC3HeaderInfo; + /** + * Parse the E-AC-3 frame header. + * This parses both the bit stream info and audio frame header. + */ +-static int ff_eac3_parse_header(AC3DecodeContext *s); ++static int ff_eac3_parse_header(AC3DecodeContext *s, const struct AC3HeaderInfo *hdr); + + /** + * Decode mantissas in a single channel for the entire frame. +diff -Naur ffmpeg-7.1.2.old/libavcodec/ac3defs.h ffmpeg-7.1.2/libavcodec/ac3defs.h +--- ffmpeg-7.1.2.old/libavcodec/ac3defs.h 2025-10-27 10:07:00.586473965 +0100 ++++ ffmpeg-7.1.2/libavcodec/ac3defs.h 2025-10-27 10:07:02.463340118 +0100 +@@ -34,6 +34,8 @@ + #define AC3_CRITICAL_BANDS 50 + #define AC3_MAX_CPL_BANDS 18 + ++#define EAC3_SR_CODE_REDUCED 3 ++ + /* exponent encoding strategy */ + #define EXP_REUSE 0 + #define EXP_NEW 1 +diff -Naur ffmpeg-7.1.2.old/libavcodec/ac3_parser.c ffmpeg-7.1.2/libavcodec/ac3_parser.c +--- ffmpeg-7.1.2.old/libavcodec/ac3_parser.c 2025-10-27 10:07:00.290471354 +0100 ++++ ffmpeg-7.1.2/libavcodec/ac3_parser.c 2025-10-27 10:07:02.462962336 +0100 +@@ -73,6 +73,217 @@ + return i; + } + ++/** ++ * Parse the 'sync info' and 'bit stream info' from the AC-3 bitstream. ++ * GetBitContext within AC3DecodeContext must point to ++ * the start of the synchronized AC-3 bitstream. ++ */ ++static int ac3_parse_header(GetBitContext *gbc, AC3HeaderInfo *hdr) ++{ ++ /* read the rest of the bsi. read twice for dual mono mode. */ ++ for (int i = 0; i < (hdr->channel_mode ? 1 : 2); i++) { ++ hdr->dialog_normalization[i] = -get_bits(gbc, 5); ++ hdr->compression_exists[i] = get_bits1(gbc); ++ if (hdr->compression_exists[i]) ++ hdr->heavy_dynamic_range[i] = get_bits(gbc, 8); ++ if (get_bits1(gbc)) ++ skip_bits(gbc, 8); //skip language code ++ if (get_bits1(gbc)) ++ skip_bits(gbc, 7); //skip audio production information ++ } ++ ++ skip_bits(gbc, 2); //skip copyright bit and original bitstream bit ++ ++ /* skip the timecodes or parse the Alternate Bit Stream Syntax */ ++ if (hdr->bitstream_id != 6) { ++ if (get_bits1(gbc)) ++ skip_bits(gbc, 14); //skip timecode1 ++ if (get_bits1(gbc)) ++ skip_bits(gbc, 14); //skip timecode2 ++ } else { ++ if (get_bits1(gbc)) { ++ hdr->preferred_downmix = get_bits(gbc, 2); ++ hdr->center_mix_level_ltrt = get_bits(gbc, 3); ++ hdr->surround_mix_level_ltrt = av_clip(get_bits(gbc, 3), 3, 7); ++ hdr->center_mix_level = get_bits(gbc, 3); ++ hdr->surround_mix_level = av_clip(get_bits(gbc, 3), 3, 7); ++ } ++ if (get_bits1(gbc)) { ++ hdr->dolby_surround_ex_mode = get_bits(gbc, 2); ++ hdr->dolby_headphone_mode = get_bits(gbc, 2); ++ skip_bits(gbc, 10); // skip adconvtyp (1), xbsi2 (8), encinfo (1) ++ } ++ } ++ ++ /* skip additional bitstream info */ ++ if (get_bits1(gbc)) { ++ int i = get_bits(gbc, 6); ++ do { ++ skip_bits(gbc, 8); ++ } while (i--); ++ } ++ ++ return 0; ++} ++ ++static int eac3_parse_header(GetBitContext *gbc, AC3HeaderInfo *hdr) ++{ ++ if (hdr->frame_type == EAC3_FRAME_TYPE_RESERVED) ++ return AC3_PARSE_ERROR_FRAME_TYPE; ++ if (hdr->substreamid) ++ return AC3_PARSE_ERROR_FRAME_TYPE; ++ ++ skip_bits(gbc, 5); // skip bitstream id ++ ++ /* volume control params */ ++ for (int i = 0; i < (hdr->channel_mode ? 1 : 2); i++) { ++ hdr->dialog_normalization[i] = -get_bits(gbc, 5); ++ hdr->compression_exists[i] = get_bits1(gbc); ++ if (hdr->compression_exists[i]) ++ hdr->heavy_dynamic_range[i] = get_bits(gbc, 8); ++ } ++ ++ /* dependent stream channel map */ ++ if (hdr->frame_type == EAC3_FRAME_TYPE_DEPENDENT) { ++ hdr->channel_map_present = get_bits1(gbc); ++ if (hdr->channel_map_present) { ++ int64_t channel_layout = 0; ++ int channel_map = get_bits(gbc, 16); ++ ++ for (int i = 0; i < 16; i++) ++ if (channel_map & (1 << (EAC3_MAX_CHANNELS - i - 1))) ++ channel_layout |= ff_eac3_custom_channel_map_locations[i][1]; ++ ++ if (av_popcount64(channel_layout) > EAC3_MAX_CHANNELS) { ++ return AC3_PARSE_ERROR_CHANNEL_MAP; ++ } ++ hdr->channel_map = channel_map; ++ } ++ } ++ ++ /* mixing metadata */ ++ if (get_bits1(gbc)) { ++ /* center and surround mix levels */ ++ if (hdr->channel_mode > AC3_CHMODE_STEREO) { ++ hdr->preferred_downmix = get_bits(gbc, 2); ++ if (hdr->channel_mode & 1) { ++ /* if three front channels exist */ ++ hdr->center_mix_level_ltrt = get_bits(gbc, 3); ++ hdr->center_mix_level = get_bits(gbc, 3); ++ } ++ if (hdr->channel_mode & 4) { ++ /* if a surround channel exists */ ++ hdr->surround_mix_level_ltrt = av_clip(get_bits(gbc, 3), 3, 7); ++ hdr->surround_mix_level = av_clip(get_bits(gbc, 3), 3, 7); ++ } ++ } ++ ++ /* lfe mix level */ ++ if (hdr->lfe_on && (hdr->lfe_mix_level_exists = get_bits1(gbc))) { ++ hdr->lfe_mix_level = get_bits(gbc, 5); ++ } ++ ++ /* info for mixing with other streams and substreams */ ++ if (hdr->frame_type == EAC3_FRAME_TYPE_INDEPENDENT) { ++ for (int i = 0; i < (hdr->channel_mode ? 1 : 2); i++) { ++ // TODO: apply program scale factor ++ if (get_bits1(gbc)) { ++ skip_bits(gbc, 6); // skip program scale factor ++ } ++ } ++ if (get_bits1(gbc)) { ++ skip_bits(gbc, 6); // skip external program scale factor ++ } ++ /* skip mixing parameter data */ ++ switch(get_bits(gbc, 2)) { ++ case 1: skip_bits(gbc, 5); break; ++ case 2: skip_bits(gbc, 12); break; ++ case 3: { ++ int mix_data_size = (get_bits(gbc, 5) + 2) << 3; ++ skip_bits_long(gbc, mix_data_size); ++ break; ++ } ++ } ++ /* skip pan information for mono or dual mono source */ ++ if (hdr->channel_mode < AC3_CHMODE_STEREO) { ++ for (int i = 0; i < (hdr->channel_mode ? 1 : 2); i++) { ++ if (get_bits1(gbc)) { ++ /* note: this is not in the ATSC A/52B specification ++ reference: ETSI TS 102 366 V1.1.1 ++ section: E.1.3.1.25 */ ++ skip_bits(gbc, 8); // skip pan mean direction index ++ skip_bits(gbc, 6); // skip reserved paninfo bits ++ } ++ } ++ } ++ /* skip mixing configuration information */ ++ if (get_bits1(gbc)) { ++ for (int i = 0; i < hdr->num_blocks; i++) { ++ if (hdr->num_blocks == 1 || get_bits1(gbc)) { ++ skip_bits(gbc, 5); ++ } ++ } ++ } ++ } ++ } ++ ++ /* informational metadata */ ++ if (get_bits1(gbc)) { ++ hdr->bitstream_mode = get_bits(gbc, 3); ++ skip_bits(gbc, 2); // skip copyright bit and original bitstream bit ++ if (hdr->channel_mode == AC3_CHMODE_STEREO) { ++ hdr->dolby_surround_mode = get_bits(gbc, 2); ++ hdr->dolby_headphone_mode = get_bits(gbc, 2); ++ } ++ if (hdr->channel_mode >= AC3_CHMODE_2F2R) { ++ hdr->dolby_surround_ex_mode = get_bits(gbc, 2); ++ } ++ for (int i = 0; i < (hdr->channel_mode ? 1 : 2); i++) { ++ if (get_bits1(gbc)) { ++ skip_bits(gbc, 8); // skip mix level, room type, and A/D converter type ++ } ++ } ++ if (hdr->sr_code != EAC3_SR_CODE_REDUCED) { ++ skip_bits1(gbc); // skip source sample rate code ++ } ++ } ++ ++ /* converter synchronization flag ++ If frames are less than six blocks, this bit should be turned on ++ once every 6 blocks to indicate the start of a frame set. ++ reference: RFC 4598, Section 2.1.3 Frame Sets */ ++ if (hdr->frame_type == EAC3_FRAME_TYPE_INDEPENDENT && hdr->num_blocks != 6) { ++ skip_bits1(gbc); // skip converter synchronization flag ++ } ++ ++ /* original frame size code if this stream was converted from AC-3 */ ++ if (hdr->frame_type == EAC3_FRAME_TYPE_AC3_CONVERT && ++ (hdr->num_blocks == 6 || get_bits1(gbc))) { ++ skip_bits(gbc, 6); // skip frame size code ++ } ++ ++ /* additional bitstream info */ ++ if (get_bits1(gbc)) { ++ int addbsil = get_bits(gbc, 6); ++ for (int i = 0; i < addbsil + 1; i++) { ++ if (i == 0) { ++ /* In this 8 bit chunk, the LSB is equal to flag_ec3_extension_type_a ++ which can be used to detect Atmos presence */ ++ skip_bits(gbc, 7); ++ hdr->eac3_extension_type_a = get_bits1(gbc); ++ if (hdr->eac3_extension_type_a) { ++ hdr->complexity_index_type_a = get_bits(gbc, 8); ++ i++; ++ } ++ } else { ++ skip_bits(gbc, 8); // skip additional bit stream info ++ } ++ } ++ } ++ ++ return 0; ++} ++ + int ff_ac3_parse_header(GetBitContext *gbc, AC3HeaderInfo *hdr) + { + int frame_size_code; +@@ -133,6 +344,10 @@ + hdr->frame_size = ff_ac3_frame_size_tab[frame_size_code][hdr->sr_code] * 2; + hdr->frame_type = EAC3_FRAME_TYPE_AC3_CONVERT; //EAC3_FRAME_TYPE_INDEPENDENT; + hdr->substreamid = 0; ++ ++ int ret = ac3_parse_header(gbc, hdr); ++ if (ret < 0) ++ return ret; + } else { + /* Enhanced AC-3 */ + hdr->crc1 = 0; +@@ -165,6 +380,10 @@ + hdr->bit_rate = 8LL * hdr->frame_size * hdr->sample_rate / + (hdr->num_blocks * 256); + hdr->channels = ff_ac3_channels_tab[hdr->channel_mode] + hdr->lfe_on; ++ ++ int ret = eac3_parse_header(gbc, hdr); ++ if (ret < 0) ++ return ret; + } + hdr->channel_layout = ff_ac3_channel_layout_tab[hdr->channel_mode]; + if (hdr->lfe_on) +@@ -202,9 +421,13 @@ + { + GetBitContext gb; + AC3HeaderInfo hdr; ++ uint8_t tmp[32 + AV_INPUT_BUFFER_PADDING_SIZE]; + int err; + +- err = init_get_bits8(&gb, buf, size); ++ size = FFMIN(32, size); ++ memcpy(tmp, buf, size); ++ memset(tmp + size, 0, AV_INPUT_BUFFER_PADDING_SIZE); ++ err = init_get_bits8(&gb, tmp, size); + if (err < 0) + return AVERROR_INVALIDDATA; + err = ff_ac3_parse_header(&gb, &hdr); +diff -Naur ffmpeg-7.1.2.old/libavcodec/ac3_parser_internal.h ffmpeg-7.1.2/libavcodec/ac3_parser_internal.h +--- ffmpeg-7.1.2.old/libavcodec/ac3_parser_internal.h 2025-10-27 10:07:00.519473374 +0100 ++++ ffmpeg-7.1.2/libavcodec/ac3_parser_internal.h 2025-10-27 10:07:02.463059088 +0100 +@@ -46,6 +46,7 @@ + int substreamid; ///< substream identification + int center_mix_level; ///< Center mix level index + int surround_mix_level; ///< Surround mix level index ++ uint8_t channel_map_present; + uint16_t channel_map; + int num_blocks; ///< number of audio blocks + int dolby_surround_mode; +@@ -62,6 +63,23 @@ + uint64_t channel_layout; + int8_t ac3_bit_rate_code; + /** @} */ ++ ++ /** @name enhanced eac3 extension coded elements ++ * @{ ++ */ ++ int8_t dialog_normalization[2]; ++ uint8_t compression_exists[2]; ++ uint8_t heavy_dynamic_range[2]; ++ uint8_t center_mix_level_ltrt; ///< Center mix level index ++ uint8_t surround_mix_level_ltrt; ///< Surround mix level index ++ uint8_t dolby_headphone_mode; ++ uint8_t dolby_surround_ex_mode; ++ uint8_t lfe_mix_level_exists; ++ uint8_t lfe_mix_level; ++ uint8_t preferred_downmix; ++ uint8_t eac3_extension_type_a; ++ uint8_t complexity_index_type_a; ++ /** @} */ + } AC3HeaderInfo; + + typedef enum { +@@ -71,6 +89,7 @@ + AC3_PARSE_ERROR_FRAME_SIZE = -0x4030c0a, + AC3_PARSE_ERROR_FRAME_TYPE = -0x5030c0a, + AC3_PARSE_ERROR_CRC = -0x6030c0a, ++ AC3_PARSE_ERROR_CHANNEL_MAP = -0x7030c0a, + } AC3ParseError; + + /** +diff -Naur ffmpeg-7.1.2.old/libavcodec/allcodecs.c ffmpeg-7.1.2/libavcodec/allcodecs.c +--- ffmpeg-7.1.2.old/libavcodec/allcodecs.c 2025-10-27 10:07:01.864539025 +0100 ++++ ffmpeg-7.1.2/libavcodec/allcodecs.c 2025-10-27 10:07:02.458796899 +0100 @@ -839,6 +839,7 @@ extern const FFCodec ff_av1_qsv_decoder; extern const FFCodec ff_av1_qsv_encoder; @@ -20,9 +489,9 @@ diff -Naur ffmpeg-7.1.1.old/libavcodec/allcodecs.c ffmpeg-7.1.1/libavcodec/allco extern const FFCodec ff_av1_vaapi_encoder; extern const FFCodec ff_libopenh264_encoder; extern const FFCodec ff_libopenh264_decoder; -diff -Naur ffmpeg-7.1.1.old/libavcodec/amfenc_av1.c ffmpeg-7.1.1/libavcodec/amfenc_av1.c ---- ffmpeg-7.1.1.old/libavcodec/amfenc_av1.c 2025-03-24 10:54:38.133756381 +0100 -+++ ffmpeg-7.1.1/libavcodec/amfenc_av1.c 2025-03-24 10:54:39.277830845 +0100 +diff -Naur ffmpeg-7.1.2.old/libavcodec/amfenc_av1.c ffmpeg-7.1.2/libavcodec/amfenc_av1.c +--- ffmpeg-7.1.2.old/libavcodec/amfenc_av1.c 2025-10-27 10:07:00.536473524 +0100 ++++ ffmpeg-7.1.2/libavcodec/amfenc_av1.c 2025-10-27 10:07:02.440481173 +0100 @@ -116,6 +116,7 @@ { "none", "no adaptive quantization", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_VIDEO_ENCODER_AV1_AQ_MODE_NONE }, 0, 0, VE, .unit = "adaptive_quantisation_mode" }, { "caq", "context adaptive quantization", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_VIDEO_ENCODER_AV1_AQ_MODE_CAQ }, 0, 0, VE, .unit = "adaptive_quantisation_mode" }, @@ -69,9 +538,9 @@ diff -Naur ffmpeg-7.1.1.old/libavcodec/amfenc_av1.c ffmpeg-7.1.1/libavcodec/amfe profile_level = avctx->level; if (profile_level == AV_LEVEL_UNKNOWN) { -diff -Naur ffmpeg-7.1.1.old/libavcodec/amfenc.c ffmpeg-7.1.1/libavcodec/amfenc.c ---- ffmpeg-7.1.1.old/libavcodec/amfenc.c 2025-03-24 10:54:38.032755166 +0100 -+++ ffmpeg-7.1.1/libavcodec/amfenc.c 2025-03-24 10:54:39.279550845 +0100 +diff -Naur ffmpeg-7.1.2.old/libavcodec/amfenc.c ffmpeg-7.1.2/libavcodec/amfenc.c +--- ffmpeg-7.1.2.old/libavcodec/amfenc.c 2025-10-27 10:07:00.387472209 +0100 ++++ ffmpeg-7.1.2/libavcodec/amfenc.c 2025-10-27 10:07:02.445244447 +0100 @@ -415,10 +415,6 @@ else pix_fmt = avctx->pix_fmt; @@ -251,9 +720,9 @@ diff -Naur ffmpeg-7.1.1.old/libavcodec/amfenc.c ffmpeg-7.1.1/libavcodec/amfenc.c int ff_amf_get_color_profile(AVCodecContext *avctx) { amf_int64 color_profile = AMF_VIDEO_CONVERTER_COLOR_PROFILE_UNKNOWN; -diff -Naur ffmpeg-7.1.1.old/libavcodec/amfenc.h ffmpeg-7.1.1/libavcodec/amfenc.h ---- ffmpeg-7.1.1.old/libavcodec/amfenc.h 2025-03-24 10:54:37.990754660 +0100 -+++ ffmpeg-7.1.1/libavcodec/amfenc.h 2025-03-24 10:54:39.277763348 +0100 +diff -Naur ffmpeg-7.1.2.old/libavcodec/amfenc.h ffmpeg-7.1.2/libavcodec/amfenc.h +--- ffmpeg-7.1.2.old/libavcodec/amfenc.h 2025-10-27 10:07:00.322471636 +0100 ++++ ffmpeg-7.1.2/libavcodec/amfenc.h 2025-10-27 10:07:02.440421671 +0100 @@ -114,6 +114,7 @@ int max_b_frames; int qvbr_quality_level; @@ -271,9 +740,9 @@ diff -Naur ffmpeg-7.1.1.old/libavcodec/amfenc.h ffmpeg-7.1.1/libavcodec/amfenc.h int ff_amf_get_color_profile(AVCodecContext *avctx); /** -diff -Naur ffmpeg-7.1.1.old/libavcodec/amfenc_h264.c ffmpeg-7.1.1/libavcodec/amfenc_h264.c ---- ffmpeg-7.1.1.old/libavcodec/amfenc_h264.c 2025-03-24 10:54:38.175756886 +0100 -+++ ffmpeg-7.1.1/libavcodec/amfenc_h264.c 2025-03-24 10:54:39.277925894 +0100 +diff -Naur ffmpeg-7.1.2.old/libavcodec/amfenc_h264.c ffmpeg-7.1.2/libavcodec/amfenc_h264.c +--- ffmpeg-7.1.2.old/libavcodec/amfenc_h264.c 2025-10-27 10:07:00.604474124 +0100 ++++ ffmpeg-7.1.2/libavcodec/amfenc_h264.c 2025-10-27 10:07:02.440571423 +0100 @@ -133,6 +133,7 @@ { "me_half_pel", "Enable ME Half Pixel", OFFSET(me_half_pel), AV_OPT_TYPE_BOOL, { .i64 = -1 }, -1, 1, VE }, { "me_quarter_pel", "Enable ME Quarter Pixel", OFFSET(me_quarter_pel),AV_OPT_TYPE_BOOL, { .i64 = -1 }, -1, 1, VE }, @@ -314,9 +783,9 @@ diff -Naur ffmpeg-7.1.1.old/libavcodec/amfenc_h264.c ffmpeg-7.1.1/libavcodec/amf // autodetect rate control method if (ctx->rate_control_mode == AMF_VIDEO_ENCODER_RATE_CONTROL_METHOD_UNKNOWN) { -diff -Naur ffmpeg-7.1.1.old/libavcodec/amfenc_hevc.c ffmpeg-7.1.1/libavcodec/amfenc_hevc.c ---- ffmpeg-7.1.1.old/libavcodec/amfenc_hevc.c 2025-03-24 10:54:37.991754672 +0100 -+++ ffmpeg-7.1.1/libavcodec/amfenc_hevc.c 2025-03-24 10:54:39.278019962 +0100 +diff -Naur ffmpeg-7.1.2.old/libavcodec/amfenc_hevc.c ffmpeg-7.1.2/libavcodec/amfenc_hevc.c +--- ffmpeg-7.1.2.old/libavcodec/amfenc_hevc.c 2025-10-27 10:07:00.324471654 +0100 ++++ ffmpeg-7.1.2/libavcodec/amfenc_hevc.c 2025-10-27 10:07:02.440657756 +0100 @@ -100,6 +100,7 @@ { "me_half_pel", "Enable ME Half Pixel", OFFSET(me_half_pel), AV_OPT_TYPE_BOOL,{ .i64 = -1 }, -1, 1, VE }, { "me_quarter_pel", "Enable ME Quarter Pixel ", OFFSET(me_quarter_pel),AV_OPT_TYPE_BOOL,{ .i64 = -1 }, -1, 1, VE }, @@ -362,10 +831,38 @@ diff -Naur ffmpeg-7.1.1.old/libavcodec/amfenc_hevc.c ffmpeg-7.1.1/libavcodec/amf // Picture control properties AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_HEVC_NUM_GOPS_PER_IDR, ctx->gops_per_idr); -diff -Naur ffmpeg-7.1.1.old/libavcodec/av1dec.c ffmpeg-7.1.1/libavcodec/av1dec.c ---- ffmpeg-7.1.1.old/libavcodec/av1dec.c 2025-03-24 10:54:38.093755899 +0100 -+++ ffmpeg-7.1.1/libavcodec/av1dec.c 2025-03-24 10:54:39.273932914 +0100 -@@ -1002,6 +1002,8 @@ +diff -Naur ffmpeg-7.1.2.old/libavcodec/av1dec.c ffmpeg-7.1.2/libavcodec/av1dec.c +--- ffmpeg-7.1.2.old/libavcodec/av1dec.c 2025-10-27 10:07:00.478473013 +0100 ++++ ffmpeg-7.1.2/libavcodec/av1dec.c 2025-10-27 10:07:02.454638605 +0100 +@@ -541,6 +541,7 @@ + CONFIG_AV1_NVDEC_HWACCEL + \ + CONFIG_AV1_VAAPI_HWACCEL + \ + CONFIG_AV1_VDPAU_HWACCEL + \ ++ CONFIG_AV1_VIDEOTOOLBOX_HWACCEL + \ + CONFIG_AV1_VULKAN_HWACCEL) + enum AVPixelFormat pix_fmts[HWACCEL_MAX + 2], *fmtp = pix_fmts; + +@@ -568,6 +569,9 @@ + #if CONFIG_AV1_VDPAU_HWACCEL + *fmtp++ = AV_PIX_FMT_VDPAU; + #endif ++#if CONFIG_AV1_VIDEOTOOLBOX_HWACCEL ++ *fmtp++ = AV_PIX_FMT_VIDEOTOOLBOX; ++#endif + #if CONFIG_AV1_VULKAN_HWACCEL + *fmtp++ = AV_PIX_FMT_VULKAN; + #endif +@@ -592,6 +596,9 @@ + #if CONFIG_AV1_VDPAU_HWACCEL + *fmtp++ = AV_PIX_FMT_VDPAU; + #endif ++#if CONFIG_AV1_VIDEOTOOLBOX_HWACCEL ++ *fmtp++ = AV_PIX_FMT_VIDEOTOOLBOX; ++#endif + #if CONFIG_AV1_VULKAN_HWACCEL + *fmtp++ = AV_PIX_FMT_VULKAN; + #endif +@@ -1002,6 +1009,8 @@ break; } case ITU_T_T35_PROVIDER_CODE_DOLBY: { @@ -374,7 +871,7 @@ diff -Naur ffmpeg-7.1.1.old/libavcodec/av1dec.c ffmpeg-7.1.1/libavcodec/av1dec.c int provider_oriented_code = bytestream2_get_be32(&gb); if (itut_t35->itu_t_t35_country_code != ITU_T_T35_COUNTRY_CODE_US || provider_oriented_code != 0x800) -@@ -1014,6 +1016,18 @@ +@@ -1014,6 +1023,18 @@ break; // ignore } @@ -393,9 +890,79 @@ diff -Naur ffmpeg-7.1.1.old/libavcodec/av1dec.c ffmpeg-7.1.1/libavcodec/av1dec.c ret = ff_dovi_attach_side_data(&s->dovi, frame); if (ret < 0) return ret; -diff -Naur ffmpeg-7.1.1.old/libavcodec/bsf/hevc_mp4toannexb.c ffmpeg-7.1.1/libavcodec/bsf/hevc_mp4toannexb.c ---- ffmpeg-7.1.1.old/libavcodec/bsf/hevc_mp4toannexb.c 2025-03-24 10:54:38.075755683 +0100 -+++ ffmpeg-7.1.1/libavcodec/bsf/hevc_mp4toannexb.c 2025-03-24 10:54:39.273106358 +0100 +@@ -1439,6 +1460,10 @@ + + if (raw_tile_group && (s->tile_num == raw_tile_group->tg_end + 1)) { + int show_frame = s->raw_frame_header->show_frame; ++ // Set nb_unit to point at the next OBU, to indicate which ++ // OBUs have been processed for this current frame. (If this ++ // frame gets output, we set nb_unit to this value later too.) ++ s->nb_unit = i + 1; + if (avctx->hwaccel && s->cur_frame.f) { + ret = FF_HW_SIMPLE_CALL(avctx, end_frame); + if (ret < 0) { +@@ -1449,6 +1474,8 @@ + + update_reference_list(avctx); + ++ // Set start_unit to indicate the first OBU of the next frame. ++ s->start_unit = s->nb_unit; + raw_tile_group = NULL; + s->raw_frame_header = NULL; + +@@ -1478,7 +1505,7 @@ + s->raw_frame_header = NULL; + av_packet_unref(s->pkt); + ff_cbs_fragment_reset(&s->current_obu); +- s->nb_unit = 0; ++ s->nb_unit = s->start_unit = 0; + } + if (!ret && !frame->buf[0]) + ret = AVERROR(EAGAIN); +@@ -1505,7 +1532,7 @@ + return ret; + } + +- s->nb_unit = 0; ++ s->nb_unit = s->start_unit = 0; + av_log(avctx, AV_LOG_DEBUG, "Total OBUs on this packet: %d.\n", + s->current_obu.nb_units); + } +@@ -1526,7 +1553,7 @@ + + av1_frame_unref(&s->cur_frame); + s->operating_point_idc = 0; +- s->nb_unit = 0; ++ s->nb_unit = s->start_unit = 0; + s->raw_frame_header = NULL; + s->raw_seq = NULL; + s->cll = NULL; +@@ -1594,6 +1621,9 @@ + #if CONFIG_AV1_VDPAU_HWACCEL + HWACCEL_VDPAU(av1), + #endif ++#if CONFIG_AV1_VIDEOTOOLBOX_HWACCEL ++ HWACCEL_VIDEOTOOLBOX(av1), ++#endif + #if CONFIG_AV1_VULKAN_HWACCEL + HWACCEL_VULKAN(av1), + #endif +diff -Naur ffmpeg-7.1.2.old/libavcodec/av1dec.h ffmpeg-7.1.2/libavcodec/av1dec.h +--- ffmpeg-7.1.2.old/libavcodec/av1dec.h 2025-10-27 10:07:00.402472342 +0100 ++++ ffmpeg-7.1.2/libavcodec/av1dec.h 2025-10-27 10:07:02.454762738 +0100 +@@ -114,7 +114,8 @@ + AV1Frame ref[AV1_NUM_REF_FRAMES]; + AV1Frame cur_frame; + +- int nb_unit; ++ int nb_unit; ///< The index of the next OBU to be processed. ++ int start_unit; ///< The index of the first OBU of the current frame. + + // AVOptions + int operating_point; +diff -Naur ffmpeg-7.1.2.old/libavcodec/bsf/hevc_mp4toannexb.c ffmpeg-7.1.2/libavcodec/bsf/hevc_mp4toannexb.c +--- ffmpeg-7.1.2.old/libavcodec/bsf/hevc_mp4toannexb.c 2025-10-27 10:07:00.449472757 +0100 ++++ ffmpeg-7.1.2/libavcodec/bsf/hevc_mp4toannexb.c 2025-10-27 10:07:02.435022530 +0100 @@ -125,6 +125,7 @@ AVPacket *in; GetByteContext gb; @@ -420,9 +987,9 @@ diff -Naur ffmpeg-7.1.1.old/libavcodec/bsf/hevc_mp4toannexb.c ffmpeg-7.1.1/libav extra_size = add_extradata * ctx->par_out->extradata_size; got_irap |= is_irap; -diff -Naur ffmpeg-7.1.1.old/libavcodec/ccaption_dec.c ffmpeg-7.1.1/libavcodec/ccaption_dec.c ---- ffmpeg-7.1.1.old/libavcodec/ccaption_dec.c 2025-03-24 10:54:38.169756814 +0100 -+++ ffmpeg-7.1.1/libavcodec/ccaption_dec.c 2025-03-24 10:54:39.268544045 +0100 +diff -Naur ffmpeg-7.1.2.old/libavcodec/ccaption_dec.c ffmpeg-7.1.2/libavcodec/ccaption_dec.c +--- ffmpeg-7.1.2.old/libavcodec/ccaption_dec.c 2025-10-27 10:07:00.593474027 +0100 ++++ ffmpeg-7.1.2/libavcodec/ccaption_dec.c 2025-10-27 10:07:02.429490227 +0100 @@ -889,12 +889,13 @@ if (ctx->buffer[bidx].str[0] || ctx->real_time) { @@ -441,9 +1008,9 @@ diff -Naur ffmpeg-7.1.1.old/libavcodec/ccaption_dec.c ffmpeg-7.1.1/libavcodec/cc else sub->end_display_time = -1; ret = ff_ass_add_rect2(sub, ctx->buffer[bidx].str, ctx->readorder++, 0, NULL, NULL, &nb_rect_allocated); -diff -Naur ffmpeg-7.1.1.old/libavcodec/dvdsubdec.c ffmpeg-7.1.1/libavcodec/dvdsubdec.c ---- ffmpeg-7.1.1.old/libavcodec/dvdsubdec.c 2025-03-24 10:54:37.975754480 +0100 -+++ ffmpeg-7.1.1/libavcodec/dvdsubdec.c 2025-03-24 10:54:39.267391144 +0100 +diff -Naur ffmpeg-7.1.2.old/libavcodec/dvdsubdec.c ffmpeg-7.1.2/libavcodec/dvdsubdec.c +--- ffmpeg-7.1.2.old/libavcodec/dvdsubdec.c 2025-10-27 10:07:00.303471468 +0100 ++++ ffmpeg-7.1.2/libavcodec/dvdsubdec.c 2025-10-27 10:07:02.428490218 +0100 @@ -45,6 +45,8 @@ int buf_size; int forced_subs_only; @@ -559,9 +1126,217 @@ diff -Naur ffmpeg-7.1.1.old/libavcodec/dvdsubdec.c ffmpeg-7.1.1/libavcodec/dvdsu { NULL } }; static const AVClass dvdsub_class = { -diff -Naur ffmpeg-7.1.1.old/libavcodec/libdav1d.c ffmpeg-7.1.1/libavcodec/libdav1d.c ---- ffmpeg-7.1.1.old/libavcodec/libdav1d.c 2025-03-24 10:54:38.090755863 +0100 -+++ ffmpeg-7.1.1/libavcodec/libdav1d.c 2025-03-24 10:54:39.274085311 +0100 +diff -Naur ffmpeg-7.1.2.old/libavcodec/eac3dec.c ffmpeg-7.1.2/libavcodec/eac3dec.c +--- ffmpeg-7.1.2.old/libavcodec/eac3dec.c 2025-10-27 10:07:00.490473118 +0100 ++++ ffmpeg-7.1.2/libavcodec/eac3dec.c 2025-10-27 10:07:02.463392296 +0100 +@@ -53,8 +53,6 @@ + EAC3_GAQ_124 + } EAC3GaqMode; + +-#define EAC3_SR_CODE_REDUCED 3 +- + static void ff_eac3_apply_spectral_extension(AC3DecodeContext *s) + { + int bin, bnd, ch, i; +@@ -287,7 +285,7 @@ + } + } + +-static int ff_eac3_parse_header(AC3DecodeContext *s) ++static int ff_eac3_parse_header(AC3DecodeContext *s, const AC3HeaderInfo *hdr) + { + int i, blk, ch; + int ac3_exponent_strategy, parse_aht_info, parse_spx_atten_data; +@@ -323,11 +321,10 @@ + avpriv_request_sample(s->avctx, "Reduced sampling rate"); + return AVERROR_PATCHWELCOME; + } +- skip_bits(gbc, 5); // skip bitstream id + + /* volume control params */ + for (i = 0; i < (s->channel_mode ? 1 : 2); i++) { +- s->dialog_normalization[i] = -get_bits(gbc, 5); ++ s->dialog_normalization[i] = hdr->dialog_normalization[i]; + if (s->dialog_normalization[i] == 0) { + s->dialog_normalization[i] = -31; + } +@@ -335,147 +332,30 @@ + s->level_gain[i] = powf(2.0f, + (float)(s->target_level - s->dialog_normalization[i])/6.0f); + } +- s->compression_exists[i] = get_bits1(gbc); +- if (s->compression_exists[i]) { +- s->heavy_dynamic_range[i] = AC3_HEAVY_RANGE(get_bits(gbc, 8)); ++ if (hdr->compression_exists[i]) { ++ s->heavy_dynamic_range[i] = AC3_HEAVY_RANGE(hdr->heavy_dynamic_range[i]); + } + } + +- /* dependent stream channel map */ +- if (s->frame_type == EAC3_FRAME_TYPE_DEPENDENT) { +- if (get_bits1(gbc)) { +- int64_t channel_layout = 0; +- int channel_map = get_bits(gbc, 16); +- av_log(s->avctx, AV_LOG_DEBUG, "channel_map: %0X\n", channel_map); +- +- for (i = 0; i < 16; i++) +- if (channel_map & (1 << (EAC3_MAX_CHANNELS - i - 1))) +- channel_layout |= ff_eac3_custom_channel_map_locations[i][1]; +- +- if (av_popcount64(channel_layout) > EAC3_MAX_CHANNELS) { +- return AVERROR_INVALIDDATA; +- } +- s->channel_map = channel_map; +- } +- } ++ s->channel_map = hdr->channel_map; + + /* mixing metadata */ +- if (get_bits1(gbc)) { +- /* center and surround mix levels */ +- if (s->channel_mode > AC3_CHMODE_STEREO) { +- s->preferred_downmix = get_bits(gbc, 2); +- if (s->channel_mode & 1) { +- /* if three front channels exist */ +- s->center_mix_level_ltrt = get_bits(gbc, 3); +- s->center_mix_level = get_bits(gbc, 3); +- } +- if (s->channel_mode & 4) { +- /* if a surround channel exists */ +- s->surround_mix_level_ltrt = av_clip(get_bits(gbc, 3), 3, 7); +- s->surround_mix_level = av_clip(get_bits(gbc, 3), 3, 7); +- } +- } +- +- /* lfe mix level */ +- if (s->lfe_on && (s->lfe_mix_level_exists = get_bits1(gbc))) { +- s->lfe_mix_level = get_bits(gbc, 5); +- } +- +- /* info for mixing with other streams and substreams */ +- if (s->frame_type == EAC3_FRAME_TYPE_INDEPENDENT) { +- for (i = 0; i < (s->channel_mode ? 1 : 2); i++) { +- // TODO: apply program scale factor +- if (get_bits1(gbc)) { +- skip_bits(gbc, 6); // skip program scale factor +- } +- } +- if (get_bits1(gbc)) { +- skip_bits(gbc, 6); // skip external program scale factor +- } +- /* skip mixing parameter data */ +- switch(get_bits(gbc, 2)) { +- case 1: skip_bits(gbc, 5); break; +- case 2: skip_bits(gbc, 12); break; +- case 3: { +- int mix_data_size = (get_bits(gbc, 5) + 2) << 3; +- skip_bits_long(gbc, mix_data_size); +- break; +- } +- } +- /* skip pan information for mono or dual mono source */ +- if (s->channel_mode < AC3_CHMODE_STEREO) { +- for (i = 0; i < (s->channel_mode ? 1 : 2); i++) { +- if (get_bits1(gbc)) { +- /* note: this is not in the ATSC A/52B specification +- reference: ETSI TS 102 366 V1.1.1 +- section: E.1.3.1.25 */ +- skip_bits(gbc, 8); // skip pan mean direction index +- skip_bits(gbc, 6); // skip reserved paninfo bits +- } +- } +- } +- /* skip mixing configuration information */ +- if (get_bits1(gbc)) { +- for (blk = 0; blk < s->num_blocks; blk++) { +- if (s->num_blocks == 1 || get_bits1(gbc)) { +- skip_bits(gbc, 5); +- } +- } +- } +- } +- } ++ s->preferred_downmix = hdr->preferred_downmix; ++ s->center_mix_level_ltrt = hdr->center_mix_level_ltrt; ++ s->center_mix_level = hdr->center_mix_level; ++ s->surround_mix_level_ltrt = hdr->surround_mix_level_ltrt; ++ s->surround_mix_level = hdr->surround_mix_level; ++ s->lfe_mix_level_exists = hdr->lfe_mix_level_exists; ++ s->lfe_mix_level = hdr->lfe_mix_level; ++ s->dolby_surround_mode = hdr->dolby_surround_mode; ++ s->dolby_headphone_mode = hdr->dolby_headphone_mode; ++ s->dolby_surround_ex_mode = hdr->dolby_surround_ex_mode; + + /* informational metadata */ +- if (get_bits1(gbc)) { +- s->bitstream_mode = get_bits(gbc, 3); +- skip_bits(gbc, 2); // skip copyright bit and original bitstream bit +- if (s->channel_mode == AC3_CHMODE_STEREO) { +- s->dolby_surround_mode = get_bits(gbc, 2); +- s->dolby_headphone_mode = get_bits(gbc, 2); +- } +- if (s->channel_mode >= AC3_CHMODE_2F2R) { +- s->dolby_surround_ex_mode = get_bits(gbc, 2); +- } +- for (i = 0; i < (s->channel_mode ? 1 : 2); i++) { +- if (get_bits1(gbc)) { +- skip_bits(gbc, 8); // skip mix level, room type, and A/D converter type +- } +- } +- if (s->bit_alloc_params.sr_code != EAC3_SR_CODE_REDUCED) { +- skip_bits1(gbc); // skip source sample rate code +- } +- } +- +- /* converter synchronization flag +- If frames are less than six blocks, this bit should be turned on +- once every 6 blocks to indicate the start of a frame set. +- reference: RFC 4598, Section 2.1.3 Frame Sets */ +- if (s->frame_type == EAC3_FRAME_TYPE_INDEPENDENT && s->num_blocks != 6) { +- skip_bits1(gbc); // skip converter synchronization flag +- } +- +- /* original frame size code if this stream was converted from AC-3 */ +- if (s->frame_type == EAC3_FRAME_TYPE_AC3_CONVERT && +- (s->num_blocks == 6 || get_bits1(gbc))) { +- skip_bits(gbc, 6); // skip frame size code +- } ++ s->bitstream_mode = hdr->bitstream_mode; + + /* additional bitstream info */ +- if (get_bits1(gbc)) { +- int addbsil = get_bits(gbc, 6); +- for (i = 0; i < addbsil + 1; i++) { +- if (i == 0) { +- /* In this 8 bit chunk, the LSB is equal to flag_ec3_extension_type_a +- which can be used to detect Atmos presence */ +- skip_bits(gbc, 7); +- if (get_bits1(gbc)) { +- s->eac3_extension_type_a = 1; +- } +- } else { +- skip_bits(gbc, 8); // skip additional bit stream info +- } +- } +- } ++ s->eac3_extension_type_a = hdr->eac3_extension_type_a; + + /* audio frame syntax flags, strategy data, and per-frame data */ + +diff -Naur ffmpeg-7.1.2.old/libavcodec/hwaccels.h ffmpeg-7.1.2/libavcodec/hwaccels.h +--- ffmpeg-7.1.2.old/libavcodec/hwaccels.h 2025-10-27 10:07:00.251471009 +0100 ++++ ffmpeg-7.1.2/libavcodec/hwaccels.h 2025-10-27 10:07:02.454807062 +0100 +@@ -26,6 +26,7 @@ + extern const struct FFHWAccel ff_av1_nvdec_hwaccel; + extern const struct FFHWAccel ff_av1_vaapi_hwaccel; + extern const struct FFHWAccel ff_av1_vdpau_hwaccel; ++extern const struct FFHWAccel ff_av1_videotoolbox_hwaccel; + extern const struct FFHWAccel ff_av1_vulkan_hwaccel; + extern const struct FFHWAccel ff_h263_vaapi_hwaccel; + extern const struct FFHWAccel ff_h263_videotoolbox_hwaccel; +diff -Naur ffmpeg-7.1.2.old/libavcodec/libdav1d.c ffmpeg-7.1.2/libavcodec/libdav1d.c +--- ffmpeg-7.1.2.old/libavcodec/libdav1d.c 2025-10-27 10:07:00.474472977 +0100 ++++ ffmpeg-7.1.2/libavcodec/libdav1d.c 2025-10-27 10:07:02.436286040 +0100 @@ -563,6 +563,8 @@ break; } @@ -590,17 +1365,28 @@ diff -Naur ffmpeg-7.1.1.old/libavcodec/libdav1d.c ffmpeg-7.1.1/libavcodec/libdav res = ff_dovi_attach_side_data(&dav1d->dovi, frame); if (res < 0) goto fail; -diff -Naur ffmpeg-7.1.1.old/libavcodec/mfenc.c ffmpeg-7.1.1/libavcodec/mfenc.c ---- ffmpeg-7.1.1.old/libavcodec/mfenc.c 2025-03-24 10:54:38.125756284 +0100 -+++ ffmpeg-7.1.1/libavcodec/mfenc.c 2025-03-24 10:54:39.282547759 +0100 +diff -Naur ffmpeg-7.1.2.old/libavcodec/Makefile ffmpeg-7.1.2/libavcodec/Makefile +--- ffmpeg-7.1.2.old/libavcodec/Makefile 2025-10-27 10:07:01.865180885 +0100 ++++ ffmpeg-7.1.2/libavcodec/Makefile 2025-10-27 10:07:02.454516424 +0100 +@@ -1008,6 +1008,7 @@ + OBJS-$(CONFIG_AV1_NVDEC_HWACCEL) += nvdec_av1.o + OBJS-$(CONFIG_AV1_VAAPI_HWACCEL) += vaapi_av1.o + OBJS-$(CONFIG_AV1_VDPAU_HWACCEL) += vdpau_av1.o ++OBJS-$(CONFIG_AV1_VIDEOTOOLBOX_HWACCEL) += videotoolbox_av1.o + OBJS-$(CONFIG_AV1_VULKAN_HWACCEL) += vulkan_decode.o vulkan_av1.o + OBJS-$(CONFIG_H263_VAAPI_HWACCEL) += vaapi_mpeg4.o + OBJS-$(CONFIG_H263_VIDEOTOOLBOX_HWACCEL) += videotoolbox.o +diff -Naur ffmpeg-7.1.2.old/libavcodec/mfenc.c ffmpeg-7.1.2/libavcodec/mfenc.c +--- ffmpeg-7.1.2.old/libavcodec/mfenc.c 2025-10-27 10:07:00.524473418 +0100 ++++ ffmpeg-7.1.2/libavcodec/mfenc.c 2025-10-27 10:07:02.459027162 +0100 @@ -1315,3 +1315,4 @@ MF_ENCODER(VIDEO, h264, H264, venc_opts, VFMTS, VCAPS, defaults); MF_ENCODER(VIDEO, hevc, HEVC, venc_opts, VFMTS, VCAPS, defaults); +MF_ENCODER(VIDEO, av1, AV1, venc_opts, VFMTS, VCAPS, defaults); -diff -Naur ffmpeg-7.1.1.old/libavcodec/mf_utils.c ffmpeg-7.1.1/libavcodec/mf_utils.c ---- ffmpeg-7.1.1.old/libavcodec/mf_utils.c 2025-03-24 10:54:38.086755815 +0100 -+++ ffmpeg-7.1.1/libavcodec/mf_utils.c 2025-03-24 10:54:39.282392106 +0100 +diff -Naur ffmpeg-7.1.2.old/libavcodec/mf_utils.c ffmpeg-7.1.2/libavcodec/mf_utils.c +--- ffmpeg-7.1.2.old/libavcodec/mf_utils.c 2025-10-27 10:07:00.467472915 +0100 ++++ ffmpeg-7.1.2/libavcodec/mf_utils.c 2025-10-27 10:07:02.458887429 +0100 @@ -240,6 +240,7 @@ GUID_ENTRY(MFMediaType_Video), GUID_ENTRY(MFAudioFormat_PCM), @@ -617,9 +1403,9 @@ diff -Naur ffmpeg-7.1.1.old/libavcodec/mf_utils.c ffmpeg-7.1.1/libavcodec/mf_uti case AV_CODEC_ID_H264: return &MFVideoFormat_H264; case AV_CODEC_ID_HEVC: return &ff_MFVideoFormat_HEVC; case AV_CODEC_ID_AC3: return &MFAudioFormat_Dolby_AC3; -diff -Naur ffmpeg-7.1.1.old/libavcodec/mf_utils.h ffmpeg-7.1.1/libavcodec/mf_utils.h ---- ffmpeg-7.1.1.old/libavcodec/mf_utils.h 2025-03-24 10:54:38.061755515 +0100 -+++ ffmpeg-7.1.1/libavcodec/mf_utils.h 2025-03-24 10:54:39.282464482 +0100 +diff -Naur ffmpeg-7.1.2.old/libavcodec/mf_utils.h ffmpeg-7.1.2/libavcodec/mf_utils.h +--- ffmpeg-7.1.2.old/libavcodec/mf_utils.h 2025-10-27 10:07:00.429472580 +0100 ++++ ffmpeg-7.1.2/libavcodec/mf_utils.h 2025-10-27 10:07:02.458955668 +0100 @@ -113,6 +113,7 @@ DEFINE_MEDIATYPE_GUID(ff_MFVideoFormat_HEVC, 0x43564548); // FCC('HEVC') @@ -628,9 +1414,9 @@ diff -Naur ffmpeg-7.1.1.old/libavcodec/mf_utils.h ffmpeg-7.1.1/libavcodec/mf_uti // This enum is missing from mingw-w64's codecapi.h by v7.0.0. -diff -Naur ffmpeg-7.1.1.old/libavcodec/pgssubdec.c ffmpeg-7.1.1/libavcodec/pgssubdec.c ---- ffmpeg-7.1.1.old/libavcodec/pgssubdec.c 2025-03-24 10:54:37.986754612 +0100 -+++ ffmpeg-7.1.1/libavcodec/pgssubdec.c 2025-03-24 10:54:39.280528236 +0100 +diff -Naur ffmpeg-7.1.2.old/libavcodec/pgssubdec.c ffmpeg-7.1.2/libavcodec/pgssubdec.c +--- ffmpeg-7.1.2.old/libavcodec/pgssubdec.c 2025-10-27 10:07:00.318471601 +0100 ++++ ffmpeg-7.1.2/libavcodec/pgssubdec.c 2025-10-27 10:07:02.446191090 +0100 @@ -35,9 +35,11 @@ #include "libavutil/opt.h" @@ -1411,10 +2197,338 @@ diff -Naur ffmpeg-7.1.1.old/libavcodec/pgssubdec.c ffmpeg-7.1.1/libavcodec/pgssu break; case DISPLAY_SEGMENT: if (*got_sub_ptr) { -diff -Naur ffmpeg-7.1.1.old/libavcodec/videotoolbox.c ffmpeg-7.1.1/libavcodec/videotoolbox.c ---- ffmpeg-7.1.1.old/libavcodec/videotoolbox.c 2025-03-24 10:54:38.027755105 +0100 -+++ ffmpeg-7.1.1/libavcodec/videotoolbox.c 2025-03-24 10:54:39.271196851 +0100 -@@ -916,6 +916,23 @@ +diff -Naur ffmpeg-7.1.2.old/libavcodec/qsvenc_av1.c ffmpeg-7.1.2/libavcodec/qsvenc_av1.c +--- ffmpeg-7.1.2.old/libavcodec/qsvenc_av1.c 2025-10-27 10:07:00.531473480 +0100 ++++ ffmpeg-7.1.2/libavcodec/qsvenc_av1.c 2025-10-27 10:07:02.443863055 +0100 +@@ -189,6 +189,10 @@ + { "tile_cols", "Number of columns for tiled encoding", OFFSET(qsv.tile_cols), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, UINT16_MAX, VE }, + { "tile_rows", "Number of rows for tiled encoding", OFFSET(qsv.tile_rows), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, UINT16_MAX, VE }, + { "look_ahead_depth", "Depth of look ahead in number frames, available when extbrc option is enabled", OFFSET(qsv.look_ahead_depth), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 100, VE }, ++#if QSV_HAVE_EXT_AV1_SCC ++ { "palette_mode", "Enable palette mode of Screen Content Tool for encoding", OFFSET(qsv.palette_mode), AV_OPT_TYPE_BOOL, { .i64 = 0}, 0, 1, VE}, ++ { "intrabc", "Enable intra block copy of Screen Content Tool for encoding", OFFSET(qsv.intrabc), AV_OPT_TYPE_BOOL, { .i64 = 0}, 0, 1, VE}, ++#endif + { NULL }, + }; + +diff -Naur ffmpeg-7.1.2.old/libavcodec/qsvenc.c ffmpeg-7.1.2/libavcodec/qsvenc.c +--- ffmpeg-7.1.2.old/libavcodec/qsvenc.c 2025-10-27 10:07:00.592474018 +0100 ++++ ffmpeg-7.1.2/libavcodec/qsvenc.c 2025-10-27 10:07:02.443621469 +0100 +@@ -494,6 +494,9 @@ + mfxExtAV1BitstreamParam *av1_bs_param = (mfxExtAV1BitstreamParam *)coding_opts[1]; + mfxExtCodingOption2 *co2 = (mfxExtCodingOption2*)coding_opts[2]; + mfxExtCodingOption3 *co3 = (mfxExtCodingOption3*)coding_opts[3]; ++#if QSV_HAVE_EXT_AV1_SCC ++ mfxExtAV1ScreenContentTools *scc = (mfxExtAV1ScreenContentTools*)coding_opts[4]; ++#endif + + av_log(avctx, AV_LOG_VERBOSE, "profile: %s; level: %"PRIu16"\n", + print_profile(avctx->codec_id, info->CodecProfile), info->CodecLevel); +@@ -566,6 +569,13 @@ + print_threestate(av1_bs_param->WriteIVFHeaders)); + av_log(avctx, AV_LOG_VERBOSE, "LowDelayBRC: %s\n", print_threestate(co3->LowDelayBRC)); + av_log(avctx, AV_LOG_VERBOSE, "MaxFrameSize: %d;\n", co2->MaxFrameSize); ++#if QSV_HAVE_EXT_AV1_SCC ++ if (scc) { ++ av_log(avctx, AV_LOG_VERBOSE, ++ "Palette: %s; IntraBlockCopy: %s\n", ++ print_threestate(scc->Palette), print_threestate(scc->IntraBlockCopy)); ++ } ++#endif + } + #endif + +@@ -1282,6 +1292,28 @@ + } + #endif + ++#if QSV_HAVE_EXT_AV1_SCC ++ if (q->palette_mode || q->intrabc) { ++ if (QSV_RUNTIME_VERSION_ATLEAST(q->ver, 2, 13)) { ++ if (q->param.mfx.CodecId != MFX_CODEC_AV1) { ++ av_log(avctx, AV_LOG_ERROR, "Not supported encoder for Screen Content Tool Encode. " ++ "Supported: av1_qsv \n"); ++ return AVERROR_UNKNOWN; ++ } ++ ++ q->extsccparam.Header.BufferId = MFX_EXTBUFF_AV1_SCREEN_CONTENT_TOOLS; ++ q->extsccparam.Header.BufferSz = sizeof(q->extsccparam); ++ q->extsccparam.Palette = q->palette_mode ? MFX_CODINGOPTION_ON : MFX_CODINGOPTION_OFF; ++ q->extsccparam.IntraBlockCopy = q->intrabc ? MFX_CODINGOPTION_ON : MFX_CODINGOPTION_OFF; ++ q->extparam_internal[q->nb_extparam_internal++] = (mfxExtBuffer *)&q->extsccparam; ++ } else { ++ av_log(avctx, AV_LOG_ERROR, ++ "This version of runtime doesn't support Screen Content Tool Encode\n"); ++ return AVERROR_UNKNOWN; ++ } ++ } ++#endif ++ + if (!check_enc_param(avctx,q)) { + av_log(avctx, AV_LOG_ERROR, + "some encoding parameters are not supported by the QSV " +@@ -1389,11 +1421,21 @@ + .Header.BufferSz = sizeof(co3), + }; + ++#if QSV_HAVE_EXT_AV1_SCC ++ mfxExtAV1ScreenContentTools scc_buf = { ++ .Header.BufferId = MFX_EXTBUFF_AV1_SCREEN_CONTENT_TOOLS, ++ .Header.BufferSz = sizeof(scc_buf), ++ }; ++#endif ++ + mfxExtBuffer *ext_buffers[] = { + (mfxExtBuffer*)&av1_extend_tile_buf, + (mfxExtBuffer*)&av1_bs_param, + (mfxExtBuffer*)&co2, + (mfxExtBuffer*)&co3, ++#if QSV_HAVE_EXT_AV1_SCC ++ (mfxExtBuffer*)&scc_buf, ++#endif + }; + + if (!QSV_RUNTIME_VERSION_ATLEAST(q->ver, 2, 5)) { +@@ -1842,6 +1884,13 @@ + return ret; + } + ++ // Update AVCodecContext with actual encoding parameters ++ mfxInfoMFX *info = &q->param.mfx; ++ avctx->has_b_frames = 0; ++ if (info->GopRefDist > 1) { ++ avctx->has_b_frames = info->GopRefDist - 1; ++ } ++ + q->avctx = avctx; + + return 0; +diff -Naur ffmpeg-7.1.2.old/libavcodec/qsvenc.h ffmpeg-7.1.2/libavcodec/qsvenc.h +--- ffmpeg-7.1.2.old/libavcodec/qsvenc.h 2025-10-27 10:07:00.282471283 +0100 ++++ ffmpeg-7.1.2/libavcodec/qsvenc.h 2025-10-27 10:07:02.443799916 +0100 +@@ -38,6 +38,7 @@ + + #define QSV_HAVE_EXT_VP9_TILES QSV_VERSION_ATLEAST(1, 29) + #define QSV_HAVE_EXT_AV1_PARAM QSV_VERSION_ATLEAST(2, 5) ++#define QSV_HAVE_EXT_AV1_SCC QSV_VERSION_ATLEAST(2, 13) + + #if defined(_WIN32) || defined(__CYGWIN__) + #define QSV_HAVE_AVBR 1 +@@ -188,10 +189,13 @@ + mfxFrameSurface1 **opaque_surfaces; + AVBufferRef *opaque_alloc_buf; + #endif ++#if QSV_HAVE_EXT_AV1_SCC ++ mfxExtAV1ScreenContentTools extsccparam; ++#endif + + mfxExtVideoSignalInfo extvsi; + +- mfxExtBuffer *extparam_internal[5 + (QSV_HAVE_MF * 2) + (QSV_HAVE_EXT_AV1_PARAM * 2) + QSV_HAVE_HE]; ++ mfxExtBuffer *extparam_internal[5 + (QSV_HAVE_MF * 2) + (QSV_HAVE_EXT_AV1_PARAM * 2) + QSV_HAVE_HE + QSV_HAVE_EXT_AV1_SCC]; + int nb_extparam_internal; + + mfxExtBuffer **extparam_str; +@@ -319,6 +323,8 @@ + int dual_gfx; + + AVDictionary *qsv_params; ++ int palette_mode; ++ int intrabc; + } QSVEncContext; + + int ff_qsv_enc_init(AVCodecContext *avctx, QSVEncContext *q); +diff -Naur ffmpeg-7.1.2.old/libavcodec/videotoolbox_av1.c ffmpeg-7.1.2/libavcodec/videotoolbox_av1.c +--- ffmpeg-7.1.2.old/libavcodec/videotoolbox_av1.c 1970-01-01 01:00:00.000000000 +0100 ++++ ffmpeg-7.1.2/libavcodec/videotoolbox_av1.c 2025-10-27 10:07:02.455024552 +0100 +@@ -0,0 +1,105 @@ ++/* ++ * Videotoolbox hardware acceleration for AV1 ++ * Copyright (c) 2023 Jan Ekström ++ * Copyright (c) 2024 Ruslan Chernenko ++ * Copyright (c) 2024 Martin Storsjö ++ * ++ * This file is part of FFmpeg. ++ * ++ * FFmpeg is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU Lesser General Public ++ * License as published by the Free Software Foundation; either ++ * version 2.1 of the License, or (at your option) any later version. ++ * ++ * FFmpeg is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with FFmpeg; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ++ */ ++ ++#include "libavutil/mem.h" ++ ++#include "av1dec.h" ++#include "hwaccel_internal.h" ++#include "internal.h" ++#include "vt_internal.h" ++ ++CFDataRef ff_videotoolbox_av1c_extradata_create(AVCodecContext *avctx) ++{ ++ AV1DecContext *s = avctx->priv_data; ++ uint8_t *buf; ++ CFDataRef data; ++ if (!s->raw_seq) ++ return NULL; ++ ++ buf = av_malloc(s->seq_data_ref->size + 4); ++ if (!buf) ++ return NULL; ++ buf[0] = 0x81; // version and marker (constant) ++ buf[1] = s->raw_seq->seq_profile << 5 | s->raw_seq->seq_level_idx[0]; ++ buf[2] = s->raw_seq->seq_tier[0] << 7 | ++ s->raw_seq->color_config.high_bitdepth << 6 | ++ s->raw_seq->color_config.twelve_bit << 5 | ++ s->raw_seq->color_config.mono_chrome << 4 | ++ s->raw_seq->color_config.subsampling_x << 3 | ++ s->raw_seq->color_config.subsampling_y << 2 | ++ s->raw_seq->color_config.chroma_sample_position; ++ ++ if (s->raw_seq->initial_display_delay_present_flag) ++ buf[3] = 0 << 5 | ++ s->raw_seq->initial_display_delay_present_flag << 4 | ++ s->raw_seq->initial_display_delay_minus_1[0]; ++ else ++ buf[3] = 0x00; ++ memcpy(buf + 4, s->seq_data_ref->data, s->seq_data_ref->size); ++ data = CFDataCreate(kCFAllocatorDefault, buf, s->seq_data_ref->size + 4); ++ av_free(buf); ++ return data; ++}; ++ ++ ++static int videotoolbox_av1_start_frame(AVCodecContext *avctx, ++ const uint8_t *buffer, ++ uint32_t size) ++{ ++ return 0; ++} ++ ++static int videotoolbox_av1_decode_slice(AVCodecContext *avctx, ++ const uint8_t *buffer, ++ uint32_t size) ++{ ++ return 0; ++} ++ ++static int videotoolbox_av1_end_frame(AVCodecContext *avctx) ++{ ++ const AV1DecContext *s = avctx->priv_data; ++ VTContext *vtctx = avctx->internal->hwaccel_priv_data; ++ AVFrame *frame = s->cur_frame.f; ++ ++ vtctx->bitstream_size = 0; ++ for (int i = s->start_unit; i < s->nb_unit; i++) ++ ff_videotoolbox_buffer_append(vtctx, s->current_obu.units[i].data, ++ s->current_obu.units[i].data_size); ++ return ff_videotoolbox_common_end_frame(avctx, frame); ++} ++ ++const FFHWAccel ff_av1_videotoolbox_hwaccel = { ++ .p.name = "av1_videotoolbox", ++ .p.type = AVMEDIA_TYPE_VIDEO, ++ .p.id = AV_CODEC_ID_AV1, ++ .p.pix_fmt = AV_PIX_FMT_VIDEOTOOLBOX, ++ .alloc_frame = ff_videotoolbox_alloc_frame, ++ .start_frame = videotoolbox_av1_start_frame, ++ .decode_slice = videotoolbox_av1_decode_slice, ++ .end_frame = videotoolbox_av1_end_frame, ++ .frame_params = ff_videotoolbox_frame_params, ++ .init = ff_videotoolbox_common_init, ++ .uninit = ff_videotoolbox_uninit, ++ .priv_data_size = sizeof(VTContext), ++}; +diff -Naur ffmpeg-7.1.2.old/libavcodec/videotoolbox.c ffmpeg-7.1.2/libavcodec/videotoolbox.c +--- ffmpeg-7.1.2.old/libavcodec/videotoolbox.c 2025-10-27 10:07:00.379472139 +0100 ++++ ffmpeg-7.1.2/libavcodec/videotoolbox.c 2025-10-27 10:07:02.456490466 +0100 +@@ -56,6 +56,10 @@ + enum { kCMVideoCodecType_VP9 = 'vp09' }; + #endif + ++#if !HAVE_KCMVIDEOCODECTYPE_AV1 ++enum { kCMVideoCodecType_AV1 = 'av01' }; ++#endif ++ + #define VIDEOTOOLBOX_ESDS_EXTRADATA_PADDING 12 + + typedef struct VTHWFrame { +@@ -92,6 +96,26 @@ + return 0; + } + ++int ff_videotoolbox_buffer_append(VTContext *vtctx, ++ const uint8_t *buffer, ++ uint32_t size) ++{ ++ void *tmp; ++ ++ tmp = av_fast_realloc(vtctx->bitstream, ++ &vtctx->allocated_size, ++ vtctx->bitstream_size + size); ++ ++ if (!tmp) ++ return AVERROR(ENOMEM); ++ ++ vtctx->bitstream = tmp; ++ memcpy(vtctx->bitstream + vtctx->bitstream_size, buffer, size); ++ vtctx->bitstream_size += size; ++ ++ return 0; ++} ++ + static int videotoolbox_postproc_frame(void *avctx, AVFrame *frame) + { + int ret; +@@ -108,9 +132,6 @@ + frame->crop_top = 0; + frame->crop_bottom = 0; + +- if ((ret = av_vt_pixbuf_set_attachments(avctx, ref->pixbuf, frame)) < 0) +- return ret; +- + frame->data[3] = (uint8_t*)ref->pixbuf; + + if (ref->hw_frames_ctx) { +@@ -790,7 +811,7 @@ + #if TARGET_OS_IPHONE + CFDictionarySetValue(buffer_attributes, kCVPixelBufferOpenGLESCompatibilityKey, kCFBooleanTrue); + #else +- CFDictionarySetValue(buffer_attributes, kCVPixelBufferIOSurfaceOpenGLTextureCompatibilityKey, kCFBooleanTrue); ++ CFDictionarySetValue(buffer_attributes, kCVPixelBufferMetalCompatibilityKey, kCFBooleanTrue); + #endif + + CFRelease(io_surface_properties); +@@ -847,6 +868,13 @@ + CFDictionarySetValue(avc_info, CFSTR("vpcC"), data); + break; + #endif ++#if CONFIG_AV1_VIDEOTOOLBOX_HWACCEL ++ case kCMVideoCodecType_AV1 : ++ data = ff_videotoolbox_av1c_extradata_create(avctx); ++ if (data) ++ CFDictionarySetValue(avc_info, CFSTR("av1C"), data); ++ break; ++#endif + default: + break; + } +@@ -912,10 +940,30 @@ + case AV_CODEC_ID_VP9 : + videotoolbox->cm_codec_type = kCMVideoCodecType_VP9; + break; ++ case AV_CODEC_ID_AV1 : ++ videotoolbox->cm_codec_type = kCMVideoCodecType_AV1; ++ break; + default : break; } @@ -1438,9 +2552,46 @@ diff -Naur ffmpeg-7.1.1.old/libavcodec/videotoolbox.c ffmpeg-7.1.1/libavcodec/vi #if defined(MAC_OS_X_VERSION_10_9) && !TARGET_OS_IPHONE && (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_9) && AV_HAS_BUILTIN(__builtin_available) if (avctx->codec_id == AV_CODEC_ID_PRORES) { if (__builtin_available(macOS 10.9, *)) { -diff -Naur ffmpeg-7.1.1.old/libavformat/isom.h ffmpeg-7.1.1/libavformat/isom.h ---- ffmpeg-7.1.1.old/libavformat/isom.h 2025-03-24 10:54:38.366759184 +0100 -+++ ffmpeg-7.1.1/libavformat/isom.h 2025-03-24 10:54:39.261252302 +0100 +diff -Naur ffmpeg-7.1.2.old/libavcodec/vt_internal.h ffmpeg-7.1.2/libavcodec/vt_internal.h +--- ffmpeg-7.1.2.old/libavcodec/vt_internal.h 2025-10-27 10:07:00.531473480 +0100 ++++ ffmpeg-7.1.2/libavcodec/vt_internal.h 2025-10-27 10:07:02.455086969 +0100 +@@ -56,6 +56,9 @@ + int ff_videotoolbox_buffer_copy(VTContext *vtctx, + const uint8_t *buffer, + uint32_t size); ++int ff_videotoolbox_buffer_append(VTContext *vtctx, ++ const uint8_t *buffer, ++ uint32_t size); + int ff_videotoolbox_uninit(AVCodecContext *avctx); + int ff_videotoolbox_h264_start_frame(AVCodecContext *avctx, + const uint8_t *buffer, +@@ -64,6 +67,7 @@ + const uint8_t *buffer, + uint32_t size); + int ff_videotoolbox_common_end_frame(AVCodecContext *avctx, AVFrame *frame); ++CFDataRef ff_videotoolbox_av1c_extradata_create(AVCodecContext *avctx); + CFDataRef ff_videotoolbox_avcc_extradata_create(AVCodecContext *avctx); + CFDataRef ff_videotoolbox_hvcc_extradata_create(AVCodecContext *avctx); + CFDataRef ff_videotoolbox_vpcc_extradata_create(AVCodecContext *avctx); +diff -Naur ffmpeg-7.1.2.old/libavfilter/vf_vpp_qsv.c ffmpeg-7.1.2/libavfilter/vf_vpp_qsv.c +--- ffmpeg-7.1.2.old/libavfilter/vf_vpp_qsv.c 2025-10-27 10:07:00.764475536 +0100 ++++ ffmpeg-7.1.2/libavfilter/vf_vpp_qsv.c 2025-10-27 10:07:02.461658339 +0100 +@@ -494,9 +494,9 @@ + outvsi_conf.Header.BufferId = MFX_EXTBUFF_VIDEO_SIGNAL_INFO_OUT; + outvsi_conf.Header.BufferSz = sizeof(mfxExtVideoSignalInfo); + outvsi_conf.VideoFullRange = (out->color_range == AVCOL_RANGE_JPEG); +- outvsi_conf.ColourPrimaries = (out->color_primaries == AVCOL_PRI_UNSPECIFIED) ? AVCOL_PRI_BT709 : out->color_primaries; +- outvsi_conf.TransferCharacteristics = (out->color_trc == AVCOL_TRC_UNSPECIFIED) ? AVCOL_TRC_BT709 : out->color_trc; +- outvsi_conf.MatrixCoefficients = (out->colorspace == AVCOL_SPC_UNSPECIFIED) ? AVCOL_SPC_BT709 : out->colorspace; ++ outvsi_conf.ColourPrimaries = (out->color_primaries == AVCOL_PRI_UNSPECIFIED) ? invsi_conf.ColourPrimaries : out->color_primaries; ++ outvsi_conf.TransferCharacteristics = (out->color_trc == AVCOL_TRC_UNSPECIFIED) ? invsi_conf.TransferCharacteristics : out->color_trc; ++ outvsi_conf.MatrixCoefficients = (out->colorspace == AVCOL_SPC_UNSPECIFIED) ? invsi_conf.MatrixCoefficients : out->colorspace; + outvsi_conf.ColourDescriptionPresent = 1; + + if (memcmp(&vpp->invsi_conf, &invsi_conf, sizeof(mfxExtVideoSignalInfo)) || +diff -Naur ffmpeg-7.1.2.old/libavformat/isom.h ffmpeg-7.1.2/libavformat/isom.h +--- ffmpeg-7.1.2.old/libavformat/isom.h 2025-10-27 10:07:00.909476815 +0100 ++++ ffmpeg-7.1.2/libavformat/isom.h 2025-10-27 10:07:02.422783282 +0100 @@ -272,6 +272,9 @@ MOVEncryptionIndex *encryption_index; } cenc; @@ -1451,9 +2602,9 @@ diff -Naur ffmpeg-7.1.1.old/libavformat/isom.h ffmpeg-7.1.1/libavformat/isom.h struct IAMFDemuxContext *iamf; } MOVStreamContext; -diff -Naur ffmpeg-7.1.1.old/libavformat/matroskaenc.c ffmpeg-7.1.1/libavformat/matroskaenc.c ---- ffmpeg-7.1.1.old/libavformat/matroskaenc.c 2025-03-24 10:54:38.396759545 +0100 -+++ ffmpeg-7.1.1/libavformat/matroskaenc.c 2025-03-24 10:54:39.269651231 +0100 +diff -Naur ffmpeg-7.1.2.old/libavformat/matroskaenc.c ffmpeg-7.1.2/libavformat/matroskaenc.c +--- ffmpeg-7.1.2.old/libavformat/matroskaenc.c 2025-10-27 10:07:00.955477221 +0100 ++++ ffmpeg-7.1.2/libavformat/matroskaenc.c 2025-10-27 10:07:02.430490236 +0100 @@ -2933,6 +2933,16 @@ case AV_CODEC_ID_AAC: if (side_data_size && mkv->track.bc) { @@ -1471,9 +2622,9 @@ diff -Naur ffmpeg-7.1.1.old/libavformat/matroskaenc.c ffmpeg-7.1.1/libavformat/m ret = get_aac_sample_rates(s, mkv, side_data, side_data_size, &track->sample_rate, &output_sample_rate); if (ret < 0) -diff -Naur ffmpeg-7.1.1.old/libavformat/mov.c ffmpeg-7.1.1/libavformat/mov.c ---- ffmpeg-7.1.1.old/libavformat/mov.c 2025-03-24 10:54:38.353759028 +0100 -+++ ffmpeg-7.1.1/libavformat/mov.c 2025-03-24 10:54:39.261629363 +0100 +diff -Naur ffmpeg-7.1.2.old/libavformat/mov.c ffmpeg-7.1.2/libavformat/mov.c +--- ffmpeg-7.1.2.old/libavformat/mov.c 2025-10-27 10:07:00.889476639 +0100 ++++ ffmpeg-7.1.2/libavformat/mov.c 2025-10-27 10:07:02.447584145 +0100 @@ -56,6 +56,7 @@ #include "libavcodec/mpegaudiodecheader.h" #include "libavcodec/mlp_parse.h" @@ -1482,7 +2633,41 @@ diff -Naur ffmpeg-7.1.1.old/libavformat/mov.c ffmpeg-7.1.1/libavformat/mov.c #include "internal.h" #include "avio_internal.h" #include "demux.h" -@@ -342,6 +343,73 @@ +@@ -131,6 +132,33 @@ + return 0; + } + ++static int mov_metadata_int16_no_padding(MOVContext *c, AVIOContext *pb, ++ unsigned len, const char *key) ++{ ++ c->fc->event_flags |= AVFMT_EVENT_FLAG_METADATA_UPDATED; ++ av_dict_set_int(&c->fc->metadata, key, avio_rb16(pb), 0); ++ ++ return 0; ++} ++ ++static int mov_metadata_int32_no_padding(MOVContext *c, AVIOContext *pb, ++ unsigned len, const char *key) ++{ ++ c->fc->event_flags |= AVFMT_EVENT_FLAG_METADATA_UPDATED; ++ av_dict_set_int(&c->fc->metadata, key, avio_rb32(pb), 0); ++ ++ return 0; ++} ++ ++static int mov_metadata_int64_no_padding(MOVContext *c, AVIOContext *pb, ++ unsigned len, const char *key) ++{ ++ c->fc->event_flags |= AVFMT_EVENT_FLAG_METADATA_UPDATED; ++ av_dict_set_int(&c->fc->metadata, key, avio_rb64(pb), 0); ++ ++ return 0; ++} ++ + static int mov_metadata_gnre(MOVContext *c, AVIOContext *pb, + unsigned len, const char *key) + { +@@ -342,6 +370,73 @@ return 0; } @@ -1556,7 +2741,7 @@ diff -Naur ffmpeg-7.1.1.old/libavformat/mov.c ffmpeg-7.1.1/libavformat/mov.c static int mov_read_udta_string(MOVContext *c, AVIOContext *pb, MOVAtom atom) { char tmp_key[AV_FOURCC_MAX_STRING_SIZE] = {0}; -@@ -354,6 +422,7 @@ +@@ -354,6 +449,7 @@ int (*parse)(MOVContext*, AVIOContext*, unsigned, const char*) = NULL; int raw = 0; int num = 0; @@ -1564,8 +2749,17 @@ diff -Naur ffmpeg-7.1.1.old/libavformat/mov.c ffmpeg-7.1.1/libavformat/mov.c switch (atom.type) { case MKTAG( '@','P','R','M'): key = "premiere_version"; raw = 1; break; -@@ -367,15 +436,33 @@ +@@ -364,35 +460,71 @@ + case MKTAG( 'a','k','I','D'): key = "account_type"; + parse = mov_metadata_int8_no_padding; break; + case MKTAG( 'a','p','I','D'): key = "account_id"; break; ++ case MKTAG( 'a','t','I','D'): key = "artist_id"; ++ parse = mov_metadata_int32_no_padding; break; case MKTAG( 'c','a','t','g'): key = "category"; break; ++ case MKTAG( 'c','m','I','D'): key = "composer_id"; ++ parse = mov_metadata_int32_no_padding; break; ++ case MKTAG( 'c','n','I','D'): key = "content_id"; ++ parse = mov_metadata_int32_no_padding; break; case MKTAG( 'c','p','i','l'): key = "compilation"; parse = mov_metadata_int8_no_padding; break; - case MKTAG( 'c','p','r','t'): key = "copyright"; break; @@ -1587,6 +2781,8 @@ diff -Naur ffmpeg-7.1.1.old/libavformat/mov.c ffmpeg-7.1.1/libavformat/mov.c case MKTAG( 'F','I','R','M'): key = "firmware"; raw = 1; break; - case MKTAG( 'g','n','r','e'): key = "genre"; - parse = mov_metadata_gnre; break; ++ case MKTAG( 'g','e','I','D'): key = "genre_id"; ++ parse = mov_metadata_int32_no_padding; break; + case MKTAG( 'g','n','r','e'): + key = "genre"; + parse = mov_metadata_gnre; @@ -1601,7 +2797,12 @@ diff -Naur ffmpeg-7.1.1.old/libavformat/mov.c ffmpeg-7.1.1/libavformat/mov.c case MKTAG( 'h','d','v','d'): key = "hd_video"; parse = mov_metadata_int8_no_padding; break; case MKTAG( 'H','M','M','T'): -@@ -386,6 +473,7 @@ + return mov_metadata_hmmt(c, pb, atom.size); ++ case MKTAG( 'i','t','n','u'): key = "itunes_u"; ++ parse = mov_metadata_int8_no_padding; break; + case MKTAG( 'k','e','y','w'): key = "keywords"; break; + case MKTAG( 'l','d','e','s'): key = "synopsis"; break; + case MKTAG( 'l','o','c','i'): return mov_metadata_loci(c, pb, atom.size); case MKTAG( 'm','a','n','u'): key = "make"; break; case MKTAG( 'm','o','d','l'): key = "model"; break; @@ -1609,9 +2810,87 @@ diff -Naur ffmpeg-7.1.1.old/libavformat/mov.c ffmpeg-7.1.1/libavformat/mov.c case MKTAG( 'p','c','s','t'): key = "podcast"; parse = mov_metadata_int8_no_padding; break; case MKTAG( 'p','g','a','p'): key = "gapless_playback"; -@@ -445,6 +533,15 @@ + parse = mov_metadata_int8_no_padding; break; ++ case MKTAG( 'p','l','I','D'): key = "playlist_id"; ++ parse = mov_metadata_int64_no_padding; break; + case MKTAG( 'p','u','r','d'): key = "purchase_date"; break; + case MKTAG( 'r','t','n','g'): key = "rating"; + parse = mov_metadata_int8_no_padding; break; ++ case MKTAG( 's','f','I','D'): key = "itunes_country"; ++ parse = mov_metadata_int32_no_padding; break; ++ case MKTAG( 's','d','e','s'): key = "series_description"; break; ++ case MKTAG( 's','h','w','m'): key = "show_work_and_movement"; ++ parse = mov_metadata_int8_no_padding; break; + case MKTAG( 's','o','a','a'): key = "sort_album_artist"; break; + case MKTAG( 's','o','a','l'): key = "sort_album"; break; + case MKTAG( 's','o','a','r'): key = "sort_artist"; break; +@@ -401,6 +533,8 @@ + case MKTAG( 's','o','s','n'): key = "sort_show"; break; + case MKTAG( 's','t','i','k'): key = "media_type"; + parse = mov_metadata_int8_no_padding; break; ++ case MKTAG( 't','m','p','o'): key = "tmpo"; ++ parse = mov_metadata_int16_no_padding; break; + case MKTAG( 't','r','k','n'): key = "track"; + parse = mov_metadata_track_or_disc_number; break; + case MKTAG( 't','v','e','n'): key = "episode_id"; break; +@@ -410,17 +544,23 @@ + case MKTAG( 't','v','s','h'): key = "show"; break; + case MKTAG( 't','v','s','n'): key = "season_number"; + parse = mov_metadata_int8_bypass_padding; break; ++ case MKTAG( 'x','i','d',' '): key = "xid"; break; + case MKTAG(0xa9,'A','R','T'): key = "artist"; break; + case MKTAG(0xa9,'P','R','D'): key = "producer"; break; + case MKTAG(0xa9,'a','l','b'): key = "album"; break; +- case MKTAG(0xa9,'a','u','t'): key = "artist"; break; ++ case MKTAG(0xa9,'a','r','d'): key = "art_director"; break; ++ case MKTAG(0xa9,'a','r','g'): key = "arranger"; break; ++ case MKTAG(0xa9,'a','u','t'): key = "author"; break; ++ case MKTAG(0xa9,'c','a','k'): key = "acknowledgement"; break; + case MKTAG(0xa9,'c','h','p'): key = "chapter"; break; + case MKTAG(0xa9,'c','m','t'): key = "comment"; break; + case MKTAG(0xa9,'c','o','m'): key = "composer"; break; ++ case MKTAG(0xa9,'c','o','n'): key = "conductor"; break; + case MKTAG(0xa9,'c','p','y'): key = "copyright"; break; + case MKTAG(0xa9,'d','a','y'): key = "date"; break; + case MKTAG(0xa9,'d','i','r'): key = "director"; break; + case MKTAG(0xa9,'d','i','s'): key = "disclaimer"; break; ++ case MKTAG(0xa9,'d','e','s'): key = "song_description"; break; + case MKTAG(0xa9,'e','d','1'): key = "edit_date"; break; + case MKTAG(0xa9,'e','n','c'): key = "encoder"; break; + case MKTAG(0xa9,'f','m','t'): key = "original_format"; break; +@@ -428,23 +568,45 @@ + case MKTAG(0xa9,'g','r','p'): key = "grouping"; break; + case MKTAG(0xa9,'h','s','t'): key = "host_computer"; break; + case MKTAG(0xa9,'i','n','f'): key = "comment"; break; ++ case MKTAG(0xa9,'l','n','t'): key = "linear_notes"; break; + case MKTAG(0xa9,'l','y','r'): key = "lyrics"; break; + case MKTAG(0xa9,'m','a','k'): key = "make"; break; + case MKTAG(0xa9,'m','o','d'): key = "model"; break; ++ case MKTAG(0xa9,'m','v','n'): key = "movement_name"; break; ++ case MKTAG(0xa9,'m','v','i'): key = "movement_number"; ++ parse = mov_metadata_int16_no_padding; break; ++ case MKTAG(0xa9,'m','v','c'): key = "movement_count"; ++ parse = mov_metadata_int16_no_padding; break; + case MKTAG(0xa9,'n','a','m'): key = "title"; break; + case MKTAG(0xa9,'o','p','e'): key = "original_artist"; break; ++ case MKTAG(0xa9,'p','h','g'): key = "phonogram_rights"; break; + case MKTAG(0xa9,'p','r','d'): key = "producer"; break; + case MKTAG(0xa9,'p','r','f'): key = "performers"; break; ++ case MKTAG(0xa9,'p','u','b'): key = "publisher"; break; + case MKTAG(0xa9,'r','e','q'): key = "playback_requirements"; break; ++ case MKTAG(0xa9,'s','n','e'): key = "sound_engineer"; break; ++ case MKTAG(0xa9,'s','o','l'): key = "soloist"; break; + case MKTAG(0xa9,'s','r','c'): key = "original_source"; break; + case MKTAG(0xa9,'s','t','3'): key = "subtitle"; break; + case MKTAG(0xa9,'s','w','r'): key = "encoder"; break; ++ case MKTAG(0xa9,'t','h','x'): key = "thanks"; break; + case MKTAG(0xa9,'t','o','o'): key = "encoder"; break; + case MKTAG(0xa9,'t','r','k'): key = "track"; break; + case MKTAG(0xa9,'u','r','l'): key = "URL"; break; ++ case MKTAG(0xa9,'w','r','k'): key = "work_name"; break; case MKTAG(0xa9,'w','r','n'): key = "warning"; break; case MKTAG(0xa9,'w','r','t'): key = "composer"; break; ++ case MKTAG(0xa9,'x','p','d'): key = "executive_producer"; break; case MKTAG(0xa9,'x','y','z'): key = "location"; break; + case MKTAG( 'a','l','b','m'): + case MKTAG( 'a','u','t','h'): @@ -1625,7 +2904,7 @@ diff -Naur ffmpeg-7.1.1.old/libavformat/mov.c ffmpeg-7.1.1/libavformat/mov.c } retry: if (c->itunes_metadata && atom.size > 8) { -@@ -571,17 +668,23 @@ +@@ -571,17 +733,23 @@ } str[str_size] = 0; } @@ -1658,7 +2937,7 @@ diff -Naur ffmpeg-7.1.1.old/libavformat/mov.c ffmpeg-7.1.1/libavformat/mov.c } } -@@ -9081,6 +9184,23 @@ +@@ -9088,6 +9256,23 @@ return ret; } @@ -1682,7 +2961,7 @@ diff -Naur ffmpeg-7.1.1.old/libavformat/mov.c ffmpeg-7.1.1/libavformat/mov.c static const MOVParseTableEntry mov_default_parse_table[] = { { MKTAG('A','C','L','R'), mov_read_aclr }, { MKTAG('A','P','R','G'), mov_read_avid }, -@@ -9183,6 +9303,7 @@ +@@ -9190,6 +9375,7 @@ { MKTAG('v','p','c','C'), mov_read_vpcc }, { MKTAG('m','d','c','v'), mov_read_mdcv }, { MKTAG('c','l','l','i'), mov_read_clli }, @@ -1690,7 +2969,7 @@ diff -Naur ffmpeg-7.1.1.old/libavformat/mov.c ffmpeg-7.1.1/libavformat/mov.c { MKTAG('d','v','c','C'), mov_read_dvcc_dvvc }, { MKTAG('d','v','v','C'), mov_read_dvcc_dvvc }, { MKTAG('d','v','w','C'), mov_read_dvcc_dvvc }, -@@ -10367,6 +10488,23 @@ +@@ -10374,6 +10560,23 @@ err = ff_replaygain_export(st, s->metadata); if (err < 0) return err; @@ -1714,9 +2993,9 @@ diff -Naur ffmpeg-7.1.1.old/libavformat/mov.c ffmpeg-7.1.1/libavformat/mov.c break; case AVMEDIA_TYPE_VIDEO: if (sc->display_matrix) { -diff -Naur ffmpeg-7.1.1.old/libavformat/movenc.c ffmpeg-7.1.1/libavformat/movenc.c ---- ffmpeg-7.1.1.old/libavformat/movenc.c 2025-03-24 10:54:38.381759365 +0100 -+++ ffmpeg-7.1.1/libavformat/movenc.c 2025-03-24 10:54:39.258769917 +0100 +diff -Naur ffmpeg-7.1.2.old/libavformat/movenc.c ffmpeg-7.1.2/libavformat/movenc.c +--- ffmpeg-7.1.2.old/libavformat/movenc.c 2025-10-27 10:07:00.933477027 +0100 ++++ ffmpeg-7.1.2/libavformat/movenc.c 2025-10-27 10:07:02.463726465 +0100 @@ -28,6 +28,7 @@ #include "movenc.h" @@ -1725,7 +3004,78 @@ diff -Naur ffmpeg-7.1.1.old/libavformat/movenc.c ffmpeg-7.1.1/libavformat/movenc #include "avio_internal.h" #include "dovi_isom.h" #include "riff.h" -@@ -4055,6 +4056,41 @@ +@@ -393,6 +394,8 @@ + uint16_t chan_loc; + /* if there is no dependent substream, then one bit reserved instead */ + } substream[1]; /* TODO: support 8 independent substreams */ ++ /* indicates the decoding complexity, 8 bits */ ++ uint8_t complexity_index_type_a; + }; + + static int mov_write_ac3_tag(AVFormatContext *s, AVIOContext *pb, MOVTrack *track) +@@ -474,6 +477,8 @@ + info->data_rate = FFMAX(info->data_rate, hdr->bit_rate / 1000); + info->ac3_bit_rate_code = FFMAX(info->ac3_bit_rate_code, + hdr->ac3_bit_rate_code); ++ info->complexity_index_type_a = hdr->complexity_index_type_a; ++ + num_blocks = hdr->num_blocks; + + if (!info->ec3_done) { +@@ -532,8 +537,6 @@ + int parent = hdr->substreamid; + + while (cumul_size != pkt->size) { +- GetBitContext gbc; +- int i; + ret = avpriv_ac3_parse_header(&hdr, pkt->data + cumul_size, pkt->size - cumul_size); + if (ret < 0) + goto end; +@@ -544,20 +547,9 @@ + info->substream[parent].num_dep_sub++; + ret /= 8; + +- /* header is parsed up to lfeon, but custom channel map may be needed */ +- init_get_bits8(&gbc, pkt->data + cumul_size + ret, pkt->size - cumul_size - ret); +- /* skip bsid */ +- skip_bits(&gbc, 5); +- /* skip volume control params */ +- for (i = 0; i < (hdr->channel_mode ? 1 : 2); i++) { +- skip_bits(&gbc, 5); // skip dialog normalization +- if (get_bits1(&gbc)) { +- skip_bits(&gbc, 8); // skip compression gain word +- } +- } + /* get the dependent stream channel map, if exists */ +- if (get_bits1(&gbc)) +- info->substream[parent].chan_loc |= (get_bits(&gbc, 16) >> 5) & 0x1f; ++ if (hdr->channel_map_present) ++ info->substream[parent].chan_loc |= (hdr->channel_map >> 5) & 0x1f; + else + info->substream[parent].chan_loc |= hdr->channel_mode; + cumul_size += hdr->frame_size; +@@ -614,7 +606,7 @@ + } + + info = track->eac3_priv; +- size = 2 + ((32 * (info->num_ind_sub + 1) + 7) >> 3); ++ size = 2 + (4 * (info->num_ind_sub + 1)) + (2 * !!info->complexity_index_type_a); + buf = av_malloc(size); + if (!buf) { + return AVERROR(ENOMEM); +@@ -639,6 +631,11 @@ + put_bits(&pbc, 9, info->substream[i].chan_loc); + } + } ++ if (info->complexity_index_type_a) { ++ put_bits(&pbc, 7, 0); /* reserved */ ++ put_bits(&pbc, 1, 1); // flag_eac3_extension_type_a ++ put_bits(&pbc, 8, info->complexity_index_type_a); ++ } + flush_put_bits(&pbc); + size = put_bytes_output(&pbc); + +@@ -4055,6 +4052,41 @@ return len + 24; } @@ -1767,7 +3117,7 @@ diff -Naur ffmpeg-7.1.1.old/libavformat/movenc.c ffmpeg-7.1.1/libavformat/movenc static int mov_write_track_metadata(AVIOContext *pb, AVStream *st, const char *tag, const char *str) { -@@ -4129,8 +4165,23 @@ +@@ -4129,8 +4161,23 @@ if (ret < 0) return ret; @@ -1792,7 +3142,165 @@ diff -Naur ffmpeg-7.1.1.old/libavformat/movenc.c ffmpeg-7.1.1/libavformat/movenc if (mov->mode & MODE_MP4) { if ((ret = mov_write_track_kinds(pb_buf, st)) < 0) -@@ -4727,35 +4778,6 @@ +@@ -4505,20 +4552,66 @@ + return size; + } + ++/* iTunes iTMF metadata */ ++static int mov_write_itmf_tag(AVIOContext *pb, AVFormatContext *s, ++ const char *name, const char *tag) ++{ ++ AVDictionaryEntry *t = av_dict_get(s->metadata, tag, NULL, 0); ++ uint64_t size = 0; ++ if (t) { ++ size_t name_len = strlen(name); ++ size_t value_len = strlen(t->value); ++ size = 8 + 28 + 12 + name_len + 16 + value_len; ++ ++ if (size > INT_MAX) { ++ av_log(s, AV_LOG_WARNING, ++ "Unable to write %s, invalid value len %ld\n", ++ name, value_len); ++ return 0; ++ } ++ ++ avio_wb32(pb, size); // size ++ ffio_wfourcc(pb, "----"); // type ++ ++ avio_wb32(pb, 28); // size ++ ffio_wfourcc(pb, "mean"); // type ++ avio_wb32(pb, 0); // version + flags ++ avio_write(pb, "com.apple.iTunes", 16); ++ ++ avio_wb32(pb, 12 + name_len); // size ++ ffio_wfourcc(pb, "name"); // type ++ avio_wb32(pb, 0); // version + flags ++ avio_write(pb, name, name_len); ++ ++ avio_wb32(pb, 16 + value_len); // size ++ ffio_wfourcc(pb, "data"); // type ++ avio_wb16(pb, 0); // typeReserved ++ avio_w8(pb, 0); // typeSetIdentifier ++ avio_w8(pb, 1); // typeCode = UTF-8 ++ avio_wb32(pb, 0); // locale ++ avio_write(pb, t->value, value_len); ++ } ++ return size; ++} ++ + static int mov_write_int8_metadata(AVFormatContext *s, AVIOContext *pb, + const char *name, const char *tag, + int len) + { + AVDictionaryEntry *t = NULL; +- uint8_t num; ++ uint64_t num; + int size = 24 + len; + +- if (len != 1 && len != 4) ++ if (len != 1 && len != 4 && ++ len != 2 && len != 8) + return -1; + + if (!(t = av_dict_get(s->metadata, tag, NULL, 0))) + return 0; +- num = atoi(t->value); ++ if (len <= 4) ++ num = atoi(t->value); ++ else ++ num = atol(t->value); + + avio_wb32(pb, size); + ffio_wfourcc(pb, name); +@@ -4526,7 +4619,9 @@ + ffio_wfourcc(pb, "data"); + avio_wb32(pb, 0x15); + avio_wb32(pb, 0); +- if (len==4) avio_wb32(pb, num); ++ if (len==8) avio_wb64(pb, num); ++ else if (len==4) avio_wb32(pb, num); ++ else if (len==2) avio_wb16(pb, num); + else avio_w8 (pb, num); + + return size; +@@ -4582,6 +4677,8 @@ + mov_write_string_metadata(s, pb, "\251lyr", "lyrics" , 1); + mov_write_string_metadata(s, pb, "desc", "description",1); + mov_write_string_metadata(s, pb, "ldes", "synopsis" , 1); ++ mov_write_string_metadata(s, pb, "sdes", "series_description", 1); ++ mov_write_string_metadata(s, pb, "rtng", "rating", 1); + mov_write_string_metadata(s, pb, "tvsh", "show" , 1); + mov_write_string_metadata(s, pb, "tven", "episode_id",1); + mov_write_string_metadata(s, pb, "tvnn", "network" , 1); +@@ -4592,10 +4689,67 @@ + mov_write_int8_metadata (s, pb, "hdvd", "hd_video", 1); + mov_write_int8_metadata (s, pb, "pgap", "gapless_playback",1); + mov_write_int8_metadata (s, pb, "cpil", "compilation", 1); ++ ++ mov_write_string_metadata(s, pb, "\251st3", "subtitle" , 1); ++ mov_write_string_metadata(s, pb, "\251des", "song_description", 1); ++ mov_write_string_metadata(s, pb, "\251dir", "director" , 1); ++ mov_write_string_metadata(s, pb, "\251ard", "art_director" , 1); ++ mov_write_string_metadata(s, pb, "\251arg", "arranger" , 1); ++ mov_write_string_metadata(s, pb, "\251aut", "author" , 1); ++ mov_write_string_metadata(s, pb, "\251cak", "acknowledgement" , 1); ++ mov_write_string_metadata(s, pb, "\251con", "conductor" , 1); ++ ++ mov_write_string_metadata(s, pb, "\251wrk", "work_name" , 1); ++ mov_write_string_metadata(s, pb, "\251mvn", "movement_name" , 1); ++ mov_write_int8_metadata (s, pb, "\251mvi", "movement_number", 2); ++ mov_write_int8_metadata (s, pb, "\251mvc", "movement_count" , 2); ++ mov_write_int8_metadata (s, pb, "shwm", "show_work_and_movement", 1); ++ ++ mov_write_string_metadata(s, pb, "\251lnt", "linear_notes" , 1); ++ mov_write_string_metadata(s, pb, "\251mak", "make" , 1); // Record company ++ mov_write_string_metadata(s, pb, "\251ope", "original_artist" , 1); ++ mov_write_string_metadata(s, pb, "\251phg", "phonogram_rights" , 1); ++ mov_write_string_metadata(s, pb, "\251prd", "producer" , 1); ++ mov_write_string_metadata(s, pb, "\251prf", "performers" , 1); ++ mov_write_string_metadata(s, pb, "\251pub", "publisher" , 1); ++ mov_write_string_metadata(s, pb, "\251sne", "sound_engineer" , 1); ++ mov_write_string_metadata(s, pb, "\251sol", "soloist" , 1); ++ mov_write_string_metadata(s, pb, "\251src", "original_source" , 1); // Credits ++ mov_write_string_metadata(s, pb, "\251thx", "thanks" , 1); ++ mov_write_string_metadata(s, pb, "\251url", "URL" , 1); // Online extras ++ mov_write_string_metadata(s, pb, "\251xpd", "executive_producer", 1); ++ ++ mov_write_string_metadata(s, pb, "sonm", "sort_name" , 1); ++ mov_write_string_metadata(s, pb, "soar", "sort_artist" , 1); ++ mov_write_string_metadata(s, pb, "soaa", "sort_album_artist", 1); ++ mov_write_string_metadata(s, pb, "soal", "sort_album" , 1); ++ mov_write_string_metadata(s, pb, "soco", "sort_composer" , 1); ++ mov_write_string_metadata(s, pb, "sosn", "sort_show" , 1); ++ ++ mov_write_string_metadata(s, pb, "\251enc", "encoder" , 1); // Encoded by ++ mov_write_string_metadata(s, pb, "purd", "purchase_date" , 1); ++ ++ mov_write_int8_metadata (s, pb, "itnu", "itunes_u" , 1); ++ mov_write_int8_metadata (s, pb, "pcst", "podcast" , 1); ++ mov_write_string_metadata(s, pb, "catg", "category" , 1); ++ ++ mov_write_string_metadata(s, pb, "apID", "account_id" , 1); ++ mov_write_int8_metadata (s, pb, "akID", "account_type" , 1); ++ mov_write_int8_metadata (s, pb, "sfID", "itunes_country", 4); ++ mov_write_int8_metadata (s, pb, "cnID", "content_id" , 4); ++ mov_write_int8_metadata (s, pb, "atID", "artist_id" , 4); ++ mov_write_int8_metadata (s, pb, "plID", "playlist_id" , 8); ++ mov_write_int8_metadata (s, pb, "geID", "genre_id" , 4); ++ mov_write_int8_metadata (s, pb, "cmID", "composer_id" , 4); ++ mov_write_string_metadata(s, pb, "xid ", "xid" , 1); ++ + mov_write_covr(pb, s); + mov_write_trkn_tag(pb, mov, s, 0); // track number + mov_write_trkn_tag(pb, mov, s, 1); // disc number + mov_write_tmpo_tag(pb, s); ++ mov_write_itmf_tag(pb, s, "iTunEXTC", "iTunEXTC"); ++ mov_write_itmf_tag(pb, s, "iTunMOVI", "iTunMOVI"); ++ + return update_size(pb, pos); + } + +@@ -4727,35 +4881,6 @@ return 0; } @@ -1828,7 +3336,7 @@ diff -Naur ffmpeg-7.1.1.old/libavformat/movenc.c ffmpeg-7.1.1/libavformat/movenc static int mov_write_chpl_tag(AVIOContext *pb, AVFormatContext *s) { int64_t pos = avio_tell(pb); -@@ -4794,14 +4816,14 @@ +@@ -4794,14 +4919,14 @@ return ret; if (mov->mode & MODE_3GP) { @@ -1851,9 +3359,9 @@ diff -Naur ffmpeg-7.1.1.old/libavformat/movenc.c ffmpeg-7.1.1/libavformat/movenc mov_write_loci_tag(s, pb_buf); } else if (mov->mode == MODE_MOV && !(mov->flags & FF_MOV_FLAG_USE_MDTA)) { // the title field breaks gtkpod with mp4 and my suspicion is that stuff is not valid in mp4 mov_write_string_metadata(s, pb_buf, "\251ART", "artist", 0); -diff -Naur ffmpeg-7.1.1.old/libavutil/frame.c ffmpeg-7.1.1/libavutil/frame.c ---- ffmpeg-7.1.1.old/libavutil/frame.c 2025-03-24 10:54:38.298758366 +0100 -+++ ffmpeg-7.1.1/libavutil/frame.c 2025-03-24 10:54:39.274197994 +0100 +diff -Naur ffmpeg-7.1.2.old/libavutil/frame.c ffmpeg-7.1.2/libavutil/frame.c +--- ffmpeg-7.1.2.old/libavutil/frame.c 2025-10-27 10:07:00.804475889 +0100 ++++ ffmpeg-7.1.2/libavutil/frame.c 2025-10-27 10:07:02.436386459 +0100 @@ -45,6 +45,7 @@ [AV_FRAME_DATA_FILM_GRAIN_PARAMS] = { "Film grain parameters" }, [AV_FRAME_DATA_DETECTION_BBOXES] = { "Bounding boxes for object detection and classification" }, @@ -1862,9 +3370,9 @@ diff -Naur ffmpeg-7.1.1.old/libavutil/frame.c ffmpeg-7.1.1/libavutil/frame.c [AV_FRAME_DATA_DOVI_METADATA] = { "Dolby Vision Metadata" }, [AV_FRAME_DATA_LCEVC] = { "LCEVC NAL data" }, [AV_FRAME_DATA_VIEW_ID] = { "View ID" }, -diff -Naur ffmpeg-7.1.1.old/libavutil/frame.h ffmpeg-7.1.1/libavutil/frame.h ---- ffmpeg-7.1.1.old/libavutil/frame.h 2025-03-24 10:54:38.287758234 +0100 -+++ ffmpeg-7.1.1/libavutil/frame.h 2025-03-24 10:54:39.274296419 +0100 +diff -Naur ffmpeg-7.1.2.old/libavutil/frame.h ffmpeg-7.1.2/libavutil/frame.h +--- ffmpeg-7.1.2.old/libavutil/frame.h 2025-10-27 10:07:00.786475730 +0100 ++++ ffmpeg-7.1.2/libavutil/frame.h 2025-10-27 10:07:02.436480126 +0100 @@ -201,6 +201,12 @@ AV_FRAME_DATA_DOVI_RPU_BUFFER, @@ -1878,9 +3386,38 @@ diff -Naur ffmpeg-7.1.1.old/libavutil/frame.h ffmpeg-7.1.1/libavutil/frame.h * Parsed Dolby Vision metadata, suitable for passing to a software * implementation. The payload is the AVDOVIMetadata struct defined in * libavutil/dovi_meta.h. -diff -Naur ffmpeg-7.1.1.old/libswscale/swscale_unscaled.c ffmpeg-7.1.1/libswscale/swscale_unscaled.c ---- ffmpeg-7.1.1.old/libswscale/swscale_unscaled.c 2025-03-24 10:54:38.201757199 +0100 -+++ ffmpeg-7.1.1/libswscale/swscale_unscaled.c 2025-03-24 10:54:39.272233834 +0100 +diff -Naur ffmpeg-7.1.2.old/libavutil/hwcontext_videotoolbox.c ffmpeg-7.1.2/libavutil/hwcontext_videotoolbox.c +--- ffmpeg-7.1.2.old/libavutil/hwcontext_videotoolbox.c 2025-10-27 10:07:00.813475968 +0100 ++++ ffmpeg-7.1.2/libavutil/hwcontext_videotoolbox.c 2025-10-27 10:07:02.457067390 +0100 +@@ -183,7 +183,8 @@ + VTFramesContext *fctx = ctx->hwctx; + AVVTFramesContext *hw_ctx = &fctx->p; + CVReturn err; +- CFNumberRef w, h, pixfmt; ++ CFNumberRef w, h, extend_w_num, extend_h_num, pixfmt; ++ int extend_w, extend_h; + uint32_t cv_pixfmt; + CFMutableDictionaryRef attributes, iosurface_properties; + +@@ -216,6 +217,15 @@ + CFRelease(w); + CFRelease(h); + ++ extend_w = FFALIGN(ctx->width, 16) - ctx->width; ++ extend_h = FFALIGN(ctx->height, 16) - ctx->height; ++ extend_w_num = CFNumberCreate(NULL, kCFNumberSInt32Type, &extend_w); ++ extend_h_num = CFNumberCreate(NULL, kCFNumberSInt32Type, &extend_h); ++ CFDictionarySetValue(attributes, kCVPixelBufferExtendedPixelsRightKey, extend_w_num); ++ CFDictionarySetValue(attributes, kCVPixelBufferExtendedPixelsBottomKey, extend_h_num); ++ CFRelease(extend_w_num); ++ CFRelease(extend_h_num); ++ + err = CVPixelBufferPoolCreate( + NULL, + NULL, +diff -Naur ffmpeg-7.1.2.old/libswscale/swscale_unscaled.c ffmpeg-7.1.2/libswscale/swscale_unscaled.c +--- ffmpeg-7.1.2.old/libswscale/swscale_unscaled.c 2025-10-27 10:07:00.644474477 +0100 ++++ ffmpeg-7.1.2/libswscale/swscale_unscaled.c 2025-10-27 10:07:02.433490262 +0100 @@ -341,7 +341,7 @@ const uint8_t *tsrc0 = src[0]; for (x = c->srcW; x > 0; x--) { diff --git a/anda/multimedia/ffmpeg/ffmpeg-LCEVCdec-4.patch b/anda/multimedia/ffmpeg/ffmpeg-LCEVCdec-4.patch index ff266b17b2..ae0aa51e88 100644 --- a/anda/multimedia/ffmpeg/ffmpeg-LCEVCdec-4.patch +++ b/anda/multimedia/ffmpeg/ffmpeg-LCEVCdec-4.patch @@ -1,6 +1,7 @@ ---- a/libavcodec/lcevcdec.c -+++ b/libavcodec/lcevcdec.c -@@ -139,7 +139,7 @@ static int lcevc_send_frame(void *logctx +diff -Naur ffmpeg-7.1.2.old/libavcodec/lcevcdec.c ffmpeg-7.1.2/libavcodec/lcevcdec.c +--- ffmpeg-7.1.2.old/libavcodec/lcevcdec.c 2025-10-27 10:07:00.369472051 +0100 ++++ ffmpeg-7.1.2/libavcodec/lcevcdec.c 2025-10-27 10:07:01.223246583 +0100 +@@ -139,7 +139,7 @@ if (!sd) return 1; @@ -9,7 +10,7 @@ if (res != LCEVC_Success) return AVERROR_EXTERNAL; -@@ -147,7 +147,7 @@ static int lcevc_send_frame(void *logctx +@@ -147,7 +147,7 @@ if (ret < 0) return ret; @@ -18,9 +19,10 @@ if (res != LCEVC_Success) return AVERROR_EXTERNAL; ---- a/libavfilter/vf_lcevc.c -+++ b/libavfilter/vf_lcevc.c -@@ -139,7 +139,7 @@ static int send_frame(AVFilterLink *inlink, AVFrame *in) +diff -Naur ffmpeg-7.1.2.old/libavfilter/vf_lcevc.c ffmpeg-7.1.2/libavfilter/vf_lcevc.c +--- ffmpeg-7.1.2.old/libavfilter/vf_lcevc.c 2025-10-27 10:07:00.732521928 +0100 ++++ ffmpeg-7.1.2/libavfilter/vf_lcevc.c 2025-10-27 10:07:01.223846623 +0100 +@@ -139,7 +139,7 @@ return ret; if (sd) { @@ -29,7 +31,7 @@ if (res == LCEVC_Again) return AVERROR(EAGAIN); else if (res != LCEVC_Success) { -@@ -148,7 +148,7 @@ static int send_frame(AVFilterLink *inlink, AVFrame *in) +@@ -148,7 +148,7 @@ } } diff --git a/anda/multimedia/ffmpeg/ffmpeg-chromium.patch b/anda/multimedia/ffmpeg/ffmpeg-chromium.patch index 2d9d364c30..5c8c6cbfd9 100644 --- a/anda/multimedia/ffmpeg/ffmpeg-chromium.patch +++ b/anda/multimedia/ffmpeg/ffmpeg-chromium.patch @@ -1,6 +1,6 @@ -diff -Naur ffmpeg-7.1.1.old/libavformat/avformat.h ffmpeg-7.1.1/libavformat/avformat.h ---- ffmpeg-7.1.1.old/libavformat/avformat.h 2025-03-24 10:54:38.357759076 +0100 -+++ ffmpeg-7.1.1/libavformat/avformat.h 2025-03-24 10:54:39.096586841 +0100 +diff -Naur ffmpeg-7.1.2.old/libavformat/avformat.h ffmpeg-7.1.2/libavformat/avformat.h +--- ffmpeg-7.1.2.old/libavformat/avformat.h 2025-10-27 10:07:00.895476692 +0100 ++++ ffmpeg-7.1.2/libavformat/avformat.h 2025-10-27 10:07:01.866348795 +0100 @@ -1202,6 +1202,10 @@ struct AVCodecParserContext *av_stream_get_parser(const AVStream *s); @@ -12,9 +12,9 @@ diff -Naur ffmpeg-7.1.1.old/libavformat/avformat.h ffmpeg-7.1.1/libavformat/avfo #define AV_PROGRAM_RUNNING 1 /** -diff -Naur ffmpeg-7.1.1.old/libavformat/utils.c ffmpeg-7.1.1/libavformat/utils.c ---- ffmpeg-7.1.1.old/libavformat/utils.c 2025-03-24 10:54:38.360759112 +0100 -+++ ffmpeg-7.1.1/libavformat/utils.c 2025-03-24 10:54:39.097179227 +0100 +diff -Naur ffmpeg-7.1.2.old/libavformat/utils.c ffmpeg-7.1.2/libavformat/utils.c +--- ffmpeg-7.1.2.old/libavformat/utils.c 2025-10-27 10:07:00.899476727 +0100 ++++ ffmpeg-7.1.2/libavformat/utils.c 2025-10-27 10:07:01.866992658 +0100 @@ -44,6 +44,13 @@ * various utility functions for use within FFmpeg */ diff --git a/anda/multimedia/ffmpeg/ffmpeg-cuda-13.patch b/anda/multimedia/ffmpeg/ffmpeg-cuda-13.patch new file mode 100644 index 0000000000..28bba4a1a7 --- /dev/null +++ b/anda/multimedia/ffmpeg/ffmpeg-cuda-13.patch @@ -0,0 +1,13 @@ +diff -Naur ffmpeg-7.1.2.old/configure ffmpeg-7.1.2/configure +--- ffmpeg-7.1.2.old/configure 2025-10-27 10:07:02.273543997 +0100 ++++ ffmpeg-7.1.2/configure 2025-10-27 10:07:02.276510125 +0100 +@@ -4710,6 +4710,9 @@ + if $nvcc $nvccflags_default 2>&1 | grep -qi unsupported; then + nvccflags_default="-gencode arch=compute_60,code=sm_60 -O2" + fi ++ if $nvcc $nvccflags_default 2>&1 | grep -qi unsupported; then ++ nvccflags_default="-gencode arch=compute_75,code=sm_75 -O2" ++ fi + fi + + set_default arch cc cxx doxygen pkg_config ranlib strip sysinclude \ diff --git a/anda/multimedia/ffmpeg/ffmpeg-decklink-14.patch b/anda/multimedia/ffmpeg/ffmpeg-decklink-14.patch new file mode 100644 index 0000000000..779e398257 --- /dev/null +++ b/anda/multimedia/ffmpeg/ffmpeg-decklink-14.patch @@ -0,0 +1,454 @@ +diff -Naur ffmpeg-7.1.2.old/doc/outdevs.texi ffmpeg-7.1.2/doc/outdevs.texi +--- ffmpeg-7.1.2.old/doc/outdevs.texi 2025-10-27 10:07:00.979477433 +0100 ++++ ffmpeg-7.1.2/doc/outdevs.texi 2025-10-27 10:07:02.002148270 +0100 +@@ -240,6 +240,10 @@ + outgoing VANC data will be dropped. + Defaults to @samp{1048576}. + ++@item block_until_available ++Retries output if device appears unavailable. Retry rate is 60 times a second. ++Defaults to @option{0}. ++ + @end table + + @subsection Examples +diff -Naur ffmpeg-7.1.2.old/fftools/ffmpeg_sched.c ffmpeg-7.1.2/fftools/ffmpeg_sched.c +--- ffmpeg-7.1.2.old/fftools/ffmpeg_sched.c 2025-10-27 10:07:01.220479559 +0100 ++++ ffmpeg-7.1.2/fftools/ffmpeg_sched.c 2025-10-27 10:07:02.002549025 +0100 +@@ -22,6 +22,7 @@ + #include + #include + #include ++#include + + #include "cmdutils.h" + #include "ffmpeg_sched.h" +diff -Naur ffmpeg-7.1.2.old/libavdevice/decklink_common_c.h ffmpeg-7.1.2/libavdevice/decklink_common_c.h +--- ffmpeg-7.1.2.old/libavdevice/decklink_common_c.h 2025-10-27 10:07:00.829476109 +0100 ++++ ffmpeg-7.1.2/libavdevice/decklink_common_c.h 2025-10-27 10:07:02.003002589 +0100 +@@ -74,6 +74,7 @@ + int64_t timestamp_align; + int timing_offset; + int wait_for_tc; ++ int block_until_available; + DecklinkSignalLossAction signal_loss_action; + }; + +diff -Naur ffmpeg-7.1.2.old/libavdevice/decklink_common.cpp ffmpeg-7.1.2/libavdevice/decklink_common.cpp +--- ffmpeg-7.1.2.old/libavdevice/decklink_common.cpp 2025-10-27 10:07:00.828476101 +0100 ++++ ffmpeg-7.1.2/libavdevice/decklink_common.cpp 2025-10-27 10:07:02.003115933 +0100 +@@ -25,7 +25,7 @@ + #include "libavformat/internal.h" + } + +-#include ++#include + #ifdef _WIN32 + #include + #else +@@ -53,6 +53,7 @@ + + #include "decklink_common.h" + ++ + static IDeckLinkIterator *decklink_create_iterator(AVFormatContext *avctx) + { + IDeckLinkIterator *iter; +@@ -512,8 +513,8 @@ + return AVERROR(EIO); + + while (ret == 0 && iter->Next(&dl) == S_OK) { +- IDeckLinkOutput *output_config; +- IDeckLinkInput *input_config; ++ IDeckLinkOutput_v14_2_1 *output_config; ++ IDeckLinkInput_v14_2_1 *input_config; + const char *display_name = NULL; + const char *unique_name = NULL; + AVDeviceInfo *new_device = NULL; +@@ -527,14 +528,14 @@ + goto next; + + if (show_outputs) { +- if (dl->QueryInterface(IID_IDeckLinkOutput, (void **)&output_config) == S_OK) { ++ if (dl->QueryInterface(IID_IDeckLinkOutput_v14_2_1, (void **)&output_config) == S_OK) { + output_config->Release(); + add = 1; + } + } + + if (show_inputs) { +- if (dl->QueryInterface(IID_IDeckLinkInput, (void **)&input_config) == S_OK) { ++ if (dl->QueryInterface(IID_IDeckLinkInput_v14_2_1, (void **)&input_config) == S_OK) { + input_config->Release(); + add = 1; + } +diff -Naur ffmpeg-7.1.2.old/libavdevice/decklink_common.h ffmpeg-7.1.2/libavdevice/decklink_common.h +--- ffmpeg-7.1.2.old/libavdevice/decklink_common.h 2025-10-27 10:07:00.831476127 +0100 ++++ ffmpeg-7.1.2/libavdevice/decklink_common.h 2025-10-27 10:07:02.003408083 +0100 +@@ -93,8 +93,8 @@ + struct decklink_ctx { + /* DeckLink SDK interfaces */ + IDeckLink *dl; +- IDeckLinkOutput *dlo; +- IDeckLinkInput *dli; ++ IDeckLinkOutput_v14_2_1 *dlo; ++ IDeckLinkInput_v14_2_1 *dli; + IDeckLinkConfiguration *cfg; + IDeckLinkProfileAttributes *attr; + decklink_output_callback *output_callback; +@@ -134,7 +134,6 @@ + AVStream *klv_st; + AVStream *teletext_st; + uint16_t cdp_sequence_num; +- + /* Options */ + int list_devices; + int list_formats; +@@ -149,13 +148,16 @@ + BMDPixelFormat raw_format; + DecklinkSignalLossAction signal_loss_action; + ++ + int frames_preroll; + int frames_buffer; + + pthread_mutex_t mutex; + pthread_cond_t cond; + int frames_buffer_available_spots; ++ int outstanding_frames; + int autodetect; ++ int block_until_available; + + #if CONFIG_LIBKLVANC + struct klvanc_context_s *vanc_ctx; +@@ -249,3 +251,4 @@ + int64_t ff_decklink_packet_queue_peekpts(DecklinkPacketQueue *q); + + #endif /* AVDEVICE_DECKLINK_COMMON_H */ ++ +diff -Naur ffmpeg-7.1.2.old/libavdevice/decklink_dec.cpp ffmpeg-7.1.2/libavdevice/decklink_dec.cpp +--- ffmpeg-7.1.2.old/libavdevice/decklink_dec.cpp 2025-10-27 10:07:00.828476101 +0100 ++++ ffmpeg-7.1.2/libavdevice/decklink_dec.cpp 2025-10-27 10:07:02.003669356 +0100 +@@ -31,7 +31,7 @@ + #include "libavformat/internal.h" + } + +-#include ++#include + + extern "C" { + #include "config.h" +@@ -56,6 +56,7 @@ + #include "decklink_common.h" + #include "decklink_dec.h" + ++extern bool operator==(const REFIID& me, const REFIID& other); + #define MAX_WIDTH_VANC 1920 + const BMDDisplayMode AUTODETECT_DEFAULT_MODE = bmdModeNTSC; + +@@ -105,13 +106,13 @@ + {bmdModeUnknown, 0, -1, -1, -1} + }; + +-class decklink_allocator : public IDeckLinkMemoryAllocator ++class decklink_allocator : public IDeckLinkMemoryAllocator_v14_2_1 + { + public: + decklink_allocator(): _refs(1) { } + virtual ~decklink_allocator() { } + +- // IDeckLinkMemoryAllocator methods ++ // IDeckLinkMemoryAllocator_v14_2_1 methods + virtual HRESULT STDMETHODCALLTYPE AllocateBuffer(unsigned int bufferSize, void* *allocatedBuffer) + { + void *buf = av_malloc(bufferSize + AV_INPUT_BUFFER_PADDING_SIZE); +@@ -129,7 +130,15 @@ + virtual HRESULT STDMETHODCALLTYPE Decommit() { return S_OK; } + + // IUnknown methods +- virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, LPVOID *ppv) { return E_NOINTERFACE; } ++ virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, LPVOID *ppv) ++ { ++ if (iid == IID_IDeckLinkMemoryAllocator_v14_2_1) { ++ *ppv = (IDeckLinkMemoryAllocator_v14_2_1*)this; ++ AddRef(); ++ return S_OK; ++ } ++ return E_NOINTERFACE; ++ } + virtual ULONG STDMETHODCALLTYPE AddRef(void) { return ++_refs; } + virtual ULONG STDMETHODCALLTYPE Release(void) + { +@@ -472,7 +481,7 @@ + } + + +-static void handle_klv(AVFormatContext *avctx, decklink_ctx *ctx, IDeckLinkVideoInputFrame *videoFrame, int64_t pts) ++static void handle_klv(AVFormatContext *avctx, decklink_ctx *ctx, IDeckLinkVideoInputFrame_v14_2_1 *videoFrame, int64_t pts) + { + const uint8_t KLV_DID = 0x44; + const uint8_t KLV_IN_VANC_SDID = 0x04; +@@ -574,17 +583,25 @@ + } + } + +-class decklink_input_callback : public IDeckLinkInputCallback ++class decklink_input_callback : public IDeckLinkInputCallback_v14_2_1 + { + public: + explicit decklink_input_callback(AVFormatContext *_avctx); + ~decklink_input_callback(); + +- virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, LPVOID *ppv) { return E_NOINTERFACE; } ++ virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, LPVOID *ppv) ++ { ++ if (iid == IID_IDeckLinkInputCallback_v14_2_1) { ++ *ppv = (IDeckLinkInputCallback_v14_2_1*)this; ++ AddRef(); ++ return S_OK; ++ } ++ return E_NOINTERFACE; ++ } + virtual ULONG STDMETHODCALLTYPE AddRef(void); + virtual ULONG STDMETHODCALLTYPE Release(void); + virtual HRESULT STDMETHODCALLTYPE VideoInputFormatChanged(BMDVideoInputFormatChangedEvents, IDeckLinkDisplayMode*, BMDDetectedVideoInputFormatFlags); +- virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived(IDeckLinkVideoInputFrame*, IDeckLinkAudioInputPacket*); ++ virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived(IDeckLinkVideoInputFrame_v14_2_1*, IDeckLinkAudioInputPacket*); + + private: + std::atomic _refs; +@@ -593,7 +610,7 @@ + int no_video; + int64_t initial_video_pts; + int64_t initial_audio_pts; +- IDeckLinkVideoInputFrame* last_video_frame; ++ IDeckLinkVideoInputFrame_v14_2_1* last_video_frame; + }; + + decklink_input_callback::decklink_input_callback(AVFormatContext *_avctx) : _refs(1) +@@ -625,7 +642,7 @@ + return ret; + } + +-static int64_t get_pkt_pts(IDeckLinkVideoInputFrame *videoFrame, ++static int64_t get_pkt_pts(IDeckLinkVideoInputFrame_v14_2_1 *videoFrame, + IDeckLinkAudioInputPacket *audioFrame, + int64_t wallclock, + int64_t abs_wallclock, +@@ -679,7 +696,7 @@ + return pts; + } + +-static int get_bmd_timecode(AVFormatContext *avctx, AVTimecode *tc, AVRational frame_rate, BMDTimecodeFormat tc_format, IDeckLinkVideoInputFrame *videoFrame) ++static int get_bmd_timecode(AVFormatContext *avctx, AVTimecode *tc, AVRational frame_rate, BMDTimecodeFormat tc_format, IDeckLinkVideoInputFrame_v14_2_1 *videoFrame) + { + IDeckLinkTimecode *timecode; + int ret = AVERROR(ENOENT); +@@ -701,7 +718,7 @@ + return ret; + } + +-static int get_frame_timecode(AVFormatContext *avctx, decklink_ctx *ctx, AVTimecode *tc, IDeckLinkVideoInputFrame *videoFrame) ++static int get_frame_timecode(AVFormatContext *avctx, decklink_ctx *ctx, AVTimecode *tc, IDeckLinkVideoInputFrame_v14_2_1 *videoFrame) + { + AVRational frame_rate = ctx->video_st->r_frame_rate; + int ret; +@@ -726,7 +743,7 @@ + } + + HRESULT decklink_input_callback::VideoInputFrameArrived( +- IDeckLinkVideoInputFrame *videoFrame, IDeckLinkAudioInputPacket *audioFrame) ++ IDeckLinkVideoInputFrame_v14_2_1 *videoFrame, IDeckLinkAudioInputPacket *audioFrame) + { + void *frameBytes; + void *audioFrameBytes; +@@ -1141,7 +1158,7 @@ + goto error; + + /* Get input device. */ +- if (ctx->dl->QueryInterface(IID_IDeckLinkInput, (void **) &ctx->dli) != S_OK) { ++ if (ctx->dl->QueryInterface(IID_IDeckLinkInput_v14_2_1, (void **) &ctx->dli) != S_OK) { + av_log(avctx, AV_LOG_ERROR, "Could not open input device from '%s'\n", + avctx->url); + ret = AVERROR(EIO); +diff -Naur ffmpeg-7.1.2.old/libavdevice/decklink_enc_c.c ffmpeg-7.1.2/libavdevice/decklink_enc_c.c +--- ffmpeg-7.1.2.old/libavdevice/decklink_enc_c.c 2025-10-27 10:07:00.833476145 +0100 ++++ ffmpeg-7.1.2/libavdevice/decklink_enc_c.c 2025-10-27 10:07:02.004050964 +0100 +@@ -32,6 +32,7 @@ + { "list_devices", "use ffmpeg -sinks decklink instead", OFFSET(list_devices), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, ENC | AV_OPT_FLAG_DEPRECATED}, + { "list_formats", "list supported formats" , OFFSET(list_formats), AV_OPT_TYPE_INT , { .i64 = 0 }, 0, 1, ENC }, + { "preroll" , "video preroll in seconds", OFFSET(preroll ), AV_OPT_TYPE_DOUBLE, { .dbl = 0.5 }, 0, 5, ENC }, ++ { "block_until_available", "wait for device to become available instead of raising error", OFFSET(block_until_available), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, ENC }, + { "vanc_queue_size", "VANC queue buffer size", OFFSET(vanc_queue_size), AV_OPT_TYPE_INT64, { .i64 = (1024 * 1024)}, 0, INT64_MAX, ENC }, + #if BLACKMAGIC_DECKLINK_API_VERSION >= 0x0b000000 + { "duplex_mode" , "duplex mode" , OFFSET(duplex_mode ), AV_OPT_TYPE_INT , { .i64 = 0 }, 0, 5, ENC, .unit = "duplex_mode"}, +diff -Naur ffmpeg-7.1.2.old/libavdevice/decklink_enc.cpp ffmpeg-7.1.2/libavdevice/decklink_enc.cpp +--- ffmpeg-7.1.2.old/libavdevice/decklink_enc.cpp 2025-10-27 10:07:00.832476136 +0100 ++++ ffmpeg-7.1.2/libavdevice/decklink_enc.cpp 2025-10-27 10:07:02.004296918 +0100 +@@ -20,6 +20,8 @@ + */ + + #include ++#include ++ + using std::atomic; + + /* Include internal.h first to avoid conflict between winsock.h (used by +@@ -28,7 +30,7 @@ + #include "libavformat/internal.h" + } + +-#include ++#include + + extern "C" { + #include "libavformat/avformat.h" +@@ -47,8 +49,26 @@ + #include "libklvanc/pixels.h" + #endif + ++extern bool operator==(const REFIID& me, const REFIID& other){ ++ return me.byte0 == other.byte0 && ++ me.byte1 == other.byte1 && ++ me.byte2 == other.byte2 && ++ me.byte3 == other.byte3 && ++ me.byte4 == other.byte4 && ++ me.byte5 == other.byte5 && ++ me.byte6 == other.byte6 && ++ me.byte7 == other.byte7 && ++ me.byte8 == other.byte8 && ++ me.byte9 == other.byte9 && ++ me.byte10 == other.byte10 && ++ me.byte11 == other.byte11 && ++ me.byte12 == other.byte12 && ++ me.byte13 == other.byte13 && ++ me.byte14 == other.byte14 && ++ me.byte15 == other.byte15; ++} + /* DeckLink callback class declaration */ +-class decklink_frame : public IDeckLinkVideoFrame ++class decklink_frame : public IDeckLinkVideoFrame_v14_2_1 + { + public: + decklink_frame(struct decklink_ctx *ctx, AVFrame *avframe, AVCodecID codec_id, int height, int width) : +@@ -111,7 +131,16 @@ + _ancillary->AddRef(); + return S_OK; + } +- virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, LPVOID *ppv) { return E_NOINTERFACE; } ++ virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, LPVOID *ppv) ++ { ++ if (iid == IID_IDeckLinkVideoFrame_v14_2_1) ++ { ++ *ppv = (IDeckLinkVideoFrame_v14_2_1*)this; ++ AddRef(); ++ return S_OK; ++ } ++ return E_NOINTERFACE; ++ } + virtual ULONG STDMETHODCALLTYPE AddRef(void) { return ++_refs; } + virtual ULONG STDMETHODCALLTYPE Release(void) + { +@@ -138,10 +167,10 @@ + std::atomic _refs; + }; + +-class decklink_output_callback : public IDeckLinkVideoOutputCallback ++class decklink_output_callback : public IDeckLinkVideoOutputCallback_v14_2_1 + { + public: +- virtual HRESULT STDMETHODCALLTYPE ScheduledFrameCompleted(IDeckLinkVideoFrame *_frame, BMDOutputFrameCompletionResult result) ++ virtual HRESULT STDMETHODCALLTYPE ScheduledFrameCompleted(IDeckLinkVideoFrame_v14_2_1 *_frame, BMDOutputFrameCompletionResult result) + { + decklink_frame *frame = static_cast(_frame); + struct decklink_ctx *ctx = frame->_ctx; +@@ -155,11 +184,22 @@ + ctx->frames_buffer_available_spots++; + pthread_cond_broadcast(&ctx->cond); + pthread_mutex_unlock(&ctx->mutex); +- ++ pthread_mutex_lock(&ctx->mutex); ++ ctx->outstanding_frames--; ++ pthread_mutex_unlock(&ctx->mutex); + return S_OK; + } + virtual HRESULT STDMETHODCALLTYPE ScheduledPlaybackHasStopped(void) { return S_OK; } +- virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, LPVOID *ppv) { return E_NOINTERFACE; } ++ virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, LPVOID *ppv) ++ { ++ if (iid == IID_IDeckLinkVideoOutputCallback_v14_2_1) ++ { ++ *ppv = (IDeckLinkVideoOutputCallback_v14_2_1*)this; ++ AddRef(); ++ return S_OK; ++ } ++ return E_NOINTERFACE; ++ } + virtual ULONG STDMETHODCALLTYPE AddRef(void) { return 1; } + virtual ULONG STDMETHODCALLTYPE Release(void) { return 1; } + }; +@@ -204,9 +244,14 @@ + av_log(avctx, AV_LOG_WARNING, "Could not enable video output with VANC! Trying without...\n"); + ctx->supports_vanc = 0; + } +- if (!ctx->supports_vanc && ctx->dlo->EnableVideoOutput(ctx->bmd_mode, bmdVideoOutputFlagDefault) != S_OK) { +- av_log(avctx, AV_LOG_ERROR, "Could not enable video output!\n"); +- return -1; ++ while (!ctx->supports_vanc && ctx->dlo->EnableVideoOutput(ctx->bmd_mode, bmdVideoOutputFlagDefault) != S_OK) { ++ if (!ctx->block_until_available) { ++ av_log(avctx, AV_LOG_ERROR, "Could not enable video output!\n"); ++ return -1; ++ }; ++ av_log(avctx, AV_LOG_WARNING, "Could not enable video output, waiting for device...\n"); ++ usleep(1000000 / 60); ++ continue; + } + + /* Set callback. */ +@@ -370,6 +415,10 @@ + struct decklink_cctx *cctx = (struct decklink_cctx *)avctx->priv_data; + struct decklink_ctx *ctx = (struct decklink_ctx *)cctx->ctx; + ++ av_log(avctx, AV_LOG_DEBUG, "Wating for %d outstanding frames to return their results\n", ctx->outstanding_frames); ++ while (ctx->outstanding_frames > 0){ ++ usleep(1); ++ } + if (ctx->playback_started) { + BMDTimeValue actual; + ctx->dlo->StopScheduledPlayback(ctx->last_pts * ctx->bmd_tb_num, +@@ -739,7 +788,7 @@ + ctx->first_pts = pkt->pts; + + /* Schedule frame for playback. */ +- hr = ctx->dlo->ScheduleVideoFrame((class IDeckLinkVideoFrame *) frame, ++ hr = ctx->dlo->ScheduleVideoFrame((class IDeckLinkVideoFrame_v14_2_1 *) frame, + pkt->pts * ctx->bmd_tb_num, + ctx->bmd_tb_num, ctx->bmd_tb_den); + /* Pass ownership to DeckLink, or release on failure */ +@@ -750,6 +799,9 @@ + return AVERROR(EIO); + } + ++ pthread_mutex_lock(&ctx->mutex); ++ ctx->outstanding_frames++; ++ pthread_mutex_unlock(&ctx->mutex); + ctx->dlo->GetBufferedVideoFrameCount(&buffered); + av_log(avctx, AV_LOG_DEBUG, "Buffered video frames: %d.\n", (int) buffered); + if (pkt->pts > 2 && buffered <= 2) +@@ -850,6 +902,7 @@ + ctx->list_devices = cctx->list_devices; + ctx->list_formats = cctx->list_formats; + ctx->preroll = cctx->preroll; ++ ctx->block_until_available = cctx->block_until_available; + ctx->duplex_mode = cctx->duplex_mode; + ctx->first_pts = AV_NOPTS_VALUE; + if (cctx->link > 0 && (unsigned int)cctx->link < FF_ARRAY_ELEMS(decklink_link_conf_map)) +@@ -874,7 +927,7 @@ + return ret; + + /* Get output device. */ +- if (ctx->dl->QueryInterface(IID_IDeckLinkOutput, (void **) &ctx->dlo) != S_OK) { ++ if (ctx->dl->QueryInterface(IID_IDeckLinkOutput_v14_2_1, (void **) &ctx->dlo) != S_OK) { + av_log(avctx, AV_LOG_ERROR, "Could not open output device from '%s'\n", + avctx->url); + ret = AVERROR(EIO); diff --git a/anda/multimedia/ffmpeg/ffmpeg-nvcc.patch b/anda/multimedia/ffmpeg/ffmpeg-nvcc.patch new file mode 100644 index 0000000000..7dcf2259c3 --- /dev/null +++ b/anda/multimedia/ffmpeg/ffmpeg-nvcc.patch @@ -0,0 +1,12 @@ +diff -Naur ffmpeg-7.1.2.old/configure ffmpeg-7.1.2/configure +--- ffmpeg-7.1.2.old/configure 2025-10-27 10:07:01.862821941 +0100 ++++ ffmpeg-7.1.2/configure 2025-10-27 10:07:02.140469997 +0100 +@@ -6766,7 +6766,7 @@ + nvccflags=$nvccflags_default + fi + +-nvccflags="$nvccflags -std=c++11" ++nvccflags="$nvccflags -std=c++14" + + if enabled x86_64 || enabled ppc64 || enabled aarch64; then + nvccflags="$nvccflags -m64" diff --git a/anda/multimedia/ffmpeg/ffmpeg-svt-vp9.patch b/anda/multimedia/ffmpeg/ffmpeg-svt-vp9.patch index 351c801512..6bdae213ed 100644 --- a/anda/multimedia/ffmpeg/ffmpeg-svt-vp9.patch +++ b/anda/multimedia/ffmpeg/ffmpeg-svt-vp9.patch @@ -1,6 +1,6 @@ -diff -Naur ffmpeg-7.1.1.old/configure ffmpeg-7.1.1/configure ---- ffmpeg-7.1.1.old/configure 2025-03-24 10:54:38.202757211 +0100 -+++ ffmpeg-7.1.1/configure 2025-03-24 10:54:38.618546808 +0100 +diff -Naur ffmpeg-7.1.2.old/configure ffmpeg-7.1.2/configure +--- ffmpeg-7.1.2.old/configure 2025-10-27 10:07:00.645474486 +0100 ++++ ffmpeg-7.1.2/configure 2025-10-27 10:07:01.726484024 +0100 @@ -278,6 +278,7 @@ --enable-libsrt enable Haivision SRT protocol via libsrt [no] --enable-libssh enable SFTP protocol via libssh [no] @@ -9,7 +9,7 @@ diff -Naur ffmpeg-7.1.1.old/configure ffmpeg-7.1.1/configure --enable-libtensorflow enable TensorFlow as a DNN module backend for DNN based filters like sr [no] --enable-libtesseract enable Tesseract, needed for ocr filter [no] -@@ -1953,6 +1954,7 @@ +@@ -1955,6 +1956,7 @@ libshaderc libshine libsmbclient @@ -17,7 +17,7 @@ diff -Naur ffmpeg-7.1.1.old/configure ffmpeg-7.1.1/configure libsnappy libsoxr libspeex -@@ -3575,6 +3577,7 @@ +@@ -3579,6 +3581,7 @@ libvpx_vp8_encoder_deps="libvpx" libvpx_vp9_decoder_deps="libvpx" libvpx_vp9_encoder_deps="libvpx" @@ -25,17 +25,17 @@ diff -Naur ffmpeg-7.1.1.old/configure ffmpeg-7.1.1/configure libvvenc_encoder_deps="libvvenc" libwebp_encoder_deps="libwebp" libwebp_anim_encoder_deps="libwebp" -@@ -6997,6 +7000,7 @@ - enabled libspeex && require_pkg_config libspeex speex speex/speex.h speex_decoder_init - enabled libsrt && require_pkg_config libsrt "srt >= 1.3.0" srt/srt.h srt_socket - enabled libsvtav1 && require_pkg_config libsvtav1 "SvtAv1Enc >= 0.9.0" EbSvtAv1Enc.h svt_av1_enc_init_handle +@@ -7028,6 +7031,7 @@ + die "ERROR: libtwolame must be installed and version must be >= 0.3.10"; } + enabled libuavs3d && require_pkg_config libuavs3d "uavs3d >= 1.1.41" uavs3d.h uavs3d_decode + enabled libv4l2 && require_pkg_config libv4l2 libv4l2 libv4l2.h v4l2_ioctl +enabled libsvtvp9 && require_pkg_config libsvtvp9 SvtVp9Enc EbSvtVp9Enc.h eb_vp9_svt_init_handle - enabled libtensorflow && require libtensorflow tensorflow/c/c_api.h TF_Version -ltensorflow - enabled libtesseract && require_pkg_config libtesseract tesseract tesseract/capi.h TessBaseAPICreate - enabled libtheora && require libtheora theora/theoraenc.h th_info_init -ltheoraenc -ltheoradec -logg -diff -Naur ffmpeg-7.1.1.old/libavcodec/allcodecs.c ffmpeg-7.1.1/libavcodec/allcodecs.c ---- ffmpeg-7.1.1.old/libavcodec/allcodecs.c 2025-03-24 10:54:38.119756212 +0100 -+++ ffmpeg-7.1.1/libavcodec/allcodecs.c 2025-03-24 10:54:38.619934060 +0100 + enabled libvidstab && require_pkg_config libvidstab "vidstab >= 0.98" vid.stab/libvidstab.h vsMotionDetectInit + enabled libvmaf && require_pkg_config libvmaf "libvmaf >= 2.0.0" libvmaf.h vmaf_init + enabled libvmaf && check_pkg_config libvmaf_cuda "libvmaf >= 2.0.0" libvmaf_cuda.h vmaf_cuda_state_init +diff -Naur ffmpeg-7.1.2.old/libavcodec/allcodecs.c ffmpeg-7.1.2/libavcodec/allcodecs.c +--- ffmpeg-7.1.2.old/libavcodec/allcodecs.c 2025-10-27 10:07:00.517473357 +0100 ++++ ffmpeg-7.1.2/libavcodec/allcodecs.c 2025-10-27 10:07:01.728697010 +0100 @@ -796,6 +796,7 @@ extern const FFCodec ff_libvo_amrwbenc_encoder; extern const FFCodec ff_libvorbis_encoder; @@ -44,9 +44,9 @@ diff -Naur ffmpeg-7.1.1.old/libavcodec/allcodecs.c ffmpeg-7.1.1/libavcodec/allco extern const FFCodec ff_libvpx_vp8_encoder; extern const FFCodec ff_libvpx_vp8_decoder; extern FFCodec ff_libvpx_vp9_encoder; -diff -Naur ffmpeg-7.1.1.old/libavcodec/libsvt_vp9.c ffmpeg-7.1.1/libavcodec/libsvt_vp9.c ---- ffmpeg-7.1.1.old/libavcodec/libsvt_vp9.c 1970-01-01 01:00:00.000000000 +0100 -+++ ffmpeg-7.1.1/libavcodec/libsvt_vp9.c 2025-03-24 10:54:38.620176868 +0100 +diff -Naur ffmpeg-7.1.2.old/libavcodec/libsvt_vp9.c ffmpeg-7.1.2/libavcodec/libsvt_vp9.c +--- ffmpeg-7.1.2.old/libavcodec/libsvt_vp9.c 1970-01-01 01:00:00.000000000 +0100 ++++ ffmpeg-7.1.2/libavcodec/libsvt_vp9.c 2025-10-27 10:07:01.729099438 +0100 @@ -0,0 +1,701 @@ +/* +* Scalable Video Technology for VP9 encoder library plugin @@ -260,11 +260,11 @@ diff -Naur ffmpeg-7.1.1.old/libavcodec/libsvt_vp9.c ffmpeg-7.1.1/libavcodec/libs + param->intra_period = avctx->gop_size - 1; + + if (avctx->framerate.num > 0 && avctx->framerate.den > 0) { -+ param->frame_rate_numerator = avctx->framerate.num; -+ param->frame_rate_denominator = avctx->framerate.den * avctx->ticks_per_frame; ++ param->frame_rate_numerator = avctx->framerate.num; ++ param->frame_rate_denominator = avctx->framerate.den; + } else { -+ param->frame_rate_numerator = avctx->time_base.den; -+ param->frame_rate_denominator = avctx->time_base.num * avctx->ticks_per_frame; ++ param->frame_rate_numerator = avctx->time_base.den; ++ param->frame_rate_denominator = avctx->time_base.num; + } + + if (param->rate_control_mode) { @@ -749,9 +749,9 @@ diff -Naur ffmpeg-7.1.1.old/libavcodec/libsvt_vp9.c ffmpeg-7.1.1/libavcodec/libs + .defaults = eb_enc_defaults, + .p.wrapper_name = "libsvt_vp9", +}; -diff -Naur ffmpeg-7.1.1.old/libavcodec/Makefile ffmpeg-7.1.1/libavcodec/Makefile ---- ffmpeg-7.1.1.old/libavcodec/Makefile 2025-03-24 10:54:37.935753999 +0100 -+++ ffmpeg-7.1.1/libavcodec/Makefile 2025-03-24 10:54:38.620394147 +0100 +diff -Naur ffmpeg-7.1.2.old/libavcodec/Makefile ffmpeg-7.1.2/libavcodec/Makefile +--- ffmpeg-7.1.2.old/libavcodec/Makefile 2025-10-27 10:07:00.259471080 +0100 ++++ ffmpeg-7.1.2/libavcodec/Makefile 2025-10-27 10:07:01.729297932 +0100 @@ -1157,6 +1157,7 @@ OBJS-$(CONFIG_LIBVORBIS_DECODER) += libvorbisdec.o OBJS-$(CONFIG_LIBVORBIS_ENCODER) += libvorbisenc.o \ diff --git a/anda/multimedia/ffmpeg/ffmpeg.spec b/anda/multimedia/ffmpeg/ffmpeg.spec index 90683c835e..204be24403 100644 --- a/anda/multimedia/ffmpeg/ffmpeg.spec +++ b/anda/multimedia/ffmpeg/ffmpeg.spec @@ -1,4 +1,13 @@ -%define _distro_extra_cflags -Wno-incompatible-pointer-types +%bcond bootstrap 1 + +%if %{with bootstrap} +%bcond chromaprint 0 +%bcond lcevcdec 0 +%else +%bcond chromaprint 1 +%bcond lcevcdec 1 +%endif + %global _lto_cflags %{nil} %global avcodec_soversion 61 @@ -12,8 +21,8 @@ Summary: A complete solution to record, convert and stream audio and video Name: ffmpeg -Version: 7.1.2 -Release: 1%?dist +Version: 8.0.1 +Release: 3%?dist License: LGPLv3+ URL: http://%{name}.org/ Epoch: 1 @@ -22,17 +31,24 @@ Source0: http://%{name}.org/releases/%{name}-%{version}.tar.xz # https://github.com/OpenVisualCloud/SVT-VP9/tree/master/ffmpeg_plugin Patch0: %{name}-svt-vp9.patch -# https://github.com/HandBrake/HandBrake/tree/e117cfe7fca37abeec59ea4201e5d93ed7477746 -Patch2: %{name}-HandBrake.patch +# https://github.com/HandBrake/HandBrake/tree/8902805364f00e0d420c4d4b33053a31d27045ab +Patch1: %{name}-HandBrake.patch # https://bugzilla.redhat.com/show_bug.cgi?id=2240127 # Reference: https://crbug.com/1306560 -Patch3: %{name}-chromium.patch +Patch2: %{name}-chromium.patch +# Fix build with recent NVCC: +Patch3: %{name}-nvcc.patch +# https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/f8a300c6739ea2ca648579d7faf3ae9811b9f19a +Patch4: %{name}-cuda-13.patch # Support LCEVCdec 4.0+: Patch5: https://aur.archlinux.org/cgit/aur.git/plain/080-ffmpeg-lcevcdec4.0.0-fix.patch?h=ffmpeg-full#/%{name}-LCEVCdec-4.patch +# https://github.com/magarnicle/FFmpeg/commits/DeckLink_SDK_14_4/ +Patch6: %{name}-decklink-14.patch BuildRequires: AMF-devel >= 1.4.28 BuildRequires: bzip2-devel BuildRequires: codec2-devel +BuildRequires: decklink-devel >= 14.2 BuildRequires: doxygen BuildRequires: frei0r-devel BuildRequires: gmp-devel @@ -41,7 +57,9 @@ BuildRequires: ilbc-devel BuildRequires: lame-devel >= 3.98.3 BuildRequires: ladspa-devel BuildRequires: libavc1394-devel +%if %{with chromaprint} BuildRequires: libchromaprint-devel +%endif BuildRequires: libgcrypt-devel BuildRequires: libiec61883-devel BuildRequires: libklvanc-devel @@ -71,7 +89,6 @@ BuildRequires: pkgconfig(dav1d) >= 0.5.0 BuildRequires: pkgconfig(davs2) >= 1.6.0 BuildRequires: pkgconfig(dvdnav) >= 6.1.1 BuildRequires: pkgconfig(fdk-aac) -BuildRequires: pkgconfig(ffnvcodec) >= 12.0.16.0 BuildRequires: pkgconfig(fontconfig) BuildRequires: pkgconfig(freetype2) BuildRequires: pkgconfig(fribidi) @@ -80,7 +97,9 @@ BuildRequires: pkgconfig(jack) BuildRequires: pkgconfig(kvazaar) >= 0.8.1 BuildRequires: pkgconfig(lc3) >= 1.1.0 BuildRequires: pkgconfig(lcms2) >= 2.13 +%if %{with lcevcdec} BuildRequires: pkgconfig(lcevc_dec) >= 2.0.0 +%endif BuildRequires: pkgconfig(libaribcaption) >= 1.1.1 BuildRequires: pkgconfig(libass) >= 0.11.0 BuildRequires: pkgconfig(libbluray) @@ -129,6 +148,7 @@ BuildRequires: pkgconfig(shaderc) >= 2019.1 BuildRequires: pkgconfig(smbclient) BuildRequires: pkgconfig(speex) BuildRequires: pkgconfig(srt) >= 1.3.0 +BuildRequires: pkgconfig(SvtAv1Enc) >= 0.9.0 BuildRequires: pkgconfig(tesseract) BuildRequires: pkgconfig(uavs3d) >= 1.1.41 BuildRequires: pkgconfig(vapoursynth-script) >= 42 @@ -142,6 +162,8 @@ BuildRequires: pkgconfig(xcb) >= 1.4 BuildRequires: pkgconfig(xcb-shape) BuildRequires: pkgconfig(xcb-shm) BuildRequires: pkgconfig(xcb-xfixes) +BuildRequires: pkgconfig(xevd) >= 0.4.1 +BuildRequires: pkgconfig(xeve) >= 0.4.3 BuildRequires: pkgconfig(xext) BuildRequires: pkgconfig(x11) BuildRequires: pkgconfig(x264) @@ -152,17 +174,16 @@ BuildRequires: pkgconfig(zlib) BuildRequires: pkgconfig(zvbi-0.2) >= 0.2.28 %ifarch x86_64 aarch64 +BuildRequires: cuda-cudart-devel +BuildRequires: cuda-nvcc BuildRequires: pkgconfig(ffnvcodec) >= 12.0.16.0 %endif %ifarch x86_64 BuildRequires: pkgconfig(libmfx) BuildRequires: pkgconfig(libvmaf) >= 2.0.0 -BuildRequires: pkgconfig(SvtAv1Enc) >= 0.9.0 BuildRequires: pkgconfig(SvtVp9Enc) BuildRequires: pkgconfig(vpl) >= 2.6 -#BuildRequires: pkgconfig(xevd) >= 0.4.1 -#BuildRequires: pkgconfig(xeve) >= 0.4.3 %endif Obsoletes: %{name}-free < %{epoch}:%{version}-%{release} @@ -413,8 +434,12 @@ This subpackage contains the headers for FFmpeg libswscale. --enable-avformat \ --enable-alsa \ --enable-bzlib \ +%if %{with chromaprint} --enable-chromaprint \ - --disable-cuda-nvcc \ +%else + --disable-chromaprint \ +%endif + --enable-decklink \ --enable-frei0r \ --enable-gcrypt \ --enable-gmp \ @@ -423,7 +448,6 @@ This subpackage contains the headers for FFmpeg libswscale. --enable-iconv \ --enable-ladspa \ --enable-lcms2 \ - --enable-libass \ --enable-libaom \ --enable-libaribb24 \ --enable-libaribcaption \ @@ -454,7 +478,11 @@ This subpackage contains the headers for FFmpeg libswscale. --enable-libkvazaar \ --enable-liblc3 \ --disable-liblensfun \ +%if %{with lcevcdec} --enable-liblcevc-dec \ +%else + --disable-liblcevc-dec \ +%endif --enable-libmodplug \ --enable-libmp3lame \ --enable-libmysofa \ @@ -480,6 +508,7 @@ This subpackage contains the headers for FFmpeg libswscale. --disable-libshine \ --enable-libsmbclient \ --enable-libsnappy \ + --enable-libsvtav1 \ --enable-libsoxr \ --enable-libspeex \ --enable-libsrt \ @@ -505,6 +534,8 @@ This subpackage contains the headers for FFmpeg libswscale. --enable-libxcb-shape \ --enable-libxcb-shm \ --enable-libxcb-xfixes \ + --enable-libxevd \ + --enable-libxeve \ --enable-libxml2 \ --enable-libxvid \ --enable-libzimg \ @@ -539,6 +570,8 @@ This subpackage contains the headers for FFmpeg libswscale. --prefix=%{_prefix} \ --shlibdir=%{_libdir} \ %ifarch x86_64 aarch64 + --enable-cuda-llvm \ + --enable-cuda-nvcc \ --enable-cuvid \ --enable-ffnvcodec \ --enable-nvdec \ @@ -546,12 +579,9 @@ This subpackage contains the headers for FFmpeg libswscale. --extra-cflags="-I%{_includedir}/cuda" \ %endif %ifarch x86_64 - --enable-libsvtav1 \ --enable-libsvtvp9 \ --enable-libvmaf \ --enable-libvpl \ -# --enable-libxevd \ -# --enable-libxeve \ %endif %make_build V=1 diff --git a/anda/multimedia/ffmpeg/update.rhai b/anda/multimedia/ffmpeg/update.rhai index abe27e5dfd..ee7d987fd0 100644 --- a/anda/multimedia/ffmpeg/update.rhai +++ b/anda/multimedia/ffmpeg/update.rhai @@ -4,11 +4,47 @@ import "andax/spec.rhai" as spec; // rpm.version(find(`ffmpeg-([\d.]+?)\.tar\.xz`, get("https://ffmpeg.org/download.html"), 1)); rpm.version(bump::bodhi("ffmpeg", bump::as_bodhi_ver(labels.branch))); +open_file("anda/multimedia/ffmpeg/VERSION_x264.txt", "w").write(bump::madoguchi("x264", labels.branch)); open_file("anda/multimedia/ffmpeg/VERSION_x265.txt", "w").write(bump::madoguchi("x265", labels.branch)); +try +{ open_file("anda/multimedia/ffmpeg/VERSION_tesseract.txt", "w").write(bump::bodhi("tesseract", bump::as_bodhi_ver(labels.branch))); +} +catch +{ +} +try +{ +open_file("anda/multimedia/ffmpeg/VERSION_rubberband.txt", "w").write(bump::bodhi("rubberband", bump::as_bodhi_ver(labels.branch))); +} +catch +{ +} +try +{ +open_file("anda/multimedia/ffmpeg/VERSION_libbluray.txt", "w").write(bump::bodhi("libbluray", bump::as_bodhi_ver(labels.branch))); +} +catch +{ +} +try +{ +open_file("anda/multimedia/ffmpeg/VERSION_libchromaprint.txt", "w").write(bump::bodhi("libchromaprint", bump::as_bodhi_ver(labels.branch))); +} +catch +{ +} open_file("anda/multimedia/ffmpeg/VERSION_vvenc.txt", "w").write(bump::madoguchi("vvenc-libs", labels.branch)); -// open_file("anda/multimedia/ffmpeg/VERSION_libnpp.txt", "w").write(bump::madoguchi("libnpp", labels.branch)); +open_file("anda/multimedia/ffmpeg/VERSION_xeve.txt", "w").write(bump::madoguchi("xeve", labels.branch)); +open_file("anda/multimedia/ffmpeg/VERSION_xevd.txt", "w").write(bump::madoguchi("xevd", labels.branch)); open_file("anda/multimedia/ffmpeg/VERSION_LCEVCdec.txt", "w").write(bump::madoguchi("LCEVCdec", labels.branch)); +try +{ +open_file("anda/multimedia/ffmpeg/VERSION_svt-av1.txt", "w").write(bump::bodhi("svt-av1", bump::as_bodhi_ver(labels.branch))); +} +catch +{ +} let dir = sub(`/[^/]+$`, "", __script_path); if sh("[[ `git status " + dir + " --porcelain` ]] && exit 1 || exit 0", #{}).ctx.rc == 1 { diff --git a/anda/multimedia/gpu-screen-recorder/anda.hcl b/anda/multimedia/gpu-screen-recorder/anda.hcl new file mode 100644 index 0000000000..637e4d9201 --- /dev/null +++ b/anda/multimedia/gpu-screen-recorder/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "gpu-screen-recorder.spec" + } +} \ No newline at end of file diff --git a/anda/multimedia/gpu-screen-recorder/gpu-screen-recorder.spec b/anda/multimedia/gpu-screen-recorder/gpu-screen-recorder.spec new file mode 100644 index 0000000000..20c9924e5f --- /dev/null +++ b/anda/multimedia/gpu-screen-recorder/gpu-screen-recorder.spec @@ -0,0 +1,79 @@ +Name: gpu-screen-recorder +Version: 5.13.4 +Release: 1%{?dist} +Summary: A shadowplay-like screen recorder for Linux + +License: GPL-3.0-or-later + +URL: https://git.dec05eba.com/%{name}/about + +Source: https://dec05eba.com/snapshot/%{name}.git.%{version}.tar.gz + +BuildRequires: gcc +BuildRequires: (gcc-g++ or gcc-c++) +BuildRequires: pkgconfig(libva) +BuildRequires: pkgconfig(libdrm) +BuildRequires: pkgconfig(libva-drm) +BuildRequires: vulkan-headers +BuildRequires: pkgconfig(libcap) +BuildRequires: pkgconfig(wayland-client) +BuildRequires: pkgconfig(wayland-egl) +BuildRequires: pkgconfig(libpulse) +BuildRequires: (ffmpeg-free-devel or ffmpeg-devel or ffmpeg-7-mini-devel) +BuildRequires: pkgconfig(x11) +BuildRequires: pkgconfig(xdamage) +BuildRequires: pkgconfig(xcomposite) +BuildRequires: pkgconfig(xrandr) +BuildRequires: pkgconfig(xfixes) +BuildRequires: meson +BuildRequires: pkgconfig(dbus-1) +BuildRequires: pkgconfig(libspa-0.2) +BuildRequires: pkgconfig(libglvnd) +Requires(post): libcap +BuildRequires: systemd-rpm-macros + +Packager: Willow Reed + +%description +Shadowplay-like screen recorder for Linux. Uses GPU acceleration to record in H.264, HEVC, AV1, VP8, or VP9. + +%prep +%autosetup -c + +%build +%meson -Dcapabilities=false +%meson_build + +%install +%meson_install + +%check +%meson_test + +%post +%systemd_user_post gpu-screen-recorder.service + +%preun +%systemd_user_preun gpu-screen-recorder.service + +%postun +%systemd_user_postun gpu-screen-recorder.service + +%files +%license LICENSE +%doc README.md +%{_bindir}/%{name} +%caps(cap_sys_admin+ep) %{_bindir}/gsr-kms-server +%{_datadir}/%{name}/scripts/*.sh +%{_includedir}/gsr/plugin.h +%{_userunitdir}/%{name}.service +%{_modprobedir}/gsr-nvidia.conf +%{_mandir}/man1/gsr-kms-server.1* +%{_mandir}/man1/%{name}.1* + +%changelog +* Sun Mar 15 2026 Willow C Reed +- Fix package source + +* Fri Jan 02 2026 Willow Reed +- Initial commit \ No newline at end of file diff --git a/anda/multimedia/gpu-screen-recorder/update.rhai b/anda/multimedia/gpu-screen-recorder/update.rhai new file mode 100644 index 0000000000..d0f6ae76b3 --- /dev/null +++ b/anda/multimedia/gpu-screen-recorder/update.rhai @@ -0,0 +1 @@ +rpm.version(find_all(`/gpu-screen-recorder/tag/\?h=([\d.]+)`, get(`https://git.dec05eba.com/gpu-screen-recorder/refs/`))[0][1]); \ No newline at end of file diff --git a/anda/multimedia/gstreamer1/gstreamer1-plugin-icamerasrc/gstreamer1-plugin-icamerasrc.spec b/anda/multimedia/gstreamer1/gstreamer1-plugin-icamerasrc/gstreamer1-plugin-icamerasrc.spec index 14bf43da0e..6b3e12d881 100644 --- a/anda/multimedia/gstreamer1/gstreamer1-plugin-icamerasrc/gstreamer1-plugin-icamerasrc.spec +++ b/anda/multimedia/gstreamer1/gstreamer1-plugin-icamerasrc/gstreamer1-plugin-icamerasrc.spec @@ -1,5 +1,5 @@ -%global fulldate 2025-09-26 -%global commit 4fb31db76b618aae72184c59314b839dedb42689 +%global fulldate 2026-04-23 +%global commit 867c5b6ab7925c9b69b8374873a832266d97d7e5 %global commit_date %(echo %{fulldate} | sed 's/-//g') %global shortcommit %(c=%{commit}; echo ${c:0:7}) @@ -44,12 +44,14 @@ Development files for the GStreamer IPU6 camera plugin. %prep %autosetup -p1 -n icamerasrc-%{commit} -autoreconf -vif -%build +%conf +autoreconf -vif export CHROME_SLIM_CAMHAL=ON export STRIP_VIRTUAL_CHANNEL_CAMHAL=ON %configure --enable-gstdrmformat --with-haladaptor + +%build %make_build %install diff --git a/anda/multimedia/gstreamer1/gstreamer1-plugin-libav/VERSION_ffmpeg.txt b/anda/multimedia/gstreamer1/gstreamer1-plugin-libav/VERSION_ffmpeg.txt new file mode 100644 index 0000000000..ce0abf6b25 --- /dev/null +++ b/anda/multimedia/gstreamer1/gstreamer1-plugin-libav/VERSION_ffmpeg.txt @@ -0,0 +1 @@ +7.1.2 diff --git a/anda/multimedia/gstreamer1/gstreamer1-plugin-libav/anda.hcl b/anda/multimedia/gstreamer1/gstreamer1-plugin-libav/anda.hcl index f6d20ce1a6..09af9d505f 100644 --- a/anda/multimedia/gstreamer1/gstreamer1-plugin-libav/anda.hcl +++ b/anda/multimedia/gstreamer1/gstreamer1-plugin-libav/anda.hcl @@ -2,9 +2,10 @@ project pkg { arches = ["x86_64", "aarch64", "i386"] rpm { spec = "gstreamer1-plugin-libav.spec" + extra_repos = ["https://repos.fyralabs.com/terrarawhide-multimedia"] } labels { - subrepo = "extras" + subrepo = "multimedia" mock = 1 updbranch = 1 } diff --git a/anda/multimedia/gstreamer1/gstreamer1-plugin-libav/gstreamer1-plugin-libav.spec b/anda/multimedia/gstreamer1/gstreamer1-plugin-libav/gstreamer1-plugin-libav.spec index c863c47288..607c6735ae 100644 --- a/anda/multimedia/gstreamer1/gstreamer1-plugin-libav/gstreamer1-plugin-libav.spec +++ b/anda/multimedia/gstreamer1/gstreamer1-plugin-libav/gstreamer1-plugin-libav.spec @@ -1,6 +1,6 @@ Name: gstreamer1-plugin-libav -Version: 1.26.6 -Release: 1%?dist +Version: 1.28.2 +Release: 1%{?dist} Epoch: 1 Summary: GStreamer Libav plugin License: LGPL-2.0-or-later @@ -38,7 +38,7 @@ GStreamer plugin containing libav library code. #export CFLAGS="%{optflags} -Wno-error=attributes" %meson \ -D package-name="Fedora GStreamer-plugins-ugly package" \ - -D package-origin="https://terra.fyralabs.com" \ + -D package-origin="https://terrapkg.com" \ -D doc=disabled %meson_build diff --git a/anda/multimedia/gstreamer1/gstreamer1-plugin-libav/update.rhai b/anda/multimedia/gstreamer1/gstreamer1-plugin-libav/update.rhai index 9c2d9f5b38..06df849749 100644 --- a/anda/multimedia/gstreamer1/gstreamer1-plugin-libav/update.rhai +++ b/anda/multimedia/gstreamer1/gstreamer1-plugin-libav/update.rhai @@ -1,5 +1,14 @@ import "andax/bump_extras.rhai" as bump; +import "andax/spec.rhai" as spec; let vr = bump::bodhi_vr("gstreamer1-plugin-libav", bump::as_bodhi_ver(labels.branch)); rpm.version(vr[1]); -rpm.release(vr[2]); +//rpm.release(vr[2]); + +open_file("anda/multimedia/gstreamer1/gstreamer1-plugin-libav/VERSION_ffmpeg.txt", "w").write(bump::madoguchi("ffmpeg", labels.branch)); + +let dir = sub(`/[^/]+$`, "", __script_path); +if sh("[[ `git status " + dir + " --porcelain` ]] && exit 1 || exit 0", #{}).ctx.rc == 1 { + let rel = spec::get_release(rpm).parse_int(); + rpm.release(rel + 1); +} diff --git a/anda/multimedia/gstreamer1/gstreamer1-plugins-bad/LCEVCdec_VERSION.txt b/anda/multimedia/gstreamer1/gstreamer1-plugins-bad/LCEVCdec_VERSION.txt index 1454f6ed4b..c4e41f9459 100644 --- a/anda/multimedia/gstreamer1/gstreamer1-plugins-bad/LCEVCdec_VERSION.txt +++ b/anda/multimedia/gstreamer1/gstreamer1-plugins-bad/LCEVCdec_VERSION.txt @@ -1 +1 @@ -4.0.1 +4.0.3 diff --git a/anda/multimedia/gstreamer1/gstreamer1-plugins-bad/OPENCV_VERSION.txt b/anda/multimedia/gstreamer1/gstreamer1-plugins-bad/OPENCV_VERSION.txt index 91f3b43844..01b73abe55 100644 --- a/anda/multimedia/gstreamer1/gstreamer1-plugins-bad/OPENCV_VERSION.txt +++ b/anda/multimedia/gstreamer1/gstreamer1-plugins-bad/OPENCV_VERSION.txt @@ -1 +1 @@ -4.11.0 \ No newline at end of file +4.13.0 \ No newline at end of file diff --git a/anda/multimedia/gstreamer1/gstreamer1-plugins-bad/OPENH264_VERSION.txt b/anda/multimedia/gstreamer1/gstreamer1-plugins-bad/OPENH264_VERSION.txt new file mode 100644 index 0000000000..914ec96711 --- /dev/null +++ b/anda/multimedia/gstreamer1/gstreamer1-plugins-bad/OPENH264_VERSION.txt @@ -0,0 +1 @@ +2.6.0 \ No newline at end of file diff --git a/anda/multimedia/gstreamer1/gstreamer1-plugins-bad/anda.hcl b/anda/multimedia/gstreamer1/gstreamer1-plugins-bad/anda.hcl index e031b556e2..ac46457247 100644 --- a/anda/multimedia/gstreamer1/gstreamer1-plugins-bad/anda.hcl +++ b/anda/multimedia/gstreamer1/gstreamer1-plugins-bad/anda.hcl @@ -2,9 +2,10 @@ project pkg { arches = ["x86_64", "aarch64", "i386"] rpm { spec = "gstreamer1-plugins-bad.spec" + extra_repos = ["https://repos.fyralabs.com/terrarawhide-multimedia"] } labels { - subrepo = "extras" + subrepo = "multimedia" mock = 1 updbranch = 1 } diff --git a/anda/multimedia/gstreamer1/gstreamer1-plugins-bad/gstreamer1-plugins-bad.spec b/anda/multimedia/gstreamer1/gstreamer1-plugins-bad/gstreamer1-plugins-bad.spec index aed02f33a1..d35d849d85 100644 --- a/anda/multimedia/gstreamer1/gstreamer1-plugins-bad/gstreamer1-plugins-bad.spec +++ b/anda/multimedia/gstreamer1/gstreamer1-plugins-bad/gstreamer1-plugins-bad.spec @@ -1,10 +1,10 @@ %define _legacy_common_support 1 -%global __brp_check_rpaths %{nil} +%undefine __brp_check_rpaths %global majorminor 1.0 Name: gstreamer1-plugins-bad -Version: 1.26.6 -Release: 2%?dist +Version: 1.28.2 +Release: 1%{?dist} Epoch: 2 Summary: GStreamer streaming media framework "bad" plugins License: LGPL-2.0-or-later and LGPL-2.0-only @@ -24,7 +24,7 @@ Provides: %{name}-free%{?_isa} = %{?epoch}:%{version}-%{release} Obsoletes: %{name}-free-extras < %{?epoch}:%{version}-%{release} Provides: %{name}-free-extras = %{?epoch}:%{version}-%{release} Provides: %{name}-free-extras%{?_isa} = %{?epoch}:%{version}-%{release} -#Obsoletes: %{name}-freeworld < %{?epoch}:%{version}-%{release} +Obsoletes: %{name}-freeworld < %{?epoch}:%{version}-%{release} Provides: %{name}-freeworld = %{?epoch}:%{version}-%{release} Provides: %{name}-freeworld%{?_isa} = %{?epoch}:%{version}-%{release} Obsoletes: %{name}-nonfree < %{?epoch}:%{version}-%{release} @@ -42,10 +42,12 @@ Provides: gstreamer1-plugin-openh264%{?_isa} = %{?epoch}:%{version}-%{rele Obsoletes: gstreamer1-svt-hevc < %{?epoch}:%{version}-%{release} Provides: gstreamer1-svt-hevc = %{?epoch}:%{version}-%{release} Provides: gstreamer1-svt-hevc%{?_isa} = %{?epoch}:%{version}-%{release} +Obsoletes: %{name}-free-libs < %{?epoch}:%{version}-%{release} +Provides: %{name}-free-libs = %{?epoch}:%{version}-%{release} +Provides: %{name}-free-libs%{?_isa} = %{?epoch}:%{version}-%{release} Obsoletes: gstreamer1-plugin-vaapi < %{?epoch}:%{version}-%{release} Provides: gstreamer1-plugin-vaapi = %{?epoch}:%{version}-%{release} Provides: gstreamer1-plugin-vaapi%{?_isa} = %{?epoch}:%{version}-%{release} -Requires: %{name}-libs = %{?epoch}:%{version}-%{release} BuildRequires: gcc-c++ BuildRequires: meson >= 0.62 @@ -64,7 +66,9 @@ BuildRequires: gobject-introspection-devel >= 1.31.1 BuildRequires: gsm-devel BuildRequires: ladspa-devel BuildRequires: libatomic +%if 0%{?fedora} < 44 BuildRequires: libcdaudio-devel +%endif BuildRequires: libmicrodns-devel #BuildRequires: libmpcdec-devel - Old API BuildRequires: mesa-libGL-devel @@ -232,17 +236,6 @@ Provides: %{name}-free-fluidsynth%{?_isa} = %{?epoch}:%{version}-%{release %description fluidsynth This package contains the GStreamer Fluidsynth plugin. - -%package libs -Summary: Runtime libraries for the GStreamer "bad" plugins -Obsoletes: %{name}-free-libs < %{?epoch}:%{version}-%{release} -Provides: %{name}-free-libs = %{?epoch}:%{version}-%{release} -Provides: %{name}-free-libs%{?_isa} = %{?epoch}:%{version}-%{release} -Requires: %{name} = %{?epoch}:%{version}-%{release} - -%description libs -%summary. - %package devel Summary: Development files for the GStreamer "bad" plugins Requires: %{name}%{?_isa} = %{?epoch}:%{version}-%{release} @@ -402,7 +395,7 @@ Provides: %{name}-free-devel%{?_isa} = %{?epoch}:%{version}-%{release} -D opus=enabled \ -D orc=enabled \ -D package-name="Fedora GStreamer-plugins-bad package" \ - -D package-origin="https://terra.fyralabs.com" \ + -D package-origin="https://terrapkg.com" \ -D pcapparse=enabled \ -D pnm=enabled \ -D proxy=enabled \ @@ -500,6 +493,32 @@ install -p -m 644 -D %{SOURCE1} %{buildroot}%{_metainfodir}/gstreamer-bad.metain %doc AUTHORS NEWS README.md RELEASE REQUIREMENTS %{_bindir}/gst-transcoder-1.0 %{_metainfodir}/gstreamer-bad.metainfo.xml +%{_libdir}/girepository-%{majorminor}/CudaGst-%{majorminor}.typelib +%{_libdir}/girepository-%{majorminor}/Gst*-%{majorminor}.typelib +%{_libdir}/libgstadaptivedemux-%{majorminor}.so.* +%{_libdir}/libgstanalytics-%{majorminor}.so.* +%{_libdir}/libgstbadaudio-%{majorminor}.so.* +%{_libdir}/libgstbasecamerabinsrc-%{majorminor}.so.* +%{_libdir}/libgstcodecparsers-%{majorminor}.so.* +%{_libdir}/libgstcodecs-%{majorminor}.so.* +%{_libdir}/libgstcuda-%{majorminor}.so.* +%{_libdir}/libgstdxva-%{majorminor}.so.* +%{_libdir}/libgstinsertbin-%{majorminor}.so.* +%{_libdir}/libgstisoff-%{majorminor}.so.* +%{_libdir}/libgstmpegts-%{majorminor}.so.* +%{_libdir}/libgstmse-%{majorminor}.so.* +%{_libdir}/libgstopencv-%{majorminor}.so.* +%{_libdir}/libgstphotography-%{majorminor}.so.* +%{_libdir}/libgstplayer-%{majorminor}.so.* +%{_libdir}/libgstplay-%{majorminor}.so.* +%{_libdir}/libgstsctp-%{majorminor}.so.* +%{_libdir}/libgsttranscoder-%{majorminor}.so.* +%{_libdir}/libgsturidownloader-%{majorminor}.so.* +%{_libdir}/libgstva-%{majorminor}.so.* +%{_libdir}/libgstvulkan-%{majorminor}.so.* +%{_libdir}/libgstwayland-%{majorminor}.so.* +%{_libdir}/libgstwebrtc-%{majorminor}.so.* +%{_libdir}/libgstwebrtcnice-%{majorminor}.so.* # Encoder profiles %dir %{_datadir}/gstreamer-%{majorminor}/encoding-profiles/ %dir %{_datadir}/gstreamer-%{majorminor}/encoding-profiles/device/ @@ -680,36 +699,6 @@ install -p -m 644 -D %{SOURCE1} %{buildroot}%{_metainfodir}/gstreamer-bad.metain %files fluidsynth %{_libdir}/gstreamer-%{majorminor}/libgstfluidsynthmidi.so -%{_libdir}/gstreamer-%{majorminor}/libgstmidi.so -%{_libdir}/gstreamer-%{majorminor}/libgstwildmidi.so - -%files libs -%{_libdir}/girepository-%{majorminor}/CudaGst-%{majorminor}.typelib -%{_libdir}/girepository-%{majorminor}/Gst*-%{majorminor}.typelib -%{_libdir}/libgstadaptivedemux-%{majorminor}.so.* -%{_libdir}/libgstanalytics-%{majorminor}.so.* -%{_libdir}/libgstbadaudio-%{majorminor}.so.* -%{_libdir}/libgstbasecamerabinsrc-%{majorminor}.so.* -%{_libdir}/libgstcodecparsers-%{majorminor}.so.* -%{_libdir}/libgstcodecs-%{majorminor}.so.* -%{_libdir}/libgstcuda-%{majorminor}.so.* -%{_libdir}/libgstdxva-%{majorminor}.so.* -%{_libdir}/libgstinsertbin-%{majorminor}.so.* -%{_libdir}/libgstisoff-%{majorminor}.so.* -%{_libdir}/libgstmpegts-%{majorminor}.so.* -%{_libdir}/libgstmse-%{majorminor}.so.* -%{_libdir}/libgstopencv-%{majorminor}.so.* -%{_libdir}/libgstphotography-%{majorminor}.so.* -%{_libdir}/libgstplayer-%{majorminor}.so.* -%{_libdir}/libgstplay-%{majorminor}.so.* -%{_libdir}/libgstsctp-%{majorminor}.so.* -%{_libdir}/libgsttranscoder-%{majorminor}.so.* -%{_libdir}/libgsturidownloader-%{majorminor}.so.* -%{_libdir}/libgstva-%{majorminor}.so.* -%{_libdir}/libgstvulkan-%{majorminor}.so.* -%{_libdir}/libgstwayland-%{majorminor}.so.* -%{_libdir}/libgstwebrtc-%{majorminor}.so.* -%{_libdir}/libgstwebrtcnice-%{majorminor}.so.* %files devel %{_datadir}/gir-%{majorminor}/CudaGst-%{majorminor}.gir diff --git a/anda/multimedia/gstreamer1/gstreamer1-plugins-bad/update.rhai b/anda/multimedia/gstreamer1/gstreamer1-plugins-bad/update.rhai index ca63da16cd..a52822471b 100644 --- a/anda/multimedia/gstreamer1/gstreamer1-plugins-bad/update.rhai +++ b/anda/multimedia/gstreamer1/gstreamer1-plugins-bad/update.rhai @@ -1,4 +1,5 @@ import "andax/bump_extras.rhai" as bump; +import "andax/spec.rhai" as spec; let bodhi_branch = bump::as_bodhi_ver(labels.branch); @@ -7,10 +8,11 @@ let branch = bump::as_bodhi_ver(labels.branch); let vr = bump::bodhi_vr("gstreamer1-plugins-bad-free", branch); rpm.version(vr[1]); -rpm.release(vr[2]); +//rpm.release(vr[2]); open_file("anda/multimedia/gstreamer1/gstreamer1-plugins-bad/OPENCV_VERSION.txt", "w").write(bump::bodhi("opencv", bodhi_branch)); open_file("anda/multimedia/gstreamer1/gstreamer1-plugins-bad/LCEVCdec_VERSION.txt", "w").write(bump::madoguchi("LCEVCdec", labels.branch)); +open_file("anda/multimedia/gstreamer1/gstreamer1-plugins-bad/OPENH264_VERSION.txt", "w").write(bump::madoguchi("openh264", labels.branch)); let dir = sub(`/[^/]+$`, "", __script_path); if sh("[[ `git status " + dir + " --porcelain` ]] && exit 1 || exit 0", #{}).ctx.rc == 1 { diff --git a/anda/multimedia/gstreamer1/gstreamer1-plugins-ugly/VERSION_x264.txt b/anda/multimedia/gstreamer1/gstreamer1-plugins-ugly/VERSION_x264.txt new file mode 100644 index 0000000000..cd71b913c4 --- /dev/null +++ b/anda/multimedia/gstreamer1/gstreamer1-plugins-ugly/VERSION_x264.txt @@ -0,0 +1 @@ +0.165 diff --git a/anda/multimedia/gstreamer1/gstreamer1-plugins-ugly/VERSION_x265.txt b/anda/multimedia/gstreamer1/gstreamer1-plugins-ugly/VERSION_x265.txt new file mode 100644 index 0000000000..8a36cd142b --- /dev/null +++ b/anda/multimedia/gstreamer1/gstreamer1-plugins-ugly/VERSION_x265.txt @@ -0,0 +1 @@ +4.1 \ No newline at end of file diff --git a/anda/multimedia/gstreamer1/gstreamer1-plugins-ugly/anda.hcl b/anda/multimedia/gstreamer1/gstreamer1-plugins-ugly/anda.hcl index 5ef2660d6e..13c5400c37 100644 --- a/anda/multimedia/gstreamer1/gstreamer1-plugins-ugly/anda.hcl +++ b/anda/multimedia/gstreamer1/gstreamer1-plugins-ugly/anda.hcl @@ -2,9 +2,10 @@ project pkg { arches = ["x86_64", "aarch64", "i386"] rpm { spec = "gstreamer1-plugins-ugly.spec" + extra_repos = ["https://repos.fyralabs.com/terrarawhide-multimedia"] } labels { - subrepo = "extras" + subrepo = "multimedia" mock = 1 updbranch = 1 } diff --git a/anda/multimedia/gstreamer1/gstreamer1-plugins-ugly/gstreamer1-plugins-ugly.spec b/anda/multimedia/gstreamer1/gstreamer1-plugins-ugly/gstreamer1-plugins-ugly.spec index 234ecbf3be..6698a5cd00 100644 --- a/anda/multimedia/gstreamer1/gstreamer1-plugins-ugly/gstreamer1-plugins-ugly.spec +++ b/anda/multimedia/gstreamer1/gstreamer1-plugins-ugly/gstreamer1-plugins-ugly.spec @@ -1,9 +1,9 @@ %global majorminor 1.0 Name: gstreamer1-plugins-ugly -Version: 1.26.6 -Release: 1%?dist -Epoch: 1 +Version: 1.28.2 +Release: 1%{?dist} +Epoch: 2 Summary: GStreamer streaming media framework "ugly" plugins License: LGPL-2.0-or-later and LGPL-2.0-only URL: http://gstreamer.freedesktop.org/ @@ -40,7 +40,7 @@ This module contains a set of plugins that have good quality and are well tested %build %meson \ -D package-name="Fedora GStreamer-plugins-ugly package" \ - -D package-origin="https://terra.fyralabs.com" \ + -D package-origin="https://terrapkg.com" \ -D a52dec=enabled \ -D asfdemux=enabled \ -D cdio=enabled \ diff --git a/anda/multimedia/gstreamer1/gstreamer1-plugins-ugly/update.rhai b/anda/multimedia/gstreamer1/gstreamer1-plugins-ugly/update.rhai index 5f9560fa48..10c6624c81 100644 --- a/anda/multimedia/gstreamer1/gstreamer1-plugins-ugly/update.rhai +++ b/anda/multimedia/gstreamer1/gstreamer1-plugins-ugly/update.rhai @@ -1,5 +1,15 @@ import "andax/bump_extras.rhai" as bump; +import "andax/spec.rhai" as spec; let vr = bump::bodhi_vr("gstreamer1-plugins-ugly-free", bump::as_bodhi_ver(labels.branch)); rpm.version(vr[1]); -rpm.release(vr[2]); +//rpm.release(vr[2]); + +open_file("anda/multimedia/gstreamer1/gstreamer1-plugins-ugly/VERSION_x264.txt", "w").write(bump::madoguchi("x264", labels.branch)); +open_file("anda/multimedia/gstreamer1/gstreamer1-plugins-ugly/VERSION_x265.txt", "w").write(bump::madoguchi("x265", labels.branch)); + +let dir = sub(`/[^/]+$`, "", __script_path); +if sh("[[ `git status " + dir + " --porcelain` ]] && exit 1 || exit 0", #{}).ctx.rc == 1 { + let rel = spec::get_release(rpm).parse_int(); + rpm.release(rel + 1); +} diff --git a/anda/multimedia/gstreamer1/gstreamer1-vaapi/PLUGINS_BAD_release.txt b/anda/multimedia/gstreamer1/gstreamer1-vaapi/PLUGINS_BAD_release.txt index 8213d34942..1204199104 100644 --- a/anda/multimedia/gstreamer1/gstreamer1-vaapi/PLUGINS_BAD_release.txt +++ b/anda/multimedia/gstreamer1/gstreamer1-vaapi/PLUGINS_BAD_release.txt @@ -1 +1 @@ -1.fcrawhide +2.fcrawhide diff --git a/anda/multimedia/gstreamer1/gstreamer1-vaapi/anda.hcl b/anda/multimedia/gstreamer1/gstreamer1-vaapi/anda.hcl index b3231c6cd4..3bc32c70d9 100644 --- a/anda/multimedia/gstreamer1/gstreamer1-vaapi/anda.hcl +++ b/anda/multimedia/gstreamer1/gstreamer1-vaapi/anda.hcl @@ -2,9 +2,10 @@ project pkg { arches = ["x86_64", "aarch64", "i386"] rpm { spec = "gstreamer1-vaapi.spec" + extra_repos = ["https://repos.fyralabs.com/terrarawhide-multimedia"] } labels { - subrepo = "extras" + subrepo = "multimedia" mock = 1 updbranch = 1 } diff --git a/anda/multimedia/gstreamer1/gstreamer1-vaapi/gstreamer1-vaapi.spec b/anda/multimedia/gstreamer1/gstreamer1-vaapi/gstreamer1-vaapi.spec index 8fc0926ebd..6714d8520c 100644 --- a/anda/multimedia/gstreamer1/gstreamer1-vaapi/gstreamer1-vaapi.spec +++ b/anda/multimedia/gstreamer1/gstreamer1-vaapi/gstreamer1-vaapi.spec @@ -1,5 +1,5 @@ Name: gstreamer1-plugin-vaapi -Version: 1.26.6 +Version: 1.26.10 Release: 1%?dist Epoch: 1 Summary: GStreamer VA-API integration diff --git a/anda/multimedia/gstreamer1/gstreamer1-vaapi/update.rhai b/anda/multimedia/gstreamer1/gstreamer1-vaapi/update.rhai index 67c7f347fe..31e8dabd43 100644 --- a/anda/multimedia/gstreamer1/gstreamer1-vaapi/update.rhai +++ b/anda/multimedia/gstreamer1/gstreamer1-vaapi/update.rhai @@ -1,8 +1,9 @@ import "andax/bump_extras.rhai" as bump; +import "andax/spec.rhai" as spec; let vr = bump::bodhi_vr("gstreamer1-vaapi", bump::as_bodhi_ver(labels.branch)); rpm.version(vr[1]); -rpm.release(vr[2]); +//rpm.release(vr[2]); open_file("anda/multimedia/gstreamer1/gstreamer1-vaapi/PLUGINS_BAD_release.txt", "w").write(bump::madoguchi_json("gstreamer1-plugins-bad", labels.branch).rel); diff --git a/anda/multimedia/kvazaar/anda.hcl b/anda/multimedia/kvazaar/anda.hcl index 9001334d1b..e791705fc8 100644 --- a/anda/multimedia/kvazaar/anda.hcl +++ b/anda/multimedia/kvazaar/anda.hcl @@ -4,6 +4,6 @@ project pkg { spec = "kvazaar.spec" } labels { - mock =1 + mock = 1 } } diff --git a/anda/multimedia/kvazaar/kvazaar.spec b/anda/multimedia/kvazaar/kvazaar.spec index 92ef5997b4..ada7581d78 100644 --- a/anda/multimedia/kvazaar/kvazaar.spec +++ b/anda/multimedia/kvazaar/kvazaar.spec @@ -1,8 +1,8 @@ Name: kvazaar -Version: 2.3.1 -Release: 2%{?dist} +Version: 2.3.2 +Release: 3%{?dist} Summary: An open-source HEVC encoder -License: BSD and ISC +License: BSD AND ISC URL: https://ultravideo.fi/kvazaar.html Source0: https://github.com/ultravideo/%{name}/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz @@ -33,11 +33,13 @@ The %{name}-devel package contains libraries and header files for developing applications that use %{name}. %prep -%autosetup -p1 +%autosetup -%build +%conf autoreconf -vif %configure --enable-static=no + +%build %make_build %install @@ -55,7 +57,7 @@ rm -fr %{buildroot}%{_docdir} %license LICENSE* %doc README.md CREDITS %{_libdir}/lib%{name}.so.7 -%{_libdir}/lib%{name}.so.7.4.0 +%{_libdir}/lib%{name}.so.7.5.0 %files devel %{_includedir}/%{name}.h diff --git a/anda/multimedia/lcevcdec/update.rhai b/anda/multimedia/lcevcdec/update.rhai deleted file mode 100644 index 63fabc1bd9..0000000000 --- a/anda/multimedia/lcevcdec/update.rhai +++ /dev/null @@ -1 +0,0 @@ -rpm.version(gh("v-novaltd/LCEVCdec")); diff --git a/anda/multimedia/mjpegtools/anda.hcl b/anda/multimedia/mjpegtools/anda.hcl index 4660da642e..e851cc292a 100644 --- a/anda/multimedia/mjpegtools/anda.hcl +++ b/anda/multimedia/mjpegtools/anda.hcl @@ -5,5 +5,6 @@ project pkg { } labels { mock = 1 + subrepo = "multimedia" } } diff --git a/anda/multimedia/mjpegtools/mjpegtools.spec b/anda/multimedia/mjpegtools/mjpegtools.spec index bd3a980926..d6d0a9b2dc 100644 --- a/anda/multimedia/mjpegtools/mjpegtools.spec +++ b/anda/multimedia/mjpegtools/mjpegtools.spec @@ -3,9 +3,9 @@ Name: mjpegtools Version: 2.2.1 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Tools to manipulate MPEG data -License: GPLv2 +License: GPL-2.0-or-later URL: http://mjpeg.sourceforge.net/ Source0: https://downloads.sourceforge.net/sourceforge/mjpeg/%{name}-%{version}.tar.gz BuildRequires: autoconf @@ -77,7 +77,7 @@ for f in docs/yuvfps.1 ; do iconv -f iso-8859-1 -t utf-8 $f > $f.utf8 ; mv $f.utf8 $f done -%build +%conf autoreconf -vif %configure \ --disable-static \ @@ -90,6 +90,7 @@ autoreconf -vif --with-v4l \ --without-sdlgfx +%build %make_build %install diff --git a/anda/multimedia/openutau/openutau.bin.spec b/anda/multimedia/openutau/openutau.bin.spec index ed52191c91..62c2ccfff7 100644 --- a/anda/multimedia/openutau/openutau.bin.spec +++ b/anda/multimedia/openutau/openutau.bin.spec @@ -2,7 +2,7 @@ Name: openutau.bin Version: %(echo %ver | sed -E 's@^build/@@') -Release: 1%?dist +Release: 3%?dist Summary: Open singing synthesis platform / Open source UTAU successor License: MIT URL: http://www.openutau.com @@ -12,6 +12,7 @@ Source2: https://github.com/stakira/OpenUtau/raw/refs/tags/%ver/OpenUtau/Assets Packager: madonuko Provides: openutau = %evr Provides: OpenUtau = %evr +AutoReqProv: 0 %description OpenUtau is a free, open-source editor made for the UTAU community. @@ -39,7 +40,7 @@ install -Dpm644 open-utau.ico -t %buildroot%_iconsdir/hicolor/apps mkdir -p %buildroot%_datadir/openutau cd %buildroot%_datadir/openutau -tar tf %{S:0} +tar xf %{S:0} %files %license LICENSE.txt diff --git a/anda/multimedia/rtaudio/rtaudio-nightly.spec b/anda/multimedia/rtaudio/rtaudio-nightly.spec index dd86187b2a..6778e173bf 100644 --- a/anda/multimedia/rtaudio/rtaudio-nightly.spec +++ b/anda/multimedia/rtaudio/rtaudio-nightly.spec @@ -1,7 +1,7 @@ #? https://src.fedoraproject.org/rpms/rtaudio/blob/db1aa72863ccbfd480e22c2f7aefb41ebb8e2360/f/rtaudio.spec -%global commit 2b00d1adc3d254e5dcd6f7c860d8c60b5ec7b43f +%global commit e5f0774b2156082ec3db998bd6b2a94b66ade8ac %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commit_date 20251020 +%global commit_date 20260228 %global ver .0.1 Name: rtaudio-nightly @@ -53,6 +53,8 @@ Provides: rtaudio-devel = %version-%release %prep %autosetup -n rtaudio-%commit + +%conf # Fix encoding issues for file in tests/teststops.cpp; do sed 's|\r||' $file > $file.tmp @@ -61,11 +63,11 @@ for file in tests/teststops.cpp; do mv -f $file.tmp2 $file done - -%build export CFLAGS="%optflags -fPIC" NOCONFIGURE=1 ./autogen.sh %configure --with-jack --with-alsa --with-pulse --enable-shared --disable-static --verbose + +%build %make_build %install diff --git a/anda/multimedia/tdf/tdf.spec b/anda/multimedia/tdf/tdf.spec index 3ed3249916..8c4c842e0e 100644 --- a/anda/multimedia/tdf/tdf.spec +++ b/anda/multimedia/tdf/tdf.spec @@ -1,13 +1,13 @@ Name: tdf -Version: 0.4.3 -Release: 1%?dist +Version: 0.5.0 +Release: 2%?dist Summary: A tui-based PDF viewer URL: https://github.com/itsjunetime/tdf Source0: %url/archive/refs/tags/v%{version}.tar.gz License: AGPL-3.0 BuildRequires: cargo anda-srpm-macros cargo-rpm-macros mold fontconfig-devel mupdf glib2 libgcc clang python -Packager: Its-J +Packager: Its-J %description A terminal-based PDF viewer. @@ -38,5 +38,8 @@ install -Dm755 target/rpm/tdf %{buildroot}%{_bindir}/tdf %{_bindir}/tdf %changelog -* Wed Oct 22 2025 Its-J +* Tue Apr 14 2026 Its-J +- Add email to my previous contributor attributions + +* Wed Oct 22 2025 Its-J - Intial Commit diff --git a/anda/multimedia/uavs3d/anda.hcl b/anda/multimedia/uavs3d/anda.hcl index e74e92e8fc..6edbc27184 100644 --- a/anda/multimedia/uavs3d/anda.hcl +++ b/anda/multimedia/uavs3d/anda.hcl @@ -4,6 +4,7 @@ project pkg { spec = "uavs3d.spec" } labels { - mock =1 + mock = 1 + subrepo = "multimedia" } } diff --git a/anda/multimedia/vgmstream/vgmstream.spec b/anda/multimedia/vgmstream/vgmstream.spec index 7b4a974434..e7730be105 100644 --- a/anda/multimedia/vgmstream/vgmstream.spec +++ b/anda/multimedia/vgmstream/vgmstream.spec @@ -1,10 +1,10 @@ -%global commit acf64e6e62d7e97039c6e7467eac82a0499f002f +%global commit 301d49bdd492aaa326e6411710ba7270c36795a9 %global shortcommit %{sub %{commit} 1 7} -%global commit_date 20251014 +%global commit_date 20260501 Name: vgmstream Version: 0~%{commit_date}git.%shortcommit -Release: 1%?dist +Release: 1%{?dist} Summary: A library for playback of various streamed audio formats used in video games License: ISC URL: https://vgmstream.org diff --git a/anda/lib/nvidia/egl-x11/anda.hcl b/anda/multimedia/vvdec/anda.hcl similarity index 66% rename from anda/lib/nvidia/egl-x11/anda.hcl rename to anda/multimedia/vvdec/anda.hcl index 7ffbac854e..0da4bcd8a0 100644 --- a/anda/lib/nvidia/egl-x11/anda.hcl +++ b/anda/multimedia/vvdec/anda.hcl @@ -1,10 +1,10 @@ project pkg { arches = ["x86_64", "aarch64", "i386"] rpm { - spec = "egl-x11.spec" + spec = "vvdec.spec" } labels { - subrepo = "nvidia" mock = 1 + subrepo = "multimedia" } } diff --git a/anda/multimedia/vvdec/update.rhai b/anda/multimedia/vvdec/update.rhai new file mode 100644 index 0000000000..2f96574d33 --- /dev/null +++ b/anda/multimedia/vvdec/update.rhai @@ -0,0 +1,4 @@ +let v = gh_tag("fraunhoferhhi/vvdec"); +if `[\d.]+-rc\d+`.find_all(v).len == 0 { + rpm.version(v); +} diff --git a/anda/multimedia/vvdec/vvdec.spec b/anda/multimedia/vvdec/vvdec.spec new file mode 100644 index 0000000000..459913f641 --- /dev/null +++ b/anda/multimedia/vvdec/vvdec.spec @@ -0,0 +1,62 @@ +Name: vvdec +Version: 3.1.0 +Release: 1%?dist +Summary: VVdeC, the Fraunhofer Versatile Video Decoder +License: BSD-3-Clause +URL: https://github.com/fraunhoferhhi/%{name} + +Source0: %{url}/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz + +BuildRequires: cmake +BuildRequires: gcc-c++ + +%description +VVdeC, the Fraunhofer Versatile Video Decoder, is a fast software H.266/VVC +decoder implementation supporting all features of the VVC Main10 profile. + +%package libs +Summary: VVdeC, the Fraunhofer Versatile Video Encoder %{name} libraries + +%description libs +The %{name}-devel package contains libraries and header files for developing +applications that use %{name}. This package contains the shared libraries. + +%package devel +Summary: Development files for %{name} +Requires: %{name}-libs%{?_isa} = %{version}-%{release} + +%description devel +The %{name}-devel package contains libraries and header files for +developing applications that use %{name}. + +%prep +%autosetup -p1 + +%build +%cmake \ +%ifarch %{ix86} + -DVVDEC_ENABLE_X86_SIMD=OFF \ +%endif + -DVVDEC_INSTALL_VVDECAPP=ON +%cmake_build + +%install +%cmake_install + +%files +%{_bindir}/%{name}app + +%files libs +%license LICENSE.txt +%doc README.md +%{_libdir}/lib%{name}.so.3 +%{_libdir}/lib%{name}.so.%{version} + +%files devel +%{_includedir}/%{name}/ +%{_libdir}/cmake/%{name}/%{name}*.cmake +%{_libdir}/lib%{name}.so +%{_libdir}/pkgconfig/lib%{name}.pc + +%changelog +%autochangelog diff --git a/anda/multimedia/vvenc/anda.hcl b/anda/multimedia/vvenc/anda.hcl index ccbfbd4469..ea5a6e16d2 100644 --- a/anda/multimedia/vvenc/anda.hcl +++ b/anda/multimedia/vvenc/anda.hcl @@ -5,5 +5,6 @@ project pkg { } labels { mock = 1 + subrepo = "multimedia" } } diff --git a/anda/multimedia/vvenc/vvenc.spec b/anda/multimedia/vvenc/vvenc.spec index 40d7399898..4134486051 100644 --- a/anda/multimedia/vvenc/vvenc.spec +++ b/anda/multimedia/vvenc/vvenc.spec @@ -1,17 +1,13 @@ -%global build_cxxflags %{__build_flags_lang_cxx} %{?_distro_extra_cxxflags} -Wno-error=maybe-uninitialized -Wno-error=uninitialized - Name: vvenc -Version: 1.13.1 -Release: 3%{?dist} +Version: 1.14.0 +Release: 1%?dist Summary: VVenC, the Fraunhofer Versatile Video Encoder License: BSD-3-Clause URL: https://github.com/fraunhoferhhi/%{name} Source0: %{url}/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz -# Fixes for i386/ARM32 builds Patch0: %{url}/commit/ebce395254d9d7be7dc00cec7b49c7ed1d9eebec.patch -Patch1: %{url}/commit/bfd55ee783bfe30fc73f6f314b066b84bb1e5b60.patch -Patch2: %{url}/commit/982fcaac22488415899ae6c6ef7977a728a88e94.patch +Patch1: %{url}/commit/982fcaac22488415899ae6c6ef7977a728a88e94.patch BuildRequires: cmake BuildRequires: gcc-c++ @@ -49,6 +45,7 @@ developing applications that use %{name}. %autosetup -p1 %build +export CXXFLAGS="%{optflags} -Wno-error=maybe-uninitialized -Wno-error=uninitialized" %cmake \ -DCMAKE_SKIP_INSTALL_RPATH=OFF \ -DVVENC_INSTALL_FULLFEATURE_APP=ON diff --git a/anda/multimedia/x264-bootstrap/x264-bootstrap.spec b/anda/multimedia/x264-bootstrap/x264-bootstrap.spec deleted file mode 100644 index d216dbf9d3..0000000000 --- a/anda/multimedia/x264-bootstrap/x264-bootstrap.spec +++ /dev/null @@ -1,822 +0,0 @@ -%global fusionsrc_commit 91b92ea4846982e5d9eb58744fda70f75d0faf8d - -# globals for x264-0.164-20231001git31e19f92.tar.bz2 -%global api 164 -%global gitdate 20231001 -%global gitversion 31e19f92 -%global gitlongver 31e19f92f00c7003fa115047ce50978bc98c3a0d - -%global snapshot %{gitdate}git%{gitversion} -%global gver .%{gitdate}git%{gitversion} -%global branch stable - -%global _with_bootstrap 1 - -%{?_with_bootstrap: -%global _without_gpac 1 -%global _without_libavformat 1 -%global _without_libswscale 1 -} - -# Reduce dependencies to build x264-libs on i686 -%if 0%{?fedora} -%ifarch i686 -%global _without_gpac 1 -%global _without_libavformat 1 -%global _without_libswscale 1 -%endif -%endif - -#Whitelist of arches with dedicated ASM code -%global asmarch aarch64 armv7hl armv7hnl i686 ppc64 ppc64le x86_64 -%ifnarch %{asmarch} -%global _without_asm 1 -%endif - -Summary: H264/AVC video streams encoder -Name: x264-bootstrap -Version: 0.0.%{api} -Release: 15%{?gver}%{?_with_bootstrap:_bootstrap}%{?dist} -License: GPLv2+ -URL: https://www.videolan.org/developers/x264.html -Source0: https://code.videolan.org/videolan/x264/-/archive/%gitversion.tar.bz2 -Source1: https://raw.githubusercontent.com/rpmfusion/x264/%fusionsrc_commit/x264-snapshot.sh -Source2: https://raw.githubusercontent.com/rpmfusion/x264/%fusionsrc_commit/version.h - -# don't remove config.h and don't re-run version.sh -Patch0: https://raw.githubusercontent.com/rpmfusion/x264/%fusionsrc_commit/x264-nover.patch -# add 10b suffix to high bit depth build -Patch1: https://raw.githubusercontent.com/rpmfusion/x264/%fusionsrc_commit/x264-10b.patch -# fix assignment from incompatible pointer type errors -Patch2: https://raw.githubusercontent.com/rpmfusion/x264/%fusionsrc_commit/x264-altivec-incompatible-pointer-type.patch -Patch11: https://raw.githubusercontent.com/rpmfusion/x264/%fusionsrc_commit/x264-opencl.patch - -BuildRequires: anda-srpm-macros git-core -BuildRequires: gcc -%{!?_without_gpac:BuildRequires: gpac-static >= 1.0.1 zlib-devel openssl-devel libpng-devel libjpeg-devel xz-devel libglvnd-devel mesa-libGLU-devel faad2-devel libmad-devel xvidcore-devel a52dec-devel libvorbis-devel libtheora-devel openjpeg2-devel } -%{!?_without_libavformat:BuildRequires: ffmpeg-devel} -%{?_with_ffmpegsource:BuildRequires: ffmpegsource-devel} -# https://bugzilla.rpmfusion.org/show_bug.cgi?id=3975 -%ifarch armv7hl armv7hnl -BuildRequires: execstack -%endif -%ifarch %{asmarch} -BuildRequires: nasm -%endif -BuildRequires: pkgconfig(bash-completion) -# we need to enforce the exact EVR for an ISA - not only the same ABI -Requires: %{name}-libs%{?_isa} = %{version}-%{release} -Requires: ffmpeg-libs%{?_isa} -Provides: x264 = %version-%release - -%description -x264 is a free library for encoding H264/AVC video streams, written from -scratch. - -This package contains the frontend. - -%package libs -Summary: Library for encoding H264/AVC video streams -Recommends: %{_libdir}/libOpenCL.so.1 -Provides: x264-libs = %version-%release - -%description libs -x264 is a free library for encoding H264/AVC video streams, written from -scratch. - -%package devel -Summary: Development files for the x264 library -Requires: %{name}-libs%{?_isa} = %{version}-%{release} -Requires: pkgconfig -Provides: x264-devel = %version-%release - -%description devel -x264 is a free library for encoding H264/AVC video streams, written from -scratch. - -This package contains the development files. - -%global x_configure \ -./configure \\\ - --host=%{_host} \\\ - --prefix=%{_prefix} \\\ - --exec-prefix=%{_exec_prefix} \\\ - --bindir=%{_bindir} \\\ - --includedir=%{_includedir} \\\ - --libdir=%{_libdir} \\\ - %{?_without_libavformat:--disable-lavf} \\\ - %{?_without_libswscale:--disable-swscale} \\\ - %{!?_with_ffmpegsource:--disable-ffms} \\\ - --enable-debug \\\ - --enable-shared \\\ - --system-libx264 \\\ - --enable-pic - -%prep -%setup -q -n x264-%gitversion-%gitlongver - -mkdir x264-0.%{api}-%{snapshot} -pushd x264-0.%{api}-%{snapshot} -git init -git remote add origin https://code.videolan.org/videolan/x264.git -git fetch --depth 1 origin %gitlongver -git checkout FETCH_HEAD -sh version.sh > ./version.h - -cp %{SOURCE2} . -%patch -P0 -p1 -b .nover -%patch -P1 -p1 -b .10b -%patch -P2 -p1 -b .ptr -%patch -P11 -p1 -b .opencl -popd - -for variant in generic generic10 ; do - rm -rf ${variant} - cp -pr x264-0.%{api}-%{snapshot} ${variant} -done - - -%build -%set_build_flags -pushd generic -%{x_configure}\ - %{?_without_asm:--disable-asm} - -%make_build -popd - -pushd generic10 -%{x_configure}\ - %{?_without_asm:--disable-asm}\ - --disable-cli\ - --disable-opencl \ - --bit-depth=10 - -%make_build -popd - -%install -# NOTE: the order is important here! We want the generic devel stuff -for variant in generic10 generic ; do -pushd ${variant} -%make_install -popd -done - -#Fix timestamp on x264 generated headers -touch -r generic/version.h %{buildroot}%{_includedir}/x264.h %{buildroot}%{_includedir}/x264_config.h - -# https://bugzilla.rpmfusion.org/show_bug.cgi?id=3975 -%ifarch armv7hl armv7hnl -execstack -c %{buildroot}%{_libdir}/libx264{,10b}.so.%{api} -%endif - -install -dm755 %{buildroot}%{_pkgdocdir} -install -pm644 generic/{AUTHORS,COPYING} %{buildroot}%{_pkgdocdir}/ - - -%ldconfig_scriptlets libs - - -%files -%{_bindir}/x264 -%dir %{_datadir}/bash-completion -%dir %{_datadir}/bash-completion/completions -%{_datadir}/bash-completion/completions/x264 - -%files libs -%dir %{_pkgdocdir} -%{_pkgdocdir}/AUTHORS -%license %{_pkgdocdir}/COPYING -%{_libdir}/libx264.so.%{api} -%{_libdir}/libx26410b.so.%{api} - -%files devel -%doc generic/doc/* -%{_includedir}/x264.h -%{_includedir}/x264_config.h -%{_libdir}/libx264.so -%{_libdir}/libx26410b.so -%{_libdir}/pkgconfig/x264.pc - -%changelog -* Tue Oct 08 2024 Nicolas Chauvet - 0.164-15.20231001git31e19f92 -- Rebuilt - -* Fri Aug 02 2024 RPM Fusion Release Engineering - 0.164-14.20231001git31e19f92 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Sun Mar 10 2024 Dominik Mierzejewski - 0.164-13.20231001git31e19f92 -- Fix "assignment from incompatible pointer type" errors on ppc64le -- Use correct build dependency on bash-completion - -* Sun Feb 04 2024 RPM Fusion Release Engineering - 0.164-12.20231001git31e19f92 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Sun Nov 12 2023 Leigh Scott - 0.164-11.20231001git31e19f92 -- Rebuild for new ffmpeg version - -* Sun Oct 01 2023 Sérgio Basto - 0.164-10.20231001git31e19f92 -- Update to x264-0.164-20231001git31e19f92 (stable branch) - -* Wed Sep 27 2023 Sérgio Basto - 0.164-9.20220602gitbaee400f -- [Bug 6769] Include bash completion definitions for x264 - -* Wed Aug 02 2023 RPM Fusion Release Engineering - 0.164-8.20220602gitbaee400f -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Mon Mar 13 2023 Leigh Scott - 0.164-7.20220602gitbaee400f -- Rebuild for gpac - -* Tue Feb 28 2023 Sérgio Basto - 0.164-6.20220602gitbaee400f -- Disable build with gpac until we can build gapc with ffmepg-6 - -* Tue Feb 28 2023 Leigh Scott - 0.164-5.20220602gitbaee400f -- Rebuilt for new ffmpeg - -* Sun Feb 19 2023 Leigh Scott - 0.164-4.20220602gitbaee400f -- rebuilt - -* Sun Sep 04 2022 Leigh Scott - 0.164-3.20220602gitbaee400f -- Add requires ffmpeg-libs - -* Mon Aug 08 2022 RPM Fusion Release Engineering - 0.164-2.20220602gitbaee400f -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild and ffmpeg - 5.1 - -* Mon Jun 06 2022 Sérgio Basto - 0.164-1.20220602gitbaee400f -- Update to x264-0.164-20220602gitbaee400f (stable branch) - -* Sat Mar 05 2022 Sérgio Basto - 0.163-6.20210613git5db6aa6 -- Rebuild for new gpac on F36 - -* Sat Feb 26 2022 Leigh Scott - 0.163-5.20210613git5db6aa6 -- Rebuild for new gpac - -* Wed Feb 09 2022 RPM Fusion Release Engineering - 0.163-4.20210613git5db6aa6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Tue Nov 09 2021 Leigh Scott - 0.163-3.20210613git5db6aa6 -- Rebuilt for new ffmpeg snapshot - -* Tue Aug 03 2021 RPM Fusion Release Engineering - 0.163-2.20210613git5db6aa6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Mon Jun 14 2021 Sérgio Basto - 0.163-1.20210613git5db6aa6 -- x264-0.163-20210613git5db6aa6 soname bump -- gpac patch accepted upstream with modifications - -* Tue Apr 13 2021 Sérgio Basto - 0.161-6.20210412git55d517b -- Update to x264-0.161-20210412git55d517b (stable branch) - -* Thu Feb 04 2021 RPM Fusion Release Engineering - 0.161-5.20210124git544c61f -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Sun Jan 24 2021 Sérgio Basto - 0.161-4.20210124git544c61f -- Update to 0.161-20210124git544c61f (stable branch) - -* Tue Jan 19 2021 Dominik Mierzejewski - 0.161-3.20200912gitd198931 -- Drop non-asm build for i686 and ppc64 (rfbz#5855) -- Use set_build_flags instead of configure macro for non-autotools script (rfbz#5854) - -* Thu Dec 31 2020 Leigh Scott - 0.161-2.20200912gitd198931 -- Rebuilt for new ffmpeg snapshot - -* Wed Nov 18 2020 Sérgio Basto - 0.161-1.20200912gitd198931 -- Update x264 to api 0.161 (stable branch) - -* Wed Aug 19 2020 RPM Fusion Release Engineering - 0.160-2.20200702gitcde9a93 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Mon Jul 06 2020 Sérgio Basto - 0.160-1.20200702gitcde9a93 -- Update to 0.160-20200702gitcde9a93 (stable branch) - -* Mon Jul 06 2020 Nicolas Chauvet - 0.159-11.20200409git296494a -- Bump - -* Mon Jul 06 2020 Sérgio Basto - 0.159-10.20200409git296494a -- Fix detection of gpac try 2 - -* Mon Jul 06 2020 Sérgio Basto - 0.159-9.20200409git296494a -- Fix detection of gpac - -* Wed Jun 10 2020 Sérgio Basto - 0.159-8.20200409git296494a -- Update to 0.159-20200409git296494a (stable branch) -- Replace all __make _smp_mflags by make_build macro - -* Thu Mar 12 2020 Leigh Scott - 0.159-7.20191127git1771b55 -- Rebuilt for i686 - -* Wed Mar 11 2020 Nicolas Chauvet - 0.159-6.20191127git1771b55_bootstrap -- bootstrap for i686 - -* Sat Feb 22 2020 Leigh Scott - 0.159-5.20191127git1771b55 -- Rebuild for ffmpeg-4.3 git - -* Wed Feb 05 2020 RPM Fusion Release Engineering - 0.159-4.20191127git1771b55 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Tue Dec 17 2019 Leigh Scott - 0.159-3.20191127git1771b55 -- Rebuild without bootstrap - -* Tue Dec 17 2019 Leigh Scott - 0.159-2.20191127git1771b55_bootstrap -- DO A BOOTSTRAP BUILD - -* Mon Dec 16 2019 Sérgio Monteiro Basto - 0.159-1.20191127git1771b55 -- Update to 0.159-20191127-git1771b55 (stable branch) - -* Fri Oct 04 2019 Dominik Mierzejewski - 0.157-12.20190717git34c06d1 -- don't overwrite generic headers with 10bit on simdarch (rfbz#5071) - -* Mon Aug 26 2019 Nicolas Chauvet - 0.157-11.20190717git34c06d1 -- Drop hack for arm builders - -* Tue Aug 06 2019 Leigh Scott - 0.157-10.20190717git34c06d1 -- Rebuild for new ffmpeg version - -* Wed Jul 17 2019 Sérgio Basto - 0.157-9.20190717git34c06d1 -- 0.157 update, date 2019-07-17 (stable branch) - -* Tue May 07 2019 Sérgio Basto - 0.157-8.20190303git72db437 -- Revert "Build /usr/bin/x264 with gpac shared lib instead static lib." - -* Wed May 01 2019 Leigh Scott - 0.157-7.20190303git72db437 -- Fix ARM rpm mangle issue - -* Tue Apr 30 2019 Sérgio Basto - 0.157-6.20190303git72db437_bootstrap -- Bootstrap to fix arm builds - -* Mon Apr 29 2019 Sérgio Basto - 0.157-5.20190303git72db437 -- Enable opencl (which is default) only exist --disable-opencl option -- Disable opencl on 10bit seems that is just prepared for 8bit. -- Build /usr/bin/x264 with gpac shared lib instead static lib. - -* Sun Apr 28 2019 Leigh Scott - 0.157-4.20190303git72db437 -- Fix opencl dlopen (rfbz#5185) - -* Tue Mar 12 2019 Leigh Scott - 0.157-3.20190303git72db437 -- Disable bootstrap build - -* Tue Mar 12 2019 Leigh Scott - 0.157-2.20190303git72db437_bootstrap -- Do the forgotten bootstrap build - -* Tue Mar 12 2019 Sérgio Basto - 0.157-1.20190303git72db437 -- Update to 0.157 (stable branch) -- Rebase patches - -* Tue Mar 05 2019 RPM Fusion Release Engineering - 0.155-3.20180806git0a84d98 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Wed Nov 07 2018 Stefan Becker - 0.155-2.20180806git0a84d98 -- reverse order of generic/generic10 install to fix -devel contents (rfbz #5071) - -* Thu Oct 04 2018 Sérgio Basto - 0.155-1.20180806git0a84d98 -- Update x264 to 0.155 -- Rebase x264-10b.patch -- Add a patch to fix linking with --system-libx264 on x86 - ( https://patches.videolan.org/patch/21704/ ) - -* Sun Aug 19 2018 Leigh Scott - 0.152-7.20171224gite9a5903 -- Rebuilt for Fedora 29 Mass Rebuild binutils issue - -* Fri Jul 27 2018 RPM Fusion Release Engineering - 0.152-6.20171224gite9a5903 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Thu Mar 08 2018 RPM Fusion Release Engineering - 0.152-5.20171224gite9a5903 -- Rebuilt for new ffmpeg snapshot - -* Thu Mar 01 2018 RPM Fusion Release Engineering - 0.152-4.20171224gite9a5903 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Wed Jan 17 2018 Leigh Scott - 0.152-3.20171224gite9a5903 -- Rebuilt for ffmpeg-3.5 git - -* Thu Jan 04 2018 Sérgio Basto - 0.152-2.20171224gite9a5903 -- un-bootstrap x264 - -* Sat Dec 30 2017 Sérgio Basto - 0.152-1.20171224gite9a5903_bootstrap -- Update x264 to 0.152 and switch asm compiler from yasm to nasm - -* Thu Aug 31 2017 RPM Fusion Release Engineering - 0.148-22.20170521gitaaa9aa8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Mon Jun 26 2017 Sérgio Basto - 0.148-21.20170521gitaaa9aa8 -- Update x264 to x264-0.148-20170521-aaa9aa8 - -* Mon May 22 2017 Sérgio Basto - 0.148-20.20170519gitd32d7bf -- Update x264 to x264-0.148-20170519-d32d7bf - -* Sat Apr 29 2017 Leigh Scott - 0.148-19.20170121git97eaef2 -- Rebuild for ffmpeg update - -* Wed Mar 22 2017 Sérgio Basto - 0.148-18.20170121git97eaef2 -- Unbootstrap - -* Mon Mar 20 2017 RPM Fusion Release Engineering - 0.148-17.20170121git97eaef2_bootstrap -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Sat Mar 18 2017 Sérgio Basto - 0.148-16.20170121git97eaef2_bootstrap -- Bootstrap for ppc64, ppc64le and aarch64 - -* Wed Jan 25 2017 Sérgio Basto - 0.148-15.20170121git97eaef2 -- Update x264 to git stable snapshot of 20170121 - -* Sat Dec 03 2016 Sérgio Basto - 0.148-14.20161201git4d5c8b0 -- Update to x264-0.148-20161201-4d5c8b0 stable branch -- Improve x264-snapshot.sh to use date from last commit and print the headers to - include in x264.spec - -* Sat Nov 05 2016 Sérgio Basto - 0.148-13.20160924git86b7198 -- Rebuilt for new ffmpeg - -* Tue Sep 27 2016 Sérgio Basto - 0.148-12.20160924git86b7198 -- Update to 0.148-20160924-86b7198 version - -* Fri Aug 26 2016 Dominik Mierzejewski - 0.148-11.20160614gita5e06b9 -- rework asm treatment on i686 and ppc64 -- fix adding the 10b suffix to the library name -- correct the list of ASM-enabled arches: - * ppc64 can be Power5, which doesn't have AltiVec - * ppc64le always has it - * no implementation for sparc -- force non-executable stack on armv7 (#3975) -- explicitly disable OpenCL support, it's dlopened at the moment - and not working without ocl-icd-devel -- drop doc and license from main package, libs already contain it -- update URL - -* Thu Aug 18 2016 Sérgio Basto - 0.148-10.20160614gita5e06b9 -- Add license tag also to x264-libs - -* Mon Aug 01 2016 Sérgio Basto - 0.148-9.20160614gita5e06b9 -- Enable asm in build with 10bit on i686 - -* Sat Jul 30 2016 Julian Sikorski - 0.148-8.20160614gita5e06b9 -- Rebuilt for ffmpeg-3.1.1 - -* Tue Jun 21 2016 Sérgio Basto - 0.148-7.20160614gita5e06b9 -- Update to last stable version upstream. - -* Tue Apr 19 2016 Sérgio Basto - 0.148-6.20160412gitfd2c324 -- Update x264 to 0.148-20160412-fd2c324 - -* Wed Jan 20 2016 Sérgio Basto - 0.148-5.20160118git5c65704 -- Fix enable-asm #2 - -* Tue Jan 19 2016 Sérgio Basto - 0.148-4.20160118git5c65704 -- Fix enable-asm - -* Mon Jan 18 2016 Nicolas Chauvet - 0.148-3.20160118git5c65704 -- Restore explicit dependency on -libs - enforce %%{_isa} -- Expand arm arches where asm is available. -- Restore asm only on sse2 and later capable i686 - -* Mon Jan 18 2016 Sérgio Basto - 0.148-2.20151020gita0cd7d3 -- Update x264 to 0.148-20160118-5c65704 - -* Fri Nov 27 2015 Simone Caronni -- Remove obsolete SPEC file tags, defattr were also breaking file permissions, - all libraries were not executable. -- Enable optimizations in RHEL, they are working since RHEL 6: - https://bugzilla.rpmfusion.org/show_bug.cgi?id=3260 -- Add license and make_install macro as per packaging guidelines. -- Use the default configure macro and remove redundant parameters. Optimizations - (build flags) are now added by default. - -* Wed Oct 21 2015 Sérgio Basto - 0.148-1.20151020gita0cd7d3 -- Update to x264-0.148, soname bump, git a0cd7d3, date 20151020 . - -* Sat Jun 06 2015 Sérgio Basto - 0.144-1.20150225gitc8a773e -- Update to x264-0.144, soname bump, git c8a773e from date 20150225 . - -* Mon Jun 01 2015 Marcin Juszkiewicz - 0.142-12.20141221git6a301b6 -- Added patch to make it build on AArch64. - -* Mon Dec 22 2014 Sérgio Basto - 0.142-11.20141221git6a301b6 -- Update x264-0.142 to git 6a301b6 - -* Sun Oct 19 2014 Sérgio Basto - 0.142-10.20140826git021c0dc -- Rebuilt for FFmpeg 2.4.3 - -* Fri Sep 26 2014 Nicolas Chauvet - 0.142-9.20140826git021c0dc -- Rebuilt for FFmpeg 2.4.x - -* Mon Sep 15 2014 Sérgio Basto - 0.142-7.20140826git021c0dc -- Update x264-0.142 to git 021c0dc - -* Thu Aug 07 2014 Sérgio Basto - 0.142-6.20140728gitaf8e768 -- Rebuilt for ffmpeg-2.3 - -* Mon Jul 28 2014 Sérgio Basto - 0.142-5.20140728gitaf8e768 -- Update x264-0.142 to git af8e768 - -* Wed Apr 23 2014 Sérgio Basto - 0.142-4.20140423gite260ea5 -- Update to git e260ea5 (stable branch) - -* Tue Mar 25 2014 Sérgio Basto - 0.142-3.20140314gitaff928d -- Rebuilt for ffmpeg-2.2 - -* Sun Mar 23 2014 Sérgio Basto - 0.142-2.20140314gitaff928d -- Un-bootstrap - -* Fri Mar 14 2014 Sérgio Basto - 0.142-1.20140314gitaff928d_bootstrap -- Update to 0.142 git aff928d (stable branch) and bootstrap - -* Mon Mar 10 2014 Sérgio Basto - 0.140-3.20140122gitde0bc36 -- Un-boostrap - -* Wed Mar 05 2014 Sérgio Basto - 0.140-2.20140122gitde0bc36 -- bootstrap x264 to avoid: - /usr/bin/ld: warning: libx264.so.138, needed by - /usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../lib64/libavcodec.so, may conflict with - libx264.so.140 - -* Wed Jan 22 2014 Sérgio Basto - 0.140-1.20140122gitde0bc36 -- Update to 0.140 git de0bc36 (stable branch) -- drop visualize options, ./configure doesn't have --enable-visualize or --disable-visualize, -anymore - -* Tue Nov 05 2013 Sérgio Basto - 0.138-2.20131030-c628e3b -- Unbootstrap. - -* Sat Nov 02 2013 Sérgio Basto - 0.138-1.20131030-c628e3b -- Update to 0.138 git c628e3b (stable branch) and bootstrap for new ffmpeg. - -* Fri Oct 18 2013 Sérgio Basto - 0.136-1.20131005git3361d59 -- Update to 0.136 git 3361d59 (stable branch). - -* Mon Sep 30 2013 Sérgio Basto - 0.133-3.20130709git585324f -- Fix gpac detection. - -* Thu Aug 15 2013 Nicolas Chauvet - 0.133-2.20130709git585324f -- Rebuilt for FFmpeg 2.0.x - -* Tue Jul 09 2013 Sérgio Basto - 0.133-1.20130709git585324f -- Update to git 585324fee380109acd9986388f857f413a60b896 (HEAD of stable branch). - -* Sat May 25 2013 Sérgio Basto - 0.130-3.20130502git1db4621 -- Build without bootstrap for F19. - -* Fri May 24 2013 Sérgio Basto - 0.130-2.20130502git1db4621 -- Build with bootstrap for F19. - -* Thu May 02 2013 Sérgio Basto - 0.130-1.20130502git1db4621 -- Update to git 1db4621 - -* Tue Mar 05 2013 Sérgio Basto - 0.129-3.20130305gite403db4 -- Update to git e403db4f9079811f5a1f9a1339e7c85b41800ca7 - -* Sun Jan 20 2013 Sérgio Basto - 0.129-2.20130119git9c4ba4b -- Rebuild for ffmpeg-1.1.1 . - -* Sat Jan 19 2013 Sérgio Basto - 0.129-1.20130119git9c4ba4b -- Update to 9c4ba4bde8965571159eae2d79f85cabbb47416c, soname bump. -- Changed branch name by api number, is more readable. -- Drop upstreamed patch. - -* Fri Nov 23 2012 Sérgio Basto - 0.128-2.20121118gitf6a8615 -- unbootstrap on F18. - -* Mon Nov 19 2012 Sérgio Basto - 0.128-1.20121118gitf6a8615 -- Update to f6a8615ab0c922ac2cb5c82c9824f6f4742b1725. - -* Sat Oct 06 2012 Sérgio Basto - 0.125-4.20121006git68dfb7b -- Note: no source update. -- Just add git tag to package name, for faster check upstream. -- Add git tag in x264-snapshot.sh . -- Convert all defines in global. - -* Sun Sep 09 2012 Sérgio Basto - 0.125-4.20120909 -- unbootstrap on F18. - -* Sun Sep 09 2012 Sérgio Basto - 0.125-3.20120909 -- update x264-0.125 from r2201 to r2209. - -* Thu Sep 06 2012 Sérgio Basto - 0.125-2.20120904 -- unbootstrap - -* Tue Sep 04 2012 Sérgio Basto - 0.125-1.20120904 -- Pulled latest stable patches, which bump version to 0.125. - -* Mon Jun 25 2012 Sérgio Basto - 0.124-5.20120616 -- Fixed detection of gf_malloc and gf_free - -* Sun Jun 24 2012 Sérgio Basto - 0.124-4.20120616 -- unbootstrap. - -* Sat Jun 23 2012 Nicolas Chauvet - 0.124-3.20120616 -- Rework alternatives build -- Fix SONAME for x26410b - -* Sun Jun 17 2012 Sérgio Basto - 0.124-2.20120616 -- use _libdir to fix build on x86_64. - -* Sun Jun 17 2012 Sérgio Basto - 0.124-1.20120616 -- Update to 20120616 -- Add one build with --bit-depth=10 -- Enabled bootstrap, after rebuild ffmpeg, we rebuild x264 without bootstrap. - -* Tue May 01 2012 Nicolas Chauvet - 0.120-5.20120303 -- Forward rhel patch -- Disable ASM on armv5tel armv6l -- Add --with bootstrap conditional -- Use %%{_isa} for devel requires - -* Tue Mar 6 2012 Sérgio Basto - 0.120-2.20120303 -- Enable libavformat , after compile ffmeg with 0.120-1 - -* Sat Mar 3 2012 Sérgio Basto - 0.120-1.20120303 -- Change release number, upstream have release numbers at least on stable branch and as ffmpeg - reported. -- Update to 20120303 -- Update x264-nover.patch, as suggest by Joseph D. Wagner -- Dropped obsolete Buildroot and Clean. -- add BuildRequires: zlib-devel to enable gpac. - -* Wed Feb 22 2012 Nicolas Chauvet - 0.0.0-0.34.20120125 -- Rebuilt for F-17 inter branch - -* Wed Feb 08 2012 Nicolas Chauvet - 0.0.0-0.33.20120125 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild - -* Wed Jan 25 2012 Nicolas Chauvet - 0.0.0-0.32.20120125 -- Update to 20120125 - -* Mon Aug 22 2011 Dominik Mierzejewski 0.0.0-0.31.20110811 -- 20110811 snapshot (ABI 116) -- fix snapshot script to include version.h properly -- link x264 binary to the shared library - -* Thu Jul 14 2011 Nicolas Chauvet - 0.0.0-0.30.20110714 -- Update to 20110714 stable branch (ABI 115) -- Convert x264-snapshot to git (based on ffmpeg script). -- New Build Conditionals --with ffmpegsource libavformat -- Remove shared and strip patches - undeeded anymore -- Remove uneeded convertion of AUTHORS - -* Mon Jan 10 2011 Dominik Mierzejewski 0.0.0-0.29.20110227 -- 20110227 snapshot (ABI bump) - -* Tue Jul 06 2010 Dominik Mierzejewski 0.0.0-0.28.20100706gitd058f37 -- 20100706 snapshot (ABI bump) -- drop old Obsoletes: - -* Thu Apr 29 2010 Dominik Mierzejewski 0.0.0-0.27.20100429gitd9db8b3 -- 20100429 snapshot -- s/%%{ix86}/i686 (rfbz #1075) -- ship more docs in -devel - -* Sat Jan 16 2010 Dominik Mierzejewski 0.0.0-0.26.20100116git3d0f110 -- 20100116 snapshot (SO version bump) -- don't remove config.h and don't re-run version.sh -- link x264 binary to the shared library -- really don't strip if debug is enabled - -* Mon Oct 26 2009 Dominik Mierzejewski 0.0.0-0.26.20091026gitec46ace7 -- 20091026 snapshot - -* Thu Oct 15 2009 kwizart - 0.0.0-0.25.20091007git496d79d -- Update to 20091007git -- Move simd to %%{_libdir}/sse2 - -* Thu Mar 26 2009 Dominik Mierzejewski 0.0.0-0.24.20090319gitc109c8 -- 20090319 snapshot -- build with static gpac -- fix build on ppc - -* Tue Feb 10 2009 Dominik Mierzejewski 0.0.0-0.23.20090119git451ba8d -- 20090119 snapshot -- fix BRs for build-time options - -* Sat Dec 20 2008 Dominik Mierzejewski 0.0.0-0.22.20081213git9089d21 -- rebuild against new gpac - -* Sat Dec 13 2008 Dominik Mierzejewski 0.0.0-0.21.20081213git9089d21 -- fix the libs split on x86 - -* Sat Dec 13 2008 Dominik Mierzejewski 0.0.0-0.20.20081213git9089d21 -- 20081213 snapshot -- drop the libs split on x86, it doesn't work right for P3/AthlonXP -- drop obsolete patch - -* Thu Dec 04 2008 Dominik Mierzejewski 0.0.0-0.19.20081202git71d34b4.1 -- fix compilation on ppc - -* Tue Dec 02 2008 Dominik Mierzejewski 0.0.0-0.19.20081202git71d34b4 -- 20081202 snapshot -- bring back asm optimized/unoptimized libs split -- rebase and improve patch -- GUI dropped upstream -- dropped redundant BRs - -* Mon Nov 17 2008 Dominik Mierzejewski 0.0.0-0.18.20080905 -- partially revert latest changes (the separate sse2 libs part) until selinux - policy catches up - -* Fri Nov 07 2008 Dominik Mierzejewski 0.0.0-0.17.20080905 -- build libs without asm optimizations for less capable x86 CPUs (livna bug #2066) -- fix missing 0 in Obsoletes version (never caused any problems) - -* Fri Sep 05 2008 Dominik Mierzejewski 0.0.0-0.16.20080905 -- 20080905 snapshot -- use yasm on all supported arches -- include mp4 output support via gpac by default -- drop/move obsolete fixups from %%prep -- fix icon filename in desktop file - -* Sun Aug 03 2008 Thorsten Leemhuis 0.0.0-0.14.20080613 -- 20080613 snapshot (.so >= 59 is required by current mencoder) - -* Mon May 05 2008 Dominik Mierzejewski 0.0.0-0.13.20080420 -- 20080420 snapshot -- split libs into a separate package -- svn -> git -- drop obsolete execstack patch -- fixed summaries and descriptions - -* Wed Feb 27 2008 Dominik Mierzejewski 0.0.0-0.12.20080227 -- 20080227 snapshot -- fix build with gpac - -* Tue Nov 13 2007 Hans de Goede 0.0.0-0.11.20070819 -- Merge freshrpms spec into livna spec for rpmfusion: -- Change version from 0 to 0.0.0 so that it is equal to the freshrpms versions, - otherwise we would be older according to rpm version compare. -- Add Provides and Obsoletes x264-gtk to x264-gui for upgrade path from - freshrpms -- Fix icon cache update scripts - -* Sun Sep 30 2007 Hans de Goede 0-0.10.20070819 -- Fix use of execstack on i386, closes livna bug #1659 - -* Sun Aug 19 2007 Dominik Mierzejewski 0-0.9.20070819 -- 20070819 snapshot, closes bug #1560 - -* Thu Nov 09 2006 Dominik Mierzejewski 0-0.8.20061028 -- use PIC on all platforms, fixes bug #1243 - -* Sun Oct 29 2006 Dominik Mierzejewski 0-0.7.20061028 -- fix desktop entry categories for devel - -* Sun Oct 29 2006 Ville Skyttä - 0-0.6.20061028 -- fix BRs -- handle menu icon properly - -* Sat Oct 28 2006 Dominik Mierzejewski 0-0.5.20061028 -- fix bad patch chunk -- fix 32bit build on x86_64 - -* Sat Oct 28 2006 Ville Skyttä - 0-0.4.20061028 -- Don't let ./configure to guess arch, pass it ourselves. -- Drop X-Livna desktop entry category. - -* Sat Oct 28 2006 Dominik Mierzejewski 0-0.3.20061028 -- added GUI (based on kwizart's idea) -- latest snapshot -- added some docs to -devel - -* Sun Oct 01 2006 Dominik Mierzejewski 0-0.2.20061001 -- add snapshot generator script -- fix make install -- make nasm/yasm BRs arch-dependent -- configure is not autoconf-based, call it directly - -* Sat Sep 30 2006 Dominik Mierzejewski 0-0.1.569 -- Updated to latest SVN trunk -- specfile cleanups - -* Mon Sep 04 2006 Dominik Mierzejewski 0-0.1.558 -- Updated to latest SVN trunk -- FE compliance - -* Sun Mar 12 2006 Dominik Mierzejewski 0-0.1.467 -- Updated to latest SVN trunk -- Build shared library -- mp4 output requires gpac - -* Mon Jan 02 2006 Dominik Mierzejewski 0-0.1.394 -- Updated to latest SVN trunk -- Change versioning scheme - -* Sun Nov 27 2005 Dominik Mierzejewski 0.0.375-1 -- Updated to latest SVN trunk -- Added pkgconfig file to -devel - -* Tue Oct 4 2005 Matthias Saou 0.0.315-1 -- Update to svn 315. -- Disable vizualize since otherwise programs trying to link without -lX11 will - fail (cinelerra in this particular case). - -* Mon Aug 15 2005 Matthias Saou 0.0.285-1 -- Update to svn 285. -- Add yasm build requirement (needed on x86_64). -- Replace X11 lib with lib/lib64 to fix x86_64 build. - -* Tue Aug 2 2005 Matthias Saou 0.0.281-1 -- Update to svn 281. - -* Mon Jul 11 2005 Matthias Saou 0.0.273-1 -- Initial RPM release. diff --git a/anda/multimedia/x264/anda.hcl b/anda/multimedia/x264/anda.hcl index e4736bc5c9..2068b1ab39 100644 --- a/anda/multimedia/x264/anda.hcl +++ b/anda/multimedia/x264/anda.hcl @@ -2,8 +2,10 @@ project pkg { arches = ["x86_64", "aarch64", "i386"] rpm { spec = "x264.spec" + extra_repos = ["https://repos.fyralabs.com/terrarawhide-multimedia"] } labels { mock = 1 + subrepo = "multimedia" } } diff --git a/anda/multimedia/x264/x264.spec b/anda/multimedia/x264/x264.spec index db33845824..d5d89976d8 100644 --- a/anda/multimedia/x264/x264.spec +++ b/anda/multimedia/x264/x264.spec @@ -1,818 +1,88 @@ -%global fusionsrc_commit 91b92ea4846982e5d9eb58744fda70f75d0faf8d +%global commit 0480cb05fa188d37ae87e8f4fd8f1aea3711f7ee +%global commit_date 20250910 +%global api_version 165 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) -# globals for x264-0.164-20231001git31e19f92.tar.bz2 -%global api 164 -%global gitdate 20231001 -%global gitversion 31e19f92 -%global gitlongver 31e19f92f00c7003fa115047ce50978bc98c3a0d +%bcond_with bootstrap -%global snapshot %{gitdate}git%{gitversion} -%global gver .%{gitdate}git%{gitversion} -%global branch stable +Name: x264 +Version: 0.%{api_version} +Release: 38%{?shortcommit:.%{commit_date}git%{shortcommit}}%{?dist} +Epoch: 1 +Summary: H264/AVC video streams encoder +License: GPL-2.0-or-later +URL: https://www.videolan.org/developers/x264.html -#global _with_bootstrap 1 - -%{?_with_bootstrap: -%global _without_gpac 1 -%global _without_libavformat 1 -%global _without_libswscale 1 -} - -# Reduce dependencies to build x264-libs on i686 -%if 0%{?fedora} -%ifarch i686 -%global _without_gpac 1 -%global _without_libavformat 1 -%global _without_libswscale 1 -%endif +BuildRequires: gcc +BuildRequires: nasm >= 2.13 +BuildRequires: pkgconfig(bash-completion) +%if %{without bootstrap} +BuildRequires: pkgconfig(libavcodec) +BuildRequires: pkgconfig(libavformat) +BuildRequires: pkgconfig(libavutil) +BuildRequires: pkgconfig(libswscale) %endif -#Whitelist of arches with dedicated ASM code -%global asmarch aarch64 armv7hl armv7hnl i686 ppc64 ppc64le x86_64 -%ifnarch %{asmarch} -%global _without_asm 1 -%endif - -Summary: H264/AVC video streams encoder -Name: x264 -Version: 0.%{api} -Release: 16%{?gver}%{?_with_bootstrap:_bootstrap}%{?dist} -License: GPLv2+ -URL: https://www.videolan.org/developers/x264.html -Source0: https://code.videolan.org/videolan/x264/-/archive/%gitversion.tar.bz2 -Source1: https://raw.githubusercontent.com/rpmfusion/x264/%fusionsrc_commit/x264-snapshot.sh -Source2: https://raw.githubusercontent.com/rpmfusion/x264/%fusionsrc_commit/version.h - -# don't remove config.h and don't re-run version.sh -Patch0: https://raw.githubusercontent.com/rpmfusion/x264/%fusionsrc_commit/x264-nover.patch -# add 10b suffix to high bit depth build -Patch1: https://raw.githubusercontent.com/rpmfusion/x264/%fusionsrc_commit/x264-10b.patch -# fix assignment from incompatible pointer type errors -Patch2: https://raw.githubusercontent.com/rpmfusion/x264/%fusionsrc_commit/x264-altivec-incompatible-pointer-type.patch -Patch11: https://raw.githubusercontent.com/rpmfusion/x264/%fusionsrc_commit/x264-opencl.patch - -BuildRequires: anda-srpm-macros git-core -BuildRequires: gcc -%{!?_without_gpac:BuildRequires: gpac-static >= 1.0.1 zlib-devel openssl-devel libpng-devel libjpeg-devel xz-devel libglvnd-devel mesa-libGLU-devel faad2-devel libmad-devel xvidcore-devel a52dec-devel libvorbis-devel libtheora-devel openjpeg2-devel } -%{!?_without_libavformat:BuildRequires: ffmpeg-devel} -%{?_with_ffmpegsource:BuildRequires: ffmpegsource-devel} -# https://bugzilla.rpmfusion.org/show_bug.cgi?id=3975 -%ifarch armv7hl armv7hnl -BuildRequires: execstack -%endif -%ifarch %{asmarch} -BuildRequires: nasm -%endif -BuildRequires: pkgconfig(bash-completion) -# we need to enforce the exact EVR for an ISA - not only the same ABI -Requires: %{name}-libs%{?_isa} = %{version}-%{release} -Requires: ffmpeg-libs%{?_isa} +Requires: bash-completion %description -x264 is a free library for encoding H264/AVC video streams, written from -scratch. - -This package contains the frontend. +%{name} is a free software library and application for encoding video streams into +the H.264/MPEG-4 AVC compression format. This package contains the command line +encoder. %package libs -Summary: Library for encoding H264/AVC video streams -Recommends: %{_libdir}/libOpenCL.so.1 +Summary: Library for encoding H264/AVC video streams %description libs -x264 is a free library for encoding H264/AVC video streams, written from -scratch. +%{name} is a free software library and application for encoding video streams into +the H.264/MPEG-4 AVC compression format. This package contains the shared +libraries. %package devel -Summary: Development files for the x264 library -Requires: %{name}-libs%{?_isa} = %{version}-%{release} -Requires: pkgconfig +Summary: Development files for the x264 library +Requires: %{name}-libs%{?_isa} = %{?epoch}:%{version}-%{release} +Requires: pkgconfig %description devel -x264 is a free library for encoding H264/AVC video streams, written from -scratch. +The %{name}-devel package contains libraries and header files for developing +applications that use %{name}. -This package contains the development files. - -%pkg_completion -B x264 - -%global x_configure \ -./configure \\\ - --host=%{_host} \\\ - --prefix=%{_prefix} \\\ - --exec-prefix=%{_exec_prefix} \\\ - --bindir=%{_bindir} \\\ - --includedir=%{_includedir} \\\ - --libdir=%{_libdir} \\\ - %{?_without_libavformat:--disable-lavf} \\\ - %{?_without_libswscale:--disable-swscale} \\\ - %{!?_with_ffmpegsource:--disable-ffms} \\\ - --enable-debug \\\ - --enable-shared \\\ - --system-libx264 \\\ - --enable-pic %prep -%setup -q -n x264-%gitversion-%gitlongver - -mkdir x264-0.%{api}-%{snapshot} -pushd x264-0.%{api}-%{snapshot} -git init -git remote add origin https://code.videolan.org/videolan/x264.git -git fetch --depth 1 origin %gitlongver -git checkout FETCH_HEAD -sh version.sh > ./version.h - -cp %{SOURCE2} . -%patch -P0 -p1 -b .nover -%patch -P1 -p1 -b .10b -%patch -P2 -p1 -b .ptr -%patch -P11 -p1 -b .opencl -popd - -for variant in generic generic10 ; do - rm -rf ${variant} - cp -pr x264-0.%{api}-%{snapshot} ${variant} -done +%git_clone https://code.videolan.org/videolan/x264.git %{commit} +%conf +%configure \ + --enable-bashcompletion \ + --enable-debug \ + --enable-pic \ + --enable-shared \ + --bit-depth=all \ + --system-libx264 %build -%set_build_flags -pushd generic -%{x_configure}\ - %{?_without_asm:--disable-asm} - %make_build -popd - -pushd generic10 -%{x_configure}\ - %{?_without_asm:--disable-asm}\ - --disable-cli\ - --disable-opencl \ - --bit-depth=10 - -%make_build -popd %install -# NOTE: the order is important here! We want the generic devel stuff -for variant in generic10 generic ; do -pushd ${variant} %make_install -popd -done - -#Fix timestamp on x264 generated headers -touch -r generic/version.h %{buildroot}%{_includedir}/x264.h %{buildroot}%{_includedir}/x264_config.h - -# https://bugzilla.rpmfusion.org/show_bug.cgi?id=3975 -%ifarch armv7hl armv7hnl -execstack -c %{buildroot}%{_libdir}/libx264{,10b}.so.%{api} -%endif - -install -dm755 %{buildroot}%{_pkgdocdir} -install -pm644 generic/{AUTHORS,COPYING} %{buildroot}%{_pkgdocdir}/ - %ldconfig_scriptlets libs - %files -%{_bindir}/x264 +%{_bindir}/%{name} +%{_datadir}/bash-completion/completions/%{name} %files libs -%dir %{_pkgdocdir} -%{_pkgdocdir}/AUTHORS -%license %{_pkgdocdir}/COPYING -%{_libdir}/libx264.so.%{api} -%{_libdir}/libx26410b.so.%{api} +%license COPYING +%doc AUTHORS +%{_libdir}/lib%{name}.so.* %files devel -%doc generic/doc/* -%{_includedir}/x264.h -%{_includedir}/x264_config.h -%{_libdir}/libx264.so -%{_libdir}/libx26410b.so -%{_libdir}/pkgconfig/x264.pc +%doc doc/* +%{_includedir}/%{name}.h +%{_includedir}/%{name}_config.h +%{_libdir}/lib%{name}.so +%{_libdir}/pkgconfig/%{name}.pc %changelog -* Tue Oct 08 2024 Nicolas Chauvet - 0.164-15.20231001git31e19f92 -- Rebuilt - -* Fri Aug 02 2024 RPM Fusion Release Engineering - 0.164-14.20231001git31e19f92 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Sun Mar 10 2024 Dominik Mierzejewski - 0.164-13.20231001git31e19f92 -- Fix "assignment from incompatible pointer type" errors on ppc64le -- Use correct build dependency on bash-completion - -* Sun Feb 04 2024 RPM Fusion Release Engineering - 0.164-12.20231001git31e19f92 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Sun Nov 12 2023 Leigh Scott - 0.164-11.20231001git31e19f92 -- Rebuild for new ffmpeg version - -* Sun Oct 01 2023 Sérgio Basto - 0.164-10.20231001git31e19f92 -- Update to x264-0.164-20231001git31e19f92 (stable branch) - -* Wed Sep 27 2023 Sérgio Basto - 0.164-9.20220602gitbaee400f -- [Bug 6769] Include bash completion definitions for x264 - -* Wed Aug 02 2023 RPM Fusion Release Engineering - 0.164-8.20220602gitbaee400f -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Mon Mar 13 2023 Leigh Scott - 0.164-7.20220602gitbaee400f -- Rebuild for gpac - -* Tue Feb 28 2023 Sérgio Basto - 0.164-6.20220602gitbaee400f -- Disable build with gpac until we can build gapc with ffmepg-6 - -* Tue Feb 28 2023 Leigh Scott - 0.164-5.20220602gitbaee400f -- Rebuilt for new ffmpeg - -* Sun Feb 19 2023 Leigh Scott - 0.164-4.20220602gitbaee400f -- rebuilt - -* Sun Sep 04 2022 Leigh Scott - 0.164-3.20220602gitbaee400f -- Add requires ffmpeg-libs - -* Mon Aug 08 2022 RPM Fusion Release Engineering - 0.164-2.20220602gitbaee400f -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild and ffmpeg - 5.1 - -* Mon Jun 06 2022 Sérgio Basto - 0.164-1.20220602gitbaee400f -- Update to x264-0.164-20220602gitbaee400f (stable branch) - -* Sat Mar 05 2022 Sérgio Basto - 0.163-6.20210613git5db6aa6 -- Rebuild for new gpac on F36 - -* Sat Feb 26 2022 Leigh Scott - 0.163-5.20210613git5db6aa6 -- Rebuild for new gpac - -* Wed Feb 09 2022 RPM Fusion Release Engineering - 0.163-4.20210613git5db6aa6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Tue Nov 09 2021 Leigh Scott - 0.163-3.20210613git5db6aa6 -- Rebuilt for new ffmpeg snapshot - -* Tue Aug 03 2021 RPM Fusion Release Engineering - 0.163-2.20210613git5db6aa6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Mon Jun 14 2021 Sérgio Basto - 0.163-1.20210613git5db6aa6 -- x264-0.163-20210613git5db6aa6 soname bump -- gpac patch accepted upstream with modifications - -* Tue Apr 13 2021 Sérgio Basto - 0.161-6.20210412git55d517b -- Update to x264-0.161-20210412git55d517b (stable branch) - -* Thu Feb 04 2021 RPM Fusion Release Engineering - 0.161-5.20210124git544c61f -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Sun Jan 24 2021 Sérgio Basto - 0.161-4.20210124git544c61f -- Update to 0.161-20210124git544c61f (stable branch) - -* Tue Jan 19 2021 Dominik Mierzejewski - 0.161-3.20200912gitd198931 -- Drop non-asm build for i686 and ppc64 (rfbz#5855) -- Use set_build_flags instead of configure macro for non-autotools script (rfbz#5854) - -* Thu Dec 31 2020 Leigh Scott - 0.161-2.20200912gitd198931 -- Rebuilt for new ffmpeg snapshot - -* Wed Nov 18 2020 Sérgio Basto - 0.161-1.20200912gitd198931 -- Update x264 to api 0.161 (stable branch) - -* Wed Aug 19 2020 RPM Fusion Release Engineering - 0.160-2.20200702gitcde9a93 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Mon Jul 06 2020 Sérgio Basto - 0.160-1.20200702gitcde9a93 -- Update to 0.160-20200702gitcde9a93 (stable branch) - -* Mon Jul 06 2020 Nicolas Chauvet - 0.159-11.20200409git296494a -- Bump - -* Mon Jul 06 2020 Sérgio Basto - 0.159-10.20200409git296494a -- Fix detection of gpac try 2 - -* Mon Jul 06 2020 Sérgio Basto - 0.159-9.20200409git296494a -- Fix detection of gpac - -* Wed Jun 10 2020 Sérgio Basto - 0.159-8.20200409git296494a -- Update to 0.159-20200409git296494a (stable branch) -- Replace all __make _smp_mflags by make_build macro - -* Thu Mar 12 2020 Leigh Scott - 0.159-7.20191127git1771b55 -- Rebuilt for i686 - -* Wed Mar 11 2020 Nicolas Chauvet - 0.159-6.20191127git1771b55_bootstrap -- bootstrap for i686 - -* Sat Feb 22 2020 Leigh Scott - 0.159-5.20191127git1771b55 -- Rebuild for ffmpeg-4.3 git - -* Wed Feb 05 2020 RPM Fusion Release Engineering - 0.159-4.20191127git1771b55 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Tue Dec 17 2019 Leigh Scott - 0.159-3.20191127git1771b55 -- Rebuild without bootstrap - -* Tue Dec 17 2019 Leigh Scott - 0.159-2.20191127git1771b55_bootstrap -- DO A BOOTSTRAP BUILD - -* Mon Dec 16 2019 Sérgio Monteiro Basto - 0.159-1.20191127git1771b55 -- Update to 0.159-20191127-git1771b55 (stable branch) - -* Fri Oct 04 2019 Dominik Mierzejewski - 0.157-12.20190717git34c06d1 -- don't overwrite generic headers with 10bit on simdarch (rfbz#5071) - -* Mon Aug 26 2019 Nicolas Chauvet - 0.157-11.20190717git34c06d1 -- Drop hack for arm builders - -* Tue Aug 06 2019 Leigh Scott - 0.157-10.20190717git34c06d1 -- Rebuild for new ffmpeg version - -* Wed Jul 17 2019 Sérgio Basto - 0.157-9.20190717git34c06d1 -- 0.157 update, date 2019-07-17 (stable branch) - -* Tue May 07 2019 Sérgio Basto - 0.157-8.20190303git72db437 -- Revert "Build /usr/bin/x264 with gpac shared lib instead static lib." - -* Wed May 01 2019 Leigh Scott - 0.157-7.20190303git72db437 -- Fix ARM rpm mangle issue - -* Tue Apr 30 2019 Sérgio Basto - 0.157-6.20190303git72db437_bootstrap -- Bootstrap to fix arm builds - -* Mon Apr 29 2019 Sérgio Basto - 0.157-5.20190303git72db437 -- Enable opencl (which is default) only exist --disable-opencl option -- Disable opencl on 10bit seems that is just prepared for 8bit. -- Build /usr/bin/x264 with gpac shared lib instead static lib. - -* Sun Apr 28 2019 Leigh Scott - 0.157-4.20190303git72db437 -- Fix opencl dlopen (rfbz#5185) - -* Tue Mar 12 2019 Leigh Scott - 0.157-3.20190303git72db437 -- Disable bootstrap build - -* Tue Mar 12 2019 Leigh Scott - 0.157-2.20190303git72db437_bootstrap -- Do the forgotten bootstrap build - -* Tue Mar 12 2019 Sérgio Basto - 0.157-1.20190303git72db437 -- Update to 0.157 (stable branch) -- Rebase patches - -* Tue Mar 05 2019 RPM Fusion Release Engineering - 0.155-3.20180806git0a84d98 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Wed Nov 07 2018 Stefan Becker - 0.155-2.20180806git0a84d98 -- reverse order of generic/generic10 install to fix -devel contents (rfbz #5071) - -* Thu Oct 04 2018 Sérgio Basto - 0.155-1.20180806git0a84d98 -- Update x264 to 0.155 -- Rebase x264-10b.patch -- Add a patch to fix linking with --system-libx264 on x86 - ( https://patches.videolan.org/patch/21704/ ) - -* Sun Aug 19 2018 Leigh Scott - 0.152-7.20171224gite9a5903 -- Rebuilt for Fedora 29 Mass Rebuild binutils issue - -* Fri Jul 27 2018 RPM Fusion Release Engineering - 0.152-6.20171224gite9a5903 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Thu Mar 08 2018 RPM Fusion Release Engineering - 0.152-5.20171224gite9a5903 -- Rebuilt for new ffmpeg snapshot - -* Thu Mar 01 2018 RPM Fusion Release Engineering - 0.152-4.20171224gite9a5903 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Wed Jan 17 2018 Leigh Scott - 0.152-3.20171224gite9a5903 -- Rebuilt for ffmpeg-3.5 git - -* Thu Jan 04 2018 Sérgio Basto - 0.152-2.20171224gite9a5903 -- un-bootstrap x264 - -* Sat Dec 30 2017 Sérgio Basto - 0.152-1.20171224gite9a5903_bootstrap -- Update x264 to 0.152 and switch asm compiler from yasm to nasm - -* Thu Aug 31 2017 RPM Fusion Release Engineering - 0.148-22.20170521gitaaa9aa8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Mon Jun 26 2017 Sérgio Basto - 0.148-21.20170521gitaaa9aa8 -- Update x264 to x264-0.148-20170521-aaa9aa8 - -* Mon May 22 2017 Sérgio Basto - 0.148-20.20170519gitd32d7bf -- Update x264 to x264-0.148-20170519-d32d7bf - -* Sat Apr 29 2017 Leigh Scott - 0.148-19.20170121git97eaef2 -- Rebuild for ffmpeg update - -* Wed Mar 22 2017 Sérgio Basto - 0.148-18.20170121git97eaef2 -- Unbootstrap - -* Mon Mar 20 2017 RPM Fusion Release Engineering - 0.148-17.20170121git97eaef2_bootstrap -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Sat Mar 18 2017 Sérgio Basto - 0.148-16.20170121git97eaef2_bootstrap -- Bootstrap for ppc64, ppc64le and aarch64 - -* Wed Jan 25 2017 Sérgio Basto - 0.148-15.20170121git97eaef2 -- Update x264 to git stable snapshot of 20170121 - -* Sat Dec 03 2016 Sérgio Basto - 0.148-14.20161201git4d5c8b0 -- Update to x264-0.148-20161201-4d5c8b0 stable branch -- Improve x264-snapshot.sh to use date from last commit and print the headers to - include in x264.spec - -* Sat Nov 05 2016 Sérgio Basto - 0.148-13.20160924git86b7198 -- Rebuilt for new ffmpeg - -* Tue Sep 27 2016 Sérgio Basto - 0.148-12.20160924git86b7198 -- Update to 0.148-20160924-86b7198 version - -* Fri Aug 26 2016 Dominik Mierzejewski - 0.148-11.20160614gita5e06b9 -- rework asm treatment on i686 and ppc64 -- fix adding the 10b suffix to the library name -- correct the list of ASM-enabled arches: - * ppc64 can be Power5, which doesn't have AltiVec - * ppc64le always has it - * no implementation for sparc -- force non-executable stack on armv7 (#3975) -- explicitly disable OpenCL support, it's dlopened at the moment - and not working without ocl-icd-devel -- drop doc and license from main package, libs already contain it -- update URL - -* Thu Aug 18 2016 Sérgio Basto - 0.148-10.20160614gita5e06b9 -- Add license tag also to x264-libs - -* Mon Aug 01 2016 Sérgio Basto - 0.148-9.20160614gita5e06b9 -- Enable asm in build with 10bit on i686 - -* Sat Jul 30 2016 Julian Sikorski - 0.148-8.20160614gita5e06b9 -- Rebuilt for ffmpeg-3.1.1 - -* Tue Jun 21 2016 Sérgio Basto - 0.148-7.20160614gita5e06b9 -- Update to last stable version upstream. - -* Tue Apr 19 2016 Sérgio Basto - 0.148-6.20160412gitfd2c324 -- Update x264 to 0.148-20160412-fd2c324 - -* Wed Jan 20 2016 Sérgio Basto - 0.148-5.20160118git5c65704 -- Fix enable-asm #2 - -* Tue Jan 19 2016 Sérgio Basto - 0.148-4.20160118git5c65704 -- Fix enable-asm - -* Mon Jan 18 2016 Nicolas Chauvet - 0.148-3.20160118git5c65704 -- Restore explicit dependency on -libs - enforce %%{_isa} -- Expand arm arches where asm is available. -- Restore asm only on sse2 and later capable i686 - -* Mon Jan 18 2016 Sérgio Basto - 0.148-2.20151020gita0cd7d3 -- Update x264 to 0.148-20160118-5c65704 - -* Fri Nov 27 2015 Simone Caronni -- Remove obsolete SPEC file tags, defattr were also breaking file permissions, - all libraries were not executable. -- Enable optimizations in RHEL, they are working since RHEL 6: - https://bugzilla.rpmfusion.org/show_bug.cgi?id=3260 -- Add license and make_install macro as per packaging guidelines. -- Use the default configure macro and remove redundant parameters. Optimizations - (build flags) are now added by default. - -* Wed Oct 21 2015 Sérgio Basto - 0.148-1.20151020gita0cd7d3 -- Update to x264-0.148, soname bump, git a0cd7d3, date 20151020 . - -* Sat Jun 06 2015 Sérgio Basto - 0.144-1.20150225gitc8a773e -- Update to x264-0.144, soname bump, git c8a773e from date 20150225 . - -* Mon Jun 01 2015 Marcin Juszkiewicz - 0.142-12.20141221git6a301b6 -- Added patch to make it build on AArch64. - -* Mon Dec 22 2014 Sérgio Basto - 0.142-11.20141221git6a301b6 -- Update x264-0.142 to git 6a301b6 - -* Sun Oct 19 2014 Sérgio Basto - 0.142-10.20140826git021c0dc -- Rebuilt for FFmpeg 2.4.3 - -* Fri Sep 26 2014 Nicolas Chauvet - 0.142-9.20140826git021c0dc -- Rebuilt for FFmpeg 2.4.x - -* Mon Sep 15 2014 Sérgio Basto - 0.142-7.20140826git021c0dc -- Update x264-0.142 to git 021c0dc - -* Thu Aug 07 2014 Sérgio Basto - 0.142-6.20140728gitaf8e768 -- Rebuilt for ffmpeg-2.3 - -* Mon Jul 28 2014 Sérgio Basto - 0.142-5.20140728gitaf8e768 -- Update x264-0.142 to git af8e768 - -* Wed Apr 23 2014 Sérgio Basto - 0.142-4.20140423gite260ea5 -- Update to git e260ea5 (stable branch) - -* Tue Mar 25 2014 Sérgio Basto - 0.142-3.20140314gitaff928d -- Rebuilt for ffmpeg-2.2 - -* Sun Mar 23 2014 Sérgio Basto - 0.142-2.20140314gitaff928d -- Un-bootstrap - -* Fri Mar 14 2014 Sérgio Basto - 0.142-1.20140314gitaff928d_bootstrap -- Update to 0.142 git aff928d (stable branch) and bootstrap - -* Mon Mar 10 2014 Sérgio Basto - 0.140-3.20140122gitde0bc36 -- Un-boostrap - -* Wed Mar 05 2014 Sérgio Basto - 0.140-2.20140122gitde0bc36 -- bootstrap x264 to avoid: - /usr/bin/ld: warning: libx264.so.138, needed by - /usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../lib64/libavcodec.so, may conflict with - libx264.so.140 - -* Wed Jan 22 2014 Sérgio Basto - 0.140-1.20140122gitde0bc36 -- Update to 0.140 git de0bc36 (stable branch) -- drop visualize options, ./configure doesn't have --enable-visualize or --disable-visualize, -anymore - -* Tue Nov 05 2013 Sérgio Basto - 0.138-2.20131030-c628e3b -- Unbootstrap. - -* Sat Nov 02 2013 Sérgio Basto - 0.138-1.20131030-c628e3b -- Update to 0.138 git c628e3b (stable branch) and bootstrap for new ffmpeg. - -* Fri Oct 18 2013 Sérgio Basto - 0.136-1.20131005git3361d59 -- Update to 0.136 git 3361d59 (stable branch). - -* Mon Sep 30 2013 Sérgio Basto - 0.133-3.20130709git585324f -- Fix gpac detection. - -* Thu Aug 15 2013 Nicolas Chauvet - 0.133-2.20130709git585324f -- Rebuilt for FFmpeg 2.0.x - -* Tue Jul 09 2013 Sérgio Basto - 0.133-1.20130709git585324f -- Update to git 585324fee380109acd9986388f857f413a60b896 (HEAD of stable branch). - -* Sat May 25 2013 Sérgio Basto - 0.130-3.20130502git1db4621 -- Build without bootstrap for F19. - -* Fri May 24 2013 Sérgio Basto - 0.130-2.20130502git1db4621 -- Build with bootstrap for F19. - -* Thu May 02 2013 Sérgio Basto - 0.130-1.20130502git1db4621 -- Update to git 1db4621 - -* Tue Mar 05 2013 Sérgio Basto - 0.129-3.20130305gite403db4 -- Update to git e403db4f9079811f5a1f9a1339e7c85b41800ca7 - -* Sun Jan 20 2013 Sérgio Basto - 0.129-2.20130119git9c4ba4b -- Rebuild for ffmpeg-1.1.1 . - -* Sat Jan 19 2013 Sérgio Basto - 0.129-1.20130119git9c4ba4b -- Update to 9c4ba4bde8965571159eae2d79f85cabbb47416c, soname bump. -- Changed branch name by api number, is more readable. -- Drop upstreamed patch. - -* Fri Nov 23 2012 Sérgio Basto - 0.128-2.20121118gitf6a8615 -- unbootstrap on F18. - -* Mon Nov 19 2012 Sérgio Basto - 0.128-1.20121118gitf6a8615 -- Update to f6a8615ab0c922ac2cb5c82c9824f6f4742b1725. - -* Sat Oct 06 2012 Sérgio Basto - 0.125-4.20121006git68dfb7b -- Note: no source update. -- Just add git tag to package name, for faster check upstream. -- Add git tag in x264-snapshot.sh . -- Convert all defines in global. - -* Sun Sep 09 2012 Sérgio Basto - 0.125-4.20120909 -- unbootstrap on F18. - -* Sun Sep 09 2012 Sérgio Basto - 0.125-3.20120909 -- update x264-0.125 from r2201 to r2209. - -* Thu Sep 06 2012 Sérgio Basto - 0.125-2.20120904 -- unbootstrap - -* Tue Sep 04 2012 Sérgio Basto - 0.125-1.20120904 -- Pulled latest stable patches, which bump version to 0.125. - -* Mon Jun 25 2012 Sérgio Basto - 0.124-5.20120616 -- Fixed detection of gf_malloc and gf_free - -* Sun Jun 24 2012 Sérgio Basto - 0.124-4.20120616 -- unbootstrap. - -* Sat Jun 23 2012 Nicolas Chauvet - 0.124-3.20120616 -- Rework alternatives build -- Fix SONAME for x26410b - -* Sun Jun 17 2012 Sérgio Basto - 0.124-2.20120616 -- use _libdir to fix build on x86_64. - -* Sun Jun 17 2012 Sérgio Basto - 0.124-1.20120616 -- Update to 20120616 -- Add one build with --bit-depth=10 -- Enabled bootstrap, after rebuild ffmpeg, we rebuild x264 without bootstrap. - -* Tue May 01 2012 Nicolas Chauvet - 0.120-5.20120303 -- Forward rhel patch -- Disable ASM on armv5tel armv6l -- Add --with bootstrap conditional -- Use %%{_isa} for devel requires - -* Tue Mar 6 2012 Sérgio Basto - 0.120-2.20120303 -- Enable libavformat , after compile ffmeg with 0.120-1 - -* Sat Mar 3 2012 Sérgio Basto - 0.120-1.20120303 -- Change release number, upstream have release numbers at least on stable branch and as ffmpeg - reported. -- Update to 20120303 -- Update x264-nover.patch, as suggest by Joseph D. Wagner -- Dropped obsolete Buildroot and Clean. -- add BuildRequires: zlib-devel to enable gpac. - -* Wed Feb 22 2012 Nicolas Chauvet - 0.0.0-0.34.20120125 -- Rebuilt for F-17 inter branch - -* Wed Feb 08 2012 Nicolas Chauvet - 0.0.0-0.33.20120125 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild - -* Wed Jan 25 2012 Nicolas Chauvet - 0.0.0-0.32.20120125 -- Update to 20120125 - -* Mon Aug 22 2011 Dominik Mierzejewski 0.0.0-0.31.20110811 -- 20110811 snapshot (ABI 116) -- fix snapshot script to include version.h properly -- link x264 binary to the shared library - -* Thu Jul 14 2011 Nicolas Chauvet - 0.0.0-0.30.20110714 -- Update to 20110714 stable branch (ABI 115) -- Convert x264-snapshot to git (based on ffmpeg script). -- New Build Conditionals --with ffmpegsource libavformat -- Remove shared and strip patches - undeeded anymore -- Remove uneeded convertion of AUTHORS - -* Mon Jan 10 2011 Dominik Mierzejewski 0.0.0-0.29.20110227 -- 20110227 snapshot (ABI bump) - -* Tue Jul 06 2010 Dominik Mierzejewski 0.0.0-0.28.20100706gitd058f37 -- 20100706 snapshot (ABI bump) -- drop old Obsoletes: - -* Thu Apr 29 2010 Dominik Mierzejewski 0.0.0-0.27.20100429gitd9db8b3 -- 20100429 snapshot -- s/%%{ix86}/i686 (rfbz #1075) -- ship more docs in -devel - -* Sat Jan 16 2010 Dominik Mierzejewski 0.0.0-0.26.20100116git3d0f110 -- 20100116 snapshot (SO version bump) -- don't remove config.h and don't re-run version.sh -- link x264 binary to the shared library -- really don't strip if debug is enabled - -* Mon Oct 26 2009 Dominik Mierzejewski 0.0.0-0.26.20091026gitec46ace7 -- 20091026 snapshot - -* Thu Oct 15 2009 kwizart - 0.0.0-0.25.20091007git496d79d -- Update to 20091007git -- Move simd to %%{_libdir}/sse2 - -* Thu Mar 26 2009 Dominik Mierzejewski 0.0.0-0.24.20090319gitc109c8 -- 20090319 snapshot -- build with static gpac -- fix build on ppc - -* Tue Feb 10 2009 Dominik Mierzejewski 0.0.0-0.23.20090119git451ba8d -- 20090119 snapshot -- fix BRs for build-time options - -* Sat Dec 20 2008 Dominik Mierzejewski 0.0.0-0.22.20081213git9089d21 -- rebuild against new gpac - -* Sat Dec 13 2008 Dominik Mierzejewski 0.0.0-0.21.20081213git9089d21 -- fix the libs split on x86 - -* Sat Dec 13 2008 Dominik Mierzejewski 0.0.0-0.20.20081213git9089d21 -- 20081213 snapshot -- drop the libs split on x86, it doesn't work right for P3/AthlonXP -- drop obsolete patch - -* Thu Dec 04 2008 Dominik Mierzejewski 0.0.0-0.19.20081202git71d34b4.1 -- fix compilation on ppc - -* Tue Dec 02 2008 Dominik Mierzejewski 0.0.0-0.19.20081202git71d34b4 -- 20081202 snapshot -- bring back asm optimized/unoptimized libs split -- rebase and improve patch -- GUI dropped upstream -- dropped redundant BRs - -* Mon Nov 17 2008 Dominik Mierzejewski 0.0.0-0.18.20080905 -- partially revert latest changes (the separate sse2 libs part) until selinux - policy catches up - -* Fri Nov 07 2008 Dominik Mierzejewski 0.0.0-0.17.20080905 -- build libs without asm optimizations for less capable x86 CPUs (livna bug #2066) -- fix missing 0 in Obsoletes version (never caused any problems) - -* Fri Sep 05 2008 Dominik Mierzejewski 0.0.0-0.16.20080905 -- 20080905 snapshot -- use yasm on all supported arches -- include mp4 output support via gpac by default -- drop/move obsolete fixups from %%prep -- fix icon filename in desktop file - -* Sun Aug 03 2008 Thorsten Leemhuis 0.0.0-0.14.20080613 -- 20080613 snapshot (.so >= 59 is required by current mencoder) - -* Mon May 05 2008 Dominik Mierzejewski 0.0.0-0.13.20080420 -- 20080420 snapshot -- split libs into a separate package -- svn -> git -- drop obsolete execstack patch -- fixed summaries and descriptions - -* Wed Feb 27 2008 Dominik Mierzejewski 0.0.0-0.12.20080227 -- 20080227 snapshot -- fix build with gpac - -* Tue Nov 13 2007 Hans de Goede 0.0.0-0.11.20070819 -- Merge freshrpms spec into livna spec for rpmfusion: -- Change version from 0 to 0.0.0 so that it is equal to the freshrpms versions, - otherwise we would be older according to rpm version compare. -- Add Provides and Obsoletes x264-gtk to x264-gui for upgrade path from - freshrpms -- Fix icon cache update scripts - -* Sun Sep 30 2007 Hans de Goede 0-0.10.20070819 -- Fix use of execstack on i386, closes livna bug #1659 - -* Sun Aug 19 2007 Dominik Mierzejewski 0-0.9.20070819 -- 20070819 snapshot, closes bug #1560 - -* Thu Nov 09 2006 Dominik Mierzejewski 0-0.8.20061028 -- use PIC on all platforms, fixes bug #1243 - -* Sun Oct 29 2006 Dominik Mierzejewski 0-0.7.20061028 -- fix desktop entry categories for devel - -* Sun Oct 29 2006 Ville Skyttä - 0-0.6.20061028 -- fix BRs -- handle menu icon properly - -* Sat Oct 28 2006 Dominik Mierzejewski 0-0.5.20061028 -- fix bad patch chunk -- fix 32bit build on x86_64 - -* Sat Oct 28 2006 Ville Skyttä - 0-0.4.20061028 -- Don't let ./configure to guess arch, pass it ourselves. -- Drop X-Livna desktop entry category. - -* Sat Oct 28 2006 Dominik Mierzejewski 0-0.3.20061028 -- added GUI (based on kwizart's idea) -- latest snapshot -- added some docs to -devel - -* Sun Oct 01 2006 Dominik Mierzejewski 0-0.2.20061001 -- add snapshot generator script -- fix make install -- make nasm/yasm BRs arch-dependent -- configure is not autoconf-based, call it directly - -* Sat Sep 30 2006 Dominik Mierzejewski 0-0.1.569 -- Updated to latest SVN trunk -- specfile cleanups - -* Mon Sep 04 2006 Dominik Mierzejewski 0-0.1.558 -- Updated to latest SVN trunk -- FE compliance - -* Sun Mar 12 2006 Dominik Mierzejewski 0-0.1.467 -- Updated to latest SVN trunk -- Build shared library -- mp4 output requires gpac - -* Mon Jan 02 2006 Dominik Mierzejewski 0-0.1.394 -- Updated to latest SVN trunk -- Change versioning scheme - -* Sun Nov 27 2005 Dominik Mierzejewski 0.0.375-1 -- Updated to latest SVN trunk -- Added pkgconfig file to -devel - -* Tue Oct 4 2005 Matthias Saou 0.0.315-1 -- Update to svn 315. -- Disable vizualize since otherwise programs trying to link without -lX11 will - fail (cinelerra in this particular case). - -* Mon Aug 15 2005 Matthias Saou 0.0.285-1 -- Update to svn 285. -- Add yasm build requirement (needed on x86_64). -- Replace X11 lib with lib/lib64 to fix x86_64 build. - -* Tue Aug 2 2005 Matthias Saou 0.0.281-1 -- Update to svn 281. - -* Mon Jul 11 2005 Matthias Saou 0.0.273-1 -- Initial RPM release. +%autochangelog diff --git a/anda/multimedia/x265/anda.hcl b/anda/multimedia/x265/anda.hcl index 7bb0dd68ca..e0ae6f27d9 100644 --- a/anda/multimedia/x265/anda.hcl +++ b/anda/multimedia/x265/anda.hcl @@ -2,8 +2,10 @@ project pkg { arches = ["x86_64", "aarch64", "i386"] rpm { spec = "x265.spec" + extra_repos = ["https://repos.fyralabs.com/terrarawhide-multimedia"] } labels { - mock =1 + mock = 1 + subrepo = "multimedia" } } diff --git a/anda/multimedia/x265/x265.spec b/anda/multimedia/x265/x265.spec index f6148d92ae..fb88be98f5 100644 --- a/anda/multimedia/x265/x265.spec +++ b/anda/multimedia/x265/x265.spec @@ -9,8 +9,8 @@ Summary: H.265/HEVC encoder Name: x265 -Version: 4.1 -Release: 1%?dist +Version: 4.2 +Release: 1%{?dist} URL: http://x265.org/ # source/Lib/TLibCommon - BSD # source/Lib/TLibEncoder - BSD diff --git a/anda/multimedia/xevd/anda.hcl b/anda/multimedia/xevd/anda.hcl new file mode 100644 index 0000000000..e2404bcf99 --- /dev/null +++ b/anda/multimedia/xevd/anda.hcl @@ -0,0 +1,11 @@ +project pkg { + arches = ["x86_64", "aarch64", "i386"] + rpm { + spec = "xevd.spec" + extra_repos = ["https://repos.fyralabs.com/terrarawhide-multimedia"] + } + labels { + mock = 1 + subrepo = "multimedia" + } +} diff --git a/anda/multimedia/xevd/update.rhai b/anda/multimedia/xevd/update.rhai new file mode 100644 index 0000000000..39960f4ad2 --- /dev/null +++ b/anda/multimedia/xevd/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("mpeg5/xevd")); diff --git a/anda/multimedia/xevd/xevd-fix-build-on-non-x86.patch b/anda/multimedia/xevd/xevd-fix-build-on-non-x86.patch new file mode 100644 index 0000000000..cb3cdd7fc7 --- /dev/null +++ b/anda/multimedia/xevd/xevd-fix-build-on-non-x86.patch @@ -0,0 +1,187 @@ +diff -Naur xevd-0.5.0.old/CMakeLists.txt xevd-0.5.0/CMakeLists.txt +--- xevd-0.5.0.old/CMakeLists.txt 2025-09-08 17:02:37.227878934 +0200 ++++ xevd-0.5.0/CMakeLists.txt 2025-09-08 17:03:59.232785118 +0200 +@@ -105,8 +105,7 @@ + set(OPT_DBG "-DNDEBUG") # disable assert + endif() + +- set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -${OPT_LV} ${OPT_DBG} -fomit-frame-pointer -Wall -Wno-unused-function -Wno-unused-but-set-variable -Wno-unused-variable -Wno-attributes -Werror -Wno-unknown-pragmas -Wno-stringop-overflow -std=c99") +- set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-pointer-sign -pthread -Wno-pointer-to-int-cast -Wno-maybe-uninitialized") ++ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -${OPT_LV} ${OPT_DBG} -Wall -pthread -std=c99") + set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lm") + endif() + +@@ -134,6 +133,18 @@ + COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake) + endif() + ++# To build for arm provide in command line: -DARM=TRUE ++if(NOT ARM) ++ set(ARM "FALSE") ++else() ++ add_definitions(-DARM=1) ++ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -flax-vector-conversions") ++ if(NOT "${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin") ++ set(CMAKE_EXE_LINKER_FLAGS "-static") ++ endif() ++endif() ++message("ARM=${ARM}") ++ + ######################################## + # add CPack to project + ######################################## +diff -Naur xevd-0.5.0.old/src_base/CMakeLists.txt xevd-0.5.0/src_base/CMakeLists.txt +--- xevd-0.5.0.old/src_base/CMakeLists.txt 2025-09-08 17:02:37.230545819 +0200 ++++ xevd-0.5.0/src_base/CMakeLists.txt 2025-09-08 17:02:46.122035862 +0200 +@@ -15,14 +15,26 @@ + + include(GenerateExportHeader) + include_directories("${CMAKE_BINARY_DIR}") ++ ++set(ARM "FALSE") ++message("SYSTEM_PROCESSOR=${CMAKE_SYSTEM_PROCESSOR}") ++if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "^(arm|aarch)") ++ set(ARM "TRUE") ++elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "^(x86|ia64|i386|i686)") ++ set(X86 "TRUE") ++endif() ++ + if("${ARM}" STREQUAL "TRUE") + add_library( ${LIB_NAME_BASE} STATIC ${LIB_API_SRC} ${XEVD_INC} ${LIB_BASE_SRC} ${LIB_BASE_INC} ${LIB_NEON_SRC} ${LIB_NEON_INC} ) + add_library( ${LIB_NAME_BASE}_dynamic SHARED ${LIB_API_SRC} ${XEVD_INC} ${LIB_BASE_SRC} ${LIB_BASE_INC} ${LIB_NEON_SRC} ${LIB_NEON_INC} ) +-else() ++elseif(X86) + add_library( ${LIB_NAME_BASE} STATIC ${LIB_API_SRC} ${XEVD_INC} ${LIB_BASE_SRC} ${LIB_BASE_INC} ${LIB_SSE_SRC} ${LIB_SSE_INC} + ${LIB_AVX_SRC} ${LIB_AVX_INC} ) + add_library( ${LIB_NAME_BASE}_dynamic SHARED ${LIB_API_SRC} ${XEVD_INC} ${LIB_BASE_SRC} ${LIB_BASE_INC} ${LIB_SSE_SRC} ${LIB_SSE_INC} + ${LIB_AVX_SRC} ${LIB_AVX_INC} ) ++else() ++ add_library( ${LIB_NAME_BASE} STATIC ${LIB_API_SRC} ${XEVD_INC} ${LIB_BASE_SRC} ${LIB_BASE_INC} ) ++ add_library( ${LIB_NAME_BASE}_dynamic SHARED ${LIB_API_SRC} ${XEVD_INC} ${LIB_BASE_SRC} ${LIB_BASE_INC} ) + endif() + + set_target_properties(${LIB_NAME_BASE}_dynamic PROPERTIES VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} SOVERSION ${LIB_SOVERSION}) +@@ -56,8 +68,10 @@ + + if("${ARM}" STREQUAL "TRUE") + include_directories( ${LIB_NAME_BASE} PUBLIC . .. ../inc ./neon) +-else() ++elseif(X86) + include_directories( ${LIB_NAME_BASE} PUBLIC . .. ../inc ./sse ./avx) ++else() ++ include_directories( ${LIB_NAME_BASE} PUBLIC . .. ../inc) + endif() + + +@@ -86,7 +100,11 @@ + ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/import/lib) + elseif( UNIX OR MINGW ) + +- if("${ARM}" STREQUAL "FALSE") ++ if(ARM) ++ add_definitions(-DARM=1) ++ set_property( SOURCE ${NEON} APPEND PROPERTY COMPILE_FLAGS "-flax-vector-conversions") ++ elseif(X86) ++ add_definitions(-DX86=1) + set_property( SOURCE ${SSE} APPEND PROPERTY COMPILE_FLAGS "-msse4.1" ) + set_property( SOURCE ${AVX} APPEND PROPERTY COMPILE_FLAGS " -mavx2" ) + endif() +diff -Naur xevd-0.5.0.old/src_base/xevd_def.h xevd-0.5.0/src_base/xevd_def.h +--- xevd-0.5.0.old/src_base/xevd_def.h 2025-09-08 17:02:37.232878979 +0200 ++++ xevd-0.5.0/src_base/xevd_def.h 2025-09-08 17:02:46.122168051 +0200 +@@ -1498,7 +1498,7 @@ + #include "xevd_mc.h" + #include "xevd_eco.h" + #include "xevd_df.h" +-#ifndef ARM ++#if defined(X86) + #include "xevd_mc_sse.h" + #include "xevd_mc_avx.h" + #include "xevd_itdq_sse.h" +@@ -1506,7 +1506,7 @@ + #include "xevd_recon_avx.h" + #include "xevd_recon_sse.h" + #include "xevd_dbk_sse.h" +-#else ++#elif defined(ARM) + #include "xevd_mc_neon.h" + #include "xevd_itdq_neon.h" + #include "xevd_recon_neon.h" +diff -Naur xevd-0.5.0.old/src_base/xevd_port.h xevd-0.5.0/src_base/xevd_port.h +--- xevd-0.5.0.old/src_base/xevd_port.h 2025-09-08 17:02:37.234878997 +0200 ++++ xevd-0.5.0/src_base/xevd_port.h 2025-09-08 17:02:46.122306953 +0200 +@@ -137,10 +137,10 @@ + #define xevd_assert_gv(x,r,v,g) \ + {if(!(x)){assert(x); (r)=(v); goto g;}} + +-#ifndef ARM ++#if defined(X86) + #define X86_SSE 1 + #define ARM_NEON 0 +-#else ++#elif defined(ARM) + #define X86_SSE 0 + #define ARM_NEON 1 + #endif +diff -Naur xevd-0.5.0.old/src_main/CMakeLists.txt xevd-0.5.0/src_main/CMakeLists.txt +--- xevd-0.5.0.old/src_main/CMakeLists.txt 2025-09-08 17:02:37.235879006 +0200 ++++ xevd-0.5.0/src_main/CMakeLists.txt 2025-09-08 17:02:46.122402222 +0200 +@@ -27,16 +27,27 @@ + include(GenerateExportHeader) + include_directories("${CMAKE_BINARY_DIR}") + ++set(ARM "FALSE") ++message("SYSTEM_PROCESSOR=${CMAKE_SYSTEM_PROCESSOR}") ++if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "^(arm|aarch)") ++ set(ARM "TRUE") ++elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "^(x86|ia64|i386|i686)") ++ set(X86 "TRUE") ++endif() ++ + if("${ARM}" STREQUAL "TRUE") + add_library( ${LIB_NAME} STATIC ${LIB_API_MAIN_SRC} ${XEVD_INC} ${LIB_BASE_SRC} ${LIB_BASE_INC} ${LIB_MAIN_SRC} ${LIB_MAIN_INC} + ${LIB_NEON_SRC} ${LIB_NEON_INC} ${LIB_MAIN_NEON_SRC} ${LIB_MAIN_NEON_INC} ) + add_library( ${LIB_NAME}_dynamic SHARED ${LIB_API_MAIN_SRC} ${XEVD_INC} ${LIB_BASE_SRC} ${LIB_BASE_INC} ${LIB_MAIN_SRC} ${LIB_MAIN_INC} + ${LIB_NEON_SRC} ${LIB_NEON_INC} ${LIB_MAIN_NEON_SRC} ${LIB_MAIN_NEON_INC} ) +-else() ++elseif(X86) + add_library( ${LIB_NAME} STATIC ${LIB_API_MAIN_SRC} ${XEVD_INC} ${LIB_BASE_SRC} ${LIB_BASE_INC} ${LIB_MAIN_SRC} ${LIB_MAIN_INC} + ${LIB_SSE_SRC} ${LIB_SSE_INC} ${LIB_MAIN_SSE_SRC} ${LIB_MAIN_SSE_INC} ${LIB_AVX_SRC} ${LIB_AVX_INC} ${LIB_MAIN_AVX_SRC} ${LIB_MAIN_AVX_INC} ) + add_library( ${LIB_NAME}_dynamic SHARED ${LIB_API_MAIN_SRC} ${XEVD_INC} ${LIB_BASE_SRC} ${LIB_BASE_INC} ${LIB_MAIN_SRC} ${LIB_MAIN_INC} + ${LIB_SSE_SRC} ${LIB_SSE_INC} ${LIB_MAIN_SSE_SRC} ${LIB_MAIN_SSE_INC} ${LIB_AVX_SRC} ${LIB_AVX_INC} ${LIB_MAIN_AVX_SRC} ${LIB_MAIN_AVX_INC} ) ++else() ++ add_library( ${LIB_NAME} STATIC ${LIB_API_MAIN_SRC} ${XEVD_INC} ${LIB_BASE_SRC} ${LIB_BASE_INC} ${LIB_MAIN_SRC} ${LIB_MAIN_INC} ) ++ add_library( ${LIB_NAME}_dynamic SHARED ${LIB_API_MAIN_SRC} ${XEVD_INC} ${LIB_BASE_SRC} ${LIB_BASE_INC} ${LIB_MAIN_SRC} ${LIB_MAIN_INC} ) + endif() + + set_target_properties(${LIB_NAME}_dynamic PROPERTIES VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} SOVERSION ${LIB_SOVERSION}) +@@ -79,12 +90,15 @@ + + if("${ARM}" STREQUAL "TRUE") + include_directories( ${LIB_NAME} PUBLIC . .. ../inc ./neon ../src_base ../src_base/neon) +-else() ++elseif(X86) + include_directories( ${LIB_NAME} PUBLIC . .. ../inc ./sse ./avx ../src_base ../src_base/sse ../src_base/avx) ++else() ++ include_directories( ${LIB_NAME} PUBLIC . .. ../inc ../src_base) + endif() + + set( SSE ${BASE_INC_FILES} ${LIB_SSE_SRC} ${LIB_MAIN_SSE_SRC}) + set( AVX ${LIB_AVX_SRC} ${LIB_MAIN_AVX_SRC}) ++set( NEON ${LIB_NEON_SRC} ${LIB_MAIN_NEON_SRC}) + + set_target_properties(${LIB_NAME}_dynamic PROPERTIES OUTPUT_NAME ${LIB_NAME}) + +@@ -101,7 +115,11 @@ + set_target_properties(${LIB_NAME}_dynamic PROPERTIES FOLDER lib + ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/import/lib) + elseif( UNIX OR MINGW ) +- if("${ARM}" STREQUAL "FALSE") ++ if(ARM) ++ add_definitions(-DARM=1) ++ set_property( SOURCE ${NEON} APPEND PROPERTY COMPILE_FLAGS "-flax-vector-conversions") ++ elseif(X86) ++ add_definitions(-DX86=1) + set_property( SOURCE ${SSE} APPEND PROPERTY COMPILE_FLAGS "-msse4.1" ) + set_property( SOURCE ${AVX} APPEND PROPERTY COMPILE_FLAGS " -mavx2" ) + endif() diff --git a/anda/multimedia/xevd/xevd-link-libm.patch b/anda/multimedia/xevd/xevd-link-libm.patch new file mode 100644 index 0000000000..d2d5cfc94b --- /dev/null +++ b/anda/multimedia/xevd/xevd-link-libm.patch @@ -0,0 +1,22 @@ +diff -Naur xevd-0.5.0.old/src_base/CMakeLists.txt xevd-0.5.0/src_base/CMakeLists.txt +--- xevd-0.5.0.old/src_base/CMakeLists.txt 2025-09-09 14:06:37.254614333 +0200 ++++ xevd-0.5.0/src_base/CMakeLists.txt 2025-09-09 14:06:55.110436755 +0200 +@@ -92,6 +92,7 @@ + endif() + set_target_properties(${LIB_NAME_BASE}_dynamic PROPERTIES FOLDER lib + LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) ++ target_link_libraries(${LIB_NAME_BASE}_dynamic m) + target_compile_definitions( ${LIB_NAME_BASE} PUBLIC ANY LINUX ) + target_link_libraries(${LIB_NAME_BASE} m) + endif() +diff -Naur xevd-0.5.0.old/src_main/CMakeLists.txt xevd-0.5.0/src_main/CMakeLists.txt +--- xevd-0.5.0.old/src_main/CMakeLists.txt 2025-09-09 14:06:37.255946413 +0200 ++++ xevd-0.5.0/src_main/CMakeLists.txt 2025-09-09 14:07:56.126832044 +0200 +@@ -107,6 +107,7 @@ + endif() + + set_target_properties(${LIB_NAME}_dynamic PROPERTIES FOLDER lib LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) ++ target_link_libraries(${LIB_NAME}_dynamic m) + target_compile_definitions( ${LIB_NAME} PUBLIC ANY LINUX ) + target_link_libraries(${LIB_NAME} m) + endif() diff --git a/anda/multimedia/xevd/xevd.spec b/anda/multimedia/xevd/xevd.spec new file mode 100644 index 0000000000..99c2c96c06 --- /dev/null +++ b/anda/multimedia/xevd/xevd.spec @@ -0,0 +1,76 @@ +Name: xevd +Epoch: 1 +Version: 0.5.0 +Release: 1%{?dist} +Summary: eXtra-fast Essential Video Decoder, MPEG-5 EVC (Essential Video Coding) +License: BSD-3-Clause +URL: https://github.com/mpeg5/xevd + +Source0: %{url}/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz +Patch0: %{name}-fix-build-on-non-x86.patch +# https://github.com/mpeg5/xevd/commit/4087f635624cf4ee6ebe3f9ea165ff939b32117f +# But also for src_main: +Patch1: xevd-link-libm.patch + +BuildRequires: cmake +BuildRequires: gcc + +%description +The eXtra-fast Essential Video Decoder (XEVD) is an opensource and fast MPEG-5 +EVC decoder. + +MPEG-5 Essential Video Coding (EVC) is a video compression standard of ISO/IEC +Moving Picture Experts Group (MPEG). The main goal of the EVC is to provide a +significantly improved compression capability over existing video coding +standards with timely publication of terms. The EVC defines two profiles, +including "Baseline Profile" and "Main Profile". The "Baseline profile" contains +only technologies that are older than 20 years or otherwise freely available for +use in the standard. In addition, the "Main profile" adds a small number of +additional tools, each of which can be either cleanly disabled or switched to +the corresponding baseline tool on an individual basis. + +%package libs +Summary: MPEG-5 EVC encoder %{name} libraries + +%description libs +The %{name}-devel package contains libraries and header files for developing +applications that use %{name}. This package contains the shared libraries. + +%package devel +Summary: Development files for %{name} +Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} + +%description devel +The %{name}-devel package contains libraries and header files for +developing applications that use %{name}. + +%prep +%autosetup -p1 +echo "v%{version}" > version.txt + +%build +%cmake -DSET_PROF=MAIN +%cmake_build + +%install +%cmake_install + +# Static library +rm -fr %{buildroot}%{_libdir}/%{name} + +%files +%{_bindir}/%{name}_app + +%files libs +%license COPYING +%doc README.md +%{_libdir}/lib%{name}.so.0 +%{_libdir}/lib%{name}.so.0.5 + +%files devel +%{_includedir}/%{name}/ +%{_libdir}/lib%{name}.so +%{_libdir}/pkgconfig/%{name}.pc + +%changelog +%autochangelog diff --git a/anda/multimedia/xeve/anda.hcl b/anda/multimedia/xeve/anda.hcl new file mode 100644 index 0000000000..6fa2b1befc --- /dev/null +++ b/anda/multimedia/xeve/anda.hcl @@ -0,0 +1,11 @@ +project pkg { + arches = ["x86_64", "aarch64", "i386"] + rpm { + spec = "xeve.spec" + extra_repos = ["https://repos.fyralabs.com/terrarawhide-multimedia"] + } + labels { + mock = 1 + subrepo = "multimedia" + } +} diff --git a/anda/multimedia/xeve/update.rhai b/anda/multimedia/xeve/update.rhai new file mode 100644 index 0000000000..712c708706 --- /dev/null +++ b/anda/multimedia/xeve/update.rhai @@ -0,0 +1 @@ +rpm.version(gh_tag("mpeg5/xeve")); diff --git a/anda/multimedia/xeve/xeve-fix-build-i386.patch b/anda/multimedia/xeve/xeve-fix-build-i386.patch new file mode 100644 index 0000000000..53963a2cb4 --- /dev/null +++ b/anda/multimedia/xeve/xeve-fix-build-i386.patch @@ -0,0 +1,12 @@ +diff -Naur xeve-0.5.1.old/app/xeve_app_util.h xeve-0.5.1/app/xeve_app_util.h +--- xeve-0.5.1.old/app/xeve_app_util.h 2025-09-09 14:10:13.815762327 +0200 ++++ xeve-0.5.1/app/xeve_app_util.h 2025-11-04 13:43:37.496372293 +0100 +@@ -73,7 +73,7 @@ + len = (pre == NULL)? 0: (int)strlen(pre); + if(len > 0) + { +- sprintf(str + 3, " %s ", pre); ++ snprintf(str + 3, sizeof(str) - 3, " %.73s ", pre); + len = (int)strlen(str); + } + diff --git a/anda/multimedia/xeve/xeve-fix-build-on-non-x86.patch b/anda/multimedia/xeve/xeve-fix-build-on-non-x86.patch new file mode 100644 index 0000000000..f40c1c225c --- /dev/null +++ b/anda/multimedia/xeve/xeve-fix-build-on-non-x86.patch @@ -0,0 +1,186 @@ +diff -Naur xeve-0.5.1.old/src_base/CMakeLists.txt xeve-0.5.1/src_base/CMakeLists.txt +--- xeve-0.5.1.old/src_base/CMakeLists.txt 2024-06-24 09:49:08.000000000 +0200 ++++ xeve-0.5.1/src_base/CMakeLists.txt 2025-09-08 20:52:14.500329611 +0200 +@@ -17,15 +17,25 @@ + include(GenerateExportHeader) + include_directories("${CMAKE_BINARY_DIR}") + ++set(ARM "FALSE") ++message("SYSTEM_PROCESSOR=${CMAKE_SYSTEM_PROCESSOR}") ++if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "^(arm|aarch)") ++ set(ARM "TRUE") ++elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "^(x86|ia64|i386|i686)") ++ set(X86 "TRUE") ++endif() + + if("${ARM}" STREQUAL "TRUE") + add_library( ${LIB_NAME_BASE} STATIC ${LIB_API_SRC} ${XEVE_INC} ${LIB_BASE_SRC} ${LIB_BASE_INC} ${LIB_NEON_INC} ${LIB_NEON_SRC}) + add_library( ${LIB_NAME_BASE}_dynamic SHARED ${LIB_API_SRC} ${XEVE_INC} ${LIB_BASE_SRC} ${LIB_BASE_INC} ${LIB_NEON_INC} ${LIB_NEON_SRC}) +-else() ++elseif(X86) + add_library( ${LIB_NAME_BASE} STATIC ${LIB_API_SRC} ${XEVE_INC} ${LIB_BASE_SRC} ${LIB_BASE_INC} ${LIB_SSE_SRC} ${LIB_SSE_INC} + ${LIB_AVX_SRC} ${LIB_AVX_INC} ) + add_library( ${LIB_NAME_BASE}_dynamic SHARED ${LIB_API_SRC} ${XEVE_INC} ${LIB_BASE_SRC} ${LIB_BASE_INC} ${LIB_SSE_SRC} ${LIB_SSE_INC} + ${LIB_AVX_SRC} ${LIB_AVX_INC} ) ++else() ++ add_library( ${LIB_NAME_BASE} STATIC ${LIB_API_SRC} ${XEVE_INC} ${LIB_BASE_SRC} ${LIB_BASE_INC} ) ++ add_library( ${LIB_NAME_BASE}_dynamic SHARED ${LIB_API_SRC} ${XEVE_INC} ${LIB_BASE_SRC} ${LIB_BASE_INC} ) + endif() + + set_target_properties(${LIB_NAME_BASE}_dynamic PROPERTIES VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} SOVERSION ${LIB_SOVERSION}) +@@ -59,8 +69,10 @@ + + if("${ARM}" STREQUAL "TRUE") + include_directories( ${LIB_NAME_BASE} PUBLIC . .. ../inc ./neon) +-else() ++elseif(X86) + include_directories( ${LIB_NAME_BASE} PUBLIC . .. ../inc ./sse ./avx) ++else() ++ include_directories( ${LIB_NAME_BASE} PUBLIC . .. ../inc) + endif() + + set( SSE ${BASE_INC_FILES} ${LIB_SSE_SRC}) +@@ -83,7 +95,11 @@ + ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/import/lib) + + elseif( UNIX OR MINGW ) +- if("${ARM}" STREQUAL "FALSE") ++ if(ARM) ++ add_definitions(-DARM=1) ++ set_property( SOURCE ${NEON} APPEND PROPERTY COMPILE_FLAGS "-flax-vector-conversions -Wno-cpp") ++ elseif(X86) ++ add_definitions(-DX86=1) + set_property( SOURCE ${SSE} APPEND PROPERTY COMPILE_FLAGS "-msse4.1" ) + set_property( SOURCE ${AVX} APPEND PROPERTY COMPILE_FLAGS " -mavx2" ) + endif() +diff -Naur xeve-0.5.1.old/src_base/xeve_def.h xeve-0.5.1/src_base/xeve_def.h +--- xeve-0.5.1.old/src_base/xeve_def.h 2024-06-24 09:49:08.000000000 +0200 ++++ xeve-0.5.1/src_base/xeve_def.h 2025-09-08 20:52:14.500467050 +0200 +@@ -1514,10 +1514,10 @@ + #include "xeve_ipred.h" + #include "xeve_picman.h" + #include "xeve_mc.h" +-#ifndef ARM ++#if defined(X86) + #include "xeve_mc_sse.h" + #include "xeve_mc_avx.h" +-#else ++#elif defined(ARM) + #include "xeve_mc_neon.h" + #endif + #include "xeve_type.h" +diff -Naur xeve-0.5.1.old/src_base/xeve_port.h xeve-0.5.1/src_base/xeve_port.h +--- xeve-0.5.1.old/src_base/xeve_port.h 2024-06-24 09:49:08.000000000 +0200 ++++ xeve-0.5.1/src_base/xeve_port.h 2025-09-08 20:52:14.500592747 +0200 +@@ -138,10 +138,10 @@ + #define xeve_assert_gv(x,r,v,g) \ + {if(!(x)){assert(x); (r)=(v); goto g;}} + +-#ifndef ARM ++#if defined(X86) + #define X86_SSE 1 + #define ARM_NEON 0 +-#else ++#elif defined (ARM) + #define X86_SSE 0 + #define ARM_NEON 1 + #endif +diff -Naur xeve-0.5.1.old/src_base/xeve_type.h xeve-0.5.1/src_base/xeve_type.h +--- xeve-0.5.1.old/src_base/xeve_type.h 2024-06-24 09:49:08.000000000 +0200 ++++ xeve-0.5.1/src_base/xeve_type.h 2025-09-08 20:52:14.500672457 +0200 +@@ -34,10 +34,10 @@ + #include "xeve_def.h" + #include "xeve_bsw.h" + #include "xeve_sad.h" +-#ifndef ARM ++#if defined(X86) + #include "xeve_sad_sse.h" + #include "xeve_sad_avx.h" +-#else ++#elif defined(ARM) + #include "xeve_sad_neon.h" + #endif + +@@ -1016,11 +1016,11 @@ + #include "xeve_tbl.h" + #include "xeve_itdq.h" + +-#ifndef ARM ++#if defined(X86) + #include "xeve_itdq_sse.h" + #include "xeve_itdq_avx.h" + #include "xeve_tq_avx.h" +-#else ++#elif defined(ARM) + #include "xeve_itdq_neon.h" + #include "xeve_tq_neon.h" + #endif +diff -Naur xeve-0.5.1.old/src_main/CMakeLists.txt xeve-0.5.1/src_main/CMakeLists.txt +--- xeve-0.5.1.old/src_main/CMakeLists.txt 2024-06-24 09:49:08.000000000 +0200 ++++ xeve-0.5.1/src_main/CMakeLists.txt 2025-09-08 20:52:14.500798415 +0200 +@@ -19,18 +19,31 @@ + file (GLOB LIB_MAIN_SSE_INC "./sse/xevem_*.h" ) + file (GLOB LIB_MAIN_AVX_SRC "./avx/xevem_*.c") + file (GLOB LIB_MAIN_AVX_INC "./avx/xevem_*.h" ) ++file (GLOB LIB_MAIN_NEON_SRC "./neon/xevem_*.c") ++file (GLOB LIB_MAIN_NEON_INC "./neon/xevem_*.h" ) + + include(GenerateExportHeader) + include_directories("${CMAKE_BINARY_DIR}") + ++set(ARM "FALSE") ++message("SYSTEM_PROCESSOR=${CMAKE_SYSTEM_PROCESSOR}") ++if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "^(arm|aarch)") ++ set(ARM "TRUE") ++elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "^(x86|ia64|i386|i686)") ++ set(X86 "TRUE") ++endif() ++ + if("${ARM}" STREQUAL "TRUE") +- add_library( ${LIB_NAME} STATIC ${LIB_API_MAIN_SRC} ${ETM_INC} ${LIB_BASE_SRC} ${LIB_BASE_INC} ${LIB_MAIN_SRC} ${LIB_MAIN_INC} ${LIB_NEON_INC} ${LIB_NEON_SRC} ) +- add_library( ${LIB_NAME}_dynamic SHARED ${LIB_API_MAIN_SRC} ${ETM_INC} ${LIB_BASE_SRC} ${LIB_BASE_INC} ${LIB_MAIN_SRC} ${LIB_MAIN_INC} ${LIB_NEON_INC} ${LIB_NEON_SRC}) +-else() ++ add_library( ${LIB_NAME} STATIC ${LIB_API_MAIN_SRC} ${ETM_INC} ${LIB_BASE_SRC} ${LIB_BASE_INC} ${LIB_MAIN_SRC} ${LIB_MAIN_INC} ${LIB_NEON_SRC} ${LIB_NEON_INC} ) ++ add_library( ${LIB_NAME}_dynamic SHARED ${LIB_API_MAIN_SRC} ${ETM_INC} ${LIB_BASE_SRC} ${LIB_BASE_INC} ${LIB_MAIN_SRC} ${LIB_MAIN_INC} ${LIB_NEON_SRC} ${LIB_NEON_INC}) ++elseif(X86) + add_library( ${LIB_NAME} STATIC ${LIB_API_MAIN_SRC} ${ETM_INC} ${LIB_BASE_SRC} ${LIB_BASE_INC} ${LIB_MAIN_SRC} ${LIB_MAIN_INC} + ${LIB_SSE_SRC} ${LIB_SSE_INC} ${LIB_MAIN_SSE_SRC} ${LIB_MAIN_SSE_INC} ${LIB_AVX_SRC} ${LIB_AVX_INC} ${LIB_MAIN_AVX_SRC} ${LIB_MAIN_AVX_INC} ) + add_library( ${LIB_NAME}_dynamic SHARED ${LIB_API_MAIN_SRC} ${ETM_INC} ${LIB_BASE_SRC} ${LIB_BASE_INC} ${LIB_MAIN_SRC} ${LIB_MAIN_INC} +- ${LIB_SSE_SRC} ${LIB_SSE_INC} ${LIB_MAIN_SSE_SRC} ${LIB_MAIN_SSE_INC} ${LIB_AVX_SRC} ${LIB_AVX_SRC} ${LIB_AVX_INC} ${LIB_MAIN_AVX_SRC} ${LIB_MAIN_AVX_INC}) ++ ${LIB_SSE_SRC} ${LIB_SSE_INC} ${LIB_MAIN_SSE_SRC} ${LIB_MAIN_SSE_INC} ${LIB_AVX_SRC} ${LIB_AVX_INC} ${LIB_MAIN_AVX_SRC} ${LIB_MAIN_AVX_INC}) ++else() ++ add_library( ${LIB_NAME} STATIC ${LIB_API_MAIN_SRC} ${ETM_INC} ${LIB_BASE_SRC} ${LIB_BASE_INC} ${LIB_MAIN_SRC} ${LIB_MAIN_INC} ) ++ add_library( ${LIB_NAME}_dynamic SHARED ${LIB_API_MAIN_SRC} ${ETM_INC} ${LIB_BASE_SRC} ${LIB_BASE_INC} ${LIB_MAIN_SRC} ${LIB_MAIN_INC} ) + endif() + + set_target_properties(${LIB_NAME}_dynamic PROPERTIES VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} SOVERSION ${LIB_SOVERSION}) +@@ -71,12 +84,15 @@ + + if("${ARM}" STREQUAL "TRUE") + include_directories( ${LIB_NAME} PUBLIC . .. ../inc ../src_base ../src_base/neon) +-else() ++elseif(X86) + include_directories( ${LIB_NAME} PUBLIC . .. ../inc ./sse ./avx ../src_base ../src_base/sse ../src_base/avx) ++else() ++ include_directories( ${LIB_NAME} PUBLIC . .. ../inc ../src_base) + endif() + + set( SSE ${BASE_INC_FILES} ${LIB_SSE_SRC} ${LIB_MAIN_SSE_SRC}) + set( AVX ${LIB_AVX_SRC} ${LIB_MAIN_AVX_SRC}) ++set( NEON ${LIB_NEON_SRC}) + + set_target_properties(${LIB_NAME}_dynamic PROPERTIES OUTPUT_NAME ${LIB_NAME}) + +@@ -94,7 +110,11 @@ + ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/import/lib) + + elseif( UNIX OR MINGW ) +- if("${ARM}" STREQUAL "FALSE") ++ if(ARM) ++ add_definitions(-DARM=1) ++ set_property( SOURCE ${NEON} APPEND PROPERTY COMPILE_FLAGS "-flax-vector-conversions -Wno-cpp") ++ elseif(X86) ++ add_definitions(-DX86=1) + set_property( SOURCE ${SSE} APPEND PROPERTY COMPILE_FLAGS "-msse4.1" ) + set_property( SOURCE ${AVX} APPEND PROPERTY COMPILE_FLAGS " -mavx2" ) + endif() diff --git a/anda/multimedia/xeve/xeve-link-libm.patch b/anda/multimedia/xeve/xeve-link-libm.patch new file mode 100644 index 0000000000..6c1d15950e --- /dev/null +++ b/anda/multimedia/xeve/xeve-link-libm.patch @@ -0,0 +1,23 @@ +diff -Naur xeve-0.5.1.old/src_base/CMakeLists.txt xeve-0.5.1/src_base/CMakeLists.txt +--- xeve-0.5.1.old/src_base/CMakeLists.txt 2025-09-09 14:10:13.817765661 +0200 ++++ xeve-0.5.1/src_base/CMakeLists.txt 2025-09-09 14:10:18.814666609 +0200 +@@ -89,6 +89,7 @@ + endif() + set_target_properties(${LIB_NAME_BASE}_dynamic PROPERTIES FOLDER lib + LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) ++ target_link_libraries(${LIB_NAME_BASE}_dynamic m) + target_compile_definitions( ${LIB_NAME_BASE} PUBLIC ANY LINUX ) + target_link_libraries(${LIB_NAME_BASE} m) + endif() +diff -Naur xeve-0.5.1.old/src_main/CMakeLists.txt xeve-0.5.1/src_main/CMakeLists.txt +--- xeve-0.5.1.old/src_main/CMakeLists.txt 2025-09-09 14:10:13.828252642 +0200 ++++ xeve-0.5.1/src_main/CMakeLists.txt 2025-09-09 14:10:56.392703629 +0200 +@@ -100,7 +100,7 @@ + endif() + + set_target_properties(${LIB_NAME}_dynamic PROPERTIES FOLDER lib LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) +- ++ target_link_libraries(${LIB_NAME}_dynamic m) + target_compile_definitions( ${LIB_NAME} PUBLIC ANY LINUX ) + target_link_libraries(${LIB_NAME} m) + endif() diff --git a/anda/multimedia/xeve/xeve.spec b/anda/multimedia/xeve/xeve.spec new file mode 100644 index 0000000000..dde80296dd --- /dev/null +++ b/anda/multimedia/xeve/xeve.spec @@ -0,0 +1,81 @@ +Name: xeve +Epoch: 1 +Version: 0.5.1 +Release: 1%?dist +Summary: eXtra-fast Essential Video Encoder, MPEG-5 EVC (Essential Video Coding) +License: BSD-3-Clause +URL: https://github.com/mpeg5/xeve + +Source0: %{url}/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz +Patch0: xeve-fix-build-on-non-x86.patch +# https://github.com/mpeg5/xeve/commit/bc45faa2e8d22bf33b0d15c025662f2a8de61fbc +# But also for src_main: +Patch1: xeve-link-libm.patch +Patch2: xeve-fix-build-i386.patch + +BuildRequires: cmake +BuildRequires: gcc +%ifarch aarch64 +BuildRequires: sse2neon-devel +%endif + +%description +The eXtra-fast Essential Video Encoder (XEVE) is an opensource and fast MPEG-5 +EVC encoder. + +MPEG-5 Essential Video Coding (EVC) is a video compression standard of ISO/IEC +Moving Picture Experts Group (MPEG). The main goal of the EVC is to provide a +significantly improved compression capability over existing video coding +standards with timely publication of terms. The EVC defines two profiles, +including "Baseline Profile" and "Main Profile". The "Baseline profile" contains +only technologies that are older than 20 years or otherwise freely available for +use in the standard. In addition, the "Main profile" adds a small number of +additional tools, each of which can be either cleanly disabled or switched to +the corresponding baseline tool on an individual basis. + +%package libs +Summary: MPEG-5 EVC encoder %{name} libraries + +%description libs +The %{name}-devel package contains libraries and header files for developing +applications that use %{name}. This package contains the shared libraries. + +%package devel +Summary: Development files for %{name} +Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} + +%description devel +The %{name}-devel package contains libraries and header files for +developing applications that use %{name}. + +%prep +%autosetup -p1 +echo "v%{version}" > version.txt +rm src_base/neon/sse2neon.h + +%build +%cmake -DSET_PROF=MAIN +%cmake_build + +%install +%cmake_install + +# Static library +rm -fr %{buildroot}%{_libdir}/%{name} + +%files +%{_bindir}/%{name}_app + +%files libs +%license COPYING +%doc README.md +%{_libdir}/lib%{name}.so.0 +%{_libdir}/lib%{name}.so.0.5 + +%files devel +%{_includedir}/%{name}/ +%{_libdir}/lib%{name}.so +%{_libdir}/pkgconfig/%{name}.pc + +%changelog +%autochangelog diff --git a/anda/stardust/comet/stardust-comet.spec b/anda/stardust/comet/stardust-comet.spec deleted file mode 100644 index 0f12162cfd..0000000000 --- a/anda/stardust/comet/stardust-comet.spec +++ /dev/null @@ -1,39 +0,0 @@ -%global commit afbf6109398794791ffb30317712d742143fd08a -%global commit_date 20240831 -%global shortcommit %(c=%{commit}; echo ${c:0:7}) -# Exclude input files from mangling -%global __brp_mangle_shebangs_exclude_from ^/usr/src/.*$ - -Name: stardust-xr-comet -Version: %commit_date.%shortcommit -Release: 1%?dist -Summary: Annotate things in Stardust XR -URL: https://github.com/StardustXR/comet -Source0: %url/archive/%commit/comet-%commit.tar.gz -License: MIT -BuildRequires: cargo cmake anda-srpm-macros cargo-rpm-macros mold - -Provides: comet stardust-comet -Packager: Owen Zimmerman - -%description -%summary. - -%prep -%autosetup -n comet-%commit -%cargo_prep_online - -%build - -%install -%define __cargo_common_opts %{?_smp_mflags} -Z avoid-dev-deps --locked -%cargo_install - -%files -%_bindir/comet -%license LICENSE -%doc README.md - -%changelog -* Sat Sep 7 2024 Owen-sz -- Package StardustXR comet diff --git a/anda/stardust/flatland/stardust-flatland.spec b/anda/stardust/flatland/stardust-flatland.spec deleted file mode 100644 index e95b8bb8d2..0000000000 --- a/anda/stardust/flatland/stardust-flatland.spec +++ /dev/null @@ -1,45 +0,0 @@ -%global commit 0914dd3df54a5e6258dfc0a02d65af1c0fc0fc90 -%global commit_date 20240920 -%global shortcommit %(c=%{commit}; echo ${c:0:7}) -# Exclude input files from mangling -%global __brp_mangle_shebangs_exclude_from ^/usr/src/.*$ - -Name: stardust-xr-flatland -Version: %commit_date.%shortcommit -Release: 2%?dist -Summary: Flatland for Stardust XR -URL: https://github.com/StardustXR/flatland -Source0: %url/archive/%commit/flatland-%commit.tar.gz -License: MIT -BuildRequires: cargo cmake anda-srpm-macros cargo-rpm-macros mold - -Provides: flatland stardust-flatland -Packager: Owen Zimmerman - -%description -%summary. - -%prep -%autosetup -n flatland-%commit -%cargo_prep_online - -%build - -%install -%define __cargo_common_opts %{?_smp_mflags} -Z avoid-dev-deps --locked -export STARDUST_RES_PREFIXES=%_datadir -%cargo_install - -mkdir -p %buildroot%_datadir -cp -r res/* %buildroot%_datadir/ - - -%files -%_bindir/flatland -%_datadir/flatland/ -%license LICENSE -%doc README.md - -%changelog -* Sat Sep 7 2024 Owen-sz -- Package StardustXR Flatland diff --git a/anda/stardust/gravity/stardust-gravity.spec b/anda/stardust/gravity/stardust-gravity.spec deleted file mode 100644 index e388a24cbb..0000000000 --- a/anda/stardust/gravity/stardust-gravity.spec +++ /dev/null @@ -1,40 +0,0 @@ -%global commit eca5e835cd3abee69984ce6312610644801457a9 -%global commit_date 20241230 -%global shortcommit %(c=%{commit}; echo ${c:0:7}) -# Exclude input files from mangling -%global __brp_mangle_shebangs_exclude_from ^/usr/src/.*$ - -Name: stardust-xr-gravity -Version: %commit_date.%shortcommit -Release: 1%?dist -Summary: Utility to launch apps and Stardust XR clients spatially -URL: https://github.com/StardustXR/gravity -Source0: %url/archive/%commit/gravity-%commit.tar.gz -License: MIT -BuildRequires: cargo cmake anda-srpm-macros cargo-rpm-macros mold - -Provides: gravity stardust-gravity -Packager: Owen Zimmerman - -%description -%summary. - -%prep -%autosetup -n gravity-%commit -%cargo_prep_online - -%build - -%install -%define __cargo_common_opts %{?_smp_mflags} -Z avoid-dev-deps --locked -%cargo_install - - -%files -%_bindir/gravity -%license LICENSE -%doc README.md - -%changelog -* Wed Sep 11 2024 Owen-sz -- Package StardustXR gravity diff --git a/anda/stardust/server/stardust-server.spec b/anda/stardust/server/stardust-server.spec deleted file mode 100644 index a6a1e8a4cf..0000000000 --- a/anda/stardust/server/stardust-server.spec +++ /dev/null @@ -1,45 +0,0 @@ -%global commit 3e31905b5bc9bd78e285099ed94a4b31fdc6810b -%global commit_date 20250402 -%global shortcommit %(c=%{commit}; echo ${c:0:7}) -# Exclude input files from mangling -%global __brp_mangle_shebangs_exclude_from ^/usr/src/.*$ - -Name: stardust-xr-server -Version: %commit_date.%shortcommit -Release: 1%?dist -Summary: Usable Linux display server that reinvents human-computer interaction for all kinds of XR -URL: https://github.com/StardustXR/server -Source0: %url/archive/%commit/server-%commit.tar.gz -License: GPL-2.0-only - -BuildRequires: cargo cmake anda-srpm-macros cargo-rpm-macros gcc-c++ mold -BuildRequires: glx-utils fontconfig-devel glibc libxcb-devel wayland-devel -BuildRequires: openxr-devel libglvnd-devel libglvnd-gles mesa-libgbm-devel -BuildRequires: libwayland-egl libX11-devel libXfixes-devel -BuildRequires: mesa-libEGL-devel libxkbcommon-devel -Provides: stardust-server -Packager: Owen Zimmerman - -%description -Usable Linux display server that reinvents human-computer interaction for all kinds of XR, from putting 2D/XR apps into various 3D shells for varying uses to SDF-based interaction. - -%prep -%autosetup -n server-%commit -%cargo_prep_online - -%build -export CXXFLAGS="" -%cargo_build - -%install -install -Dm755 target/rpm/stardust-xr-server %buildroot%_bindir/stardust-xr-server - - -%files -%_bindir/stardust-xr-server -%license LICENSE -%doc README.md - -%changelog -* Sat Sep 14 2024 Owen-sz -- Package StardustXR Server diff --git a/anda/stardust/telescope/stardust-telescope.spec b/anda/stardust/telescope/stardust-telescope.spec deleted file mode 100644 index b45fc7c748..0000000000 --- a/anda/stardust/telescope/stardust-telescope.spec +++ /dev/null @@ -1,47 +0,0 @@ -%define debug_package %nil - -%global commit e33764c69179e35b60ad03931544a87357e1e81f -%global commit_date 20250413 -%global shortcommit %(c=%{commit}; echo ${c:0:7}) - -Name: stardust-xr-telescope -Version: %commit_date.git~%shortcommit -Release: 2%?dist -Summary: See the stars! Easy stardust setups to run on your computer -License: MIT -URL: https://github.com/StardustXR/telescope -Source0: %url/archive/%commit.tar.gz - -Requires: bash -Requires: xwayland-satellite -Requires: stardust-xr-armillary -Requires: stardust-xr-atmosphere -Requires: stardust-xr-black-hole -Requires: stardust-xr-comet -Requires: stardust-xr-flatland -Requires: stardust-xr-gravity -Requires: stardust-xr-magnetar -Requires: stardust-xr-non-spatial-input -Requires: stardust-xr-protostar -Requires: stardust-xr-server - -BuildArch: noarch -Provides: telescope stardust-telescope - -%description -See the stars! Easy stardust setups to run on your computer. - -%prep -%autosetup -n telescope-%commit - -%build - -%install -install -Dm755 scripts/telescope %buildroot%_bindir/telescope -install -Dm755 scripts/_telescope_startup %buildroot%_bindir/_telescope_startup - -%files -%doc README.md -%license LICENSE -%_bindir/telescope -%_bindir/_telescope_startup diff --git a/anda/misc/alsa-ucm-cros/alsa-ucm-cros.spec b/anda/system/alsa-ucm-cros/alsa-ucm-cros.spec similarity index 88% rename from anda/misc/alsa-ucm-cros/alsa-ucm-cros.spec rename to anda/system/alsa-ucm-cros/alsa-ucm-cros.spec index 543a0c3aee..2bccb5a711 100644 --- a/anda/misc/alsa-ucm-cros/alsa-ucm-cros.spec +++ b/anda/system/alsa-ucm-cros/alsa-ucm-cros.spec @@ -1,15 +1,13 @@ %define debug_package %nil Name: alsa-ucm-cros -Version: 0.7 -Release: 1%?dist +Version: 0.8 +Release: 2%?dist Summary: ALSA Use Case Manager configuration License: BSD-3-Clause URL: https://github.com/WeirdTreeThing/alsa-ucm-conf-cros/tree/standalone Source0: https://github.com/WeirdTreeThing/alsa-ucm-conf-cros/archive/refs/tags/%version.tar.gz BuildArch: noarch -Provides: alsa-ucm -Conflicts: alsa-ucm %description %summary for chromebooks. diff --git a/anda/misc/alsa-ucm-cros/anda.hcl b/anda/system/alsa-ucm-cros/anda.hcl similarity index 100% rename from anda/misc/alsa-ucm-cros/anda.hcl rename to anda/system/alsa-ucm-cros/anda.hcl diff --git a/anda/misc/alsa-ucm-cros/update.rhai b/anda/system/alsa-ucm-cros/update.rhai similarity index 100% rename from anda/misc/alsa-ucm-cros/update.rhai rename to anda/system/alsa-ucm-cros/update.rhai diff --git a/anda/system/amdgpu_top/amdgpu_top.spec b/anda/system/amdgpu_top/amdgpu_top.spec new file mode 100644 index 0000000000..2ff2ab065a --- /dev/null +++ b/anda/system/amdgpu_top/amdgpu_top.spec @@ -0,0 +1,56 @@ +%undefine __brp_add_determinism + +Name: amdgpu_top +Version: 0.11.4 +Release: 1%{?dist} +Summary: Tool to display AMDGPU usage +License: MIT +Packager: veuxit +URL: https://github.com/Umio-Yasuno/amdgpu_top + +Source0: %{url}/archive/refs/tags/v%{version}.tar.gz + +BuildRequires: desktop-file-utils +BuildRequires: libdrm-devel +BuildRequires: cargo cargo-rpm-macros anda-srpm-macros + +%description +%summary. + +%prep +%autosetup -n %{name}-%{version} +%cargo_prep_online + +%build +%{cargo_build} --locked + +%install + +install -Dm755 target/release/amdgpu_top %{buildroot}%{_bindir}/amdgpu_top + +install -Dm644 assets/amdgpu_top.desktop %{buildroot}%{_appsdir}/amdgpu_top.desktop + +install -Dm644 assets/amdgpu_top-tui.desktop %{buildroot}%{_appsdir}/amdgpu_top-tui.desktop + +install -Dpm644 assets/io.github.umio_yasuno.amdgpu_top.metainfo.xml %{buildroot}%{_metainfodir}/io.github.umio_yasuno.amdgpu_top.metainfo.xml + +install -Dm644 "docs/amdgpu_top.1" "%{buildroot}%{_mandir}/man1/amdgpu_top.1" + +%check +%desktop_file_validate %{buildroot}%{_appsdir}/amdgpu_top.desktop +%desktop_file_validate %{buildroot}%{_appsdir}/amdgpu_top-tui.desktop + +%files +%doc README.md +%doc CHANGELOG.md +%doc AUTHORS +%license LICENSE +%{_bindir}/amdgpu_top +%{_datadir}/applications/amdgpu_top.desktop +%{_datadir}/applications/amdgpu_top-tui.desktop +%{_metainfodir}/io.github.umio_yasuno.amdgpu_top.metainfo.xml +%{_mandir}/man1/amdgpu_top.1.gz + +%changelog +* Thu Mar 5 2026 veuxit - 0.11.2 +- Initial package release \ No newline at end of file diff --git a/anda/system/amdgpu_top/anda.hcl b/anda/system/amdgpu_top/anda.hcl new file mode 100644 index 0000000000..d4b25997e7 --- /dev/null +++ b/anda/system/amdgpu_top/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "amdgpu_top.spec" + } +} diff --git a/anda/system/amdgpu_top/update.rhai b/anda/system/amdgpu_top/update.rhai new file mode 100644 index 0000000000..70b97bb6e0 --- /dev/null +++ b/anda/system/amdgpu_top/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("Umio-Yasuno/amdgpu_top")); diff --git a/anda/system/asusctl/anda.hcl b/anda/system/asusctl/anda.hcl new file mode 100644 index 0000000000..6d319d1d22 --- /dev/null +++ b/anda/system/asusctl/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "asusctl.spec" + } +} diff --git a/anda/system/asusctl/asusctl.spec b/anda/system/asusctl/asusctl.spec new file mode 100644 index 0000000000..c614389f87 --- /dev/null +++ b/anda/system/asusctl/asusctl.spec @@ -0,0 +1,134 @@ +%global debug_package %{nil} +%global appid org.asus_linux.rog_control_center + +Name: asusctl +Version: 6.3.7 +Release: 2%{?dist} +Epoch: 1 +Summary: A control daemon, CLI tools, and a collection of crates for interacting with ASUS ROG laptops +URL: https://gitlab.com/asus-linux/asusctl +Source0: %url/-/archive/%version/asusctl-%version.tar.gz +Source1: %{appid}.metainfo.xml +License: MPL-2.0 AND (MIT OR Apache-2.0) AND NCSA AND Unicode-3.0 AND (0BSD OR MIT OR Apache-2.0) AND Apache-2.0 AND MIT AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 OR Zlib) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND BSD-2-Clause (BSD-2-Clause OR Apache-2.0 OR MIT) AND (BSD-3-Clause OR Apache-2.0) AND BSD-3-Clause AND BSL-1.0 AND (CC0-1.0 OR Apache-2.0) AND (GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0) AND ISC AND MIT AND Zlib AND (MIT OR Apache-2.0 OR LGPL-2.1-or-later) AND (MIT OR Apache-2.0 OR Zlib) AND Unlicense AND (Zlib OR Apache-2.0 OR MIT) +BuildRequires: anda-srpm-macros cargo-rpm-macros systemd-rpm-macros mold rust-udev-devel clang-devel +BuildRequires: desktop-file-utils +BuildRequires: cmake +BuildRequires: rust +BuildRequires: rust-std-static +BuildRequires: pkgconfig(gbm) +BuildRequires: pkgconfig(libinput) +BuildRequires: pkgconfig(libseat) +BuildRequires: pkgconfig(libudev) +BuildRequires: pkgconfig(xkbcommon) +BuildRequires: pkgconfig(libzstd) +BuildRequires: pkgconfig(fontconfig) +ExclusiveArch: x86_64 + +Packager: Metcya + +%description +%summary. + +%package rog-gui +Summary: An experimental gui for %name +Requires: %name +Provides: rog-control-center +Provides: rog-gui + +%description rog-gui +A one-stop-shop GUI tool for asusd/asusctl. It aims to provide most controls, +a notification service, and ability to run in the background. + +%prep +%autosetup -n asusctl-%version +%cargo_prep_online + +%build +%cargo_build + +%install +%make_install + +install -D -m 0644 README.md %{buildroot}/%{_docdir}/%{name}/README.md +install -D -m 0644 rog-anime/README.md %{buildroot}/%{_docdir}/%{name}/README-anime.md +install -D -m 0644 rog-anime/data/diagonal-template.png %{buildroot}/%{_docdir}/%{name}/diagonal-template.png +%terra_appstream -o %{S:1} + +%{cargo_license_online} > LICENSE.dependencies + +desktop-file-validate %{buildroot}/%{_datadir}/applications/rog-control-center.desktop + +mkdir -p %{buildroot}%{_sysconfdir}/asusd + +%files +%license LICENSE +%license LICENSE.dependencies +%{_datadir}/asusctl/LICENSE +%{_bindir}/asusd +%{_bindir}/asusd-user +%{_bindir}/asusctl +%{_bindir}/asus-shutdown +%{_unitdir}/asusd.service +%{_unitdir}/asus-shutdown.service +%{_udevrulesdir}/99-asusd.rules +%dir %{_sysconfdir}/asusd +%{_datadir}/asusd/aura_support.ron +%{_datadir}/dbus-1/system.d/asusd.conf +%{_datadir}/icons/hicolor/512x512/apps/asus_notif_yellow.png +%{_datadir}/icons/hicolor/512x512/apps/asus_notif_green.png +%{_datadir}/icons/hicolor/512x512/apps/asus_notif_red.png +%{_datadir}/icons/hicolor/512x512/apps/asus_notif_blue.png +%{_datadir}/icons/hicolor/512x512/apps/asus_notif_orange.png +%{_datadir}/icons/hicolor/512x512/apps/asus_notif_white.png +%{_datadir}/icons/hicolor/scalable/status/gpu-compute.svg +%{_datadir}/icons/hicolor/scalable/status/gpu-hybrid.svg +%{_datadir}/icons/hicolor/scalable/status/gpu-integrated.svg +%{_datadir}/icons/hicolor/scalable/status/gpu-nvidia.svg +%{_datadir}/icons/hicolor/scalable/status/gpu-vfio.svg +%{_datadir}/icons/hicolor/scalable/status/notification-reboot.svg +%{_docdir}/%{name}/ +%{_datadir}/asusd/ + +%post +%systemd_post asusd.service +%systemd_post asus-shutdown.service + +%preun +%systemd_preun asusd.service +%systemd_preun asus-shutdown.service + +%postun +%systemd_postun_with_restart asusd.service +%systemd_postun_with_restart asus-shutdown.service + +%files rog-gui +%{_bindir}/rog-control-center +%{_datadir}/applications/rog-control-center.desktop +%{_datadir}/icons/hicolor/512x512/apps/rog-control-center.png +%{_datadir}/rog-gui +%{_metainfodir}/%{appid}.metainfo.xml + +%changelog +* Mon Mar 23 2026 Owen Zimmerman - 6.3.5-2 +- Add asus-shutdown.service + +* Wed Feb 18 2026 Owen Zimmerman - 6.2.0-3 +- Remove asusd-user.service + +* Fri Jan 16 2026 metcya - 6.3.0-2 +- Update ROG Control Center metainfo + +* Tue Jan 13 2026 Owen Zimmerman - 6.2.0-3 +- Add dependency licenses + +* Tue Dec 9 2025 Metcya - 6.2.0 +- Add metainfo + +* Mon Dec 1 2025 Metcya +- Add systemd scriptlets + +* Tue Nov 18 2025 Metcya +- Remove unnecessary patch + +* Sun Oct 26 2025 Metcya +- Package asusctl diff --git a/anda/system/asusctl/org.asus_linux.rog_control_center.metainfo.xml b/anda/system/asusctl/org.asus_linux.rog_control_center.metainfo.xml new file mode 100644 index 0000000000..dc570bae63 --- /dev/null +++ b/anda/system/asusctl/org.asus_linux.rog_control_center.metainfo.xml @@ -0,0 +1,47 @@ + + + org.asus_linux.rog_control_center + + Rog Control Center + A one-stop-shop GUI tool for asusd/asusctl + https://gitlab.com/asus-linux/asusctl/-/blob/main/rog-control-center/data/rog-control-center.png + + CC0-1.0 + MPL-2.0 + + https://asus-linux.org + https://gitlab.com/asus-linux/asusctl/-/issues + https://asus-linux.org/faq/ + https://asus-linux.org/manual/ + https://gitlab.com/asus-linux + + + System + Settings + + + + + The Rog Control Center main window. + https://gitlab.com/asus-linux/website/-/raw/main/static/images/guides/gui-main.png + + + Fan curve selections. + https://gitlab.com/asus-linux/website/-/raw/main/static/images/guides/gui-fancurve.png + + + + +

+ Rog Control Center aims to provide most controls, a notification service, and ability to run in the background. +

+
+ + + ASUS + ROG + asusctl + + + rog-control-center.desktop +
diff --git a/anda/system/asusctl/update.rhai b/anda/system/asusctl/update.rhai new file mode 100644 index 0000000000..4496aa968e --- /dev/null +++ b/anda/system/asusctl/update.rhai @@ -0,0 +1 @@ +rpm.version(gitlab("20328305")); diff --git a/anda/system/bpftune/nightly/anda.hcl b/anda/system/bpftune/nightly/anda.hcl new file mode 100644 index 0000000000..5df483afdb --- /dev/null +++ b/anda/system/bpftune/nightly/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "bpftune-nightly.spec" + } + labels { + nightly = 1 + } +} diff --git a/anda/system/bpftune/nightly/bpftune-nightly.spec b/anda/system/bpftune/nightly/bpftune-nightly.spec new file mode 100644 index 0000000000..cc644c6efc --- /dev/null +++ b/anda/system/bpftune/nightly/bpftune-nightly.spec @@ -0,0 +1,104 @@ +# BPF-based auto-tuning SPEC file + +%define pcpdir /var/lib/pcp/pmdas + +%global ver 0.4-2 +%global releaseS %(echo '%ver' | sed -E 's/^[^-]+-//') +%define nameR bpftune + +%bcond_with openrc + +%global commit 4712347f2da0b7d4a5fbdb0d81d071c1704b3f20 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global commit_date 20260227 + +Name: bpftune-nightly +Version: %(echo '%ver' | sed 's/-/~/g')^%{commit_date}git.%{shortcommit} +Release: 1%?dist +Summary: BPF/tracing tools for auto-tuning Linux +License: GPL-2.0-only WITH Linux-syscall-note +Packager: veuxit +URL: https://github.com/oracle/bpftune +Conflicts: bpftune + +Source0: %{url}/archive/%{commit}/bpftune-%{commit}.tar.gz + +Group: Development/Tools +Requires: libbpf >= 0.6 +Requires: libnl3 +Requires: libcap +BuildRequires: libbpf-devel >= 0.6 +BuildRequires: libcap-devel +BuildRequires: bpftool >= 4.18 +BuildRequires: libnl3-devel +BuildRequires: clang >= 11 +BuildRequires: clang-libs >= 11 +BuildRequires: llvm >= 11 +BuildRequires: llvm-libs >= 11 +BuildRequires: python3-docutils + +%description +Service consisting of daemon (bpftune) and plugins which +support auto-tuning of Linux via BPF observability. + +%package devel +Requires: %{name} = %{evr} +Requires: libbpf-devel >= 0.6 +Requires: libcap-devel +Requires: bpftool +Requires: libnl3-devel + +%pkg_devel_files + +%package pcp-pmda +Summary: Performance Co-Pilot PMDA for bpftune +Requires: %{name} = %{evr} +Requires: pcp +Requires: python3-pcp + +%description pcp-pmda +The %{name}-pcp-pmda exports tunables and metrics from bpftune +to Performance Co-Pilot (PCP) + +%prep +%autosetup -n bpftune-%{commit} + +%build +%make_build + +%install +%make_install + +%post +%systemd_post bpftune.service + +%preun +%systemd_preun bpftune.service + +%postun +%systemd_postun_with_restart bpftune.service + +%files +%doc README.md TROUBLESHOOTING.md SECURITY.md +%license LICENSE.txt +%defattr(-,root,root) +%{_sysconfdir}/ld.so.conf.d/libbpftune.conf +%{_bindir}/bpftune +%{_unitdir}/bpftune.service +%{_libdir}/libbpftune.so.%(echo '%ver' | sed 's/-/./g') +%{_libdir}/bpftune/* +%{_mandir}/*/* +%if %{with openrc} +%{_sysconfdir}/conf.d/bpftune +%{_sysconfdir}/init.d/bpftune +%else +%exclude %{_sysconfdir}/conf.d/bpftune +%exclude %{_sysconfdir}/init.d/bpftune +%endif + +%files pcp-pmda +%{pcpdir}/%{nameR}/* + +%changelog +* Fri Mar 6 2026 veuxit - 0.4-2 +- Initial package release diff --git a/anda/system/bpftune/nightly/update.rhai b/anda/system/bpftune/nightly/update.rhai new file mode 100644 index 0000000000..b81c6e0199 --- /dev/null +++ b/anda/system/bpftune/nightly/update.rhai @@ -0,0 +1,7 @@ +rpm.global("commit", gh_commit("oracle/bpftune")); +if rpm.changed() { + rpm.release(); + rpm.global("commit_date", date()); + let v = gh("oracle/bpftune"); + rpm.global("ver", v); +} diff --git a/anda/system/bpftune/stable/anda.hcl b/anda/system/bpftune/stable/anda.hcl new file mode 100644 index 0000000000..55d17906c7 --- /dev/null +++ b/anda/system/bpftune/stable/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "bpftune.spec" + } +} diff --git a/anda/system/bpftune/stable/bpftune.spec b/anda/system/bpftune/stable/bpftune.spec new file mode 100644 index 0000000000..d36e41820e --- /dev/null +++ b/anda/system/bpftune/stable/bpftune.spec @@ -0,0 +1,102 @@ +# BPF-based auto-tuning SPEC file + +%global ver 0.4-2 +%global releaseS %(echo '%ver' | sed -E 's/^[^-]+-//') + +%define pcpdir /var/lib/pcp/pmdas +%define _sbindir /usr/sbin + +%undefine __brp_add_determinism + +%bcond_with openrc + +Name: bpftune +Version: %(echo '%ver' | sed 's/-/~/g') +Release: 1%?dist +Summary: BPF/tracing tools for auto-tuning Linux +License: GPL-2.0-only WITH Linux-syscall-note +Packager: veuxit +URL: https://github.com/oracle/bpftune +Conflicts: bpftune-nightly + +Source0: %{url}/archive/refs/tags/%{ver}.tar.gz + +Group: Development/Tools +Requires: libbpf >= 0.6 +Requires: libnl3 +Requires: libcap +BuildRequires: libbpf-devel >= 0.6 +BuildRequires: libcap-devel +BuildRequires: bpftool >= 4.18 +BuildRequires: libnl3-devel +BuildRequires: clang >= 11 +BuildRequires: clang-libs >= 11 +BuildRequires: llvm >= 11 +BuildRequires: llvm-libs >= 11 +BuildRequires: python3-docutils + +%description +Service consisting of daemon (bpftune) and plugins which +support auto-tuning of Linux via BPF observability. + +%package devel +Requires: %{name} = %{evr} +Requires: libbpf-devel >= 0.6 +Requires: libcap-devel +Requires: bpftool +Requires: libnl3-devel + +%pkg_devel_files + +%package pcp-pmda +Summary: Performance Co-Pilot PMDA for bpftune +Requires: %{name} = %{evr} +Requires: pcp +Requires: python3-pcp + +%description pcp-pmda +The %{name}-pcp-pmda exports tunables and metrics from bpftune +to Performance Co-Pilot (PCP) + +%prep +%autosetup -n %{name}-%{ver} + +%build +%make_build + +%install +%make_install + +%post +%systemd_post bpftune.service + +%preun +%systemd_preun bpftune.service + +%postun +%systemd_postun_with_restart bpftune.service + +%files +%doc README.md TROUBLESHOOTING.md SECURITY.md +%license LICENSE.txt +%defattr(-,root,root) +%{_sysconfdir}/ld.so.conf.d/libbpftune.conf +%{_sbindir}/bpftune +%{_unitdir}/bpftune.service +%{_libdir}/libbpftune.so.%(echo '%ver' | sed 's/-/./g') +%{_libdir}/bpftune/* +%{_mandir}/*/* +%if %{with openrc} +%{_sysconfdir}/conf.d/bpftune +%{_sysconfdir}/init.d/bpftune +%else +%exclude %{_sysconfdir}/conf.d/bpftune +%exclude %{_sysconfdir}/init.d/bpftune +%endif + +%files pcp-pmda +%{pcpdir}/%{name}/* + +%changelog +* Fri Mar 6 2026 veuxit - 0.4-2 +- Initial package release diff --git a/anda/system/bpftune/stable/update.rhai b/anda/system/bpftune/stable/update.rhai new file mode 100644 index 0000000000..eaae1cb979 --- /dev/null +++ b/anda/system/bpftune/stable/update.rhai @@ -0,0 +1 @@ +rpm.global("ver", gh("oracle/bpftune")); diff --git a/anda/system/broadcom-wl/broadcom-wl.spec b/anda/system/broadcom-wl/broadcom-wl.spec index 0edc352904..f08e2416ec 100644 --- a/anda/system/broadcom-wl/broadcom-wl.spec +++ b/anda/system/broadcom-wl/broadcom-wl.spec @@ -6,7 +6,7 @@ Name: broadcom-wl Version: 6.30.223.271 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Common files for Broadcom 802.11 STA driver Group: System Environment/Kernel License: Redistributable, no modification permitted @@ -61,9 +61,9 @@ grep -q Copyright ${fn} >/dev/null || sed -i "s%\(^ + +%description +%{summary}. + +%prep +%autosetup +%cargo_prep_online + +%build +%cargo_build + +%install +install -Dm0755 target/rpm/cardwire %{buildroot}%{_bindir}/cardwire +install -Dm0755 target/rpm/cardwired %{buildroot}%{_bindir}/cardwired +install -Dm0644 assets/cardwired.service %{buildroot}%{_unitdir}/cardwired.service +install -Dm0644 assets/com.github.opengamingcollective.cardwire.conf %{buildroot}%{_datadir}/dbus-1/system.d/com.github.opengamingcollective.cardwire.conf + +%{cargo_license_online} > LICENSE.dependencies + +%post +%systemd_post cardwired.service + +%preun +%systemd_preun cardwired.service + +%postun +%systemd_postun_with_restart cardwired.service + +%files +%license LICENSE +%license LICENSE.dependencies +%{_bindir}/cardwire +%{_bindir}/cardwired +%{_unitdir}/cardwired.service +%{_datadir}/dbus-1/system.d/com.github.opengamingcollective.cardwire.conf + +%changelog +* Wed May 06 2026 Owen Zimmerman +- Initial commit diff --git a/anda/system/cardwire/update.rhai b/anda/system/cardwire/update.rhai new file mode 100644 index 0000000000..2e39cdc8ec --- /dev/null +++ b/anda/system/cardwire/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("OpenGamingCollective/cardwire")); diff --git a/anda/system/chromebook-usbc-fix/chromebook-usbc-fix.spec b/anda/system/chromebook-usbc-fix/chromebook-usbc-fix.spec index 1a77b3bfb3..fea0626212 100644 --- a/anda/system/chromebook-usbc-fix/chromebook-usbc-fix.spec +++ b/anda/system/chromebook-usbc-fix/chromebook-usbc-fix.spec @@ -46,7 +46,8 @@ install -Dm755 chromebook-usbc.service %buildroot%{_unitdir}/chromebook-usbc.ser %{_unitdir}/chromebook-usbc.service %changelog -* Sat Oct 12 2024 Owen-sz +* Sat Oct 12 2024 Owen Zimmerman - Fix the systemd preset application -* Sat Oct 5 2024 Owen-sz + +* Sat Oct 5 2024 Owen Zimmerman - Initial package. diff --git a/anda/system/cloud-hypervisor/nightly/anda.hcl b/anda/system/cloud-hypervisor/nightly/anda.hcl new file mode 100644 index 0000000000..bcf490fb52 --- /dev/null +++ b/anda/system/cloud-hypervisor/nightly/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "cloud-hypervisor-nightly.spec" + } + labels { + nightly = 1 + } +} diff --git a/anda/system/cloud-hypervisor/nightly/cloud-hypervisor-nightly.spec b/anda/system/cloud-hypervisor/nightly/cloud-hypervisor-nightly.spec new file mode 100644 index 0000000000..09f827319a --- /dev/null +++ b/anda/system/cloud-hypervisor/nightly/cloud-hypervisor-nightly.spec @@ -0,0 +1,57 @@ +%global commit 3db4c0f7b4cc021aa917f445dd58c68c264a412a +%global commit_date 20260507 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) + +Name: cloud-hypervisor-nightly +License: Apache-2.0 AND MPL-2.0 AND (Unlicense OR MIT) AND (MIT OR Zlib OR Apache-2.0) AND (MIT OR Apache-2.0 OR LGPL-2.1-or-later) AND MIT AND BSD-3-Clause AND (BSD-3-Clause OR Apache-2.0) AND (BSD-3-Clause OR MIT OR Apache-2.0) AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND BSD-3-Clause AND CC-BY-4.0 AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 OR BSD-3-Clause) AND (Apache-2.0 OR MIT) +Version: 0~%{commit_date}git.%{shortcommit} +Release: 1%{?dist} +Summary: A Virtual Machine Monitor for modern Cloud workloads +URL: https://github.com/cloud-hypervisor/cloud-hypervisor +Source0: %{url}/archive/%{commit}/cloud-hypervisor-%{commit}.tar.gz +BuildRequires: perl +BuildRequires: cargo-rpm-macros +BuildRequires: pkgconfig(openssl) +Conflicts: cloud-hypervisor + +Packager: Owen Zimmerman + +%description +A Virtual Machine Monitor for modern Cloud workloads. Features include CPU, +memory and device hotplug, support for running Windows and Linux guests, +device offload with vhost-user and a minimal compact footprint. +Written in Rust with a strong focus on security. + +%package doc +Summary: Documentation for cloud-hypervisor +Requires: %{name} = %{evr} + +%description doc +%{summary}. + +%prep +%autosetup -n cloud-hypervisor-%{commit} +%cargo_prep_online + +%build +%cargo_build + +%install +install -Dm755 target/rpm/cloud-hypervisor %{buildroot}%{_bindir}/cloud-hypervisor +install -Dm755 target/rpm/ch-remote %{buildroot}%{_bindir}/ch-remote +install -Dm755 target/rpm/vhost_user_block %{buildroot}%{_bindir}/vhost_user_block +install -Dm755 target/rpm/vhost_user_net %{buildroot}%{_bindir}/vhost_user_net + +%{cargo_license_online} > LICENSE.dependencies + +%files +%license LICENSE.dependencies LICENSES/ +%doc CODEOWNERS CODE_OF_CONDUCT.md CONTRIBUTING.md CREDITS.md MAINTAINERS.md README.md release-notes.md +%caps(cap_net_admin=ep) %{_bindir}/cloud-hypervisor +%{_bindir}/ch-remote +%{_bindir}/vhost_user_block +%{_bindir}/vhost_user_net + +%changelog +* Tue Apr 14 2026 Owen Zimmerman +- Initial commit (port from stable spec) diff --git a/anda/system/cloud-hypervisor/nightly/update.rhai b/anda/system/cloud-hypervisor/nightly/update.rhai new file mode 100644 index 0000000000..3f227e4d25 --- /dev/null +++ b/anda/system/cloud-hypervisor/nightly/update.rhai @@ -0,0 +1,5 @@ +rpm.global("commit", gh_commit("cloud-hypervisor/cloud-hypervisor")); +if rpm.changed() { + rpm.release(); + rpm.global("commit_date", date()); +} diff --git a/anda/system/cloud-hypervisor/stable/anda.hcl b/anda/system/cloud-hypervisor/stable/anda.hcl new file mode 100644 index 0000000000..dbca34d29a --- /dev/null +++ b/anda/system/cloud-hypervisor/stable/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "cloud-hypervisor.spec" + } +} diff --git a/anda/system/cloud-hypervisor/stable/cloud-hypervisor.spec b/anda/system/cloud-hypervisor/stable/cloud-hypervisor.spec new file mode 100644 index 0000000000..af7fefd8f6 --- /dev/null +++ b/anda/system/cloud-hypervisor/stable/cloud-hypervisor.spec @@ -0,0 +1,55 @@ +Name: cloud-hypervisor +License: Apache-2.0 AND MPL-2.0 AND (Unlicense OR MIT) AND (MIT OR Zlib OR Apache-2.0) AND (MIT OR Apache-2.0 OR LGPL-2.1-or-later) AND MIT AND BSD-3-Clause AND (BSD-3-Clause OR Apache-2.0) AND (BSD-3-Clause OR MIT OR Apache-2.0) AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND BSD-3-Clause AND CC-BY-4.0 AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 OR BSD-3-Clause) AND (Apache-2.0 OR MIT) +Version: 51.1 +Release: 3%{?dist} +Summary: A Virtual Machine Monitor for modern Cloud workloads +URL: https://github.com/cloud-hypervisor/cloud-hypervisor +Source0: https://github.com/cloud-hypervisor/cloud-hypervisor/archive/refs/tags/v%{version}.tar.gz +BuildRequires: perl +BuildRequires: cargo-rpm-macros +BuildRequires: pkgconfig(openssl) + +Packager: Owen Zimmerman + +%description +A Virtual Machine Monitor for modern Cloud workloads. Features include CPU, +memory and device hotplug, support for running Windows and Linux guests, +device offload with vhost-user and a minimal compact footprint. +Written in Rust with a strong focus on security. + +%package doc +Summary: Documentation for cloud-hypervisor +Requires: %{name} = %{evr} + +%description doc +%{summary}. + +%prep +%autosetup +%cargo_prep_online + +%build +%cargo_build + +%install +install -Dm755 target/rpm/cloud-hypervisor %{buildroot}%{_bindir}/cloud-hypervisor +install -Dm755 target/rpm/ch-remote %{buildroot}%{_bindir}/ch-remote +install -Dm755 target/rpm/vhost_user_block %{buildroot}%{_bindir}/vhost_user_block +install -Dm755 target/rpm/vhost_user_net %{buildroot}%{_bindir}/vhost_user_net + +%{cargo_license_online} > LICENSE.dependencies + +%files +%license LICENSE.dependencies LICENSES/ +%doc CODEOWNERS CODE_OF_CONDUCT.md CONTRIBUTING.md CREDITS.md MAINTAINERS.md README.md release-notes.md +%caps(cap_net_admin=ep) %{_bindir}/cloud-hypervisor +%{_bindir}/ch-remote +%{_bindir}/vhost_user_block +%{_bindir}/vhost_user_net + +%files doc +%doc docs/ + +%changelog +* Wed Mar 25 2026 Owen Zimmerman +- Initial commit diff --git a/anda/system/cloud-hypervisor/stable/update.rhai b/anda/system/cloud-hypervisor/stable/update.rhai new file mode 100644 index 0000000000..1f21db8ff6 --- /dev/null +++ b/anda/system/cloud-hypervisor/stable/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("cloud-hypervisor/cloud-hypervisor")); diff --git a/anda/system/cros-keyboard-map/cros-keyboard-map.spec b/anda/system/cros-keyboard-map/cros-keyboard-map.spec index a0de293630..2d8d446f60 100644 --- a/anda/system/cros-keyboard-map/cros-keyboard-map.spec +++ b/anda/system/cros-keyboard-map/cros-keyboard-map.spec @@ -1,6 +1,6 @@ -%global commit_date 20250921 +%global commit_date 20251219 -%global tree_commit 7f7bfe5647635084b5699b2b7f4f5dfb489bbdae +%global tree_commit 146753f3646a13f069bf3ea1e2fb8ebbe0d1b46a %global tree_shortcommit %(c=%{tree_commit}; echo ${c:0:7}) %global um_commit 46892acafb2fff3f3ace425d4694382c92645feb @@ -11,7 +11,7 @@ Name: cros-keyboard-map Version: %commit_date.%tree_shortcommit.%um_shortcommit -Release: 1%?dist +Release: 2%?dist License: BSD-3-Clause and GPLv3 Summary: Utility to generate keyd configurations for use on Chromebooks @@ -23,6 +23,8 @@ Source1: https://github.com/Ultramarine-Linux/cros-keyboard-map/archive/% BuildRequires: systemd-rpm-macros Requires: keyd python3 python3-libfdt +Packager: Owen Zimmerman + %description Bash script and systemd service to apply WeirdTreeThing's Chromebook keyboard maps. @@ -59,9 +61,11 @@ chmod +x %buildroot%{_bindir}/um-generate-cros-keymap %{_bindir}/um-generate-cros-keymap %changelog -* Sat Oct 12 2024 Owen-sz +* Sat Oct 12 2024 Owen Zimmerman - Fix the systemd preset application + * Sat Aug 24 2024 junefish - Split off into seperate git repo. -* Sat May 4 2024 Owen-sz + +* Sat May 4 2024 Owen Zimmerman - Initial package. diff --git a/anda/system/dank-material-shell/anda.hcl b/anda/system/dank-material-shell/anda.hcl new file mode 100644 index 0000000000..4d7e6ff850 --- /dev/null +++ b/anda/system/dank-material-shell/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "dank-material-shell.spec" + } + labels { + subrepo = "extras" + } +} diff --git a/anda/system/dank-material-shell/dank-material-shell.spec b/anda/system/dank-material-shell/dank-material-shell.spec new file mode 100644 index 0000000000..910d8db37a --- /dev/null +++ b/anda/system/dank-material-shell/dank-material-shell.spec @@ -0,0 +1,147 @@ +%global goipath github.com/AvengeMedia/%{name}/core + +Name: DankMaterialShell +Version: 1.4.6 +Release: 1%{?dist} +Summary: Desktop shell for Wayland compositors built on QuickShell + +License: Apache-2.0 AND BSD-2-Clause AND BSD-3-Clause AND GPL-3.0-only AND ISC AND MIT AND MPL-2.0 +URL: https://danklinux.com/ +Source0: https://github.com/AvengeMedia/%{name}/archive/v%{version}/%{name}-%{version}.tar.gz + +BuildRequires: go-rpm-macros +BuildRequires: go-vendor-tools +BuildRequires: systemd-rpm-macros + +Requires: accountsservice +Requires: cups-pk-helper +Requires: hicolor-icon-theme +Requires: quickshell + +Requires: (adw-gtk3-theme if gtk3) +Requires: cava +Requires: cliphist +Requires: danksearch +Requires: dgop +Requires: kf6-kimageformats +Requires: khal +Requires: matugen +Requires: (qt5ct if qt5-qtbase) +Requires: qt6ct +Requires: qt6-qtmultimedia +Requires: qt6-qtimageformats +Requires: wl-clipboard + +Recommends: NetworkManager +Recommends: ppd-service +Suggests: tuned-ppd + +# Replace and provide the package names from avengemedia/dms +Obsoletes: dms < %{evr} +Provides: dms = %{evr} +Obsoletes: dms-cli < %{evr} +Provides: dms-cli = %{evr} + +Packager: Its-J + +%description +DankMaterialShell is a complete desktop shell for Wayland compositors. +It replaces a variety of tools used to stitch together to make a desktop. + +dms features notifications, an app launcher, wallpaper customization, and is +fully customizable with plugins. + +It includes auto-theming for GTK/Qt apps with matugen, 20+ customizable widgets, +process monitoring, notification center, clipboard history, dock, control center, +lock screen, and comprehensive plugin system. + +%prep +%autosetup -C +%goprep + +%build +pushd core +export dms_buildtime=$(date -d "@${SOURCE_DATE_EPOCH}" +%%Y-%%m-%%d_%%H:%%M:%%S) +export GO_LDFLAGS="-X main.commit=fedora \ + -X main.Version=%{evr} \ + -X main.buildTime=${dms_buildtime}" +%global gomodulesmode GO111MODULE=on +mkdir -p %{_vpath_builddir}/bin +%gobuild -o %{_vpath_builddir}/bin/dms ./cmd/dms +popd + +# Install dms cli shell completions +%pkg_completion -Bfz dms + +%install +# Install dms +install -Dm644 assets/systemd/dms.service %{buildroot}%{_userunitdir}/dms.service + +install -Dm644 assets/dms-open.desktop %{buildroot}%{_datadir}/applications/dms-open.desktop +install -Dm644 assets/danklogo.svg %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/danklogo.svg + +mkdir -p %{buildroot}%{_datadir}/quickshell/dms +cp -a quickshell/* %{buildroot}%{_datadir}/quickshell/dms/ +echo "%{evr}" > %{buildroot}%{_datadir}/quickshell/dms/VERSION + +# Install dms cli +mkdir -p %{buildroot}%{_bindir} +install -pm0755 core/%{_vpath_builddir}/bin/dms %{buildroot}%{_bindir}/dms + +# Install dms cli shell completions +mkdir -p %{buildroot}%{bash_completions_dir} +mkdir -p %{buildroot}%{fish_completions_dir} +mkdir -p %{buildroot}%{zsh_completions_dir} +core/%{_vpath_builddir}/bin/dms completion bash > %{buildroot}%{bash_completions_dir}/dms +core/%{_vpath_builddir}/bin/dms completion fish > %{buildroot}%{fish_completions_dir}/dms.fish +core/%{_vpath_builddir}/bin/dms completion zsh > %{buildroot}%{zsh_completions_dir}/_dms + +%check +pushd core +%gotest ./... +popd + +%post +%systemd_user_post dms.service + +%preun +%systemd_user_preun dms.service + +%postun +%systemd_user_postun_with_restart dms.service + +%posttrans +# Signal running DMS instances to reload +pkill -USR1 -x dms || : + + +%files +%license LICENSE +%doc README.md +%{_bindir}/dms +%{_datadir}/quickshell/dms/ +%{_userunitdir}/dms.service +%{_datadir}/applications/dms-open.desktop +%{_datadir}/icons/hicolor/scalable/apps/danklogo.svg + +%changelog +* Sat Mar 28 2026 Its-J - 1.4.4-1 +- Port to Terra + +* Mon Feb 16 2026 Neal Gompa - 1.2.3-5 +- Backport fix for screensaver inhibit support +- Add dependencies to make various wallpaper format work +- Add dependency for printer management support + +* Mon Feb 16 2026 Neal Gompa - 1.2.3-4 +- Add missing khal dependency + +* Mon Feb 16 2026 Neal Gompa - 1.2.3-3 +- Add dependency for ppd-service +- Fix string for embedded package version + +* Sun Feb 15 2026 Neal Gompa - 1.2.3-2 +- Strengthen various dependencies + +* Sun Feb 15 2026 Neal Gompa - 1.2.3-1 +- Initial package diff --git a/anda/system/dank-material-shell/update.rhai b/anda/system/dank-material-shell/update.rhai new file mode 100644 index 0000000000..3fa83f2e6c --- /dev/null +++ b/anda/system/dank-material-shell/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("AvengeMedia/DankMaterialShell")); diff --git a/anda/system/depthcharge-tools/anda.hcl b/anda/system/depthcharge-tools/anda.hcl index a65b3f99ea..414f95e4cd 100644 --- a/anda/system/depthcharge-tools/anda.hcl +++ b/anda/system/depthcharge-tools/anda.hcl @@ -1,4 +1,5 @@ project pkg { + arches = ["x86_64"] rpm { spec = "depthcharge-tools.spec" } diff --git a/anda/system/depthcharge-tools/depthcharge-tools.spec b/anda/system/depthcharge-tools/depthcharge-tools.spec index 77bc2946e1..512aa2bc00 100644 --- a/anda/system/depthcharge-tools/depthcharge-tools.spec +++ b/anda/system/depthcharge-tools/depthcharge-tools.spec @@ -1,12 +1,13 @@ Name: depthcharge-tools -Version: 0.6.3 -Release: 1%?dist +Version: 0.6.4 +Release: 1%{?dist} Summary: Tools to manage the Chrome OS bootloader License: GPL-2.0-or-later URL: https://gitlab.postmarketos.org/postmarketOS/depthcharge-tools Source0: %url/-/archive/v%version/%name-v%version.tar.gz -Requires: vboot-utils dtc gzip lz4 python3-setuptools uboot-tools vboot-utils xz -BuildRequires: python3-setuptools python3-rpm-macros systemd-rpm-macros redhat-rpm-config python3-docutils +Requires: vboot-utils dtc gzip lz4 python3-setuptools uboot-tools vboot-utils xz python3-importlib-resources +BuildRequires: python3-setuptools python3-rpm-macros pyproject-rpm-macros python3dist(pip) systemd-rpm-macros redhat-rpm-config python3-docutils python3-importlib-resources +Patch0: fix-importlib.patch BuildArch: noarch %description @@ -16,13 +17,14 @@ with depthcharge, the Chrome OS bootloader. %pkg_completion -Bz mkdepthcharge depthchargectl %prep -%autosetup -n %name-v%version +%autosetup -n %name-v%version -p1 %build -python3 setup.py build +%pyproject_wheel %install -python3 setup.py install --skip-build --root=%buildroot +%pyproject_install +%pyproject_save_files depthcharge_tools mkdir -p %buildroot/usr/lib/kernel/install.d %buildroot{%_unitdir,%bash_completions_dir,%zsh_completions_dir,%_mandir/man1} install -Dm644 systemd/*.install %buildroot/usr/lib/kernel/install.d/ install -Dm644 systemd/*.service %buildroot%_unitdir/ @@ -34,15 +36,13 @@ rst2man mkdepthcharge.rst | gzip > mkdepthcharge.1.gz rst2man depthchargectl.rst | gzip > depthchargectl.1.gz install -Dm644 *.1.gz %buildroot%_mandir/man1/ -%files +%files -f %{pyproject_files} %doc README.rst %license LICENSE %_bindir/{mkdepthcharge,depthchargectl} %_mandir/man1/{mkdepthcharge,depthchargectl}.1.gz /usr/lib/kernel/install.d/90-depthcharge-tools.install %_unitdir/depthchargectl-bless.service -%_prefix/lib/python%python3_version/site-packages/depthcharge_tools-%version-py%python3_version.egg-info/ -%_prefix/lib/python%python3_version/site-packages/depthcharge_tools/ %changelog %autochangelog diff --git a/anda/system/depthcharge-tools/fix-importlib.patch b/anda/system/depthcharge-tools/fix-importlib.patch new file mode 100644 index 0000000000..a3bf34ffda --- /dev/null +++ b/anda/system/depthcharge-tools/fix-importlib.patch @@ -0,0 +1,12 @@ +diff --git a/depthcharge_tools/__init__.py b/depthcharge_tools/__init__.py +index fabb79d..2b7d7d5 100644 +--- a/depthcharge_tools/__init__.py ++++ b/depthcharge_tools/__init__.py +@@ -9,6 +9,7 @@ import glob + import logging + import pathlib + import importlib ++import importlib.resources + import importlib_metadata + from packaging.version import parse as parse_version + import re diff --git a/anda/system/dfu-programmer/dfu-programmer.spec b/anda/system/dfu-programmer/dfu-programmer.spec index eaf3b427d5..21cb7d51a9 100644 --- a/anda/system/dfu-programmer/dfu-programmer.spec +++ b/anda/system/dfu-programmer/dfu-programmer.spec @@ -17,11 +17,13 @@ Atmel chips with USB support. %prep %autosetup -p1 + +%conf touch ./ChangeLog autoreconf -fiv +%configure %build -%configure %make_build %install diff --git a/anda/system/dmemcg-booster/0001-License-under-MIT.patch b/anda/system/dmemcg-booster/0001-License-under-MIT.patch new file mode 100644 index 0000000000..61869ec66b --- /dev/null +++ b/anda/system/dmemcg-booster/0001-License-under-MIT.patch @@ -0,0 +1,33 @@ +From 903e18c761c41ecca2a6dced9335a2c3f0703b11 Mon Sep 17 00:00:00 2001 +From: Natalie Vock +Date: Fri, 17 Apr 2026 21:46:48 +0200 +Subject: [PATCH] License under MIT + +--- + LICENSE | 14 ++++++++++++++ + 1 file changed, 14 insertions(+) + create mode 100644 LICENSE + +diff --git a/LICENSE b/LICENSE +new file mode 100644 +index 0000000..92ea3c4 +--- /dev/null ++++ b/LICENSE +@@ -0,0 +1,14 @@ ++Copyright (c) 2026 Valve Corporation ++ ++Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated ++documentation files (the "Software"), to deal in the Software without restriction, including without limitation the ++rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit ++persons to whom the Software is furnished to do so, subject to the following conditions: ++ ++The above copyright notice and this permission notice shall be included in all copies or substantial portions of the ++Software. ++ ++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE ++WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR ++COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR ++OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +\ No newline at end of file +-- +2.54.0 diff --git a/anda/system/dmemcg-booster/anda.hcl b/anda/system/dmemcg-booster/anda.hcl new file mode 100644 index 0000000000..0f774f4ec3 --- /dev/null +++ b/anda/system/dmemcg-booster/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "dmemcg-booster.spec" + } +} diff --git a/anda/system/dmemcg-booster/dmemcg-booster.spec b/anda/system/dmemcg-booster/dmemcg-booster.spec new file mode 100644 index 0000000000..0970b26924 --- /dev/null +++ b/anda/system/dmemcg-booster/dmemcg-booster.spec @@ -0,0 +1,50 @@ +Name: dmemcg-booster +Version: 0.1.2 +Release: 1%?dist +Summary: Userspace utility for controling VRAM utilization +License: MIT AND (Apache-2.0 OR MIT) +URL: https://gitlab.steamos.cloud/holo/dmemcg-booster +Source0: %url/-/archive/%version/dmemcg-booster-%version.tar.gz +BuildRequires: anda-srpm-macros +BuildRequires: cargo-rpm-macros +BuildRequires: systemd-rpm-macros +BuildRequires: dbus-devel +Packager: Tulip Blossom + +Patch: 0001-License-under-MIT.patch + +%description +%summary. + +%prep +%autosetup -n %name-%version +%cargo_prep_online + +%build +%{cargo_license_online -a} > LICENSE.dependencies + +%install +%cargo_install +install -Dpm0644 -t %{buildroot}%{_datadir}/licenses/dmemcg-booster/ ./LICENSE +install -Dpm0644 -t %{buildroot}%{_userunitdir}/ ./dmemcg-booster-user.service +install -Dpm0644 -t %{buildroot}%{_unitdir}/ ./dmemcg-booster-system.service + +%post +%systemd_post dmemcg-booster.service + +%preun +%systemd_preun dmemcg-booster.service + +%postun +%systemd_postun_with_restart dmemcg-booster.service + +%files +%license %{_datadir}/licenses/dmemcg-booster/LICENSE +%license LICENSE.dependencies +%{_bindir}/dmemcg-booster +%{_userunitdir}/dmemcg-booster-user.service +%{_unitdir}/dmemcg-booster-system.service + +%changelog +* Thu May 05 2026 Tulip Blossom - 0.1.2-1 +- Intial Commit diff --git a/anda/system/dmemcg-booster/update.rhai b/anda/system/dmemcg-booster/update.rhai new file mode 100644 index 0000000000..6c0e6f45c9 --- /dev/null +++ b/anda/system/dmemcg-booster/update.rhai @@ -0,0 +1 @@ +rpm.version(gitlab_tag("gitlab.steamos.cloud", "1438")); diff --git a/anda/system/dracut-strip-trigger/anda.hcl b/anda/system/dracut-strip-trigger/anda.hcl index d6b890bd3f..66cc3dc1d1 100644 --- a/anda/system/dracut-strip-trigger/anda.hcl +++ b/anda/system/dracut-strip-trigger/anda.hcl @@ -1,4 +1,5 @@ project pkg { + arches = ["x86_64"] rpm { spec = "dracut-strip-trigger.spec" } diff --git a/anda/system/dracut-strip-trigger/dracut-strip-trigger.spec b/anda/system/dracut-strip-trigger/dracut-strip-trigger.spec index 892dd3ec8c..b83f5ebe14 100644 --- a/anda/system/dracut-strip-trigger/dracut-strip-trigger.spec +++ b/anda/system/dracut-strip-trigger/dracut-strip-trigger.spec @@ -1,12 +1,13 @@ Name: dracut-strip-trigger Version: 0 -Release: 6%?dist +Release: 7%?dist Summary: Strip initramfs aggressively License: GPL-3.0-only Requires: dracut installonlypkg(kernel) Conflicts: dracut-config-generic Source0: LICENSE Source1: 01-aggressive-strip.conf +BuildArch: noarch %global _desc %{expand: Strip initramfs automatically for each kernel update using --hostonly --aggressive-strip. diff --git a/anda/system/epsonscan2/epsonscan2.spec b/anda/system/epsonscan2/epsonscan2.spec index 1a7e6616cf..d491623c17 100644 --- a/anda/system/epsonscan2/epsonscan2.spec +++ b/anda/system/epsonscan2/epsonscan2.spec @@ -1,24 +1,27 @@ -# Despite supposedly being a purely C++ project it will not build without this flag. Don't ask me. -%global build_cflags %{__build_flags_lang_c} %{?_distro_extra_cflags} -Wno-implicit-function-declaration -%global build_cxxflags %(%{__build_flags_lang_cxx}) %{?_distro_extra_cxxflags} -Wno-template-body +%global source_release 1 Name: epsonscan2 -Version: 6.7.70.0 -Release: 1 +Version: 6.7.82.0 +Release: 2%{?dist} Summary: Package for Epson scanner drivers and software # This was a licensing determination nightmare License: LGPL-2.1-or-later AND MIT AND Zlib AND LicenseRef-SHA1 URL: https://support.epson.net/linux/en/epsonscan2.php # This software doesn't have versioned download links, absolute nightmare -Source0: https://download3.ebz.epson.net/dsc/f/03/00/16/60/70/c7fc14e41ec84255008c6125b63bcac40f55e11c/epsonscan2-%{version}-%{release}.src.tar.gz +Source0: https://download-center.epson.com/f/module/7406d656-d87b-43ae-8efe-16ab16c173c5/%{name}-%{version}-%{source_release}.src.tar.gz # The non-free-plugin should be redistributable as far as anything I can find in the license but it is NOT provided externally?? Repackage the RPM I guess. %ifarch x86_64 -Source1: https://download3.ebz.epson.net/dsc/f/03/00/16/14/40/9cb99579f9fa7facf54f77f0ce6fe5600677f30a/epsonscan2-bundle-%{version}.x86_64.rpm.tar.gz +Source1: https://download-center.epson.com/f/module/98aba4e9-dc75-4096-9607-be35b5107668/%{name}-bundle-%{version}.x86_64.rpm.tar.gz %endif +Patch0: https://aur.archlinux.org/cgit/aur.git/plain/0002-Fix-crash.patch?h=epsonscan2#0002-Fix-crash.patch +Patch1: https://aur.archlinux.org/cgit/aur.git/plain/0003-Use-XDG-open-to-open-the-directory.patch?h=epsonscan2#0003-Use-XDG-open-to-open-the-directory.patch +Patch2: https://aur.archlinux.org/cgit/aur.git/tree/0004-Fix-a-crash-on-an-OOB-container-access.patch?h=epsonscan2#0004-Fix-a-crash-on-an-OOB-container-access.patch +Patch3: https://aur.archlinux.org/cgit/aur.git/plain/0005-Fix-folder-creation-crash.patch?h=epsonscan2#0005-Fix-folder-creation-crash.patch BuildRequires: boost-filesystem >= 1.36.0 BuildRequires: boost-devel >= 1.36.0 BuildRequires: cmake >= 2.8.12.2 BuildRequires: cpio +BuildRequires: desktop-file-utils BuildRequires: gcc-c++ BuildRequires: libharu BuildRequires: libjpeg-turbo-devel @@ -34,7 +37,7 @@ BuildRequires: rapidjson-devel BuildRequires: sane-backends-devel BuildRequires: systemd-rpm-macros Requires: qt5-qtbase -Packager: Gilver E. +Packager: Gilver E. %description This package contains all essential software to use Epson scanners. @@ -43,34 +46,43 @@ This package contains all essential software to use Epson scanners. %package non-free-plugin License: Epson End User Software License Agreement Summary: Non free plugin for Epson scanners -Requires: %{name} = %{version}-%{release} +Requires: %{name} = %{evr} %description non-free-plugin Non-free but redistributable plugin for %{name}. %endif %prep -%autosetup -n %{name}-%{version}-%{release} +%autosetup -n %{name}-%{version}-%{source_release} -p1 %ifarch x86_64 gzip -dc '%{SOURCE1}' | tar -xof - --strip-components=1 rpm2cpio plugins/*.rpm | cpio -idmv %endif -%build -# CMake macro fails to generate the build files somehow? This works however. I don't really understand. -%cmake \ - -DBUILD_TYPE=Release +sed -i 's|/lib/udev|${CMAKE_INSTALL_PREFIX}/lib/udev|' CMakeLists.txt +sed -i '1 i #include "zlib.h"' src/CommonUtility/DbgLog.cpp +sed -i '/zlib/d' src/Controller/CMakeLists.txt +find . -type f -name CMakeLists.txt -exec sed -i '/BOOST_NO_CXX11_RVALUE_REFERENCES/d' {} \; + +for file in Standalone/lastusedsettings.cpp Standalone/defaultsettings.cpp CommonUtility/ESCommonTypedef.h Controller/Src/KeysValues/Key.hpp Controller/Src/KeysValues/KeyMgr.hpp; do + sed -i '/BOOST_NO_CXX11_RVALUE_REFERENCES/d' src/$file +done + +sed -i '/#include/ i #include ' src/Controller/Src/Filter/GrayToMono.hpp + +%build +%cmake \ + -DBUILD_TYPE=Release \ + -DCMAKE_C_FLAGS="$CFLAGS -Wno-implicit-function-declaration" \ + -DCMAKE_CXX_FLAGS="$CXXFLAGS -Wno-template-body" %cmake_build %install %cmake_install # The CMakeLists.txt fails to do these steps correctly. -# The file is also very annoying to patch. Thank God this doesn't seem to update anymore. -mkdir -p %{buildroot}%{_udevrulesdir} -mv %{buildroot}/lib/udev/rules.d/60-%{name}.rules -t %{buildroot}%{_udevrulesdir} -install -Dpm644 desktop/rpm/x86_64/%{name}.desktop -t %{buildroot}%{_datadir}/applications/ +%desktop_file_install desktop/rpm/x86_64/%{name}.desktop mkdir -p %{buildroot}%{_libdir}/sane ln -sf ../%{name}/libsane-%{name}.so %{buildroot}%{_libdir}/sane/libsane-%{name}.so.1 @@ -82,7 +94,7 @@ rm -rf %{buildroot}%{_defaultdocdir}/%{name}* %ifarch x86_64 mv usr/share/doc/%{name}*/* -t plugins rm -rf usr/share/doc/%{name}* -cp -pr usr %{buildroot} +cp -pr usr -t %{buildroot} %endif %files @@ -99,7 +111,7 @@ cp -pr usr %{buildroot} %{_libdir}/sane/* %{_udevrulesdir}/60-%{name}.rules %{_sysconfdir}/sane.d/dll.d/%{name} -%{_datadir}/applications/%{name}.desktop +%{_appsdir}/%{name}.desktop %ifarch x86_64 %files non-free-plugin diff --git a/anda/system/falcond-profiles/falcond-profiles.spec b/anda/system/falcond-profiles/falcond-profiles.spec index fa04977d38..e465fc4b6c 100644 --- a/anda/system/falcond-profiles/falcond-profiles.spec +++ b/anda/system/falcond-profiles/falcond-profiles.spec @@ -1,6 +1,6 @@ -%global commit 56f49e5f51074d9b851e9e7f5d72e3c79d50d1a3 +%global commit a3e0e63303c0a310a504c5f3e2a9d71496d7aaab %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commit_date 20250926 +%global commit_date 20260206 Name: falcond-profiles Version: 0^%{commit_date}git.%{shortcommit} @@ -10,8 +10,9 @@ License: MIT URL: https://github.com/PikaOS-Linux/falcond-profiles Source0: %{url}/archive/%{commit}.tar.gz#/%{name}-%{shortcommit}.tar.gz Requires: falcond +Suggests: falcond-gui BuildArch: noarch -Packager: Gilver E. +Packager: Gilver E. %description This package contains the profiles needed for falcond. @@ -28,14 +29,21 @@ install -Dm644 usr/share/falcond/profiles/*.conf -t %{buildroot}%{_datadir}/falc install -Dm644 usr/share/falcond/profiles/handheld/* -t %{buildroot}%{_datadir}/falcond/profiles/handheld/ install -Dm644 usr/share/falcond/profiles/htpc/* -t %{buildroot}%{_datadir}/falcond/profiles/htpc/ +install -dm2775 %{buildroot}%{_datadir}/falcond/profiles/user + %files %doc README.md %license LICENSE +%dir %{_datadir}/falcond %{_datadir}/falcond/system.conf %{_datadir}/falcond/profiles/*.conf %{_datadir}/falcond/profiles/handheld/*.conf %{_datadir}/falcond/profiles/htpc/*.conf +%attr(2775, root, falcond) %dir %{_datadir}/falcond/profiles/user %changelog +* Thu Jan 1 2026 Gilver E. - 0^20260101git.0f87c74-2 +- Added new user profiles directory +- Added weak dep on falcond-gui * Thu Jun 19 2025 Gilver E. - 0^20250613git.96c2cdf-1 - Initial package diff --git a/anda/system/falcond/falcond.preset b/anda/system/falcond/falcond.preset deleted file mode 100644 index ab43d0cb0b..0000000000 --- a/anda/system/falcond/falcond.preset +++ /dev/null @@ -1 +0,0 @@ -enable falcond.service diff --git a/anda/system/falcond/falcond.spec b/anda/system/falcond/falcond.spec index b777d07588..50e243c264 100644 --- a/anda/system/falcond/falcond.spec +++ b/anda/system/falcond/falcond.spec @@ -1,21 +1,22 @@ %global _include_minidebuginfo 0 Name: falcond -Version: 1.1.9 -Release: 1%?dist +Version: 2.0.5 +Release: 1%{?dist} Summary: Advanced Linux Gaming Performance Daemon License: MIT URL: https://git.pika-os.com/general-packages/falcond Source0: %{url}/archive/v%{version}.tar.gz -Source1: %{name}.preset BuildRequires: anda-srpm-macros >= 0.2.18 BuildRequires: systemd-rpm-macros -BuildRequires: zig >= 0.14.0 +BuildRequires: zig >= 0.15.2 BuildRequires: zig-rpm-macros Requires: %{name}-profiles Requires: (scx-scheds or scx-scheds-nightly) +Suggests: %{name}-gui Conflicts: gamemode -Packager: Gilver E. +Provides: group(falcond) +Packager: Gilver E. %description falcond is a powerful system daemon designed to automatically optimize your Linux gaming experience. @@ -29,15 +30,21 @@ This eliminates the need to manually configure settings for each game. %install install -Dm644 debian/%{name}.service -t %{buildroot}%{_unitdir} -install -Dm644 %{SOURCE1} %{buildroot}%{_presetdir}/60-%{name}.preset # When DNF supports microarchitectures the fallback option for -c can be used here instead DESTDIR="%{buildroot}" \ %ifarch x86_64 -%{zig_build_target -r fast -c x86_64_v2 -s} \ +%{zig_build_target -r fast -cx86_64_v2 -s} \ %elifarch aarch64 %{zig_build_target -r fast -s} \ %endif +%pre +# Create falcond group if it doesn't exist +getent group 'falcond' >/dev/null || groupadd -f -r 'falcond' || : + +# Root must be a member of the group +usermod -aG 'falcond' root || : + %post %systemd_post %{name}.service @@ -52,9 +59,11 @@ DESTDIR="%{buildroot}" \ %license ../LICENSE %{_bindir}/%{name} %{_unitdir}/%{name}.service -%{_presetdir}/60-%{name}.preset %changelog +* Thu Jan 1 2026 Gilver E. - 1.2.1-2 +- Disabled service by default in favor of user enablement via falcond-gui +- Added weak dep on falcond-gui * Fri Jun 20 2025 Gilver E. - 1.1.5-2 - Enable service by default - Enable aarch64 CPU features diff --git a/anda/system/hid-fanatecff/akmod/anda.hcl b/anda/system/hid-fanatecff/akmod/anda.hcl new file mode 100644 index 0000000000..6910465b51 --- /dev/null +++ b/anda/system/hid-fanatecff/akmod/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + rpm { + spec = "hid-fanatecff-kmod.spec" + } + labels { + mock = 1 + updbranch = 1 + } +} diff --git a/anda/system/hid-fanatecff/akmod/hid-fanatecff-kmod.spec b/anda/system/hid-fanatecff/akmod/hid-fanatecff-kmod.spec new file mode 100644 index 0000000000..dad761cac6 --- /dev/null +++ b/anda/system/hid-fanatecff/akmod/hid-fanatecff-kmod.spec @@ -0,0 +1,56 @@ +%global commit f7bf935f0e534434d41e159d695f4a6c81e19fe9 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global commitdate 20260106 +%global ver 0.2.2 +%define buildforkernels akmod +%global debug_package %{nil} +%global modulename hid-fanatecff + +Name: %{modulename}-kmod +Version: %{ver}^%{commitdate}git.%{shortcommit} +Release: 3%{?dist} +Summary: Fanatec force feedback kernel module +License: GPL-2.0-only +URL: https://github.com/gotzl/%{modulename} +Source0: %{url}/archive/%{commit}.tar.gz#/%{modulename}-%{shortcommit}.tar.gz +BuildRequires: kmodtool +Requires: akmods +Requires: %{modulename} = %{?epoch:%{epoch}:}%{version} +Requires: %{modulename}-akmod-modules = %{?epoch:%{epoch}:}%{version} +Conflicts: dkms-%{modulename} + +%{expand:%(kmodtool --target %{_target_cpu} --repo terrapkg.com --kmodname %{name} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null) } + +%description +Driver to support Fanatec input devices, in particular force feedback of +various wheel-bases. + +%prep +%{?kmodtool_check} +kmodtool --target %{_target_cpu} --repo terrapkg.com --kmodname %{name} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null + +%autosetup -p1 -n %{modulename}-%{commit} + +for kernel_version in %{?kernel_versions}; do + mkdir _kmod_build_${kernel_version%%___*} + cp -fr Kbuild Makefile *.c *.h _kmod_build_${kernel_version%%___*}/ +done + +%build +for kernel_version in %{?kernel_versions}; do + pushd _kmod_build_${kernel_version%%___*}/ + %make_build -C "${kernel_version##*___}" M=$(pwd) modules + popd +done + +%install +for kernel_version in %{?kernel_versions}; do + mkdir -p %{buildroot}/%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/ + install -p -m 0755 _kmod_build_${kernel_version%%___*}/*.ko \ + %{buildroot}/%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/ +done +%{?akmod_install} + +%changelog +* Thu Apr 02 2026 Kyle Gospodnetich +- Initial package diff --git a/anda/system/hid-fanatecff/akmod/update.rhai b/anda/system/hid-fanatecff/akmod/update.rhai new file mode 100644 index 0000000000..ea1cd2b75b --- /dev/null +++ b/anda/system/hid-fanatecff/akmod/update.rhai @@ -0,0 +1,12 @@ +let c = sh("cat anda/system/hid-fanatecff/kmod-common/hid-fanatecff.spec | grep '%global commit ' | sed -E 's/.+commit //'", #{"stdout": "piped"}).ctx.stdout; +c.pop(); +rpm.global("commit", c); +if rpm.changed() { + rpm.release(); + let d = sh("cat anda/system/hid-fanatecff/kmod-common/hid-fanatecff.spec | grep '%global commitdate' | sed -E 's/.+commitdate //'", #{"stdout": "piped"}).ctx.stdout; + d.pop(); + rpm.global("commitdate", d); + let v = sh("cat anda/system/hid-fanatecff/kmod-common/hid-fanatecff.spec | grep '%global ver' | sed -E 's/.+ver //'", #{"stdout": "piped"}).ctx.stdout; + v.pop(); + rpm.global("ver", v); +} diff --git a/anda/system/hid-fanatecff/dkms/anda.hcl b/anda/system/hid-fanatecff/dkms/anda.hcl new file mode 100644 index 0000000000..cec1a9625e --- /dev/null +++ b/anda/system/hid-fanatecff/dkms/anda.hcl @@ -0,0 +1,10 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "dkms-hid-fanatecff.spec" + } + labels { + mock = 1 + updbranch = 1 + } +} diff --git a/anda/system/hid-fanatecff/dkms/dkms-hid-fanatecff.conf b/anda/system/hid-fanatecff/dkms/dkms-hid-fanatecff.conf new file mode 100644 index 0000000000..1a8f77c2d9 --- /dev/null +++ b/anda/system/hid-fanatecff/dkms/dkms-hid-fanatecff.conf @@ -0,0 +1,6 @@ +PACKAGE_NAME="hid-fanatecff" +PACKAGE_VERSION="__VERSION_STRING" +AUTOINSTALL="yes" + +BUILT_MODULE_NAME[0]="hid-fanatec" +DEST_MODULE_LOCATION[0]="/extra" diff --git a/anda/system/hid-fanatecff/dkms/dkms-hid-fanatecff.spec b/anda/system/hid-fanatecff/dkms/dkms-hid-fanatecff.spec new file mode 100644 index 0000000000..df7544e8af --- /dev/null +++ b/anda/system/hid-fanatecff/dkms/dkms-hid-fanatecff.spec @@ -0,0 +1,59 @@ +%global commit f7bf935f0e534434d41e159d695f4a6c81e19fe9 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global commitdate 20260106 +%global ver 0.2.2 +%global debug_package %{nil} +%global modulename hid-fanatecff + +Name: dkms-%{modulename} +Version: %{ver}^%{commitdate}git.%{shortcommit} +Release: 3%{?dist} +Summary: Fanatec force feedback kernel module (DKMS) +License: GPL-2.0-only +URL: https://github.com/gotzl/%{modulename} +Source0: %{url}/archive/%{commit}.tar.gz#/%{modulename}-%{shortcommit}.tar.gz +Source1: %{name}.conf +Source2: no-weak-modules.conf +Requires: %{modulename} = %{?epoch:%{epoch}:}%{version} +Requires: dkms +Conflicts: akmod-%{modulename} +Provides: %{modulename}-kmod +BuildArch: noarch + +%description +Driver to support Fanatec input devices, in particular force feedback of +various wheel-bases. + +%prep +%autosetup -p1 -n %{modulename}-%{commit} + +cp -f %{SOURCE1} dkms.conf +sed -i -e 's/__VERSION_STRING/%{version}/g' dkms.conf + +%build + +%install +mkdir -p %{buildroot}%{_usrsrc}/%{modulename}-%{version}/ +cp -fr Kbuild Makefile *.c *.h dkms.conf %{buildroot}%{_usrsrc}/%{modulename}-%{version}/ + +%if 0%{?fedora} +install -Dpm644 %{SOURCE2} %{buildroot}%{_sysconfdir}/dkms/%{modulename}.conf +%endif + +%post +dkms add -m %{modulename} -v %{version} -q --rpm_safe_upgrade || : +dkms build -m %{modulename} -v %{version} -q || : +dkms install -m %{modulename} -v %{version} -q --force || : + +%preun +dkms remove -m %{modulename} -v %{version} -q --all --rpm_safe_upgrade || : + +%files +%{_usrsrc}/%{modulename}-%{version} +%if 0%{?fedora} +%{_sysconfdir}/dkms/%{modulename}.conf +%endif + +%changelog +* Thu Apr 02 2026 Kyle Gospodnetich +- Initial package diff --git a/anda/system/xpadneo/dkms/no-weak-modules.conf b/anda/system/hid-fanatecff/dkms/no-weak-modules.conf similarity index 100% rename from anda/system/xpadneo/dkms/no-weak-modules.conf rename to anda/system/hid-fanatecff/dkms/no-weak-modules.conf diff --git a/anda/system/hid-fanatecff/dkms/update.rhai b/anda/system/hid-fanatecff/dkms/update.rhai new file mode 100644 index 0000000000..ea1cd2b75b --- /dev/null +++ b/anda/system/hid-fanatecff/dkms/update.rhai @@ -0,0 +1,12 @@ +let c = sh("cat anda/system/hid-fanatecff/kmod-common/hid-fanatecff.spec | grep '%global commit ' | sed -E 's/.+commit //'", #{"stdout": "piped"}).ctx.stdout; +c.pop(); +rpm.global("commit", c); +if rpm.changed() { + rpm.release(); + let d = sh("cat anda/system/hid-fanatecff/kmod-common/hid-fanatecff.spec | grep '%global commitdate' | sed -E 's/.+commitdate //'", #{"stdout": "piped"}).ctx.stdout; + d.pop(); + rpm.global("commitdate", d); + let v = sh("cat anda/system/hid-fanatecff/kmod-common/hid-fanatecff.spec | grep '%global ver' | sed -E 's/.+ver //'", #{"stdout": "piped"}).ctx.stdout; + v.pop(); + rpm.global("ver", v); +} diff --git a/anda/system/hid-fanatecff/kmod-common/anda.hcl b/anda/system/hid-fanatecff/kmod-common/anda.hcl new file mode 100644 index 0000000000..c456a9fdcb --- /dev/null +++ b/anda/system/hid-fanatecff/kmod-common/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "hid-fanatecff.spec" + } + labels { + nightly = 1 + } +} diff --git a/anda/system/hid-fanatecff/kmod-common/hid-fanatecff.spec b/anda/system/hid-fanatecff/kmod-common/hid-fanatecff.spec new file mode 100644 index 0000000000..35d5357976 --- /dev/null +++ b/anda/system/hid-fanatecff/kmod-common/hid-fanatecff.spec @@ -0,0 +1,52 @@ +%global commit f7bf935f0e534434d41e159d695f4a6c81e19fe9 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global commitdate 20260106 +%global ver 0.2.2 + +Name: hid-fanatecff +Version: %{ver}^%{commitdate}git.%{shortcommit} +Release: 3%{?dist} +Summary: Fanatec force feedback driver common files +License: GPL-2.0-only +URL: https://github.com/gotzl/%{name} +Source0: %{url}/archive/%{commit}.tar.gz#/%{name}-%{shortcommit}.tar.gz +Requires: %{name}-kmod = %{?epoch:%{epoch}:}%{version} +Provides: %{name}-kmod-common = %{?epoch:%{epoch}:}%{version} +BuildArch: noarch + +%description +Driver to support Fanatec input devices, in particular force feedback of +various wheel-bases. This package contains common files shared between the +akmod and dkms variants. + +%package akmod-modules +Summary: Modules for Akmods +Requires: %{name}-kmod = %{?epoch:%{epoch}:}%{version} +BuildArch: noarch + +%description akmod-modules +Akmods modules for the akmod-%{name} package. + +%prep +%autosetup -p1 -n %{name}-%{commit} + +echo hid-fanatec > %{name}.conf + +%install +# UDev rules: +install -Dpm644 fanatec.rules %{buildroot}%{_udevrulesdir}/99-fanatec.rules + +# Akmods modules +install -Dm644 %{name}.conf -t %{buildroot}%{_modulesloaddir} + +%files +%license LICENSE +%doc README.md +%{_udevrulesdir}/99-fanatec.rules + +%files akmod-modules +%{_modulesloaddir}/%{name}.conf + +%changelog +* Thu Apr 02 2026 Kyle Gospodnetich +- Initial package diff --git a/anda/system/hid-fanatecff/kmod-common/update.rhai b/anda/system/hid-fanatecff/kmod-common/update.rhai new file mode 100644 index 0000000000..271ca3c6d8 --- /dev/null +++ b/anda/system/hid-fanatecff/kmod-common/update.rhai @@ -0,0 +1,8 @@ +rpm.global("commit", gh_commit("gotzl/hid-fanatecff")); +if rpm.changed() { + rpm.release(); + rpm.global("commitdate", date()); + let ver = gh("gotzl/hid-fanatecff"); + ver.crop(0); + rpm.global("ver", ver); +} diff --git a/anda/system/hid-tmff2/akmod/anda.hcl b/anda/system/hid-tmff2/akmod/anda.hcl new file mode 100644 index 0000000000..099d3e7707 --- /dev/null +++ b/anda/system/hid-tmff2/akmod/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + rpm { + spec = "hid-tmff2-kmod.spec" + } + labels { + mock = 1 + updbranch = 1 + } +} diff --git a/anda/system/hid-tmff2/akmod/hid-tmff2-kmod.spec b/anda/system/hid-tmff2/akmod/hid-tmff2-kmod.spec new file mode 100644 index 0000000000..1bcf714322 --- /dev/null +++ b/anda/system/hid-tmff2/akmod/hid-tmff2-kmod.spec @@ -0,0 +1,62 @@ +%global commit 8187920ed261c7024826f8204cc7bea45153a3da +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global commitdate 20260310 +%global ver 0.83 + +%define buildforkernels akmod +%global debug_package %{nil} +%global modulename hid-tmff2 + +Name: %{modulename}-kmod +Version: %{ver}^%{commitdate}git.%{shortcommit} +Release: 4%{?dist} +Summary: Thrustmaster Force Feedback kernel module +License: GPL-2.0-only +URL: https://github.com/Kimplul/%{modulename} +Source0: %{url}/archive/%{commit}.tar.gz#/%{modulename}-%{shortcommit}.tar.gz +BuildRequires: kmodtool +Requires: akmods +Requires: %{modulename} = %{?epoch:%{epoch}:}%{version} +Requires: %{modulename}-akmod-modules = %{?epoch:%{epoch}:}%{version} +Conflicts: dkms-%{modulename} + +%{expand:%(kmodtool --target %{_target_cpu} --repo terrapkg.com --kmodname %{name} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null) } + +%description +Linux kernel module for Thrustmaster T300RS, T248 and (experimental) TX, T128, +T598, T-GT II and TS-XW wheels. + +%prep +%{?kmodtool_check} +kmodtool --target %{_target_cpu} --repo terrapkg.com --kmodname %{name} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null + +%autosetup -p1 -n %{modulename}-%{commit} + +# Stub out the hid-tminit submodule (superseded by in-kernel hid-thrustmaster) +mkdir -p deps/hid-tminit +printf 'all:\ninstall:\nclean:\n' > deps/hid-tminit/Makefile + +for kernel_version in %{?kernel_versions}; do + mkdir _kmod_build_${kernel_version%%___*} + cp -fr Kbuild Makefile src _kmod_build_${kernel_version%%___*}/ + cp -fr deps _kmod_build_${kernel_version%%___*}/ +done + +%build +for kernel_version in %{?kernel_versions}; do + pushd _kmod_build_${kernel_version%%___*}/ + %make_build KDIR="${kernel_version##*___}" + popd +done + +%install +for kernel_version in %{?kernel_versions}; do + mkdir -p %{buildroot}/%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/ + install -p -m 0755 _kmod_build_${kernel_version%%___*}/*.ko \ + %{buildroot}/%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/ +done +%{?akmod_install} + +%changelog +* Thu Apr 02 2026 Kyle Gospodnetich +- Initial package diff --git a/anda/system/hid-tmff2/akmod/update.rhai b/anda/system/hid-tmff2/akmod/update.rhai new file mode 100644 index 0000000000..ef91d866eb --- /dev/null +++ b/anda/system/hid-tmff2/akmod/update.rhai @@ -0,0 +1,12 @@ +let c = sh("cat anda/system/hid-tmff2/kmod-common/hid-tmff2.spec | grep '%global commit ' | sed -E 's/.+commit //'", #{"stdout": "piped"}).ctx.stdout; +c.pop(); +rpm.global("commit", c); +if rpm.changed() { + rpm.release(); + let d = sh("cat anda/system/hid-tmff2/kmod-common/hid-tmff2.spec | grep '%global commitdate' | sed -E 's/.+commitdate //'", #{"stdout": "piped"}).ctx.stdout; + d.pop(); + rpm.global("commitdate", d); + let v = sh("cat anda/system/hid-tmff2/kmod-common/hid-tmff2.spec | grep '%global ver' | sed -E 's/.+ver //'", #{"stdout": "piped"}).ctx.stdout; + v.pop(); + rpm.global("ver", v); +} diff --git a/anda/system/hid-tmff2/dkms/anda.hcl b/anda/system/hid-tmff2/dkms/anda.hcl new file mode 100644 index 0000000000..c7210010f5 --- /dev/null +++ b/anda/system/hid-tmff2/dkms/anda.hcl @@ -0,0 +1,10 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "dkms-hid-tmff2.spec" + } + labels { + mock = 1 + updbranch = 1 + } +} diff --git a/anda/system/hid-tmff2/dkms/dkms-hid-tmff2.conf b/anda/system/hid-tmff2/dkms/dkms-hid-tmff2.conf new file mode 100644 index 0000000000..02af43b5d1 --- /dev/null +++ b/anda/system/hid-tmff2/dkms/dkms-hid-tmff2.conf @@ -0,0 +1,9 @@ +PACKAGE_NAME="hid-tmff2" +PACKAGE_VERSION="__VERSION_STRING" +AUTOINSTALL="yes" + +MAKE[0]="'make' KDIR=\"$kernel_source_dir\"" +CLEAN[0]=true + +BUILT_MODULE_NAME[0]="hid-tmff-new" +DEST_MODULE_LOCATION[0]="/extra" diff --git a/anda/system/hid-tmff2/dkms/dkms-hid-tmff2.spec b/anda/system/hid-tmff2/dkms/dkms-hid-tmff2.spec new file mode 100644 index 0000000000..25fd8b46ec --- /dev/null +++ b/anda/system/hid-tmff2/dkms/dkms-hid-tmff2.spec @@ -0,0 +1,69 @@ +%global commit 8187920ed261c7024826f8204cc7bea45153a3da +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global commitdate 20260310 +%global ver 0.83 + +%global debug_package %{nil} +%global modulename hid-tmff2 + +Name: dkms-%{modulename} +Version: %{ver}^%{commitdate}git.%{shortcommit} +Release: 4%{?dist} +Summary: Thrustmaster Force Feedback kernel module (DKMS) +License: GPL-2.0-only +URL: https://github.com/Kimplul/%{modulename} +Source0: %{url}/archive/%{commit}.tar.gz#/%{modulename}-%{shortcommit}.tar.gz +Source1: %{name}.conf +Source2: no-weak-modules.conf +Requires: %{modulename} = %{?epoch:%{epoch}:}%{version} +Requires: dkms +Conflicts: akmod-%{modulename} +Provides: %{modulename}-kmod +BuildArch: noarch + +%description +Linux kernel module for Thrustmaster T300RS, T248 and (experimental) TX, T128, +T598, T-GT II and TS-XW wheels. + +%prep +%autosetup -p1 -n %{modulename}-%{commit} + +# Stub out the hid-tminit submodule (superseded by in-kernel hid-thrustmaster) +mkdir -p deps/hid-tminit +printf 'all:\ninstall:\nclean:\n' > deps/hid-tminit/Makefile + +cp -f %{SOURCE1} dkms/dkms.conf +sed -i -e 's/__VERSION_STRING/%{version}/g' dkms/dkms.conf + +%build + +%install +# Create empty tree: +mkdir -p %{buildroot}%{_usrsrc}/%{modulename}-%{version}/ +cp -fr Kbuild Makefile src deps %{buildroot}%{_usrsrc}/%{modulename}-%{version}/ +install -Dpm644 dkms/dkms.conf %{buildroot}%{_usrsrc}/%{modulename}-%{version}/dkms.conf + +%if 0%{?fedora} +# Do not enable weak modules support in Fedora (no kABI): +install -Dpm644 %{SOURCE2} %{buildroot}%{_sysconfdir}/dkms/%{modulename}.conf +%endif + +%post +dkms add -m %{modulename} -v %{version} -q --rpm_safe_upgrade || : +# Rebuild and make available for the currently running kernel: +dkms build -m %{modulename} -v %{version} -q || : +dkms install -m %{modulename} -v %{version} -q --force || : + +%preun +# Remove all versions from DKMS registry: +dkms remove -m %{modulename} -v %{version} -q --all --rpm_safe_upgrade || : + +%files +%{_usrsrc}/%{modulename}-%{version} +%if 0%{?fedora} +%{_sysconfdir}/dkms/%{modulename}.conf +%endif + +%changelog +* Thu Apr 02 2026 Kyle Gospodnetich +- Initial package diff --git a/anda/system/nvidia/dkms-nvidia/closed/modules.conf b/anda/system/hid-tmff2/dkms/no-weak-modules.conf similarity index 100% rename from anda/system/nvidia/dkms-nvidia/closed/modules.conf rename to anda/system/hid-tmff2/dkms/no-weak-modules.conf diff --git a/anda/system/hid-tmff2/dkms/update.rhai b/anda/system/hid-tmff2/dkms/update.rhai new file mode 100644 index 0000000000..ef91d866eb --- /dev/null +++ b/anda/system/hid-tmff2/dkms/update.rhai @@ -0,0 +1,12 @@ +let c = sh("cat anda/system/hid-tmff2/kmod-common/hid-tmff2.spec | grep '%global commit ' | sed -E 's/.+commit //'", #{"stdout": "piped"}).ctx.stdout; +c.pop(); +rpm.global("commit", c); +if rpm.changed() { + rpm.release(); + let d = sh("cat anda/system/hid-tmff2/kmod-common/hid-tmff2.spec | grep '%global commitdate' | sed -E 's/.+commitdate //'", #{"stdout": "piped"}).ctx.stdout; + d.pop(); + rpm.global("commitdate", d); + let v = sh("cat anda/system/hid-tmff2/kmod-common/hid-tmff2.spec | grep '%global ver' | sed -E 's/.+ver //'", #{"stdout": "piped"}).ctx.stdout; + v.pop(); + rpm.global("ver", v); +} diff --git a/anda/system/hid-tmff2/kmod-common/anda.hcl b/anda/system/hid-tmff2/kmod-common/anda.hcl new file mode 100644 index 0000000000..525110d0f3 --- /dev/null +++ b/anda/system/hid-tmff2/kmod-common/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "hid-tmff2.spec" + } + labels { + nightly = 1 + } +} diff --git a/anda/system/hid-tmff2/kmod-common/hid-tmff2.spec b/anda/system/hid-tmff2/kmod-common/hid-tmff2.spec new file mode 100644 index 0000000000..3e65880848 --- /dev/null +++ b/anda/system/hid-tmff2/kmod-common/hid-tmff2.spec @@ -0,0 +1,53 @@ +%global commit 8187920ed261c7024826f8204cc7bea45153a3da +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global commitdate 20260310 +%global ver 0.83 + +Name: hid-tmff2 +Version: %{ver}^%{commitdate}git.%{shortcommit} +Release: 4%{?dist} +Summary: Thrustmaster Force Feedback driver common files +License: GPL-2.0-only +URL: https://github.com/Kimplul/%{name} +Source0: %{url}/archive/%{commit}.tar.gz#/%{name}-%{shortcommit}.tar.gz +Requires: %{name}-kmod = %{?epoch:%{epoch}:}%{version} +Provides: %{name}-kmod-common = %{?epoch:%{epoch}:}%{version} +BuildArch: noarch + +%description +Linux kernel module for Thrustmaster T300RS, T248 and (experimental) TX, T128, +T598, T-GT II and TS-XW wheels. This package contains common files shared +between the akmod and dkms variants. + +%package akmod-modules +Summary: Modules for Akmods +Requires: %{name}-kmod = %{?epoch:%{epoch}:}%{version} +BuildArch: noarch + +%description akmod-modules +Akmods modules for the akmod-%{name} package. + +%prep +%autosetup -p1 -n %{name}-%{commit} + +# Extract module names from Kbuild for modules-load.d +echo hid-tmff-new > %{name}.conf + +%install +# UDev rules: +install -Dpm644 udev/99-thrustmaster.rules -t %{buildroot}%{_udevrulesdir}/ + +# Akmods modules +install -Dm644 %{name}.conf -t %{buildroot}%{_modulesloaddir} + +%files +%license LICENSE +%doc README.md +%{_udevrulesdir}/99-thrustmaster.rules + +%files akmod-modules +%{_modulesloaddir}/%{name}.conf + +%changelog +* Thu Apr 02 2026 Kyle Gospodnetich +- Initial package diff --git a/anda/system/hid-tmff2/kmod-common/update.rhai b/anda/system/hid-tmff2/kmod-common/update.rhai new file mode 100644 index 0000000000..d89f5af60b --- /dev/null +++ b/anda/system/hid-tmff2/kmod-common/update.rhai @@ -0,0 +1,8 @@ +rpm.global("commit", gh_commit("Kimplul/hid-tmff2")); +if rpm.changed() { + rpm.release(); + rpm.global("commitdate", date()); + let ver = gh("Kimplul/hid-tmff2"); + ver.crop(0); + rpm.global("ver", ver); +} diff --git a/anda/system/intel-lpmd/intel-lpmd.spec b/anda/system/intel-lpmd/intel-lpmd.spec index aea520d41d..c35d0ac036 100644 --- a/anda/system/intel-lpmd/intel-lpmd.spec +++ b/anda/system/intel-lpmd/intel-lpmd.spec @@ -1,7 +1,7 @@ %global _distro_extra_cflags -Wno-unused-variable -Wno-unused-function -Wno-switch -I/usr/lib/gcc/**/include/ Name: intel-lpmd -Version: 0.0.9 +Version: 0.1.0 Release: 1%?dist Summary: Linux daemon designed to optimize active idle power License: GPL-2.0-only diff --git a/anda/system/ipu6-camera-hal/ipu6-camera-hal.spec b/anda/system/ipu6-camera-hal/ipu6-camera-hal.spec index 08b3902c55..473ef021b5 100644 --- a/anda/system/ipu6-camera-hal/ipu6-camera-hal.spec +++ b/anda/system/ipu6-camera-hal/ipu6-camera-hal.spec @@ -1,15 +1,14 @@ -%global commit c933525a6efe8229a7129b7b0b66798f19d2bef7 -%global commit_date 20250627 +%global commit 9899efa70921906ee6dd23c9f83aff343968f164 +%global commit_date 20260121 %global shortcommit %(c=%{commit}; echo ${c:0:7}) %global build_cflags %{__build_flags_lang_c} %{?_distro_extra_cflags} -Wno-alloc-size-larger-than %global build_cxxflags %{__build_flags_lang_cxx} %{?_distro_extra_cxxflags} -Wno-alloc-size-larger-than -%global __cmake_in_source_build 1 -%global ver 1.0.0 +%global ver 1.0.1 Name: ipu6-camera-hal Summary: Hardware abstraction layer for Intel IPU6 -Version: %{ver}^%{commit_date}git.%{shortcommit} -Release: 1%?dist +Version: %{ver}^%{commit_date}git%{shortcommit} +Release: 2%{?dist} License: Apache-2.0 URL: https://github.com/intel/ipu6-camera-hal Source0: %{url}/archive/%{commit}/%{name}-%{shortcommit}.tar.gz @@ -33,7 +32,7 @@ Requires: ipu6-camera-bins >= 0.0-11 Provides: %{name} = %{commit_date}.%{shortcommit}-%{release} %endif ExclusiveArch: x86_64 -Packager: Gilver E. +Packager: Gilver E. %description This package provides the basic Hardware Avstraction Layer (HAL) access APIs for IPU6. @@ -49,13 +48,18 @@ This provides the necessary header files for IPU6 HAL development. %prep %autosetup -p1 -n %{name}-%{commit} -%build +%conf %cmake -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_SYSCONFDIR:PATH="%{_datadir}/defaults/etc" \ -DBUILD_CAMHAL_ADAPTOR=ON \ -DBUILD_CAMHAL_PLUGIN=ON \ -DIPU_VERSIONS="ipu6;ipu6ep;ipu6epmtl" \ - -DUSE_PG_LITE_PIPE=ON + -DUSE_PG_LITE_PIPE=ON \ +%if 0%{?fedora} >= 44 + -DCMAKE_POLICY_VERSION_MINIMUM=3.5 +%endif + +%build %cmake_build %install @@ -98,4 +102,5 @@ fi %changelog -%autochangelog +* Sat Apr 18 2026 Gilver E. - 1.0.1^20260121git9899efa +- Updated build diff --git a/anda/system/ipu6-drivers/akmod/intel-ipu6-kmod.spec b/anda/system/ipu6-drivers/akmod/intel-ipu6-kmod.spec index 4613d0fed3..8fa8ac5b85 100644 --- a/anda/system/ipu6-drivers/akmod/intel-ipu6-kmod.spec +++ b/anda/system/ipu6-drivers/akmod/intel-ipu6-kmod.spec @@ -1,8 +1,8 @@ %global buildforkernels akmod %global debug_package %{nil} -%global commit 69b2fde9edcbc24128b91541fdf2791fbd4bf7a4 +%global commit 51fe72485032c779a261430a8100eaad5d8696b8 %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commit_date 20250917 +%global commit_date 20260328 %global modulename intel-ipu6 # Actual "release" version, currently unused as the release versions are back and forth on if on if they use 1.0.0 or 1.0.1 %global ver 1.0.1 @@ -10,7 +10,7 @@ Name: %{modulename}-kmod Summary: Akmods module for %{modulename} Version: 0^%{commit_date}git.%{shortcommit} -Release: 1%?dist +Release: 2%{?dist} License: GPL-2.0-or-later URL: https://github.com/intel/ipu6-drivers Source0: https://github.com/intel/ipu6-drivers/archive/%{commit}/ipu6-drivers-%{shortcommit}.tar.gz @@ -25,7 +25,7 @@ Provides: %{name} = %{commitdate}.%{shortcommit}-%{release} Provides: akmod-%{modulename} = %{commitdate}.%{shortcommit}-%{release} %endif -%{expand:%(kmodtool --target %{_target_cpu} --repo terra --kmodname %{modulename} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null) } +%{expand:%(kmodtool --target %{_target_cpu} --repo terrapkg.com --kmodname %{modulename} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null) } %description This package enables the Intel IPU6 image processor. @@ -34,7 +34,7 @@ This package enables the Intel IPU6 image processor. # Error out if there was something wrong with kmodtool: %{?kmodtool_check} # Print kmodtool output for debugging purposes: -kmodtool --target %{_target_cpu} --repo terra --kmodname %{name} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null +kmodtool --target %{_target_cpu} --repo terrapkg.com --kmodname %{name} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null %autosetup -p1 -n ipu6-drivers-%{commit} patch -p1 -i patches/*.patch diff --git a/anda/system/ipu6-drivers/dkms/dkms-intel-ipu6.spec b/anda/system/ipu6-drivers/dkms/dkms-intel-ipu6.spec index e32b6e7469..972598fa9c 100644 --- a/anda/system/ipu6-drivers/dkms/dkms-intel-ipu6.spec +++ b/anda/system/ipu6-drivers/dkms/dkms-intel-ipu6.spec @@ -1,7 +1,7 @@ %global debug_package %{nil} -%global commit 69b2fde9edcbc24128b91541fdf2791fbd4bf7a4 +%global commit 51fe72485032c779a261430a8100eaad5d8696b8 %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commit_date 20250917 +%global commit_date 20260328 %global modulename intel-ipu6 # Actual "release" version, currently unused as the release versions are back and forth on if on if they use 1.0.0 or 1.0.1 %global ver 1.0.1 @@ -9,7 +9,7 @@ Name: dkms-%{modulename} Summary: DKMS module for %{modulename} Version: 0^%{commit_date}git.%{shortcommit} -Release: 1%?dist +Release: 1%{?dist} License: GPL-2.0-or-later URL: https://github.com/intel/ipu6-drivers Source0: %{url}/archive/%{commit}.tar.gz#/ipu6-drivers-%{shortcommit}.tar.gz @@ -22,7 +22,7 @@ Requires: %{modulename}-kmod-common = %{?epoch:%{epoch}:}%{version} Requires: dkms Requires: dkms-usbio-drivers BuildArch: noarch -Packager: Gilver E. +Packager: Gilver E. %description This package enables the Intel IPU6 image processor. diff --git a/anda/system/ipu6-drivers/kmod-common/intel-ipu6-drivers.spec b/anda/system/ipu6-drivers/kmod-common/intel-ipu6-drivers.spec index 22bb1a3c35..b30d3f2539 100644 --- a/anda/system/ipu6-drivers/kmod-common/intel-ipu6-drivers.spec +++ b/anda/system/ipu6-drivers/kmod-common/intel-ipu6-drivers.spec @@ -1,7 +1,7 @@ %global debug_package %{nil} -%global commit 69b2fde9edcbc24128b91541fdf2791fbd4bf7a4 +%global commit 51fe72485032c779a261430a8100eaad5d8696b8 %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commit_date 20250917 +%global commit_date 20260328 # Actual "release" version, currently unused as the release versions are back and forth on if on if they use 1.0.0 or 1.0.1 # Use this if they ever stop doing that I guess %global ver 1.0.1 @@ -9,7 +9,7 @@ Name: intel-ipu6-drivers Summary: Common files for Intel IPU6 drivers Version: 0^%{commit_date}git.%{shortcommit} -Release: 1%?dist +Release: 1%{?dist} License: GPL-2.0-or-later URL: https://github.com/intel/ipu6-drivers Source0: https://github.com/intel/ipu6-drivers/archive/%{commit}/ipu6-drivers-%{shortcommit}.tar.gz @@ -17,7 +17,7 @@ Requires: ipu6-camera-bins Requires: intel-ipu6-kmod = %{?epoch:%{epoch}:}%{version} Provides: intel-ipu6-kmod-common = %{?epoch:%{epoch}:}%{version}-%{release} BuildArch: noarch -Packager: Gilver E. +Packager: Gilver E. %description Common files for the Intel IPU6 camera drivers. diff --git a/anda/system/limine/limine.spec b/anda/system/limine/limine.spec index f5239a3c2e..58551e8ed6 100644 --- a/anda/system/limine/limine.spec +++ b/anda/system/limine/limine.spec @@ -1,11 +1,12 @@ Name: limine -Version: 10.2.0 -Release: 1%?dist +Version: 12.1.0 +Release: 1%{?dist} Summary: Modern, advanced, portable, multiprotocol bootloader License: BSD-2-Clause URL: https://limine-bootloader.org -Source0: https://codeberg.org/Limine/Limine/releases/download/v%version/limine-%version.tar.gz -Source1: https://codeberg.org/Limine/Limine/raw/tag/v%version/README.md +Source0: https://github.com/Limine-Bootloader/Limine/releases/download/v%{version}/%{name}-%{version}.tar.gz +Source1: https://github.com/Limine-Bootloader/Limine/releases/download/v%{version}/limine-%{version}.tar.gz.sig +Source2: https://raw.githubusercontent.com/Limine-Bootloader/Limine/refs/tags/v%{version}/README.md Packager: madonuko BuildRequires: nasm mtools llvm lld clang make @@ -15,10 +16,14 @@ the reference implementation for the Limine boot protocol. %prep %autosetup -cp %{S:1} . +cp %{S:2} . +gpg --keyserver hkps://keyserver.ubuntu.com --recv-keys 05D29860D0A0668AAEFB9D691F3C021BECA23821 +gpg --verify %{S:1} %{S:0} || exit 1 + +%conf +%configure --enable-all CC_FOR_TARGET=clang LD_FOR_TARGET=ld.lld %build -%configure --enable-all CC_FOR_TARGET=clang LD_FOR_TARGET=ld.lld %make_build %install @@ -26,10 +31,9 @@ cp %{S:1} . %files -%doc README.md 3RDPARTY.md FAQ.md CONFIG.md PROTOCOL.md COPYING USAGE.md +%doc README.md 3RDPARTY.md FAQ.md CONFIG.md COPYING USAGE.md ChangeLog %license %_datadir/doc/limine/LICENSES/LicenseRef-scancode-bsd-no-disclaimer-unmodified.txt %license COPYING %_bindir/limine -%_includedir/limine.h %_datadir/limine/ -%_mandir/man1/limine.1.gz +%_mandir/man1/limine.1.* diff --git a/anda/system/limine/update.rhai b/anda/system/limine/update.rhai index eb0821f62d..bd43fbeb2c 100644 --- a/anda/system/limine/update.rhai +++ b/anda/system/limine/update.rhai @@ -1,3 +1 @@ -import "andax/bump_extras.rhai" as bump; - -rpm.version(bump::codeberg("Limine/Limine")); +rpm.version(gh("limine-bootloader/limine")); diff --git a/anda/system/logitech-rs50-linux-driver/akmod/anda.hcl b/anda/system/logitech-rs50-linux-driver/akmod/anda.hcl new file mode 100644 index 0000000000..d2e96406cb --- /dev/null +++ b/anda/system/logitech-rs50-linux-driver/akmod/anda.hcl @@ -0,0 +1,10 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "logitech-rs50-linux-driver-kmod.spec" + } + labels { + mock = 1 + updbranch = 1 + } +} diff --git a/anda/system/logitech-rs50-linux-driver/akmod/logitech-rs50-linux-driver-kmod.spec b/anda/system/logitech-rs50-linux-driver/akmod/logitech-rs50-linux-driver-kmod.spec new file mode 100644 index 0000000000..8f3b2dec01 --- /dev/null +++ b/anda/system/logitech-rs50-linux-driver/akmod/logitech-rs50-linux-driver-kmod.spec @@ -0,0 +1,71 @@ +# The reason why this package is a separate from the main one despite using the same sources +# is because akmods use the srpm to build the kmod package, and if the kmod package is included +# in the main package, akmods will reinstall the userspace package every time the kernel is updated. + +%if 0%{?fedora} +%global buildforkernels akmod +%global debug_package %{nil} +%endif + +%global commit 1635bbd0ea044d1c3681b1843b5a0f3e878d0ed0 +%global commitdate 20260504 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global modulename logitech-rs50-linux-driver + +Name: %{modulename}-kmod +Version: 1.0^%{commitdate}git.%{shortcommit} +Release: 1%{?dist} +Summary: Linux kernel driver for the Logitech RS50 Direct Drive Wheel Base (USB ID 046d:c276) +License: GPL-2.0-only +URL: https://github.com/mescon/logitech-rs50-linux-driver +Source0: %{url}/archive/%{commit}.tar.gz#/%{modulename}-%{shortcommit}.tar.gz +BuildArch: x86_64 +BuildRequires: gcc +BuildRequires: make +BuildRequires: kmodtool +Packager: Luan V. + +Requires: akmods +Requires: %{modulename} = %{?epoch:%{epoch}:}%{version} +Requires: %{modulename}-akmod-modules = %{?epoch:%{epoch}:}%{version} +Requires: kernel-devel +Conflicts: dkms-%{modulename} + +%{expand:%(kmodtool --target %{_target_cpu} --repo terrapkg.com --kmodname %{modulename} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null) } + +%description +Linux kernel driver for the Logitech RS50 Direct Drive Wheel Base (USB ID 046d:c276). +This is a patched version of the hid-logitech-hidpp driver that adds RS50 support with force feedback (FF_CONSTANT) and exposes all G Hub settings via sysfs for runtime configuration. +Note: This driver replaces the in-kernel hid-logitech-hidpp module and continues to support all other Logitech HID++ devices (mice, keyboards, other racing wheels like the G29, G920, G923, etc.). + +%prep +# error out if there was something wrong with kmodtool +%{?kmodtool_check} + +# print kmodtool output for debugging purposes: +kmodtool --target %{_target_cpu} --repo terrapkg.com --kmodname %{modulename} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null + +%setup -q -c -n %{modulename}-%{commit} + +mv %{modulename}-%{commit}/mainline/* %{modulename}-%{commit}/ + +for kernel_version in %{?kernel_versions} ; do + cp -a %{modulename}-%{commit} _kmod_build_${kernel_version%%___*} +done + +%build +for kernel_version in %{?kernel_versions} ; do + make V=1 %{?_smp_mflags} -C ${kernel_version##*___} M=${PWD}/_kmod_build_${kernel_version%%___*} VERSION=v%{version} modules +done + +%install +for kernel_version in %{?kernel_versions}; do + mkdir -p %{buildroot}%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/ + install -D -m 755 _kmod_build_${kernel_version%%___*}/hid-logitech-hidpp.ko %{buildroot}%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/ + chmod a+x %{buildroot}%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/hid-logitech-hidpp.ko +done +%{?akmod_install} + +%changelog +* Fri May 01 2026 Luan V. - 1.0^20260430git.df7f149-2 +- fix spec warnings: add Packager tag and remove autochangelog diff --git a/anda/system/logitech-rs50-linux-driver/akmod/update.rhai b/anda/system/logitech-rs50-linux-driver/akmod/update.rhai new file mode 100644 index 0000000000..d55bf59bae --- /dev/null +++ b/anda/system/logitech-rs50-linux-driver/akmod/update.rhai @@ -0,0 +1,9 @@ + let c = sh("cat anda/system/logitech-rs50-linux-driver/kmod-common/logitech-rs50-linux-driver.spec | grep '%global commit ' | sed -E 's/.+commit //'", #{"stdout": "piped"}).ctx.stdout; +c.pop(); +rpm.global("commit", c); +if rpm.changed() { + rpm.release(); + let d = sh("cat anda/system/logitech-rs50-linux-driver/kmod-common/logitech-rs50-linux-driver.spec | grep '%global commitdate' | sed -E 's/.+commitdate //'", #{"stdout": "piped"}).ctx.stdout; + d.pop(); + rpm.global("commitdate", d); +} diff --git a/anda/system/logitech-rs50-linux-driver/dkms/anda.hcl b/anda/system/logitech-rs50-linux-driver/dkms/anda.hcl new file mode 100644 index 0000000000..352e5771ae --- /dev/null +++ b/anda/system/logitech-rs50-linux-driver/dkms/anda.hcl @@ -0,0 +1,10 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "dkms-logitech-rs50-linux-driver.spec" + } + labels { + updbranch = 1 + mock = 1 + } +} diff --git a/anda/system/logitech-rs50-linux-driver/dkms/dkms-logitech-rs50-linux-driver.spec b/anda/system/logitech-rs50-linux-driver/dkms/dkms-logitech-rs50-linux-driver.spec new file mode 100644 index 0000000000..b717e7a692 --- /dev/null +++ b/anda/system/logitech-rs50-linux-driver/dkms/dkms-logitech-rs50-linux-driver.spec @@ -0,0 +1,67 @@ +%global commit 1635bbd0ea044d1c3681b1843b5a0f3e878d0ed0 +%global debug_package %{nil} +%global modulename logitech-rs50-linux-driver +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global commitdate 20260504 + +Name: dkms-%{modulename} +Version: 1.0^%{commitdate}git.%{shortcommit} +Release: 1%{?dist} +Summary: Linux kernel driver for the Logitech RS50 Direct Drive Wheel Base (USB ID 046d:c276) +License: GPL-2.0-only +URL: https://github.com/mescon/%{modulename} +Source0: %{url}/archive/%{commit}.tar.gz#/%{name}-%{shortcommit}.tar.gz +Source1: dkms.conf +BuildRequires: sed +BuildRequires: systemd-rpm-macros +Requires: %{modulename} = %{?epoch:%{epoch}:}%{version} +Requires: dkms +Conflicts: akmod-%{modulename} +Provides: %{name}-kmod-common = %{?epoch:%{epoch}:}%{version} +BuildArch: x86_64 +Provides: %{modulename}-kmod +Packager: Luan V. + +%description +Linux kernel driver for the Logitech RS50 Direct Drive Wheel Base (USB ID 046d:c276). +This is a patched version of the hid-logitech-hidpp driver that adds RS50 support with force feedback (FF_CONSTANT) and exposes all G Hub settings via sysfs for runtime configuration. +Note: This driver replaces the in-kernel hid-logitech-hidpp module and continues to support all other Logitech HID++ devices (mice, keyboards, other racing wheels like the G29, G920, G923, etc.). + +%package akmod-modules +Summary: Modules for Akmods +Requires: akmod-%{name} +BuildArch: noarch + +%description akmod-modules +Akmods modules for the akmod-%{name} package. + +%prep +%autosetup -p1 -n %{modulename}-%{commit} +pushd mainline +mkdir build +cp %{SOURCE1} ./dkms.conf +sed -i -e 's/__VERSION_STRING/%{version}/g' dkms.conf +popd + +%install +mkdir -p %{buildroot}%{_usrsrc}/%{modulename}-%{version} +cp -fr ./mainline/* %{buildroot}%{_usrsrc}/%{modulename}-%{version}/ + +%post +dkms add -m %{modulename} -v %{version} -q --rpm_safe_upgrade || : +# Rebuild and make available for the currently running kernel: +dkms build -m %{modulename} -v %{version} -q || : +dkms install -m %{modulename} -v %{version} -q --force || : + +%preun +dkms remove -m %{modulename} -v %{version} -q --all --rpm_safe_upgrade || : + +%files +%{_usrsrc}/%{modulename}-%{version} + +%changelog +* Sun May 03 2026 Luan V. - 1.0^20260502git.7296717-2 +- ship our own dkms.conf, allowing full cleanup on uninstall +* Fri May 01 2026 Luan V. - 1.0^20260430git.df7f149-2 +- fix build due to upstream changes +- resolve spec warnings: add Packager tag, remove autochangelog diff --git a/anda/system/logitech-rs50-linux-driver/dkms/dkms.conf b/anda/system/logitech-rs50-linux-driver/dkms/dkms.conf new file mode 100644 index 0000000000..4ba86e19c6 --- /dev/null +++ b/anda/system/logitech-rs50-linux-driver/dkms/dkms.conf @@ -0,0 +1,10 @@ +PACKAGE_NAME="logitech-rs50-linux-driver" +PACKAGE_VERSION="__VERSION_STRING" +AUTOINSTALL="yes" + +MAKE[0]="'make' KVERSION=$kernelver" +CLEAN="make clean" + +BUILT_MODULE_NAME[0]="hid-logitech-hidpp" +DEST_MODULE_NAME[0]="hid-logitech-hidpp" +DEST_MODULE_LOCATION[0]="/extra" diff --git a/anda/system/logitech-rs50-linux-driver/dkms/update.rhai b/anda/system/logitech-rs50-linux-driver/dkms/update.rhai new file mode 100644 index 0000000000..d55bf59bae --- /dev/null +++ b/anda/system/logitech-rs50-linux-driver/dkms/update.rhai @@ -0,0 +1,9 @@ + let c = sh("cat anda/system/logitech-rs50-linux-driver/kmod-common/logitech-rs50-linux-driver.spec | grep '%global commit ' | sed -E 's/.+commit //'", #{"stdout": "piped"}).ctx.stdout; +c.pop(); +rpm.global("commit", c); +if rpm.changed() { + rpm.release(); + let d = sh("cat anda/system/logitech-rs50-linux-driver/kmod-common/logitech-rs50-linux-driver.spec | grep '%global commitdate' | sed -E 's/.+commitdate //'", #{"stdout": "piped"}).ctx.stdout; + d.pop(); + rpm.global("commitdate", d); +} diff --git a/anda/system/logitech-rs50-linux-driver/kmod-common/README.terra.md b/anda/system/logitech-rs50-linux-driver/kmod-common/README.terra.md new file mode 100644 index 0000000000..c7816b651e --- /dev/null +++ b/anda/system/logitech-rs50-linux-driver/kmod-common/README.terra.md @@ -0,0 +1,4 @@ +# proton trueforce setup +the original tools/install-tf-shim.sh is available on your path as logi-rs50-proton-setup, +it will search for the logitech dlls at `/var/lib/logitech-rs50-linux-driver/`. +for which files to place there and how to get them, see README.md diff --git a/anda/system/logitech-rs50-linux-driver/kmod-common/anda.hcl b/anda/system/logitech-rs50-linux-driver/kmod-common/anda.hcl new file mode 100644 index 0000000000..e27e61ff9d --- /dev/null +++ b/anda/system/logitech-rs50-linux-driver/kmod-common/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "logitech-rs50-linux-driver.spec" + } + labels { + nightly = 1 + } +} diff --git a/anda/system/logitech-rs50-linux-driver/kmod-common/com.github.rs50.metainfo.xml b/anda/system/logitech-rs50-linux-driver/kmod-common/com.github.rs50.metainfo.xml new file mode 100644 index 0000000000..4ae8b777a3 --- /dev/null +++ b/anda/system/logitech-rs50-linux-driver/kmod-common/com.github.rs50.metainfo.xml @@ -0,0 +1,26 @@ + + com.github.rs50 + logitech rs50 linux driver + logitech-rs50-linux-driver + Linux kernel driver for the Logitech RS50 Direct Drive Wheel Base (USB ID 046d:c276). + +

+ Linux kernel driver for the Logitech RS50 Direct Drive Wheel Base (USB ID 046d:c276). + This is a patched version of the hid-logitech-hidpp driver that adds RS50 support with force feedback (FF_CONSTANT) and exposes all G Hub settings via sysfs for runtime configuration. + Note: This driver replaces the in-kernel hid-logitech-hidpp module and continues to support all other Logitech HID++ devices (mice, keyboards, other racing wheels like the G29, G920, G923, etc.). +

+
+ https://github.com/mescon/logitech-rs50-linux-driver + CC0-1.0 + + GPL-2.0-only + + + mescon + + + + + usb:v046dpc276* + +
diff --git a/anda/system/logitech-rs50-linux-driver/kmod-common/logi-rs50-proton-setup.sh b/anda/system/logitech-rs50-linux-driver/kmod-common/logi-rs50-proton-setup.sh new file mode 100644 index 0000000000..dd284ce8bb --- /dev/null +++ b/anda/system/logitech-rs50-linux-driver/kmod-common/logi-rs50-proton-setup.sh @@ -0,0 +1,2 @@ +#!/usr/bin/env sh +exec /usr/share/logitech-rs50-linux-driver/tools/install-tf-shim.sh "$@" diff --git a/anda/system/logitech-rs50-linux-driver/kmod-common/logitech-rs50-linux-driver.spec b/anda/system/logitech-rs50-linux-driver/kmod-common/logitech-rs50-linux-driver.spec new file mode 100644 index 0000000000..ca025a61ba --- /dev/null +++ b/anda/system/logitech-rs50-linux-driver/kmod-common/logitech-rs50-linux-driver.spec @@ -0,0 +1,84 @@ +%global commit 1635bbd0ea044d1c3681b1843b5a0f3e878d0ed0 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global commitdate 20260504 + +Name: logitech-rs50-linux-driver +Version: 1.0^%{commitdate}git.%{shortcommit} +Release: 1%{?dist} +Summary: Linux kernel driver for the Logitech RS50 Direct Drive Wheel Base (USB ID 046d:c276) +License: GPL-2.0-only +URL: https://github.com/mescon/%{name} +Source0: %{url}/archive/%{commit}.tar.gz#/%{name}-%{shortcommit}.tar.gz +Source1: com.github.rs50.metainfo.xml +Source2: logi-rs50-proton-setup.sh +Source3: README.terra.md +BuildRequires: systemd-rpm-macros +Recommends: trueforce-sdk +Requires: %{name}-kmod = %{?epoch:%{epoch}:}%{version} +Provides: %{name}-kmod-common = %{?epoch:%{epoch}:}%{version} +Packager: Luan V. +BuildArch: noarch + +%description +Linux kernel driver for the Logitech RS50 Direct Drive Wheel Base (USB ID 046d:c276). +This is a patched version of the hid-logitech-hidpp driver that adds RS50 support with force feedback (FF_CONSTANT) and exposes all G Hub settings via sysfs for runtime configuration. +Note: This driver replaces the in-kernel hid-logitech-hidpp module and continues to support all other Logitech HID++ devices (mice, keyboards, other racing wheels like the G29, G920, G923, etc.). + +%package akmod-modules +Summary: Modules for Akmods +Requires: %{name}-kmod = %{?epoch:%{epoch}:}%{version} +BuildArch: noarch + +%description akmod-modules +Akmods modules for the akmod-%{name} package. + +%prep +%autosetup -p1 -n %{name}-%{commit} + +echo hid-logitech-hidpp > %{name}.conf +mv sdk/README.md README-SDK.md +cp %{SOURCE3} README.terra.md + +%install +install -Dm644 %{SOURCE1} %{buildroot}%{_datadir}/metainfo/com.github.rs50.metainfo.xml + +mkdir -p %{buildroot}%{_bindir} +mkdir -p %{buildroot}%{_datadir}/%{name}/tools +mkdir -p %{buildroot}%{_sharedstatedir}/%{name}/Logi +ln -sr %_sharedstatedir/%{name} %{buildroot}%{_datadir}/%{name}/sdk + +install -Dm755 tools/install-tf-shim.sh %{buildroot}%{_datadir}/%{name}/tools/ +install -Dm755 %{SOURCE2} %{buildroot}%{_bindir}/logi-rs50-proton-setup + +install -Dm644 udev/70-logitech-rs50.rules -t %{buildroot}%{_udevrulesdir}/ +install -D -m644 userspace/libtrueforce/udev/99-logitech-rs50-trueforce.rules %{buildroot}%{_udevrulesdir}/70-logitech-rs50-trueforce.rules + +# Akmods modules +install -Dm644 %{name}.conf -t %{buildroot}%{_modulesloaddir} + +%posttrans +### Skip triggering if udevd isn't accessible +if [ -S /run/udev/control ]; then + /usr/bin/udevadm control --reload + /usr/bin/udevadm trigger --subsystem-match=hidraw +fi + + +%files +%doc README.terra.md README.md README-SDK.md CHANGELOG.md rs-wheel-hub-button-layout.png docs/* +%{_datadir}/metainfo/com.github.rs50.metainfo.xml +%{_udevrulesdir}/70-logitech-rs50.rules +%{_udevrulesdir}/70-logitech-rs50-trueforce.rules +%{_datadir}/%{name}/tools/* +%{_bindir}/logi-rs50-proton-setup +%{_datadir}/%{name}/sdk +%dir %{_sharedstatedir}/%{name}/Logi + +%files akmod-modules +%{_modulesloaddir}/%{name}.conf + +%changelog +* Fri May 01 2026 Luan V. - 1.0^20260430git.df7f149-2 +- add logi-rs50-proton-setup script together with a readme which explains where to put the necessary files. +- and add udev rules together with a posttrans script to reload and trigger devices on install +- fix spec warnings: add Packager tag and remove autochangelog diff --git a/anda/system/logitech-rs50-linux-driver/kmod-common/update.rhai b/anda/system/logitech-rs50-linux-driver/kmod-common/update.rhai new file mode 100644 index 0000000000..82cd36e3e9 --- /dev/null +++ b/anda/system/logitech-rs50-linux-driver/kmod-common/update.rhai @@ -0,0 +1,5 @@ +rpm.global("commit", gh_commit("mescon/logitech-rs50-linux-driver")); +if rpm.changed() { + rpm.release(); + rpm.global("commitdate", date()); +} diff --git a/anda/system/nct6687d/akmod/anda.hcl b/anda/system/nct6687d/akmod/anda.hcl new file mode 100644 index 0000000000..644fad7c33 --- /dev/null +++ b/anda/system/nct6687d/akmod/anda.hcl @@ -0,0 +1,10 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "nct6687d-kmod.spec" + } + labels { + mock = 1 + updbranch = 1 + } +} diff --git a/anda/system/nct6687d/akmod/nct6687d-kmod.spec b/anda/system/nct6687d/akmod/nct6687d-kmod.spec new file mode 100644 index 0000000000..e934a502e4 --- /dev/null +++ b/anda/system/nct6687d/akmod/nct6687d-kmod.spec @@ -0,0 +1,69 @@ +# The reason why this package is a separate from the main one despite using the same sources +# is because akmods use the srpm to build the kmod package, and if the kmod package is included +# in the main package, akmods will reinstall the userspace package every time the kernel is updated. + +%if 0%{?fedora} +%global buildforkernels akmod +%global debug_package %{nil} +%endif + +%global commit cedda8bff09a4083e07414fb80fdc3901e7ab544 +%global commitdate 20260411 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global modulename nct6687d + +Name: %{modulename}-kmod +Version: 1.0^%{commitdate}git.%{shortcommit} +Release: 2%{?dist} +Summary: Linux kernel driver for the NCT6687D hardware monitoring chip +License: GPL-2.0-or-later +URL: https://github.com/Fred78290/%{modulename} +Source0: %{url}/archive/%{commit}.tar.gz#/%{modulename}-%{shortcommit}.tar.gz +BuildArch: x86_64 +BuildRequires: gcc +BuildRequires: make +BuildRequires: kmodtool +BuildRequires: elfutils-libelf-devel + +Requires: akmods +Requires: %{modulename} = %{?epoch:%{epoch}:}%{version} +Requires: %{modulename}-akmod-modules = %{?epoch:%{epoch}:}%{version} +Requires: kernel-devel +Conflicts: dkms-%{modulename} + +%{expand:%(kmodtool --target %{_target_cpu} --repo terrapkg.com --kmodname %{modulename} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null) } + +%description +Linux kernel driver for the NCT6687D hardware monitoring chip. +This kernel module permit to recognize the chipset Nuvoton NCT6687-R in lm-sensors package. This sensor is present on some B550 motherboard such as MSI or ASUS. +The implementation is minimalist and was done by reverse coding of Windows 10 source code from LibreHardwareMonitor + +%prep +# error out if there was something wrong with kmodtool +%{?kmodtool_check} + +# print kmodtool output for debugging purposes: +kmodtool --target %{_target_cpu} --repo terrapkg.com --kmodname %{modulename} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null + +%setup -q -c -n %{modulename}-%{commit} + +for kernel_version in %{?kernel_versions} ; do + cp -a %{modulename}-%{commit} _kmod_build_${kernel_version%%___*} +done + +%build +for kernel_version in %{?kernel_versions}; do + make V=0 %{?_smp_mflags} -C "${kernel_version##*___}" M=${PWD}/_kmod_build_${kernel_version%%___*} +done + +%install +for kernel_version in %{?kernel_versions}; do + mkdir -p %{buildroot}%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/ + install -D -m 755 _kmod_build_${kernel_version%%___*}/*.ko %{buildroot}%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/ + chmod a+x %{buildroot}%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/*.ko +done +%{?akmod_install} + +%changelog +* Sat Apr 11 2026 Luan Oliveira - 1.0^20260411git.cedda8b-1 +- Initial package diff --git a/anda/system/nct6687d/akmod/update.rhai b/anda/system/nct6687d/akmod/update.rhai new file mode 100644 index 0000000000..f651cd8bc4 --- /dev/null +++ b/anda/system/nct6687d/akmod/update.rhai @@ -0,0 +1,9 @@ + let c = sh("cat anda/system/nct6687d/kmod-common/nct6687d.spec | grep '%global commit ' | sed -E 's/.+commit //'", #{"stdout": "piped"}).ctx.stdout; +c.pop(); +rpm.global("commit", c); +if rpm.changed() { + rpm.release(); + let d = sh("cat anda/system/nct6687d/kmod-common/nct6687d.spec | grep '%global commitdate' | sed -E 's/.+commitdate //'", #{"stdout": "piped"}).ctx.stdout; + d.pop(); + rpm.global("commitdate", d); +} diff --git a/anda/system/nct6687d/dkms/anda.hcl b/anda/system/nct6687d/dkms/anda.hcl new file mode 100644 index 0000000000..eda27e4852 --- /dev/null +++ b/anda/system/nct6687d/dkms/anda.hcl @@ -0,0 +1,10 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "dkms-nct6687d.spec" + } + labels { + updbranch = 1 + mock = 1 + } +} diff --git a/anda/system/nct6687d/dkms/dkms-nct6687d.spec b/anda/system/nct6687d/dkms/dkms-nct6687d.spec new file mode 100644 index 0000000000..73ac69e8c4 --- /dev/null +++ b/anda/system/nct6687d/dkms/dkms-nct6687d.spec @@ -0,0 +1,61 @@ +%global commit cedda8bff09a4083e07414fb80fdc3901e7ab544 +%global debug_package %{nil} +%global modulename nct6687d +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global commitdate 20260411 + +Name: dkms-%{modulename} +Version: 1.0^%{commitdate}git.%{shortcommit} +Release: 1%{?dist} +Summary: Linux kernel driver for the NCT6687D hardware monitoring chip +License: GPL-2.0-or-later +URL: https://github.com/Fred78290/%{modulename} +Source0: %{url}/archive/%{commit}.tar.gz#/%{name}-%{shortcommit}.tar.gz +Patch0: dkms-version.patch +BuildRequires: sed +BuildRequires: systemd-rpm-macros +Requires: %{modulename} = %{?epoch:%{epoch}:}%{version} +Requires: dkms +Conflicts: akmod-%{modulename} +Provides: %{name}-kmod-common = %{?epoch:%{epoch}:}%{version} +BuildArch: x86_64 +Provides: %{modulename}-kmod + +%description +Linux kernel driver for the NCT6687D hardware monitoring chip. +This kernel module permit to recognize the chipset Nuvoton NCT6687-R in lm-sensors package. This sensor is present on some B550 motherboard such as MSI or ASUS. +The implementation is minimalist and was done by reverse coding of Windows 10 source code from LibreHardwareMonitor + +%package akmod-modules +Summary: Modules for Akmods +Requires: akmod-%{name} +BuildArch: noarch + +%description akmod-modules +Akmods modules for the akmod-%{name} package. + +%prep +%autosetup -p1 -n %{modulename}-%{commit} +sed -i -e 's/__VERSION_STRING/%{version}/g' dkms.conf + +%install +mkdir -p %{buildroot}%{_usrsrc}/%{modulename}-%{version} +cp -fr ./ %{buildroot}%{_usrsrc}/%{modulename}-%{version}/ + +%post +dkms add -m %{modulename} -v %{version} -q --rpm_safe_upgrade || : +# Rebuild and make available for the currently running kernel: +dkms build -m %{modulename} -v %{version} -q || : +dkms install -m %{modulename} -v %{version} -q --force || : + +%preun +dkms remove -m %{modulename} -v %{version} -q --all --rpm_safe_upgrade || : + +%files +%{_usrsrc}/%{modulename}-%{version} + + + +%changelog +* Sat Apr 11 2026 Luan Oliveira - 1.0^20260411git.cedda8b-1 +- Initial package diff --git a/anda/system/nct6687d/dkms/dkms-version.patch b/anda/system/nct6687d/dkms/dkms-version.patch new file mode 100644 index 0000000000..fe96fc77a8 --- /dev/null +++ b/anda/system/nct6687d/dkms/dkms-version.patch @@ -0,0 +1,11 @@ +diff --git a/dkms.conf b/dkms.conf +index d8fc2b1..d315428 100644 +--- a/dkms.conf ++++ b/dkms.conf +@@ -1,5 +1,5 @@ + PACKAGE_NAME="nct6687d" +-PACKAGE_VERSION="1" ++PACKAGE_VERSION="__VERSION_STRING" + MAKE[0]="make kver=${kernelver} dkms/build" + BUILT_MODULE_NAME[0]="nct6687" + DEST_MODULE_LOCATION[0]="/kernel/drivers/hwmon/" diff --git a/anda/system/nct6687d/dkms/update.rhai b/anda/system/nct6687d/dkms/update.rhai new file mode 100644 index 0000000000..f651cd8bc4 --- /dev/null +++ b/anda/system/nct6687d/dkms/update.rhai @@ -0,0 +1,9 @@ + let c = sh("cat anda/system/nct6687d/kmod-common/nct6687d.spec | grep '%global commit ' | sed -E 's/.+commit //'", #{"stdout": "piped"}).ctx.stdout; +c.pop(); +rpm.global("commit", c); +if rpm.changed() { + rpm.release(); + let d = sh("cat anda/system/nct6687d/kmod-common/nct6687d.spec | grep '%global commitdate' | sed -E 's/.+commitdate //'", #{"stdout": "piped"}).ctx.stdout; + d.pop(); + rpm.global("commitdate", d); +} diff --git a/anda/system/nct6687d/kmod-common/anda.hcl b/anda/system/nct6687d/kmod-common/anda.hcl new file mode 100644 index 0000000000..2a426355a3 --- /dev/null +++ b/anda/system/nct6687d/kmod-common/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "nct6687d.spec" + } + labels { + nightly = 1 + } +} diff --git a/anda/system/nct6687d/kmod-common/com.github.nct6687d.metainfo.xml b/anda/system/nct6687d/kmod-common/com.github.nct6687d.metainfo.xml new file mode 100644 index 0000000000..0e56f8305d --- /dev/null +++ b/anda/system/nct6687d/kmod-common/com.github.nct6687d.metainfo.xml @@ -0,0 +1,22 @@ + + com.github.nct6687d + NCT6687D Kernel module + nct6687d + Linux kernel driver for the NCT6687D hardware monitoring chip. + +

+This kernel module permit to recognize the chipset Nuvoton NCT6687-R in lm-sensors package. This sensor is present on some B550 motherboard such as MSI or ASUS. + +The implementation is minimalist and was done by reverse coding of Windows 10 source code from LibreHardwareMonitor. +

+ + https://github.com/Fred78290/nct6687d + CC0-1.0 + + GPL-2.0-or-later + + + Fred78290 + + + diff --git a/anda/system/nct6687d/kmod-common/nct6687d.spec b/anda/system/nct6687d/kmod-common/nct6687d.spec new file mode 100644 index 0000000000..49d2bad8a1 --- /dev/null +++ b/anda/system/nct6687d/kmod-common/nct6687d.spec @@ -0,0 +1,49 @@ +%global commit cedda8bff09a4083e07414fb80fdc3901e7ab544 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global commitdate 20260411 + +Name: nct6687d +Version: 1.0^%{commitdate}git.%{shortcommit} +Release: 2%{?dist} +Summary: Linux kernel driver for the NCT6687D hardware monitoring chip +License: GPL-2.0-or-later +URL: https://github.com/Fred78290/%{name} +Source0: %{url}/archive/%{commit}.tar.gz#/%{name}-%{shortcommit}.tar.gz +Source1: com.github.nct6687d.metainfo.xml +BuildRequires: systemd-rpm-macros +BuildRequires: anda-srpm-macros +Requires: %{name}-kmod = %{?epoch:%{epoch}:}%{version} +Provides: %{name}-kmod-common = %{?epoch:%{epoch}:}%{version} +Obsoletes: %{name}-akmods-modules < %{evr} +BuildArch: noarch + +%description +Linux kernel driver for the NCT6687D hardware monitoring chip. +This kernel module permit to recognize the chipset Nuvoton NCT6687-R in lm-sensors package. This sensor is present on some B550 motherboard such as MSI or ASUS. +The implementation is minimalist and was done by reverse coding of Windows 10 source code from LibreHardwareMonitor + +%prep +%autosetup -p1 -n %{name}-%{commit} + +echo nct6687 > %{name}.conf +echo "blacklist nct6683" > nct6683_blacklist.conf + +%install +install -Dm644 %{SOURCE1} %{buildroot}%{_datadir}/metainfo/com.github.nct6687d.metainfo.xml + +# Akmods modules +install -Dm 0644 %{name}.conf -t %{buildroot}%{_modulesloaddir} +install -Dm 0644 nct6683_blacklist.conf -t %{buildroot}%{_modprobedir} + +%files +%license LICENSE +%doc README.md images/* TESTING_RESULTS.md +%{_modprobedir}/nct6683_blacklist.conf +%{_datadir}/metainfo/com.github.nct6687d.metainfo.xml +%{_modulesloaddir}/%{name}.conf + +%changelog +* Wed May 06 2026 Luan Oliveira - 1.0^20260411git.cedda8b-2 +- fix module load file +* Sat Apr 11 2026 Luan Oliveira - 1.0^20260411git.cedda8b-1 +- Initial package diff --git a/anda/system/nct6687d/kmod-common/update.rhai b/anda/system/nct6687d/kmod-common/update.rhai new file mode 100644 index 0000000000..03c78a4cb4 --- /dev/null +++ b/anda/system/nct6687d/kmod-common/update.rhai @@ -0,0 +1,5 @@ +rpm.global("commit", gh_commit("Fred78290/nct6687d")); +if rpm.changed() { + rpm.release(); + rpm.global("commitdate", date()); +} diff --git a/anda/system/new-lg4ff/akmod/anda.hcl b/anda/system/new-lg4ff/akmod/anda.hcl new file mode 100644 index 0000000000..1baad1eca9 --- /dev/null +++ b/anda/system/new-lg4ff/akmod/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + rpm { + spec = "new-lg4ff-kmod.spec" + } + labels { + mock = 1 + updbranch = 1 + } +} diff --git a/anda/system/new-lg4ff/akmod/new-lg4ff-kmod.spec b/anda/system/new-lg4ff/akmod/new-lg4ff-kmod.spec new file mode 100644 index 0000000000..7041a5ea35 --- /dev/null +++ b/anda/system/new-lg4ff/akmod/new-lg4ff-kmod.spec @@ -0,0 +1,55 @@ +%global commit 2092db19f7b40854e0427a1b2e39eda9f8d0c3cd +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global commitdate 20250528 +%global ver 0.5.0 +%define buildforkernels akmod +%global debug_package %{nil} +%global modulename new-lg4ff + +Name: %{modulename}-kmod +Version: %{ver}^%{commitdate}git.%{shortcommit} +Release: 3%{?dist} +Summary: Logitech force feedback kernel module +License: GPL-2.0-only +URL: https://github.com/berarma/%{modulename} +Source0: %{url}/archive/%{commit}.tar.gz#/%{modulename}-%{shortcommit}.tar.gz +BuildRequires: kmodtool +Requires: akmods +Requires: %{modulename} = %{?epoch:%{epoch}:}%{version} +Requires: %{modulename}-akmod-modules = %{?epoch:%{epoch}:}%{version} +Conflicts: dkms-%{modulename} + +%{expand:%(kmodtool --target %{_target_cpu} --repo terrapkg.com --kmodname %{name} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null) } + +%description +Experimental Logitech force feedback module for Linux. + +%prep +%{?kmodtool_check} +kmodtool --target %{_target_cpu} --repo terrapkg.com --kmodname %{name} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null + +%autosetup -p1 -n %{modulename}-%{commit} + +for kernel_version in %{?kernel_versions}; do + mkdir _kmod_build_${kernel_version%%___*} + cp -fr Kbuild Makefile *.c *.h usbhid _kmod_build_${kernel_version%%___*}/ +done + +%build +for kernel_version in %{?kernel_versions}; do + pushd _kmod_build_${kernel_version%%___*}/ + %make_build -C "${kernel_version##*___}" M=$(pwd) modules + popd +done + +%install +for kernel_version in %{?kernel_versions}; do + mkdir -p %{buildroot}/%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/ + install -p -m 0755 _kmod_build_${kernel_version%%___*}/*.ko \ + %{buildroot}/%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/ +done +%{?akmod_install} + +%changelog +* Thu Apr 02 2026 Kyle Gospodnetich +- Initial package diff --git a/anda/system/new-lg4ff/akmod/update.rhai b/anda/system/new-lg4ff/akmod/update.rhai new file mode 100644 index 0000000000..3b39f52224 --- /dev/null +++ b/anda/system/new-lg4ff/akmod/update.rhai @@ -0,0 +1,12 @@ +let c = sh("cat anda/system/new-lg4ff/kmod-common/new-lg4ff.spec | grep '%global commit ' | sed -E 's/.+commit //'", #{"stdout": "piped"}).ctx.stdout; +c.pop(); +rpm.global("commit", c); +if rpm.changed() { + rpm.release(); + let d = sh("cat anda/system/new-lg4ff/kmod-common/new-lg4ff.spec | grep '%global commitdate' | sed -E 's/.+commitdate //'", #{"stdout": "piped"}).ctx.stdout; + d.pop(); + rpm.global("commitdate", d); + let v = sh("cat anda/system/new-lg4ff/kmod-common/new-lg4ff.spec | grep '%global ver' | sed -E 's/.+ver //'", #{"stdout": "piped"}).ctx.stdout; + v.pop(); + rpm.global("ver", v); +} diff --git a/anda/system/new-lg4ff/dkms/anda.hcl b/anda/system/new-lg4ff/dkms/anda.hcl new file mode 100644 index 0000000000..9ec986d3be --- /dev/null +++ b/anda/system/new-lg4ff/dkms/anda.hcl @@ -0,0 +1,10 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "dkms-new-lg4ff.spec" + } + labels { + mock = 1 + updbranch = 1 + } +} diff --git a/anda/system/new-lg4ff/dkms/dkms-new-lg4ff.conf b/anda/system/new-lg4ff/dkms/dkms-new-lg4ff.conf new file mode 100644 index 0000000000..1c8806a445 --- /dev/null +++ b/anda/system/new-lg4ff/dkms/dkms-new-lg4ff.conf @@ -0,0 +1,10 @@ +PACKAGE_NAME="new-lg4ff" +PACKAGE_VERSION="__VERSION_STRING" +AUTOINSTALL="yes" + +MAKE[0]="'make' KVERSION=$kernelver" +CLEAN="make clean" + +BUILT_MODULE_NAME[0]="hid-logitech-new" +DEST_MODULE_NAME[0]="hid-logitech" +DEST_MODULE_LOCATION[0]="/extra" diff --git a/anda/system/new-lg4ff/dkms/dkms-new-lg4ff.spec b/anda/system/new-lg4ff/dkms/dkms-new-lg4ff.spec new file mode 100644 index 0000000000..954f84b65f --- /dev/null +++ b/anda/system/new-lg4ff/dkms/dkms-new-lg4ff.spec @@ -0,0 +1,58 @@ +%global commit 2092db19f7b40854e0427a1b2e39eda9f8d0c3cd +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global commitdate 20250528 +%global ver 0.5.0 +%global debug_package %{nil} +%global modulename new-lg4ff + +Name: dkms-%{modulename} +Version: %{ver}^%{commitdate}git.%{shortcommit} +Release: 3%{?dist} +Summary: Logitech force feedback kernel module (DKMS) +License: GPL-2.0-only +URL: https://github.com/berarma/%{modulename} +Source0: %{url}/archive/%{commit}.tar.gz#/%{modulename}-%{shortcommit}.tar.gz +Source1: %{name}.conf +Source2: no-weak-modules.conf +Requires: %{modulename} = %{?epoch:%{epoch}:}%{version} +Requires: dkms +Conflicts: akmod-%{modulename} +Provides: %{modulename}-kmod +BuildArch: noarch + +%description +Experimental Logitech force feedback module for Linux. + +%prep +%autosetup -p1 -n %{modulename}-%{commit} + +cp -f %{SOURCE1} dkms.conf +sed -i -e 's/__VERSION_STRING/%{version}/g' dkms.conf + +%build + +%install +mkdir -p %{buildroot}%{_usrsrc}/%{modulename}-%{version}/ +cp -fr Kbuild Makefile *.c *.h usbhid dkms.conf %{buildroot}%{_usrsrc}/%{modulename}-%{version}/ + +%if 0%{?fedora} +install -Dpm644 %{SOURCE2} %{buildroot}%{_sysconfdir}/dkms/%{modulename}.conf +%endif + +%post +dkms add -m %{modulename} -v %{version} -q --rpm_safe_upgrade || : +dkms build -m %{modulename} -v %{version} -q || : +dkms install -m %{modulename} -v %{version} -q --force || : + +%preun +dkms remove -m %{modulename} -v %{version} -q --all --rpm_safe_upgrade || : + +%files +%{_usrsrc}/%{modulename}-%{version} +%if 0%{?fedora} +%{_sysconfdir}/dkms/%{modulename}.conf +%endif + +%changelog +* Thu Apr 02 2026 Kyle Gospodnetich +- Initial package diff --git a/anda/system/nvidia/dkms-nvidia/open/modules.conf b/anda/system/new-lg4ff/dkms/no-weak-modules.conf similarity index 100% rename from anda/system/nvidia/dkms-nvidia/open/modules.conf rename to anda/system/new-lg4ff/dkms/no-weak-modules.conf diff --git a/anda/system/new-lg4ff/dkms/update.rhai b/anda/system/new-lg4ff/dkms/update.rhai new file mode 100644 index 0000000000..3b39f52224 --- /dev/null +++ b/anda/system/new-lg4ff/dkms/update.rhai @@ -0,0 +1,12 @@ +let c = sh("cat anda/system/new-lg4ff/kmod-common/new-lg4ff.spec | grep '%global commit ' | sed -E 's/.+commit //'", #{"stdout": "piped"}).ctx.stdout; +c.pop(); +rpm.global("commit", c); +if rpm.changed() { + rpm.release(); + let d = sh("cat anda/system/new-lg4ff/kmod-common/new-lg4ff.spec | grep '%global commitdate' | sed -E 's/.+commitdate //'", #{"stdout": "piped"}).ctx.stdout; + d.pop(); + rpm.global("commitdate", d); + let v = sh("cat anda/system/new-lg4ff/kmod-common/new-lg4ff.spec | grep '%global ver' | sed -E 's/.+ver //'", #{"stdout": "piped"}).ctx.stdout; + v.pop(); + rpm.global("ver", v); +} diff --git a/anda/system/new-lg4ff/kmod-common/anda.hcl b/anda/system/new-lg4ff/kmod-common/anda.hcl new file mode 100644 index 0000000000..c34afaa94b --- /dev/null +++ b/anda/system/new-lg4ff/kmod-common/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "new-lg4ff.spec" + } + labels { + nightly = 1 + } +} diff --git a/anda/system/new-lg4ff/kmod-common/new-lg4ff.spec b/anda/system/new-lg4ff/kmod-common/new-lg4ff.spec new file mode 100644 index 0000000000..dd7a6e175c --- /dev/null +++ b/anda/system/new-lg4ff/kmod-common/new-lg4ff.spec @@ -0,0 +1,47 @@ +%global commit 2092db19f7b40854e0427a1b2e39eda9f8d0c3cd +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global commitdate 20250528 +%global ver 0.5.0 + +Name: new-lg4ff +Version: %{ver}^%{commitdate}git.%{shortcommit} +Release: 3%{?dist} +Summary: Logitech force feedback driver common files +License: GPL-2.0-only +URL: https://github.com/berarma/%{name} +Source0: %{url}/archive/%{commit}.tar.gz#/%{name}-%{shortcommit}.tar.gz +Requires: %{name}-kmod = %{?epoch:%{epoch}:}%{version} +Provides: %{name}-kmod-common = %{?epoch:%{epoch}:}%{version} +BuildArch: noarch + +%description +Experimental Logitech force feedback module for Linux. This package contains +common files shared between the akmod and dkms variants. + +%package akmod-modules +Summary: Modules for Akmods +Requires: %{name}-kmod = %{?epoch:%{epoch}:}%{version} +BuildArch: noarch + +%description akmod-modules +Akmods modules for the akmod-%{name} package. + +%prep +%autosetup -p1 -n %{name}-%{commit} + +echo hid-logitech-new > %{name}.conf + +%install +# Akmods modules +install -Dm644 %{name}.conf -t %{buildroot}%{_modulesloaddir} + +%files +%license LICENSE +%doc README.md + +%files akmod-modules +%{_modulesloaddir}/%{name}.conf + +%changelog +* Thu Apr 02 2026 Kyle Gospodnetich +- Initial package diff --git a/anda/system/new-lg4ff/kmod-common/update.rhai b/anda/system/new-lg4ff/kmod-common/update.rhai new file mode 100644 index 0000000000..4bc998ce80 --- /dev/null +++ b/anda/system/new-lg4ff/kmod-common/update.rhai @@ -0,0 +1,8 @@ +rpm.global("commit", gh_commit("berarma/new-lg4ff")); +if rpm.changed() { + rpm.release(); + rpm.global("commitdate", date()); + let ver = gh("berarma/new-lg4ff"); + ver.crop(1); + rpm.global("ver", ver); +} diff --git a/anda/system/nvidia-580/README.md b/anda/system/nvidia-580/README.md new file mode 100644 index 0000000000..6f391e74de --- /dev/null +++ b/anda/system/nvidia-580/README.md @@ -0,0 +1,41 @@ +# The Terra NVIDIA 580 Driver tree + +This directory contains the Terra distribution of NVIDIA 580 legacy drivers for Maxwell, Pascal, and Volta NVIDIA GPUs. + +These driver packages are based on negativo17's NVIDIA driver packages for Fedora, with very slight modifications for hardware compatibility, and conforming to the Terra packaging guidelines. + +Unlike negativo17 and Nobara, we do not manually generate a tarball of the NVIDIA drivers, but directly generate them +on-the-fly from the NVIDIA installer. This ensures that the packages can be easily maintained and updated, as long as the +self-extracting NVIDIA installer still has the same command-line options. + +## How Terra unpacks the self-extracting archive + +Instead of pre-generating the tarball, we run the NVIDIA installer with the `-x` flag to extract the contents directly to the build directory. We then make use of an RPM macro to set the new build directory as that tree. + +```rpmspec +Source0: http://download.nvidia.com/XFree86/Linux-%{_arch}/%{version}/NVIDIA-Linux-%{_arch}-%{version}.run + + +... skip to the %prep section ... + +%prep +sh %{SOURCE0} -x --target nvidia-driver-%{version} +%setup -T -D -n nvidia-driver-%{version} + +%build + +... Build the package as usual ... + +``` + +This is simpler than manually generating the tarball, but comes with a slight cost of having to download the NVIDIA installer every time we build any package that relies on that archive. + +## Support + +If you have any issues with the NVIDIA drivers, please file an issue on the [Terra Monorepo](https://github.com/terrapkg/packages/issues). We will try to help you as best as we can. + +## License + +The NVIDIA drivers are licensed under the NVIDIA Software License. Please refer to the [NVIDIA Software License](https://www.nvidia.com/content/DriverDownload-March2009/licence.php?lang=us) for more information. + +We do not modify the actual NVIDIA drivers in any way, only providing a re-packaged version compatible with Ultramarine and Fedora. diff --git a/anda/system/nvidia-580/compat-nvidia-repo/anda.hcl b/anda/system/nvidia-580/compat-nvidia-repo/anda.hcl new file mode 100644 index 0000000000..8e890788b8 --- /dev/null +++ b/anda/system/nvidia-580/compat-nvidia-repo/anda.hcl @@ -0,0 +1,10 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "compat-nvidia-repo-580.spec" + } + labels { + subrepo = "nvidia" + weekly = 4 + } +} diff --git a/anda/system/nvidia-580/compat-nvidia-repo/compat-nvidia-repo-580.spec b/anda/system/nvidia-580/compat-nvidia-repo/compat-nvidia-repo-580.spec new file mode 100644 index 0000000000..99446138bc --- /dev/null +++ b/anda/system/nvidia-580/compat-nvidia-repo/compat-nvidia-repo-580.spec @@ -0,0 +1,34 @@ +Name: compat-nvidia-repo-580xx +Version: 580.159.03 +Epoch: 3 +Release: 1%{?dist} +Summary: Compatibility package required by official CUDA packages +License: NVIDIA License +URL: https://developer.nvidia.com/cuda-toolkit +Requires: nvidia-driver-580xx >= %{?epoch:%{epoch}:}%{version} +Requires: nvidia-driver-580xx-cuda >= %{?epoch:%{epoch}:}%{version} +Requires: nvidia-driver-580xx-cuda-libs >= %{?epoch:%{epoch}:}%{version} +Requires: nvidia-driver-580xx-libs >= %{?epoch:%{epoch}:}%{version} +Requires: nvidia-580xx-kmod >= %{?epoch:%{epoch}:}%{version} +Requires: nvidia-settings-580xx >= %{?epoch:%{epoch}:}%{version} +Provides: cuda-drivers-580xx >= %{?epoch:%{epoch}:}%{version} +Provides: nvidia-open-580xx >= %{?epoch:%{epoch}:}%{version} +# Add any versioned provides: +Provides: cuda-drivers-560 >= %{?epoch:%{epoch}:}%{version} +Provides: cuda-drivers-565 >= %{?epoch:%{epoch}:}%{version} +Provides: nvidia-open-560 >= %{?epoch:%{epoch}:}%{version} +Provides: nvidia-open-565 >= %{?epoch:%{epoch}:}%{version} +Provides: compat-nvidia-repo-580 = %{evr} +BuildArch: noarch +Packager: Terra Packaging Team + +%description +Nvidia drivers metapackage required by official CUDA packages. It pulls in all +Nvidia driver components. + +%files +# Without an empty files section the package is not created. + +%changelog +* Mon Apr 13 2026 Gilver E. - 3:580.142-3 +- Update spec for Terra packaging team diff --git a/anda/system/nvidia-580/compat-nvidia-repo/update.rhai b/anda/system/nvidia-580/compat-nvidia-repo/update.rhai new file mode 100644 index 0000000000..d1ef2924fb --- /dev/null +++ b/anda/system/nvidia-580/compat-nvidia-repo/update.rhai @@ -0,0 +1,3 @@ +import "andax/nvidia.rhai" as nvidia; + +rpm.version(nvidia::nvidia_legacy_version()); diff --git a/anda/system/nvidia-580/dkms-nvidia/0001-Enable-atomic-kernel-modesetting-by-default.patch b/anda/system/nvidia-580/dkms-nvidia/0001-Enable-atomic-kernel-modesetting-by-default.patch new file mode 100644 index 0000000000..b17015cd83 --- /dev/null +++ b/anda/system/nvidia-580/dkms-nvidia/0001-Enable-atomic-kernel-modesetting-by-default.patch @@ -0,0 +1,42 @@ +From 60d1ddc17835226ec67ed1bc1c28524e3bb6e151 Mon Sep 17 00:00:00 2001 +From: Peter Jung +Date: Sun, 20 Apr 2025 18:13:22 +0200 +Subject: [PATCH 1/8] Enable atomic kernel modesetting by default + +This is required for proper functionality under Wayland. fbdev has been default enabled since 570 so that +hunk can be removed from this patch. + +Signed-off-by: Peter Jung +--- + nvidia-drm/nvidia-drm-linux.c | 2 +- + nvidia-drm/nvidia-drm-os-interface.c | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git an/nvidia-drm/nvidia-drm-linux.c b/nvidia-drm/nvidia-drm-linux.c +index 3cb1815d..209cb469 100644 +--- a/nvidia-drm/nvidia-drm-linux.c ++++ b/nvidia-drm/nvidia-drm-linux.c +@@ -31,7 +31,7 @@ + + MODULE_PARM_DESC( + modeset, +- "Enable atomic kernel modesetting (1 = enable, 0 = disable (default))"); ++ "Enable atomic kernel modesetting (1 = enable (default), 0 = disable)"); + module_param_named(modeset, nv_drm_modeset_module_param, bool, 0400); + + #if defined(NV_DRM_FBDEV_AVAILABLE) +diff --git a/nvidia-drm/nvidia-drm-os-interface.c b/nvidia-drm/nvidia-drm-os-interface.c +index 7617476d..f22afd77 100644 +--- a/nvidia-drm/nvidia-drm-os-interface.c ++++ b/nvidia-drm/nvidia-drm-os-interface.c +@@ -41,7 +41,7 @@ + #include + #endif + +-bool nv_drm_modeset_module_param = false; ++bool nv_drm_modeset_module_param = true; + bool nv_drm_fbdev_module_param = true; + + void *nv_drm_calloc(size_t nmemb, size_t size) +-- +2.49.0.391.g4bbb303af6 diff --git a/anda/system/nvidia/dkms-nvidia/open/anda.hcl b/anda/system/nvidia-580/dkms-nvidia/anda.hcl similarity index 50% rename from anda/system/nvidia/dkms-nvidia/open/anda.hcl rename to anda/system/nvidia-580/dkms-nvidia/anda.hcl index e16da0c6e8..2f72acbae0 100644 --- a/anda/system/nvidia/dkms-nvidia/open/anda.hcl +++ b/anda/system/nvidia-580/dkms-nvidia/anda.hcl @@ -1,9 +1,10 @@ project pkg { rpm { - spec = "dkms-nvidia-open.spec" + spec = "dkms-nvidia-580.spec" } labels { subrepo = "nvidia" - weekly = 1 + updbranch = 1 + mock = 1 } } diff --git a/anda/system/nvidia/dkms-nvidia/closed/dkms-nvidia.spec b/anda/system/nvidia-580/dkms-nvidia/dkms-nvidia-580.spec similarity index 77% rename from anda/system/nvidia/dkms-nvidia/closed/dkms-nvidia.spec rename to anda/system/nvidia-580/dkms-nvidia/dkms-nvidia-580.spec index 1cbc498c29..76cf68b281 100644 --- a/anda/system/nvidia/dkms-nvidia/closed/dkms-nvidia.spec +++ b/anda/system/nvidia-580/dkms-nvidia/dkms-nvidia-580.spec @@ -3,24 +3,29 @@ # RPM inexplicably thinks this package deps on a version of libcrypto it does not? %global __requires_exclude (libcrypto\\.so\\.1\\.1.*)$ %global debug_package %{nil} -%global modulename nvidia +%global modulename nvidia-580xx Name: dkms-%{modulename} -Version: 580.95.05 -Release: 1%?dist +Version: 580.159.03 +Release: 1%{?dist} Summary: NVIDIA display driver kernel module Epoch: 3 License: NVIDIA License URL: https://www.nvidia.com/object/unix.html Source0: https://download.nvidia.com/XFree86/Linux-%{_arch}/%{version}/NVIDIA-Linux-%{_arch}-%{version}.run -Source1: %{name}.conf +Source1: dkms-nvidia.conf +Patch0: 0001-Enable-atomic-kernel-modesetting-by-default.patch BuildRequires: sed -Provides: %{modulename}-kmod = %{?epoch:%{epoch}:}%{version} Requires: %{modulename}-kmod-common = %{?epoch:%{epoch}:}%{version} Requires: dkms -Conflicts: akmod-nvidia +Provides: %{modulename}-kmod = %{?epoch:%{epoch}:}%{version} +Provides: nvidia-580-kmod = %{?epoch:%{epoch}:}%{version} +Provides: dkms-nvidia-580 = %{evr} +Conflicts: akmod-nvidia-580xx +Conflicts: nvidia-kmod # Unlike most DKMS packages, this package is NOT noarch! ExclusiveArch: x86_64 aarch64 +Packager: Terra Packaging Team %description This package provides the proprietary NVIDIA kernel driver modules. @@ -28,7 +33,10 @@ This package provides the proprietary NVIDIA kernel driver modules. %prep sh %{SOURCE0} -x --target dkms-nvidia-%{version}-%{_arch} %setup -T -D -n dkms-nvidia-%{version}-%{_arch} + +pushd kernel-open %autopatch -p1 +popd cp -f %{SOURCE1} dkms.conf @@ -59,4 +67,5 @@ fi %{_usrsrc}/%{modulename}-%{version} %changelog -%autochangelog +* Mon Apr 13 2026 Gilver E. - 3:580.142-1 +- Update spec for Terra packaging team diff --git a/anda/system/nvidia/dkms-nvidia/closed/dkms-nvidia.conf b/anda/system/nvidia-580/dkms-nvidia/dkms-nvidia.conf similarity index 60% rename from anda/system/nvidia/dkms-nvidia/closed/dkms-nvidia.conf rename to anda/system/nvidia-580/dkms-nvidia/dkms-nvidia.conf index 1b1ecb2efb..a6b18a83fb 100644 --- a/anda/system/nvidia/dkms-nvidia/closed/dkms-nvidia.conf +++ b/anda/system/nvidia-580/dkms-nvidia/dkms-nvidia.conf @@ -2,27 +2,20 @@ PACKAGE_NAME="nvidia" PACKAGE_VERSION="__VERSION_STRING" AUTOINSTALL="yes" -MODULE_VARIANT=kernel - # Quote make to avoid DKMS replacing it with "make -j$parallel_jobs KERNELRELEASE=$kernelver" -MAKE[0]="'make' -j$(nproc) -C ${MODULE_VARIANT} KERNEL_UNAME=${kernelver} modules" +MAKE[0]="'make' -j$(nproc) KERNEL_UNAME=${kernelver} modules" BUILT_MODULE_NAME[0]="nvidia" -BUILT_MODULE_LOCATION[0]="${MODULE_VARIANT}" DEST_MODULE_LOCATION[0]="/extra" BUILT_MODULE_NAME[1]="nvidia-modeset" -BUILT_MODULE_LOCATION[1]="${MODULE_VARIANT}" DEST_MODULE_LOCATION[1]="/extra" BUILT_MODULE_NAME[2]="nvidia-drm" -BUILT_MODULE_LOCATION[2]="${MODULE_VARIANT}" DEST_MODULE_LOCATION[2]="/extra" BUILT_MODULE_NAME[3]="nvidia-uvm" -BUILT_MODULE_LOCATION[3]="${MODULE_VARIANT}" DEST_MODULE_LOCATION[3]="/extra" BUILT_MODULE_NAME[4]="nvidia-peermem" -BUILT_MODULE_LOCATION[4]="${MODULE_VARIANT}" DEST_MODULE_LOCATION[4]="/extra" diff --git a/anda/system/nvidia-580/dkms-nvidia/modules.conf b/anda/system/nvidia-580/dkms-nvidia/modules.conf new file mode 100644 index 0000000000..24f6f95c96 --- /dev/null +++ b/anda/system/nvidia-580/dkms-nvidia/modules.conf @@ -0,0 +1 @@ +NO_WEAK_MODULES="yes" diff --git a/anda/system/nvidia-580/dkms-nvidia/update.rhai b/anda/system/nvidia-580/dkms-nvidia/update.rhai new file mode 100644 index 0000000000..329db7e5d1 --- /dev/null +++ b/anda/system/nvidia-580/dkms-nvidia/update.rhai @@ -0,0 +1,3 @@ +import "andax/bump_extras.rhai" as bump; + +rpm.version(bump::madoguchi("nvidia-580xx-kmod-common", labels.branch)); diff --git a/anda/system/nvidia-580/nvidia-driver/.gitignore b/anda/system/nvidia-580/nvidia-driver/.gitignore new file mode 100644 index 0000000000..cfb0b7a5cd --- /dev/null +++ b/anda/system/nvidia-580/nvidia-driver/.gitignore @@ -0,0 +1,4 @@ +nvidia*/ +NVIDIA*/ +*.tar.* +*.run \ No newline at end of file diff --git a/anda/system/nvidia-580/nvidia-driver/10-nvidia.conf b/anda/system/nvidia-580/nvidia-driver/10-nvidia.conf new file mode 100644 index 0000000000..b9db1a9928 --- /dev/null +++ b/anda/system/nvidia-580/nvidia-driver/10-nvidia.conf @@ -0,0 +1,8 @@ +Section "OutputClass" + Identifier "nvidia" + MatchDriver "nvidia-drm" + Driver "nvidia" + Option "AllowEmptyInitialConfiguration" + Option "SLI" "Auto" + Option "BaseMosaic" "on" +EndSection diff --git a/anda/system/nvidia-580/nvidia-driver/70-nvidia-driver-cuda.preset b/anda/system/nvidia-580/nvidia-driver/70-nvidia-driver-cuda.preset new file mode 100644 index 0000000000..ef728bd1e8 --- /dev/null +++ b/anda/system/nvidia-580/nvidia-driver/70-nvidia-driver-cuda.preset @@ -0,0 +1,4 @@ +# Enable persistence state. From: +# file:///usr/share/doc/nvidia-driver/html/nvidia-persistenced.html + +enable nvidia-persistenced.service diff --git a/anda/system/nvidia-580/nvidia-driver/70-nvidia-driver.preset b/anda/system/nvidia-580/nvidia-driver/70-nvidia-driver.preset new file mode 100644 index 0000000000..f897d23a61 --- /dev/null +++ b/anda/system/nvidia-580/nvidia-driver/70-nvidia-driver.preset @@ -0,0 +1,12 @@ +# Enable complete power management. From: +# file:///usr/share/doc/nvidia-driver/html/powermanagement.html + +enable nvidia-hibernate.service +enable nvidia-resume.service +enable nvidia-suspend.service +enable nvidia-suspend-then-hibernate.service + +# Enable Dynamic Boost. From: +# file:///usr/share/doc/nvidia-driver/html/dynamicboost.html + +enable nvidia-powerd.service diff --git a/anda/system/nvidia-580/nvidia-driver/alternate-install-present b/anda/system/nvidia-580/nvidia-driver/alternate-install-present new file mode 100644 index 0000000000..4f8206e1ef --- /dev/null +++ b/anda/system/nvidia-580/nvidia-driver/alternate-install-present @@ -0,0 +1,7 @@ +The NVIDIA proprietary driver is already installed in this system. It was +installed through a 3d party repository. + +Please refer to the following page for additional information and to install +optional driver components: + + https://negativo17.org/nvidia-driver/ diff --git a/anda/system/nvidia-580/nvidia-driver/anda.hcl b/anda/system/nvidia-580/nvidia-driver/anda.hcl new file mode 100644 index 0000000000..d8c4c2465f --- /dev/null +++ b/anda/system/nvidia-580/nvidia-driver/anda.hcl @@ -0,0 +1,14 @@ +project "pkg" { + rpm { + spec = "nvidia-driver-580.spec" + # We run the negativo17 generator script here because I genuinely tried fixing the spec file with our fancy patch and it didn't work + # TODO: Port it inside the specfile scripts + # pre_script = "nvidia-generate-tarballs.sh" + } + arches = ["x86_64", "aarch64", "i386"] + labels = { + subrepo = "nvidia" + mock = 1 + weekly = 4 + } +} diff --git a/anda/system/nvidia-580/nvidia-driver/com.nvidia.driver.metainfo.xml b/anda/system/nvidia-580/nvidia-driver/com.nvidia.driver.metainfo.xml new file mode 100644 index 0000000000..ccc42a3963 --- /dev/null +++ b/anda/system/nvidia-580/nvidia-driver/com.nvidia.driver.metainfo.xml @@ -0,0 +1,47 @@ + + + com.nvidia.driver + + nvidia-settings.desktop + + NVIDIA Graphics Driver + /usr/share/pixmaps/com.nvidia.driver.png + NVIDIA Accelerated Graphics Driver + + NVIDIA Corporation + + +

The NVIDIA Accelerated Linux Graphics Driver brings accelerated 2D functionality and high-performance OpenGL support to Linux with the use of NVIDIA graphics processing units.

+

These drivers provide optimized hardware acceleration for OpenGL and X applications and support nearly all recent NVIDIA GPU products. The NVIDIA graphics driver uses a Unified Driver Architecture: the single graphics driver supports all modern NVIDIA GPUs.

+
+ + CUDA + GeForce + NVIDIA + OpenGL + Quadro + Tesla + Video + Vulkan + av1 + avc + driver + h264 + h265 + hevc + jpeg + mpeg2 + vaapi + vc-1 + vp8 + vp9 + + CC0-1.0 + LicenseRef-proprietary:NVIDIA + https://www.nvidia.com/ + https://github.com/terrapkg/packages/issues + https://github.com/terrapkg/packages + + True + +
diff --git a/anda/system/nvidia-580/nvidia-driver/com.nvidia.driver.png b/anda/system/nvidia-580/nvidia-driver/com.nvidia.driver.png new file mode 100644 index 0000000000..ff023b8b1b Binary files /dev/null and b/anda/system/nvidia-580/nvidia-driver/com.nvidia.driver.png differ diff --git a/anda/system/nvidia-580/nvidia-driver/nvidia-driver-580.spec b/anda/system/nvidia-580/nvidia-driver/nvidia-driver-580.spec new file mode 100644 index 0000000000..7b18035672 --- /dev/null +++ b/anda/system/nvidia-580/nvidia-driver/nvidia-driver-580.spec @@ -0,0 +1,548 @@ +%global debug_package %{nil} +%global __strip %{nil} +%global __brp_strip_comment_note %{nil} +%global __brp_ldconfig %{nil} +%define _build_id_links none +%global real_name nvidia-driver + +# systemd 248+ +%if 0%{?rhel} == 8 +%global _systemd_util_dir %{_prefix}/lib/systemd +%endif + +Name: %{real_name}-580xx +Version: 580.159.03 +Release: 1%{?dist} +Summary: NVIDIA's proprietary display driver for NVIDIA graphic cards +Epoch: 3 +License: NVIDIA License +URL: http://www.nvidia.com/object/unix.html +%dnl Source0: %{name}-%{version}-i386.tar.xz +%dnl Source1: %{name}-%{version}-x86_64.tar.xz +%dnl Source2: %{name}-%{version}-aarch64.tar.xz +Source8: 70-%{real_name}.preset +Source9: 70-%{real_name}-cuda.preset +Source10: 10-nvidia.conf +Source13: alternate-install-present +Source40: com.nvidia.driver.metainfo.xml +Source41: parse-supported-gpus.py +Source42: com.nvidia.driver.png +Source99: nvidia-generate-tarballs.sh +ExclusiveArch: %{ix86} x86_64 aarch64 +Packager: Terra Packaging Team + +%ifarch x86_64 aarch64 +BuildRequires: libappstream-glib +%if 0%{?rhel} == 8 +# xml.etree.ElementTree has indent only from 3.9+: +BuildRequires: python(abi) >= 3.9 +%else +BuildRequires: python3 +%endif +BuildRequires: systemd-rpm-macros +%endif + +BuildRequires: wget +BuildRequires: coreutils + +Requires: %{real_name}-libs%{?_isa} = %{?epoch:%{epoch}:}%{version} +Requires: nvidia-kmod-common = %{?epoch:%{epoch}:}%{version} + +Conflicts: nvidia-x11-drv +Conflicts: nvidia-x11-drv-470xx +Conflicts: xorg-x11-drv-nvidia +Conflicts: xorg-x11-drv-nvidia-470xx + +Provides: %{real_name}-580 = %{evr} + +%description +This package provides the most recent NVIDIA display driver which allows for +hardware accelerated rendering with recent NVIDIA chipsets. + +For the full product support list, please consult the release notes for driver +version %{version}. + +%package libs +Summary: Libraries for %{name} +Requires: egl-gbm%{?_isa} >= 2:1.1.2.1 +Requires: (egl-wayland%{?_isa} >= 1.1.20 or egl-wayland2%{?_isa} >= 1.0.0~20250806gitd4deb7c-3) +Suggests: egl-wayland%{?_isa} >= 1.1.20 +Requires: egl-x11%{?_isa} >= 1.0.3 +Requires: libvdpau%{?_isa} >= 1.5 +Requires: libglvnd%{?_isa} >= 1.0 +Requires: libglvnd-egl%{?_isa} >= 1.0 +Requires: libglvnd-gles%{?_isa} >= 1.0 +Requires: libglvnd-glx%{?_isa} >= 1.0 +Requires: libglvnd-opengl%{?_isa} >= 1.0 +Requires: libnvidia-ml-580xx%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +Requires: vulkan-loader +%if 0%{?fedora} +%ifarch x86_64 +Requires: (%{name}-libs(x86-32) = %{?epoch:%{epoch}:}%{version}-%{release} if steam(x86-32)) +%endif +%endif +# dlopened +Requires: libnvidia-gpucomp-580xx%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +Requires: libnvidia-ml-580xx%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +Requires: %{name}-cuda-libs%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} + +Conflicts: nvidia-x11-drv-libs +Conflicts: nvidia-x11-drv-470xx-libs +Conflicts: xorg-x11-drv-nvidia-libs +Conflicts: xorg-x11-drv-nvidia-470xx-libs + +Provides: %{real_name}-580-libs = %{evr} + +%description libs +This package provides the shared libraries for %{name}. + +%package cuda-libs +Summary: Libraries for %{name}-cuda +Provides: %{name}-devel = %{?epoch:%{epoch}:}%{version}-%{release} +Obsoletes: %{name}-devel < %{?epoch:%{epoch}:}%{version}-%{release} +Provides: %{real_name}-580-cuda-libs = %{evr} +Requires: libnvidia-ml-580xx = %{?epoch:%{epoch}:}%{version}-%{release} +Requires: %{name}-cuda-libs%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} + +%ifarch x86_64 aarch64 +Requires: libnvidia-cfg-580xx = %{?epoch:%{epoch}:}%{version}-%{release} +%endif +%if 0%{?fedora} +%ifarch x86_64 +Requires: (%{name}-cuda-libs-580xx(x86-32) = %{?epoch:%{epoch}:}%{version}-%{release} if steam(x86-32)) +%endif +%endif +# dlopened: +Requires: libnvidia-gpucomp-580xx%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +Requires: libnvidia-ml-580xx = %{?epoch:%{epoch}:}%{version}-%{release} + +Conflicts: xorg-x11-drv-nvidia-cuda-libs +Conflicts: xorg-x11-drv-nvidia-470xx-cuda-libs + +%description cuda-libs +This package provides the CUDA libraries for %{name}-cuda. + +%package -n libnvidia-fbc-580xx +Summary: NVIDIA OpenGL-based Framebuffer Capture libraries +Provides: %{real_name}-NvFBCOpenGL-580xx = %{?epoch:%{epoch}:}%{version}-%{release} +Obsoletes: %{real_name}-NvFBCOpenGL < %{?epoch:%{epoch}:}%{version}-%{release} +Provides: libnvidia-fbc-580 = %{evr} +%if 0%{?fedora} +%ifarch x86_64 +Requires: (libnvidia-fbc-580xx(x86-32) = %{?epoch:%{epoch}:}%{version}-%{release} if steam(x86-32)) +%endif +%endif +# dlopened: +Requires: %{name}-cuda-libs-580xx%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} + +%description -n libnvidia-fbc-580xx +This library provides a high performance, low latency interface to capture and +optionally encode the composited framebuffer of an X screen. NvFBC are private +APIs that are only available to NVIDIA approved partners for use in remote +graphics scenarios. + +%package -n libnvidia-gpucomp-580xx +Summary: NVIDIA library for shader compilation (nvgpucomp) +%if 0%{?fedora} +%ifarch x86_64 +Requires: (libnvidia-gpucomp-580xx(x86-32) = %{?epoch:%{epoch}:}%{version}-%{release} if steam(x86-32)) +%endif +%endif +Provides: libnvidia-gpucomp-580 = %{evr} + +%description -n libnvidia-gpucomp-580xx +This package contains the private libnvidia-gpucomp runtime library which is used by +other driver components. + +%package -n libnvidia-ml-580xx +Summary: NVIDIA Management Library (NVML) +Provides: cuda-nvml-580xx%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +Provides: %{real_name}-NVML-580xx = %{?epoch:%{epoch}:}%{version}-%{release} +Provides: libnvidia-ml-580 = %{evr} +%if 0%{?fedora} +%ifarch x86_64 +Requires: (libnvidia-ml-580xx(x86-32) = %{?epoch:%{epoch}:}%{version}-%{release} if steam(x86-32)) +%endif +%endif +Obsoletes: %{real_name}-NVML < %{?epoch:%{epoch}:}%{version}-%{release} + +%description -n libnvidia-ml-580xx +A C-based API for monitoring and managing various states of the NVIDIA GPU +devices. It provides a direct access to the queries and commands exposed via +nvidia-smi. The run-time version of NVML ships with the NVIDIA display driver, +and the SDK provides the appropriate header, stub libraries and sample +applications. Each new version of NVML is backwards compatible and is intended +to be a platform for building 3rd party applications. + +%ifarch x86_64 aarch64 + +%package -n libnvidia-cfg-580xx +Summary: NVIDIA Config public interface (nvcfg) +Provides: libnvidia-cfg-580 = %{evr} + +%description -n libnvidia-cfg-580xx +This package contains the private libnvidia-cfg runtime library which is used by +other driver components. + +%package cuda +Summary: CUDA integration for %{name} +Requires: %{name}-cuda-libs-580xx%{?_isa} = %{?epoch:%{epoch}:}%{version} +Requires: nvidia-580xx-kmod-common = %{?epoch:%{epoch}:}%{version} +Requires: nvidia-persistenced-580xx = %{?epoch:%{epoch}:}%{version} +Requires: opencl-filesystem +Requires: ocl-icd + +Conflicts: xorg-x11-drv-nvidia-cuda +Conflicts: xorg-x11-drv-nvidia-470xx-cuda + +Provides: %{real_name}-580-cuda = %{evr} + +%description cuda +This package provides the CUDA integration components for %{name}. + +%if 0%{?fedora} || 0%{?rhel} < 10 +%package -n xorg-x11-nvidia-580xx +Summary: X.org X11 NVIDIA driver and extensions +Requires: %{name}%{?_isa} = %{?epoch:%{epoch}:}%{version} +Requires: xorg-x11-server-Xorg%{?_isa} +Conflicts: xorg-x11-drv-nvidia +Conflicts: xorg-x11-drv-nvidia-470xx +Provides: xorg-x11-nvidia-580 = %{evr} +Supplements: (%{real_name}-580xx and xorg-x11-server-Xorg) + +%description -n xorg-x11-nvidia-580xx +The NVIDIA X.org X11 driver and associated components. +%endif + +%endif + +%prep +source %{SOURCE99} +export VERSION=%{version} +%ifarch %ix86 +export ARCH=x86_64 +%else +export ARCH=%{_arch} +%endif + +unpack() { + set_vars + run_file_get + run_file_extract + cleanup_folder + create_tarball +} + +unpack +%setup -D -T -n %{real_name}-%{version}-%{_arch} + +%ifarch x86_64 +%if 0%{?rhel} == 8 +rm -f libnvidia-pkcs11-openssl3.so.%{version} +%else +rm -f libnvidia-pkcs11.so.%{version} +%endif +%endif + +# Create symlinks for shared objects +ldconfig -vn . + +# Required for building gstreamer 1.0 NVENC plugins +ln -sf libnvidia-encode.so.%{version} libnvidia-encode.so + +# Required for building ffmpeg 3.1 Nvidia CUVID +ln -sf libnvcuvid.so.%{version} libnvcuvid.so + +# Required for building against CUDA +ln -sf libcuda.so.%{version} libcuda.so + +%build + +%install +# EGL loader +install -p -m 0644 -D 10_nvidia.json %{buildroot}%{_datadir}/glvnd/egl_vendor.d/10_nvidia.json + +# Vulkan loader +install -p -m 0644 -D nvidia_icd.json %{buildroot}%{_datadir}/vulkan/icd.d/nvidia_icd.%{_target_cpu}.json +sed -i -e 's|libGLX_nvidia|%{_libdir}/libGLX_nvidia|g' %{buildroot}%{_datadir}/vulkan/icd.d/nvidia_icd.%{_target_cpu}.json + +%ifarch x86_64 +# Vulkan SC loader and compiler +install -p -m 0644 -D nvidia_icd_vksc.json %{buildroot}%{_datadir}/vulkansc/icd.d/nvidia_icd.%{_target_cpu}.json +sed -i -e 's|libnvidia-vksc-core|%{_libdir}/libnvidia-vksc-core|g' %{buildroot}%{_datadir}/vulkansc/icd.d/nvidia_icd.%{_target_cpu}.json +install -p -m 0755 -D nvidia-pcc %{buildroot}%{_bindir}/nvidia-pcc +%endif + +# Unique libraries +mkdir -p %{buildroot}%{_libdir}/vdpau/ +cp -a lib*GL*_nvidia.so* libcuda*.so* libnv*.so* %{buildroot}%{_libdir}/ +cp -a libvdpau_nvidia.so* %{buildroot}%{_libdir}/vdpau/ + +%if 0%{?fedora} || 0%{?rhel} >= 9 +# GBM loader +mkdir -p %{buildroot}%{_libdir}/gbm/ +ln -sf ../libnvidia-allocator.so.%{version} %{buildroot}%{_libdir}/gbm/nvidia-drm_gbm.so +%endif + +%ifarch x86_64 + +# NGX Proton/Wine library +mkdir -p %{buildroot}%{_libdir}/nvidia/wine/ +cp -a *.dll %{buildroot}%{_libdir}/nvidia/wine/ + +%endif + +%ifarch x86_64 aarch64 + +# alternate-install-present file triggers runfile warning +install -m 0755 -d %{buildroot}/usr/lib/nvidia/ +install -p -m 0644 %{SOURCE13} %{buildroot}/usr/lib/nvidia/ + +# Empty? +mkdir -p %{buildroot}%{_sysconfdir}/nvidia/ + +# OpenCL config +install -p -m 0755 -D nvidia.icd %{buildroot}%{_sysconfdir}/OpenCL/vendors/nvidia.icd + +# Binaries +mkdir -p %{buildroot}%{_bindir} +install -p -m 0755 nvidia-{debugdump,smi,cuda-mps-control,cuda-mps-server,bug-report.sh,ngx-updater,powerd} %{buildroot}%{_bindir} + +# Man pages +mkdir -p %{buildroot}%{_mandir}/man1/ +install -p -m 0644 nvidia-{smi,cuda-mps-control}*.gz %{buildroot}%{_mandir}/man1/ + +%if 0%{?fedora} || 0%{?rhel} < 10 +# X stuff +install -p -m 0644 -D %{SOURCE10} %{buildroot}%{_sysconfdir}/X11/xorg.conf.d/10-nvidia.conf +install -p -m 0755 -D nvidia_drv.so %{buildroot}%{_libdir}/xorg/modules/drivers/nvidia_drv.so +install -p -m 0755 -D libglxserver_nvidia.so.%{version} %{buildroot}%{_libdir}/xorg/modules/extensions/libglxserver_nvidia.so +%endif + +# NVIDIA specific configuration files +mkdir -p %{buildroot}%{_datadir}/nvidia/ +install -p -m 0644 nvidia-application-profiles-%{version}-key-documentation \ + %{buildroot}%{_datadir}/nvidia/ +install -p -m 0644 nvidia-application-profiles-%{version}-rc \ + %{buildroot}%{_datadir}/nvidia/ + +# OptiX +install -p -m 0644 nvoptix.bin %{buildroot}%{_datadir}/nvidia/ + +# Systemd units and script for suspending/resuming +mkdir -p %{buildroot}%{_systemd_util_dir}/system-preset/ +install -p -m 0644 %{SOURCE8} %{SOURCE9} %{buildroot}%{_systemd_util_dir}/system-preset/ +mkdir -p %{buildroot}%{_unitdir}/ +install -p -m 0644 systemd/system/*.service %{buildroot}%{_unitdir}/ +install -p -m 0755 systemd/nvidia-sleep.sh %{buildroot}%{_bindir}/ +install -p -m 0755 -D systemd/system-sleep/nvidia %{buildroot}%{_systemd_util_dir}/system-sleep/nvidia +install -p -m 0644 -D nvidia-dbus.conf %{buildroot}%{_datadir}/dbus-1/system.d/nvidia-dbus.conf + +# Ignore powerd binary exiting if hardware is not present +# We should check for information in the DMI table +sed -i -e 's/ExecStart=/ExecStart=-/g' %{buildroot}%{_unitdir}/nvidia-powerd.service + +# Vulkan layer +install -p -m 0644 -D nvidia_layers.json %{buildroot}%{_datadir}/vulkan/implicit_layer.d/nvidia_layers.json + +# Install AppData and add modalias provides, do not use appstream-util add-provide as it mangles the xml +install -p -m 0644 -D %{SOURCE40} %{buildroot}%{_metainfodir}/com.nvidia.driver.metainfo.xml +%{SOURCE41} supported-gpus/supported-gpus.json %{buildroot}%{_metainfodir}/com.nvidia.driver.metainfo.xml +mkdir -p %{buildroot}%{_datadir}/pixmaps/ +cp %{SOURCE42} %{buildroot}%{_datadir}/pixmaps/ + +# nvsandboxutils configuration +install -p -m 0644 -D sandboxutils-filelist.json %{buildroot}%{_datadir}/nvidia/files.d/sandboxutils-filelist.json + +# dnf needs-restarting plugin +# dnf4 only for the moment: https://github.com/rpm-software-management/dnf5/issues/1815 +%if 0%{?fedora} < 42 || 0%{?rhel} +mkdir -p %{buildroot}%{_sysconfdir}/dnf/plugins/needs-restarting.d +echo %{real_name} > %{buildroot}%{_sysconfdir}/dnf/plugins/needs-restarting.d/%{real_name}.conf +echo %{real_name}-cuda > %{buildroot}%{_sysconfdir}/dnf/plugins/needs-restarting.d/%{real_name}-cuda.conf +%endif + +%check +# Using appstreamcli: appstreamcli validate --strict +# Icon type local is not supported by appstreamcli for drivers +appstream-util validate --nonet %{buildroot}%{_metainfodir}/com.nvidia.driver.metainfo.xml + +%endif + +%ifarch x86_64 aarch64 + +%post +%systemd_post nvidia-hibernate.service +%systemd_post nvidia-powerd.service +%systemd_post nvidia-resume.service +%systemd_post nvidia-suspend.service +%systemd_post nvidia-suspend-then-hibernate.service + +%preun +%systemd_preun nvidia-hibernate.service +%systemd_preun nvidia-powerd.service +%systemd_preun nvidia-resume.service +%systemd_preun nvidia-suspend.service +%systemd_preun nvidia-suspend-then-hibernate.service + +%postun +%systemd_postun nvidia-hibernate.service +%systemd_postun nvidia-powerd.service +%systemd_postun nvidia-resume.service +%systemd_postun nvidia-suspend.service +%systemd_postun nvidia-suspend-then-hibernate.service + +%endif + +%ifarch x86_64 aarch64 + +%files +%license LICENSE +%doc NVIDIA_Changelog README.txt html supported-gpus/supported-gpus.json +%dir %{_sysconfdir}/nvidia +%{_bindir}/nvidia-bug-report.sh +%{_bindir}/nvidia-ngx-updater +%ifarch x86_64 +%{_bindir}/nvidia-pcc +%endif +%{_bindir}/nvidia-powerd +%{_bindir}/nvidia-sleep.sh +%{_metainfodir}/com.nvidia.driver.metainfo.xml +%{_datadir}/dbus-1/system.d/nvidia-dbus.conf +%{_datadir}/nvidia/nvidia-application-profiles* +%{_datadir}/pixmaps/com.nvidia.driver.png +%{_systemd_util_dir}/system-preset/70-%{real_name}.preset +%{_systemd_util_dir}/system-sleep/nvidia +%{_unitdir}/nvidia-hibernate.service +%{_unitdir}/nvidia-powerd.service +%{_unitdir}/nvidia-resume.service +%{_unitdir}/nvidia-suspend.service +%{_unitdir}/nvidia-suspend-then-hibernate.service +%if 0%{?fedora} < 42 || 0%{?rhel} +%{_sysconfdir}/dnf/plugins/needs-restarting.d/%{real_name}.conf +%endif + +%if 0%{?fedora} || 0%{?rhel} < 10 +%files -n xorg-x11-nvidia-580xx +%config(noreplace) %{_sysconfdir}/X11/xorg.conf.d/10-nvidia.conf +%{_libdir}/xorg/modules/extensions/libglxserver_nvidia.so +%{_libdir}/xorg/modules/drivers/nvidia_drv.so +%endif + +%files -n libnvidia-cfg-580xx +%{_libdir}/libnvidia-cfg.so.1 +%{_libdir}/libnvidia-cfg.so.%{version} + +%files cuda +%{_sysconfdir}/OpenCL/vendors/* +%{_bindir}/nvidia-cuda-mps-control +%{_bindir}/nvidia-cuda-mps-server +%{_bindir}/nvidia-debugdump +%{_bindir}/nvidia-smi +%{_datadir}/nvidia/files.d/sandboxutils-filelist.json +%{_mandir}/man1/nvidia-cuda-mps-control.1.* +%{_mandir}/man1/nvidia-smi.* +%{_prefix}/lib/nvidia/alternate-install-present +%{_systemd_util_dir}/system-preset/70-%{real_name}-cuda.preset +%if 0%{?fedora} < 42 || 0%{?rhel} +%{_sysconfdir}/dnf/plugins/needs-restarting.d/%{real_name}-cuda.conf +%endif + +%endif + +%files libs +%{_datadir}/glvnd/egl_vendor.d/10_nvidia.json +%{_datadir}/vulkan/icd.d/nvidia_icd.%{_target_cpu}.json +%if 0%{?fedora} || 0%{?rhel} >= 9 +%dir %{_libdir}/gbm +%{_libdir}/gbm/nvidia-drm_gbm.so +%endif +%{_libdir}/libEGL_nvidia.so.0 +%{_libdir}/libEGL_nvidia.so.%{version} +%{_libdir}/libGLESv1_CM_nvidia.so.1 +%{_libdir}/libGLESv1_CM_nvidia.so.%{version} +%{_libdir}/libGLESv2_nvidia.so.2 +%{_libdir}/libGLESv2_nvidia.so.%{version} +%{_libdir}/libGLX_nvidia.so.0 +%{_libdir}/libGLX_nvidia.so.%{version} +%{_libdir}/libnvidia-allocator.so.1 +%{_libdir}/libnvidia-allocator.so.%{version} +%{_libdir}/libnvidia-eglcore.so.%{version} +%{_libdir}/libnvidia-glcore.so.%{version} +%{_libdir}/libnvidia-glsi.so.%{version} +%{_libdir}/libnvidia-glvkspirv.so.%{version} +%{_libdir}/libnvidia-gpucomp.so.%{version} +%{_libdir}/libnvidia-tls.so.%{version} +%{_libdir}/vdpau/libvdpau_nvidia.so.1 +%{_libdir}/vdpau/libvdpau_nvidia.so.%{version} +%ifarch x86_64 aarch64 +%{_datadir}/nvidia/nvoptix.bin +%{_datadir}/vulkan/implicit_layer.d/nvidia_layers.json +%{_libdir}/libnvidia-api.so.1 +%{_libdir}/libnvidia-ngx.so.1 +%{_libdir}/libnvidia-ngx.so.%{version} +%{_libdir}/libnvidia-rtcore.so.%{version} +%{_libdir}/libnvoptix.so.1 +%{_libdir}/libnvoptix.so.%{version} +%endif +%ifarch x86_64 +%{_datadir}/vulkansc/icd.d/nvidia_icd.%{_target_cpu}.json +%if v"%{version}" > v"570.144" +%{_libdir}/libnvidia-present.so.%{version} +%endif +%{_libdir}/libnvidia-vksc-core.so.1 +%{_libdir}/libnvidia-vksc-core.so.%{version} +%dir %{_libdir}/nvidia +%dir %{_libdir}/nvidia/wine +%{_libdir}/nvidia/wine/*.dll +%endif + +%files cuda-libs +%{_libdir}/libcuda.so +%{_libdir}/libcuda.so.1 +%{_libdir}/libcuda.so.%{version} +%{_libdir}/libnvcuvid.so +%{_libdir}/libnvcuvid.so.1 +%{_libdir}/libnvcuvid.so.%{version} +%{_libdir}/libnvidia-encode.so +%{_libdir}/libnvidia-encode.so.1 +%{_libdir}/libnvidia-encode.so.%{version} +%{_libdir}/libnvidia-nvvm.so.4 +%{_libdir}/libnvidia-nvvm.so.%{version} +%{_libdir}/libnvidia-opencl.so.1 +%{_libdir}/libnvidia-opencl.so.%{version} +%{_libdir}/libnvidia-opticalflow.so.1 +%{_libdir}/libnvidia-opticalflow.so.%{version} +%{_libdir}/libnvidia-ptxjitcompiler.so.1 +%{_libdir}/libnvidia-ptxjitcompiler.so.%{version} +%ifarch x86_64 aarch64 +%{_libdir}/libcudadebugger.so.1 +%{_libdir}/libcudadebugger.so.%{version} +%if v"%{version}" > v"570.144" +%{_libdir}/libnvidia-nvvm70.so.4 +%endif +%{_libdir}/libnvidia-sandboxutils.so.1 +%{_libdir}/libnvidia-sandboxutils.so.%{version} +%endif +%ifarch x86_64 +%if 0%{?rhel} == 8 +%{_libdir}/libnvidia-pkcs11.so.%{version} +%else +%{_libdir}/libnvidia-pkcs11-openssl3.so.%{version} +%endif +%endif + +%files -n libnvidia-fbc-580xx +%{_libdir}/libnvidia-fbc.so.1 +%{_libdir}/libnvidia-fbc.so.%{version} + +%files -n libnvidia-gpucomp-580xx +%{_libdir}/libnvidia-gpucomp.so.%{version} + +%files -n libnvidia-ml-580xx +%{_libdir}/libnvidia-ml.so.1 +%{_libdir}/libnvidia-ml.so.%{version} + +%changelog +* Mon Apr 13 2026 Gilver E. - 3:580.142-2 +- Update spec for Terra packaging team diff --git a/anda/system/nvidia-580/nvidia-driver/nvidia-generate-tarballs.sh b/anda/system/nvidia-580/nvidia-driver/nvidia-generate-tarballs.sh new file mode 100755 index 0000000000..37a41b0bc3 --- /dev/null +++ b/anda/system/nvidia-580/nvidia-driver/nvidia-generate-tarballs.sh @@ -0,0 +1,117 @@ +#!/bin/sh +# Slightly modified from negativo's tarball generator script + +# instead of generating tarballs, we just make this script export +# the functions + +CONTEXT=$(realpath $(dirname $0)) +set -e + +set_vars() { + export VERSION=${VERSION:?"VERSION not set"} + export DL_SITE=${DL_SITE:-http://download.nvidia.com/XFree86} + export TEMP_UNPACK=${ARCH} + export PLATFORM=Linux-${ARCH} + export RUN_FILE=NVIDIA-${PLATFORM}-${VERSION}.run +} + +run_file_get() { + printf "Downloading installer ${RUN_FILE}... " + [[ -f $RUN_FILE ]] || wget -c -q ${DL_SITE}/${PLATFORM}/${VERSION}/$RUN_FILE + printf "OK\n" +} + +run_file_extract() { + rm -fr ${TEMP_UNPACK} + sh ${RUN_FILE} --extract-only --target ${TEMP_UNPACK} +} + +cleanup_folder() { + + printf "Cleaning up binaries... " + + cd ${TEMP_UNPACK} + + # Stuff not needed for packages: + # - Compiled from source + # - Interactive installer files + # - GLVND GL libraries + # - Internal development only libraries + rm -fr \ + nvidia-xconfig* \ + nvidia-persistenced* \ + nvidia-modprobe* \ + libnvidia-gtk* libnvidia-wayland-client* nvidia-settings* \ + libGLESv1_CM.so.* libGLESv2.so.* libGLdispatch.so.* libOpenGL.so.* libGLX.so.* libGL.so.1* libEGL.so.1* \ + libnvidia-egl-wayland.so.* libnvidia-egl-gbm.so.* libnvidia-egl-xcb.so.* libnvidia-egl-xlib.so.* \ + libOpenCL.so.1* \ + libEGL.so.${VERSION} \ + nvidia-installer* .manifest make* mk* tls_test* libglvnd_install_checker + + if [ "${ARCH}" == x86_64 ]; then + rm -fr \ + 32/libGLESv1_CM.so.* 32/libGLESv2.so.* 32/libGLdispatch.so.* 32/libOpenGL.so.* 32/libGLX.so.* 32/libGL.so.1* 32/libEGL.so.1* \ + 32/libOpenCL.so.1* \ + 32/libGL.so.${VERSION} 32/libEGL.so.${VERSION} \ + 32/libnvidia-egl-wayland.so.* 32/libnvidia-egl-gbm.so.* 32/libnvidia-egl-xcb.so.* 32/libnvidia-egl-xlib.so.* + + cp -f *.json* 32/ + fi + + cd .. + + printf "OK\n" +} + +create_tarball() { + + KMOD=nvidia-kmod-${VERSION}-${ARCH} + KMOD_COMMON=nvidia-kmod-common-${VERSION} + USR_64=nvidia-driver-${VERSION}-${ARCH} + + mkdir ${KMOD} ${KMOD_COMMON} ${USR_64} + mv ${TEMP_UNPACK}/kernel* ${KMOD}/ + mv ${TEMP_UNPACK}/firmware ${KMOD_COMMON}/ + + if [ "$ARCH" == x86_64 ]; then + + USR_32=nvidia-driver-${VERSION}-i386 + + mkdir ${USR_32} + mv ${TEMP_UNPACK}/32/* ${USR_32}/ + rm -fr ${TEMP_UNPACK}/32 + + fi + + mv ${TEMP_UNPACK}/* ${USR_64}/ + + rm -fr ${TEMP_UNPACK} + + for tarball in ${KMOD} ${KMOD_COMMON} ${USR_64} ${USR_32}; do + + printf "Creating tarball $tarball... " + + # XZ_OPT='-T0' tar --remove-files -cJf $tarball.tar.xz $tarball + + printf "OK\n" + + done +} + +# pushd $CONTEXT + +# ARCH=aarch64 +# set_vars +# run_file_get +# run_file_extract +# cleanup_folder +# create_tarball + +# ARCH=x86_64 +# set_vars +# run_file_get +# run_file_extract +# cleanup_folder +# create_tarball + +# popd \ No newline at end of file diff --git a/anda/system/nvidia-580/nvidia-driver/parse-supported-gpus.py b/anda/system/nvidia-580/nvidia-driver/parse-supported-gpus.py new file mode 100755 index 0000000000..cb2feef6c3 --- /dev/null +++ b/anda/system/nvidia-580/nvidia-driver/parse-supported-gpus.py @@ -0,0 +1,43 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- +# +# Copyright (C) 2021-2024 Simone Caronni +# Licensed under the GNU General Public License Version or later + +import json +import sys +import xml.etree.ElementTree as ElementTree + +def main(): + if len(sys.argv) != 3: + print("usage: %s supported-gpus.json com.nvidia.driver.metainfo.xml" % sys.argv[0]) + return 1 + + json_input = open(sys.argv[1]) + gpus_raw = json.load(json_input) + legacy = 'legacybranch' + devids = [] + + for product in gpus_raw["chips"]: + + if legacy not in product.keys(): + + devid = int(product["devid"], 16) + if not devid in devids: + devids.append(devid) + + appstream_xml = ElementTree.parse(sys.argv[2]) + root = appstream_xml.getroot() + provides = ElementTree.Element('provides') + root.append(provides) + + for devid in devids: + modalias = ElementTree.SubElement(provides, "modalias") + modalias.text = "pci:v000010DEd%08Xsv*sd*bc*sc*i*" % (devid) + + ElementTree.indent(root, space=" ", level=0) + # appstream-util validate requires the xml header + appstream_xml.write(sys.argv[2], encoding="utf-8", xml_declaration=True) + +if __name__ == "__main__": + main() diff --git a/anda/system/nvidia-580/nvidia-driver/pre.sh b/anda/system/nvidia-580/nvidia-driver/pre.sh new file mode 100755 index 0000000000..24f660da43 --- /dev/null +++ b/anda/system/nvidia-580/nvidia-driver/pre.sh @@ -0,0 +1,9 @@ +#!/bin/bash -x + +# We are going to assume we already have andax installed + +export VERSION=$(anda run andax/nvidia_driver_print.rhai) + +SCRIPT_DIR=$(realpath $(dirname $0)) + +$SCRIPT_DIR/nvidia-generate-tarballs.sh \ No newline at end of file diff --git a/anda/system/nvidia-580/nvidia-driver/update.rhai b/anda/system/nvidia-580/nvidia-driver/update.rhai new file mode 100644 index 0000000000..d1ef2924fb --- /dev/null +++ b/anda/system/nvidia-580/nvidia-driver/update.rhai @@ -0,0 +1,3 @@ +import "andax/nvidia.rhai" as nvidia; + +rpm.version(nvidia::nvidia_legacy_version()); diff --git a/anda/system/nvidia-580/nvidia-kmod-common/10-nvidia-fallback.rules b/anda/system/nvidia-580/nvidia-kmod-common/10-nvidia-fallback.rules new file mode 100644 index 0000000000..5ead9f6780 --- /dev/null +++ b/anda/system/nvidia-580/nvidia-kmod-common/10-nvidia-fallback.rules @@ -0,0 +1,2 @@ +SUBSYSTEM=="pci", ATTRS{vendor}=="0x12d2", ATTRS{class}=="0x030000", TAG+="systemd", ENV{SYSTEMD_WANTS}="nvidia-fallback.service" +SUBSYSTEM=="pci", ATTRS{vendor}=="0x10de", ATTRS{class}=="0x030[02]00", TAG+="systemd", ENV{SYSTEMD_WANTS}="nvidia-fallback.service" diff --git a/anda/system/nvidia-580/nvidia-kmod-common/60-nvidia.rules b/anda/system/nvidia-580/nvidia-kmod-common/60-nvidia.rules new file mode 100644 index 0000000000..40e532f346 --- /dev/null +++ b/anda/system/nvidia-580/nvidia-kmod-common/60-nvidia.rules @@ -0,0 +1,13 @@ +# Device nodes are created by nvidia-modprobe, which is called by the nvidia DDX. +# In case the DDX is not started, the device nodes are never created, so call +# nvidia-modprobe in the udev rules to cover the Wayland/EGLStream and compute +# case without a started display. +ACTION=="add|bind", KERNEL=="nvidia", RUN+="/usr/bin/nvidia-modprobe" + +# Enable runtime PM for NVIDIA VGA/3D controller devices on driver bind +ACTION=="bind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030000", TEST=="power/control", ATTR{power/control}="auto" +ACTION=="bind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030200", TEST=="power/control", ATTR{power/control}="auto" + +# Disable runtime PM for NVIDIA VGA/3D controller devices on driver unbind +ACTION=="unbind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030000", TEST=="power/control", ATTR{power/control}="on" +ACTION=="unbind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030200", TEST=="power/control", ATTR{power/control}="on" diff --git a/anda/system/nvidia-580/nvidia-kmod-common/99-nvidia.conf b/anda/system/nvidia-580/nvidia-kmod-common/99-nvidia.conf new file mode 100644 index 0000000000..ddff6a6500 --- /dev/null +++ b/anda/system/nvidia-580/nvidia-kmod-common/99-nvidia.conf @@ -0,0 +1,3 @@ +# Omit the nvidia driver from the ramdisk, to avoid needing to regenerate +# the ramdisk on updates. +omit_drivers+=" nvidia nvidia_drm nvidia_modeset nvidia_peermem nvidia_uvm " diff --git a/anda/system/nvidia-580/nvidia-kmod-common/anda.hcl b/anda/system/nvidia-580/nvidia-kmod-common/anda.hcl new file mode 100644 index 0000000000..415f0fd9e2 --- /dev/null +++ b/anda/system/nvidia-580/nvidia-kmod-common/anda.hcl @@ -0,0 +1,10 @@ +project "pkg" { + arches = ["x86_64"] + rpm { + spec = "nvidia-580-kmod-common.spec" + } + labels = { + subrepo = "nvidia" + updbranch = 1 + } +} diff --git a/anda/system/nvidia-580/nvidia-kmod-common/nvidia-580-kmod-common.spec b/anda/system/nvidia-580/nvidia-kmod-common/nvidia-580-kmod-common.spec new file mode 100644 index 0000000000..e83d827450 --- /dev/null +++ b/anda/system/nvidia-580/nvidia-kmod-common/nvidia-580-kmod-common.spec @@ -0,0 +1,96 @@ +%global _dracut_conf_d %{_prefix}/lib/dracut/dracut.conf.d + +# gsp_*.bin: ELF 64-bit LSB executable, UCB RISC-V +%global _binaries_in_noarch_packages_terminate_build 0 +%global __brp_strip %{nil} +%global modulename nvidia-580xx + +Name: %{modulename}-kmod-common +Version: 580.159.03 +Release: 1%{?dist} +Summary: Common file for NVIDIA's proprietary driver kernel modules +Epoch: 3 +License: NVIDIA License +URL: http://www.nvidia.com/object/unix.html +Source0: http://download.nvidia.com/XFree86/Linux-x86_64/%{version}/NVIDIA-Linux-x86_64-%{version}.run +Source17: nvidia-boot-update +Source18: nvidia-modeset.conf +Source19: nvidia.conf +Source20: 60-nvidia.rules +Source21: 99-nvidia.conf +# UDev rule location (_udevrulesdir) and systemd macros: +BuildRequires: systemd-rpm-macros +Requires: dracut +Requires: nvidia-modprobe-580xx +Requires: nvidia-driver-580xx = %{?epoch:%{epoch}:}%{version} +Requires: nvidia-driver-580xx-libs = %{?epoch:%{epoch}:}%{version} +Requires: %{modulename}-kmod = %{?epoch:%{epoch}:}%{version} +Provides: %{modulename}-kmod-common = %{?epoch:%{epoch}:}%{version} +Provides: nvidia-580-kmod-common = %{evr} +Obsoletes: cuda-nvidia-kmod-common < %{?epoch:%{epoch}:}%{version} +BuildArch: noarch +Packager: Terra Packaging Team + +%description +This package provides the common files required by all NVIDIA kernel module +package variants. + +%prep +sh %{SOURCE0} -x --target nvidia-kmod-%{version}-x86_64 +%setup -T -D -n nvidia-kmod-%{version}-x86_64 + +%install +# Script for post/preun tasks +install -p -m 0755 -D %{SOURCE17} %{buildroot}%{_bindir}/nvidia-boot-update + +# Nvidia modesetting support: +install -p -m 0644 -D %{SOURCE18} %{buildroot}%{_sysconfdir}/modprobe.d/nvidia-modeset.conf + +# Load nvidia-uvm, enable complete power management: +install -p -m 0644 -D %{SOURCE19} %{buildroot}%{_modprobedir}/nvidia.conf + +# Avoid Nvidia modules getting in the initrd: +install -p -m 0644 -D %{SOURCE21} %{buildroot}%{_dracut_conf_d}/99-nvidia.conf + +# UDev rules +# https://github.com/NVIDIA/nvidia-modprobe/blob/master/modprobe-utils/nvidia-modprobe-utils.h#L33-L46 +# https://github.com/negativo17/nvidia-kmod-common/issues/11 +# https://github.com/negativo17/nvidia-driver/issues/27 +install -p -m 644 -D %{SOURCE20} %{buildroot}%{_udevrulesdir}/60-nvidia.rules + +# Firmware files: +mkdir -p %{buildroot}%{_prefix}/lib/firmware/nvidia/%{version}/ +install -p -m 644 firmware/* %{buildroot}%{_prefix}/lib/firmware/nvidia/%{version} + +# Fallback service. Fall back to Nouveau if NVIDIA drivers fail. +# This is actually from RPM Fusion. +%dnl install -Dm644 %{SOURCE22} -t %{buildroot}%{_unitdir} +%dnl install -Dm644 %{SOURCE23} -t %{buildroot}%{_udevrulesdir} + +%post +%{_bindir}/nvidia-boot-update post || : + +%pre +# Remove the kernel command line adjustments one last time when doing an upgrade +# from a version that was still setting up the command line parameters: +if [ "$1" -eq "2" ] && [ -x %{_bindir}/nvidia-boot-update ]; then + %{_bindir}/nvidia-boot-update preun || : + +fi ||: + +%triggerin -- nvidia-kmod,nvidia-open-kmod +dracut --regenerate-all --force || : + +%files +%{_dracut_conf_d}/99-nvidia.conf +%{_modprobedir}/nvidia.conf +%dir %{_prefix}/lib/firmware +%dir %{_prefix}/lib/firmware/nvidia +%{_prefix}/lib/firmware/nvidia/%{version} +%{_bindir}/nvidia-boot-update +%config(noreplace) %{_sysconfdir}/modprobe.d/nvidia-modeset.conf +%{_udevrulesdir}/60-nvidia.rules + +%changelog +* Mon Apr 13 2026 Gilver E. - 3:580.142-3 +- Update spec for Terra packaging team diff --git a/anda/system/nvidia-580/nvidia-kmod-common/nvidia-boot-update b/anda/system/nvidia-580/nvidia-kmod-common/nvidia-boot-update new file mode 100755 index 0000000000..83c13dd144 --- /dev/null +++ b/anda/system/nvidia-580/nvidia-kmod-common/nvidia-boot-update @@ -0,0 +1,209 @@ +#!/usr/bin/sh + + +# EL8 (grub2 with BootLoaderSpec patches) +# +# kernel options: grub.cfg + grubenv +# kernel options in /boot/loader/entries/*.conf use kernelopts from /boot/grub2/grubenv +# grubby +# - updates kernelopts in /boot/grub2/grubenv +# - does not update /etc/default/grub +# - does not update kernelopts in grub.cfg +# grub.cfg: +# - UEFI: /etc/grub2-efi.cfg -> /boot/efi/EFI//grub.cfg +# - BIOS: /etc/grub2.cfg -> /boot/grub2/grub.cfg + + +# EL9 + EL10 (grub2 with BootLoaderSpec patches) +# +# kernel options: grub.cfg + /etc/kernel/cmdline + /boot/loader/entries/*.conf +# manually update: /etc/default/grub + /etc/kernel/cmdline +# /etc/kernel/cmdline is not really used +# grub2-mkconfig does not update /boot/loader/entries/*.conf +# grub.cfg: +# - UEFI: /etc/grub2-efi.cfg -> /boot/efi/EFI//grub.cfg +# - BIOS: /etc/grub2.cfg -> /boot/grub2/grub.cfg + + +# Fedora (grub2 with BootLoaderSpec patches) +# +# kernel options: grub.cfg + /etc/kernel/cmdline + /boot/loader/entries/*.conf +# manually update: /etc/default/grub +# grub2-mkconfig: +# - updates /boot/loader/entries/*.conf +# - updates /etc/kernel/cmdline +# grub.cfg: +# - UEFI/BIOS: /boot/grub2/grub.cfg + + +# Fedora (systemd-boot) +# +# kernel options: grub.cfg + /boot/efi/loader/entries/*.conf (UEFI only) +# grubby as an updateloaderentries alias: +# - updates all entries in /boot/efi/loader/entries/*.conf +# - does not work with multiple parameters at once +# - does not update /etc/kernel/cmdline + + +# Complete use case coverage, regardless of boot loaders: +# +# - update options in /etc/default/grub +# - regenerate grub.cfg/grubenv +# - update options in /boot/{efi/}loader/entries/*.conf entries +# - update options in /etc/kernel/cmdline +# - cover both UEFI and BIOS case + +CMDLINE_ARGS_NVIDIA="rd.driver.blacklist=nouveau rd.driver.blacklist=nova-core" +CMDLINE_ARGS_ALWAYS_REMOVE="nomodeset gfxpayload=vga=normal nouveau.modeset=0 nvidia-drm.modeset=1 nvidia-drm.fbdev=1 modprobe.blacklist=nouveau initcall_blacklist=simpledrm_platform_driver_init" + +print_usage() { +cat <> /etc/default/grub + else + for param in $CMDLINE_ARGS_NVIDIA; do + echo ${GRUB_CMDLINE_LINUX} | grep -q $param + [ $? -eq 1 ] && GRUB_CMDLINE_LINUX="${GRUB_CMDLINE_LINUX} ${param}" + done + for param in $CMDLINE_ARGS_ALWAYS_REMOVE; do + echo ${GRUB_CMDLINE_LINUX} | grep -q $param + [ $? -eq 0 ] && GRUB_CMDLINE_LINUX="$(echo ${GRUB_CMDLINE_LINUX} | sed -e "s/ $param//g")" + done + sed -i -e "s|^GRUB_CMDLINE_LINUX=.*|GRUB_CMDLINE_LINUX=\"${GRUB_CMDLINE_LINUX}\"|g" /etc/default/grub + fi + + grub2-mkconfig -o $GRUB_CFG &>/dev/null + + fi + + # Edit BootLoaderSpec entries + if [ -v BLS_ENTRIES ]; then + + for config_file in $BLS_ENTRIES/*.conf; do + for param in $CMDLINE_ARGS_NVIDIA; do + grep -q $param $config_file + [ $? -eq 1 ] && sed -i -e "s|^options.*|& $param|" $config_file + done + for param in $CMDLINE_ARGS_ALWAYS_REMOVE; do + grep -q $param $config_file + [ $? -eq 0 ] && sed -i -e "s| $param||" $config_file + done + done + + fi + + # Edit /etc/kernel/cmdline + if [ -f /etc/kernel/cmdline ]; then + for param in $CMDLINE_ARGS_NVIDIA; do + grep -q $param /etc/kernel/cmdline + [ $? -eq 1 ] && sed -i -e "s|^.*|& $param|" /etc/kernel/cmdline + done + for param in $CMDLINE_ARGS_ALWAYS_REMOVE; do + grep -q $param /etc/kernel/cmdline + [ $? -eq 0 ] && sed -i -e "s| $param||" /etc/kernel/cmdline + done + fi +} + +preun() { + + # Edit GRUB configuration file + if [ -v GRUB_CFG ]; then + + for param in $CMDLINE_ARGS_NVIDIA; do + echo ${GRUB_CMDLINE_LINUX} | grep -q $param + [ $? -eq 0 ] && GRUB_CMDLINE_LINUX="$(echo ${GRUB_CMDLINE_LINUX} | sed -e "s/ $param//g")" + done + sed -i -e "s|^GRUB_CMDLINE_LINUX=.*|GRUB_CMDLINE_LINUX=\"${GRUB_CMDLINE_LINUX}\"|g" /etc/default/grub + + grub2-mkconfig -o $GRUB_CFG &>/dev/null + + fi + + # Edit BootLoaderSpec entries + if [ -v BLS_ENTRIES ]; then + + for config_file in $BLS_ENTRIES/*.conf; do + for param in $CMDLINE_ARGS_NVIDIA; do + grep -q $param $config_file + [ $? -eq 0 ] && sed -i -e "s| $param||" $config_file + done + done + + fi + + # Edit /etc/kernel/cmdline + if [ -f /etc/kernel/cmdline ]; then + for param in $CMDLINE_ARGS_NVIDIA; do + grep -q $param /etc/kernel/cmdline + [ $? -eq 0 ] && sed -i -e "s| $param||" /etc/kernel/cmdline + done + fi +} + +case "$1" in + post) + check + post + exit 0 + ;; + preun) + check + preun + exit 0 + ;; + *) + print_usage + exit 0 + ;; +esac diff --git a/anda/system/nvidia-580/nvidia-kmod-common/nvidia-fallback.service b/anda/system/nvidia-580/nvidia-kmod-common/nvidia-fallback.service new file mode 100644 index 0000000000..8e08e806f0 --- /dev/null +++ b/anda/system/nvidia-580/nvidia-kmod-common/nvidia-fallback.service @@ -0,0 +1,17 @@ +[Unit] +Description=Fallback to nouveau as nvidia did not load +After=akmods.service +Before=display-manager.service +ConditionKernelCommandLine=rd.driver.blacklist=nouveau +ConditionPathExists=!/sys/module/nvidia + + +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStart=-/sbin/modprobe nouveau +ExecStartPost=-/bin/plymouth message --text="NVIDIA kernel module missing. Falling back to Nouveau." + + +[Install] +WantedBy=graphical.target diff --git a/anda/system/nvidia-580/nvidia-kmod-common/nvidia-modeset.conf b/anda/system/nvidia-580/nvidia-kmod-common/nvidia-modeset.conf new file mode 100644 index 0000000000..9ac5dcd4b6 --- /dev/null +++ b/anda/system/nvidia-580/nvidia-kmod-common/nvidia-modeset.conf @@ -0,0 +1,4 @@ +# Nvidia modesetting support. Set to 0 or comment to disable kernel modesetting +# support. This must be disabled in case of SLI Mosaic. + +options nvidia-drm modeset=1 diff --git a/anda/system/nvidia-580/nvidia-kmod-common/nvidia.conf b/anda/system/nvidia-580/nvidia-kmod-common/nvidia.conf new file mode 100644 index 0000000000..04dcf5bd0b --- /dev/null +++ b/anda/system/nvidia-580/nvidia-kmod-common/nvidia.conf @@ -0,0 +1,25 @@ +# Nouvea/Nova must be blacklisted here as well beside from the initrd to avoid a +# delayed loading (for example on Optimus laptops where the Nvidia card is not +# driving the main display). + +blacklist nouveau +blacklist nova-core + +# Add soft dependencies for extra modules as adding the module loading to +# /usr/lib/modules-load.d/*.conf for systemd consumption, makes the +# configuration file to be added to the initrd but not the module, throwing an +# error on plymouth about not being able to find the module. +# Ref: /usr/lib/dracut/modules.d/00systemd/module-setup.sh + +# Even adding the modules is not the correct thing, as we don't want it to be +# included in the initrd, so use this configuration file to specify the +# dependency. + +softdep nvidia post: nvidia-uvm nvidia-drm + +# Enable complete power management. From: +# file:///usr/share/doc/nvidia-driver/html/powermanagement.html + +options nvidia NVreg_TemporaryFilePath=/var/tmp +options nvidia NVreg_EnableS0ixPowerManagement=1 +options nvidia NVreg_PreserveVideoMemoryAllocations=1 diff --git a/anda/system/nvidia-580/nvidia-kmod-common/update.rhai b/anda/system/nvidia-580/nvidia-kmod-common/update.rhai new file mode 100644 index 0000000000..26e90ea495 --- /dev/null +++ b/anda/system/nvidia-580/nvidia-kmod-common/update.rhai @@ -0,0 +1,3 @@ +import "andax/bump_extras.rhai" as bump; + +rpm.version(bump::madoguchi("nvidia-driver-580xx", labels.branch)); diff --git a/anda/system/nvidia-580/nvidia-kmod/0001-Enable-atomic-kernel-modesetting-by-default.patch b/anda/system/nvidia-580/nvidia-kmod/0001-Enable-atomic-kernel-modesetting-by-default.patch new file mode 100644 index 0000000000..b17015cd83 --- /dev/null +++ b/anda/system/nvidia-580/nvidia-kmod/0001-Enable-atomic-kernel-modesetting-by-default.patch @@ -0,0 +1,42 @@ +From 60d1ddc17835226ec67ed1bc1c28524e3bb6e151 Mon Sep 17 00:00:00 2001 +From: Peter Jung +Date: Sun, 20 Apr 2025 18:13:22 +0200 +Subject: [PATCH 1/8] Enable atomic kernel modesetting by default + +This is required for proper functionality under Wayland. fbdev has been default enabled since 570 so that +hunk can be removed from this patch. + +Signed-off-by: Peter Jung +--- + nvidia-drm/nvidia-drm-linux.c | 2 +- + nvidia-drm/nvidia-drm-os-interface.c | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git an/nvidia-drm/nvidia-drm-linux.c b/nvidia-drm/nvidia-drm-linux.c +index 3cb1815d..209cb469 100644 +--- a/nvidia-drm/nvidia-drm-linux.c ++++ b/nvidia-drm/nvidia-drm-linux.c +@@ -31,7 +31,7 @@ + + MODULE_PARM_DESC( + modeset, +- "Enable atomic kernel modesetting (1 = enable, 0 = disable (default))"); ++ "Enable atomic kernel modesetting (1 = enable (default), 0 = disable)"); + module_param_named(modeset, nv_drm_modeset_module_param, bool, 0400); + + #if defined(NV_DRM_FBDEV_AVAILABLE) +diff --git a/nvidia-drm/nvidia-drm-os-interface.c b/nvidia-drm/nvidia-drm-os-interface.c +index 7617476d..f22afd77 100644 +--- a/nvidia-drm/nvidia-drm-os-interface.c ++++ b/nvidia-drm/nvidia-drm-os-interface.c +@@ -41,7 +41,7 @@ + #include + #endif + +-bool nv_drm_modeset_module_param = false; ++bool nv_drm_modeset_module_param = true; + bool nv_drm_fbdev_module_param = true; + + void *nv_drm_calloc(size_t nmemb, size_t size) +-- +2.49.0.391.g4bbb303af6 diff --git a/anda/system/nvidia/nvidia-kmod/open/anda.hcl b/anda/system/nvidia-580/nvidia-kmod/anda.hcl similarity index 61% rename from anda/system/nvidia/nvidia-kmod/open/anda.hcl rename to anda/system/nvidia-580/nvidia-kmod/anda.hcl index 8ab260311c..df736abd69 100644 --- a/anda/system/nvidia/nvidia-kmod/open/anda.hcl +++ b/anda/system/nvidia-580/nvidia-kmod/anda.hcl @@ -1,10 +1,10 @@ project "pkg" { rpm { - spec = "nvidia-open-kmod.spec" + spec = "nvidia-580xx-kmod.spec" } labels { mock = 1 subrepo = "nvidia" - weekly = 1 + updbranch = 1 } } diff --git a/anda/system/nvidia/nvidia-kmod/closed/nvidia-kmod.spec b/anda/system/nvidia-580/nvidia-kmod/nvidia-580xx-kmod.spec similarity index 50% rename from anda/system/nvidia/nvidia-kmod/closed/nvidia-kmod.spec rename to anda/system/nvidia-580/nvidia-kmod/nvidia-580xx-kmod.spec index 6221ef6643..650734dc34 100644 --- a/anda/system/nvidia/nvidia-kmod/closed/nvidia-kmod.spec +++ b/anda/system/nvidia-580/nvidia-kmod/nvidia-580xx-kmod.spec @@ -1,27 +1,30 @@ # Build only the akmod package and no kernel module packages: %define buildforkernels akmod +%global modulename nvidia-580xx %global debug_package %{nil} -Name: nvidia-kmod -Version: 580.95.05 -Release: 1%?dist +Name: %{modulename}-kmod +Version: 580.159.03 +Release: 1%{?dist} Summary: NVIDIA display driver kernel module Epoch: 3 License: NVIDIA License URL: http://www.nvidia.com/object/unix.html -ExclusiveArch: x86_64 aarch64 - Source0: http://download.nvidia.com/XFree86/Linux-%{_arch}/%{version}/NVIDIA-Linux-%{_arch}-%{version}.run -Requires: nvidia-kmod-common = %{?epoch:%{epoch}:}%{version} -Requires: akmods - - -# Get the needed BuildRequires (in parts depending on what we build for): +Patch0: 0001-Enable-atomic-kernel-modesetting-by-default.patch BuildRequires: kmodtool +Requires: nvidia-580xx-kmod-common = %{?epoch:%{epoch}:}%{version} +Requires: akmods +Provides: akmod-nvidia-580 = %{evr} +Provides: nvidia-580-kmod = %{?epoch:%{epoch}:}%{version} +Conflicts: dkms-nvidia-580xx +Conflicts: nvidia-kmod +ExclusiveArch: x86_64 aarch64 +Packager: Terra Packaging Team # kmodtool does its magic here: -%{expand:%(kmodtool --target %{_target_cpu} --repo terra.fyralabs.com --kmodname %{name} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null) } +%{expand:%(kmodtool --target %{_target_cpu} --repo terrapkg.com --kmodname %{name} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null) } %description The NVidia %{version} display driver kernel module for kernel %{kversion}. @@ -30,36 +33,37 @@ The NVidia %{version} display driver kernel module for kernel %{kversion}. # Error out if there was something wrong with kmodtool: %{?kmodtool_check} # Print kmodtool output for debugging purposes: -kmodtool --target %{_target_cpu} --repo terra.fyralabs.com --kmodname %{name} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null +kmodtool --target %{_target_cpu} --repo terrapkg.com --kmodname %{modulename} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null -sh %{SOURCE0} -x --target nvidia-kmod-%{version}-%{_arch} -%setup -T -D -n nvidia-kmod-%{version}-%{_arch} +sh %{SOURCE0} -x --target %{real_name}-%{version}-%{_arch} +%setup -T -D -n %{real_name}-%{version}-%{_arch} + +pushd kernel-open %autopatch -p1 +popd rm -f */dkms.conf for kernel_version in %{?kernel_versions}; do mkdir _kmod_build_${kernel_version%%___*} - cp -fr kernel* _kmod_build_${kernel_version%%___*} + cp -fr Kbuild Makefile common conftest.sh *.mk nvidia* _kmod_build_${kernel_version%%___*}/ done %build -export MODULE_VARIANT=kernel for kernel_version in %{?kernel_versions}; do pushd _kmod_build_${kernel_version%%___*}/ - make %{?_smp_mflags} -C ${MODULE_VARIANT} \ - KERNEL_UNAME="${kernel_version%%___*}" modules + make %{?_smp_mflags} KERNEL_UNAME="${kernel_version%%___*}" modules popd done %install -export MODULE_VARIANT=kernel for kernel_version in %{?kernel_versions}; do mkdir -p %{buildroot}/%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/ - install -p -m 0755 _kmod_build_${kernel_version%%___*}/${MODULE_VARIANT}/*.ko \ + install -p -m 0755 _kmod_build_${kernel_version%%___*}/*.ko \ %{buildroot}/%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/ done %{?akmod_install} %changelog -%autochangelog +* Mon Apr 13 2026 Gilver E. - 3:580.142-1 +- Update spec for Terra packaging team diff --git a/anda/system/nvidia-580/nvidia-kmod/update.rhai b/anda/system/nvidia-580/nvidia-kmod/update.rhai new file mode 100644 index 0000000000..329db7e5d1 --- /dev/null +++ b/anda/system/nvidia-580/nvidia-kmod/update.rhai @@ -0,0 +1,3 @@ +import "andax/bump_extras.rhai" as bump; + +rpm.version(bump::madoguchi("nvidia-580xx-kmod-common", labels.branch)); diff --git a/anda/system/nvidia-580/nvidia-modprobe/anda.hcl b/anda/system/nvidia-580/nvidia-modprobe/anda.hcl new file mode 100644 index 0000000000..1d778d61d8 --- /dev/null +++ b/anda/system/nvidia-580/nvidia-modprobe/anda.hcl @@ -0,0 +1,9 @@ +project "pkg" { + rpm { + spec = "nvidia-modprobe-580.spec" + } + labels = { + subrepo = "nvidia" + weekly = 4 + } +} diff --git a/anda/system/nvidia-580/nvidia-modprobe/nvidia-modprobe-580.spec b/anda/system/nvidia-580/nvidia-modprobe/nvidia-modprobe-580.spec new file mode 100644 index 0000000000..a1ec3a50d5 --- /dev/null +++ b/anda/system/nvidia-580/nvidia-modprobe/nvidia-modprobe-580.spec @@ -0,0 +1,50 @@ +%global real_name nvidia-modprobe + +Name: %{real_name}-580xx +Version: 580.159.03 +Release: 1%{?dist} +Summary: NVIDIA kernel module loader +Epoch: 3 +License: GPL-2.0-or-later +URL: http://www.nvidia.com/object/unix.html +Source0: https://download.nvidia.com/XFree86/%{real_name}/%{real_name}-%{version}.tar.bz2 +Patch0: %{real_name}-man-page-permissions.patch +BuildRequires: gcc +BuildRequires: m4 +Provides: %{real_name}-580 = %{evr} +ExclusiveArch: x86_64 aarch64 +Packager: Terra Packaging Team + +%description +This utility is used by user-space NVIDIA driver components to make sure the +NVIDIA kernel modules are loaded and that the NVIDIA character device files are +present. + +%prep +%autosetup -p1 -n %{real_name}-%{version} +# Remove additional CFLAGS added when enabling DEBUG +sed -i '/+= -O0 -g/d' utils.mk + +%build +export CFLAGS="%{optflags}" +export LDFLAGS="%{?__global_ldflags}" +make %{?_smp_mflags} \ + DEBUG=1 \ + NV_VERBOSE=1 \ + PREFIX=%{_prefix} \ + STRIP_CMD=true + +%install +%make_install \ + NV_VERBOSE=1 \ + PREFIX=%{_prefix} \ + STRIP_CMD=true + +%files +%license COPYING +%attr(4755, root, root) %{_bindir}/%{real_name} +%{_mandir}/man1/%{real_name}.1.* + +%changelog +* Mon Apr 13 2026 Gilver E. - 3:580.142-2 +- Update spec for Terra packaging team diff --git a/anda/system/nvidia-580/nvidia-modprobe/nvidia-modprobe-man-page-permissions.patch b/anda/system/nvidia-580/nvidia-modprobe/nvidia-modprobe-man-page-permissions.patch new file mode 100644 index 0000000000..96d073cda3 --- /dev/null +++ b/anda/system/nvidia-580/nvidia-modprobe/nvidia-modprobe-man-page-permissions.patch @@ -0,0 +1,12 @@ +diff -Naur nvidia-modprobe-525.60.11.old/Makefile nvidia-modprobe-525.60.11/Makefile +--- nvidia-modprobe-525.60.11.old/Makefile 2022-11-28 20:15:22.000000000 +0100 ++++ nvidia-modprobe-525.60.11/Makefile 2022-11-30 07:56:18.751429168 +0100 +@@ -110,7 +110,7 @@ + .PHONY: MANPAGE_install + MANPAGE_install: $(MANPAGE) + $(MKDIR) $(MANDIR) +- $(INSTALL) $(INSTALL_BIN_ARGS) $< $(MANDIR)/$(notdir $<) ++ $(INSTALL) $(INSTALL_DOC_ARGS) $< $(MANDIR)/$(notdir $<) + + $(eval $(call DEBUG_INFO_RULES, $(NVIDIA_MODPROBE))) + $(NVIDIA_MODPROBE).unstripped: $(OBJS) diff --git a/anda/system/nvidia-580/nvidia-modprobe/update.rhai b/anda/system/nvidia-580/nvidia-modprobe/update.rhai new file mode 100644 index 0000000000..d1ef2924fb --- /dev/null +++ b/anda/system/nvidia-580/nvidia-modprobe/update.rhai @@ -0,0 +1,3 @@ +import "andax/nvidia.rhai" as nvidia; + +rpm.version(nvidia::nvidia_legacy_version()); diff --git a/anda/system/nvidia-580/nvidia-persistenced/anda.hcl b/anda/system/nvidia-580/nvidia-persistenced/anda.hcl new file mode 100644 index 0000000000..1ae5a90bf5 --- /dev/null +++ b/anda/system/nvidia-580/nvidia-persistenced/anda.hcl @@ -0,0 +1,9 @@ +project "pkg" { + rpm { + spec = "nvidia-persistenced-580.spec" + } + labels = { + subrepo = "nvidia" + weekly = 4 + } +} diff --git a/anda/system/nvidia-580/nvidia-persistenced/nvidia-persistenced-580.spec b/anda/system/nvidia-580/nvidia-persistenced/nvidia-persistenced-580.spec new file mode 100644 index 0000000000..76b646f26a --- /dev/null +++ b/anda/system/nvidia-580/nvidia-persistenced/nvidia-persistenced-580.spec @@ -0,0 +1,81 @@ +%global real_name nvidia-persistenced + +Name: %{real_name}-580xx +Version: 580.159.03 +Release: 1%{?dist} +Summary: A daemon to maintain persistent software state in the NVIDIA driver +Epoch: 3 +License: GPL-2.0-or-later +URL: http://www.nvidia.com/object/unix.html +ExclusiveArch: x86_64 aarch64 +Source0: https://download.nvidia.com/XFree86/%{real_name}/%{real_name}-%{version}.tar.bz2 +Source1: %{real_name}.service +BuildRequires: gcc +BuildRequires: libtirpc-devel +BuildRequires: m4 +# For Fedora systemd-rpm-macros would be enough: +BuildRequires: systemd-devel +Requires: libnvidia-cfg-580xx%{?_isa} >= %{?epoch:%{epoch}:}%{version} +Requires(post): systemd +Requires(preun): systemd +Requires(postun): systemd +Provides: %{real_name}-580 = %{evr} +Packager: Terra Packaging Team + +%description +The %{real_name} utility is used to enable persistent software state in the NVIDIA +driver. When persistence mode is enabled, the daemon prevents the driver from +releasing device state when the device is not in use. This can improve the +startup time of new clients in this scenario. + +%prep +%autosetup -n %{real_name}-%{version} +# Remove additional CFLAGS added when enabling DEBUG +sed -i -e '/+= -O0 -g/d' utils.mk + +%build +export CFLAGS="%{optflags} -I%{_includedir}/tirpc" +make %{?_smp_mflags} \ + DEBUG=1 \ + LIBS="-ldl -ltirpc" \ + NV_VERBOSE=1 \ + PREFIX=%{_prefix} \ + STRIP_CMD=true + +%install +%make_install \ + NV_VERBOSE=1 \ + PREFIX=%{_prefix} \ + STRIP_CMD=true + +%if 0%{?fedora} < 42 +mv %{buildroot}%{_bindir} %{buildroot}%{_sbindir} +%endif +mkdir -p %{buildroot}%{_sharedstatedir}/%{real_name} + +# Systemd unit files +install -p -m 644 -D %{SOURCE1} %{buildroot}%{_unitdir}/%{real_name}.service + +%post +%systemd_post %{real_name}.service + +%preun +%systemd_preun %{real_name}.service + +%postun +%systemd_postun_with_restart %{real_name}.service + +%files +%license COPYING +%{_mandir}/man1/%{real_name}.1.* +%if 0%{?fedora} < 42 +%{_sbindir}/%{real_name} +%else +%{_bindir}/%{real_name} +%endif +%{_unitdir}/%{real_name}.service +%{_sharedstatedir}/%{real_name} + +%changelog +* Mon Apr 13 2026 Gilver E. - 3:580.142-3 +- Update spec for Terra packaging team diff --git a/anda/system/nvidia-580/nvidia-persistenced/nvidia-persistenced.service b/anda/system/nvidia-580/nvidia-persistenced/nvidia-persistenced.service new file mode 100644 index 0000000000..0d83758660 --- /dev/null +++ b/anda/system/nvidia-580/nvidia-persistenced/nvidia-persistenced.service @@ -0,0 +1,14 @@ +[Unit] +Description=NVIDIA Persistence Daemon +After=syslog.target + +[Service] +Type=forking +PIDFile=/var/run/nvidia-persistenced/nvidia-persistenced.pid +Restart=always +ExecStart=/usr/sbin/nvidia-persistenced --verbose +ExecStopPost=/bin/rm -rf /var/run/nvidia-persistenced/* +TimeoutSec=300 + +[Install] +WantedBy=multi-user.target diff --git a/anda/system/nvidia-580/nvidia-persistenced/update.rhai b/anda/system/nvidia-580/nvidia-persistenced/update.rhai new file mode 100644 index 0000000000..d1ef2924fb --- /dev/null +++ b/anda/system/nvidia-580/nvidia-persistenced/update.rhai @@ -0,0 +1,3 @@ +import "andax/nvidia.rhai" as nvidia; + +rpm.version(nvidia::nvidia_legacy_version()); diff --git a/anda/system/nvidia-580/nvidia-settings/anda.hcl b/anda/system/nvidia-580/nvidia-settings/anda.hcl new file mode 100644 index 0000000000..12805e9931 --- /dev/null +++ b/anda/system/nvidia-580/nvidia-settings/anda.hcl @@ -0,0 +1,9 @@ +project "pkg" { + rpm { + spec = "nvidia-settings-580.spec" + } + labels = { + subrepo = "nvidia" + weekly = 4 + } +} diff --git a/anda/system/nvidia-580/nvidia-settings/nvidia-settings-0.png b/anda/system/nvidia-580/nvidia-settings/nvidia-settings-0.png new file mode 100644 index 0000000000..2fe11e2c88 Binary files /dev/null and b/anda/system/nvidia-580/nvidia-settings/nvidia-settings-0.png differ diff --git a/anda/system/nvidia-580/nvidia-settings/nvidia-settings-1.png b/anda/system/nvidia-580/nvidia-settings/nvidia-settings-1.png new file mode 100644 index 0000000000..8d788b6937 Binary files /dev/null and b/anda/system/nvidia-580/nvidia-settings/nvidia-settings-1.png differ diff --git a/anda/system/nvidia-580/nvidia-settings/nvidia-settings-2.png b/anda/system/nvidia-580/nvidia-settings/nvidia-settings-2.png new file mode 100644 index 0000000000..2bd3f8b3e1 Binary files /dev/null and b/anda/system/nvidia-580/nvidia-settings/nvidia-settings-2.png differ diff --git a/anda/system/nvidia-580/nvidia-settings/nvidia-settings-580.spec b/anda/system/nvidia-580/nvidia-settings/nvidia-settings-580.spec new file mode 100644 index 0000000000..f6e2bf7cb4 --- /dev/null +++ b/anda/system/nvidia-580/nvidia-settings/nvidia-settings-580.spec @@ -0,0 +1,142 @@ +%global real_name nvidia-settings + +Name: %{real_name}-580xx +Version: 580.159.03 +Release: 1%{?dist} +Summary: Configure the NVIDIA graphics driver +Epoch: 3 +License: GPL-2.0-or-later +URL: http://www.nvidia.com/object/unix.html +Source0: https://download.nvidia.com/XFree86/%{real_name}/%{real_name}-%{version}.tar.bz2 +Source1: %{real_name}-load.desktop +Source2: %{real_name}.appdata.xml +Patch0: %{real_name}-desktop.patch +Patch1: %{real_name}-lib-permissions.patch +Patch2: %{real_name}-link-order.patch +Patch3: %{real_name}-libXNVCtrl.patch +Patch4: %{real_name}-ld-dep-remove.patch +BuildRequires: desktop-file-utils +BuildRequires: dbus-devel +BuildRequires: gcc +BuildRequires: jansson-devel +BuildRequires: libappstream-glib +BuildRequires: libvdpau-devel >= 1.0 +BuildRequires: libXxf86vm-devel +BuildRequires: libXext-devel +BuildRequires: libXrandr-devel +BuildRequires: libXv-devel +BuildRequires: m4 +BuildRequires: mesa-libEGL-devel +BuildRequires: mesa-libGL-devel +BuildRequires: pkgconfig(gtk+-3.0) +BuildRequires: pkgconfig(wayland-client) +BuildRequires: vulkan-headers +Requires: nvidia-libXNVCtrl-580xx%{?_isa} = %{?epoch}:%{version}-%{release} +Requires: nvidia-driver-580xx%{?_isa} = %{?epoch}:%{version} +# Loaded at runtime +Requires: libvdpau%{?_isa} >= 0.9 +Provides: %{real_name}-580 = %{evr} +ExclusiveArch: x86_64 aarch64 +Packager: Terra Packaging Team + +%description +The %{real_name} utility is a tool for configuring the NVIDIA graphics +driver. It operates by communicating with the NVIDIA X driver, querying and +updating state as appropriate. + +This communication is done with the NV-CONTROL X extension. + +%package -n nvidia-libXNVCtrl-580xx +Summary: Library providing the NV-CONTROL API +Obsoletes: libXNVCtrl < %{?epoch}:%{version}-%{release} +Provides: libXNVCtrl-580xx = %{?epoch}:%{version}-%{release} +Provides: nvidia-libXNVCtrl-580 = %{?epoch}:%{version}-%{release} +Provides: libXNVCtrl-580 = %{?epoch}:%{version}-%{release} + +%description -n nvidia-libXNVCtrl-580xx +This library provides the NV-CONTROL API for communicating with the proprietary +NVidia xorg driver. It is required for proper operation of the %{real_name} utility. + +%package -n nvidia-libXNVCtrl-580xx-devel +Summary: Development files for libXNVCtrl +Requires: nvidia-libXNVCtrl-580xx = %{?epoch}:%{version}-%{release} +Requires: libX11-devel +Provides: nvidia-libXNVCtrl-580-devel = %{evr} + +%description -n nvidia-libXNVCtrl-580xx-devel +This devel package contains libraries and header files for +developing applications that use the NV-CONTROL API. + +%prep +%autosetup -p1 -n %{real_name}-%{version} + +# Remove bundled jansson +rm -fr src/jansson + +# Remove additional CFLAGS added when enabling DEBUG +sed -i '/+= -O0 -g/d' utils.mk src/libXNVCtrl/utils.mk + +# Change all occurrences of destinations in each utils.mk. +sed -i -e 's|$(PREFIX)/lib|$(PREFIX)/%{_lib}|g' utils.mk src/libXNVCtrl/utils.mk + +%build +export CFLAGS="%{optflags} -fPIC" +export LDFLAGS="%{?__global_ldflags}" +make \ + DEBUG=1 \ + NV_USE_BUNDLED_LIBJANSSON=0 \ + NV_VERBOSE=1 \ + PREFIX=%{_prefix} \ + XNVCTRL_LDFLAGS="-L%{_libdir}" + +%install +# Install libXNVCtrl headers +mkdir -p %{buildroot}%{_includedir}/NVCtrl +cp -af src/libXNVCtrl/*.h %{buildroot}%{_includedir}/NVCtrl/ + +# Install main program +%make_install \ + DEBUG=1 \ + NV_USE_BUNDLED_LIBJANSSON=0 \ + NV_VERBOSE=1 \ + PREFIX=%{_prefix} + +# Install desktop file +mkdir -p %{buildroot}%{_datadir}/{applications,pixmaps} +desktop-file-install --dir %{buildroot}%{_datadir}/applications/ doc/%{real_name}.desktop +cp doc/%{real_name}.png %{buildroot}%{_datadir}/pixmaps/ + +# Install autostart file to load settings at login +install -p -D -m 644 %{SOURCE1} %{buildroot}%{_sysconfdir}/xdg/autostart/%{real_name}-load.desktop + +# install AppData and add modalias provides +mkdir -p %{buildroot}%{_metainfodir}/ +install -p -m 0644 %{SOURCE2} %{buildroot}%{_metainfodir}/ + +%check +desktop-file-validate %{buildroot}/%{_datadir}/applications/%{real_name}.desktop +desktop-file-validate %{buildroot}%{_sysconfdir}/xdg/autostart/%{real_name}-load.desktop +appstream-util validate-relax --nonet %{buildroot}/%{_metainfodir}/%{real_name}.appdata.xml + +%files +%{_bindir}/%{real_name} +%{_metainfodir}/%{real_name}.appdata.xml +%{_datadir}/applications/%{real_name}.desktop +%{_datadir}/pixmaps/%{real_name}.png +%{_libdir}/libnvidia-gtk3.so.%{version} +%{_libdir}/libnvidia-wayland-client.so.%{version} +%{_mandir}/man1/%{real_name}.* +%{_sysconfdir}/xdg/autostart/%{real_name}-load.desktop + +%files -n nvidia-libXNVCtrl-580xx +%license COPYING +%{_libdir}/libXNVCtrl.so.* + +%files -n nvidia-libXNVCtrl-580xx-devel +%doc doc/NV-CONTROL-API.txt doc/FRAMELOCK.txt +%{_includedir}/NVCtrl +%{_libdir}/libXNVCtrl.so + +%changelog +* Mon Apr 13 2026 Gilver E. - 3:580.142-3 +- Update spec for Terra packaging team diff --git a/anda/system/nvidia-580/nvidia-settings/nvidia-settings-desktop.patch b/anda/system/nvidia-580/nvidia-settings/nvidia-settings-desktop.patch new file mode 100644 index 0000000000..9ea63a8c5e --- /dev/null +++ b/anda/system/nvidia-580/nvidia-settings/nvidia-settings-desktop.patch @@ -0,0 +1,18 @@ +diff -Naur nvidia-settings-530.30.02/doc/nvidia-settings.desktop nvidia-settings-530.30.02.old/doc/nvidia-settings.desktop +--- nvidia-settings-530.30.02/doc/nvidia-settings.desktop 2023-03-08 13:01:39.749406623 +0100 ++++ nvidia-settings-530.30.02.old/doc/nvidia-settings.desktop 2023-03-08 13:02:50.950572460 +0100 +@@ -1,11 +1,11 @@ + [Desktop Entry] + Type=Application +-Encoding=UTF-8 + Name=NVIDIA X Server Settings + Comment=Configure NVIDIA X Server Settings +-Exec=__UTILS_PATH__/nvidia-settings ++Exec=nvidia-settings + Icon=nvidia-settings +-Categories=__NVIDIA_SETTINGS_DESKTOP_CATEGORIES__ ++Categories=System;Settings ++Keywords=nvidia;vulkan;opengl;driver + + # Translation by Marcin Mikołajczak + Name[pl]=Ustawienia serwera X NVIDIA diff --git a/anda/system/nvidia-580/nvidia-settings/nvidia-settings-ld-dep-remove.patch b/anda/system/nvidia-580/nvidia-settings/nvidia-settings-ld-dep-remove.patch new file mode 100644 index 0000000000..3af69b6d21 --- /dev/null +++ b/anda/system/nvidia-580/nvidia-settings/nvidia-settings-ld-dep-remove.patch @@ -0,0 +1,12 @@ +Index: nvidia-settings-545.13/utils.mk +=================================================================== +--- nvidia-settings-545.13.orig/utils.mk ++++ nvidia-settings-545.13/utils.mk +@@ -584,7 +584,6 @@ define READ_ONLY_OBJECT_FROM_FILE_RULE + $(at_if_quiet)$$(MKDIR) $$(OUTPUTDIR) + $(at_if_quiet)cd $$(dir $(1)); \ + $$(call quiet_cmd_no_at,LD) -r -z noexecstack --format=binary \ +- $$(LD_TARGET_EMULATION_FLAG) \ + $$(notdir $(1)) -o $$(OUTPUTDIR_ABSOLUTE)/$$(notdir $$@) + $$(call quiet_cmd,OBJCOPY) \ + --rename-section .data=.rodata,contents,alloc,load,data,readonly \ diff --git a/anda/system/nvidia-580/nvidia-settings/nvidia-settings-lib-permissions.patch b/anda/system/nvidia-580/nvidia-settings/nvidia-settings-lib-permissions.patch new file mode 100644 index 0000000000..6f98c875bf --- /dev/null +++ b/anda/system/nvidia-580/nvidia-settings/nvidia-settings-lib-permissions.patch @@ -0,0 +1,24 @@ +diff -Naur nvidia-settings-525.60.11.old/src/libXNVCtrl/utils.mk nvidia-settings-525.60.11/src/libXNVCtrl/utils.mk +--- nvidia-settings-525.60.11.old/src/libXNVCtrl/utils.mk 2022-12-01 07:56:28.691047034 +0100 ++++ nvidia-settings-525.60.11/src/libXNVCtrl/utils.mk 2022-12-01 07:56:49.882413208 +0100 +@@ -92,7 +92,7 @@ + + INSTALL ?= install + INSTALL_BIN_ARGS ?= -m 755 +-INSTALL_LIB_ARGS ?= -m 644 ++INSTALL_LIB_ARGS ?= -m 755 + INSTALL_DOC_ARGS ?= -m 644 + + M4 ?= m4 +diff -Naur nvidia-settings-525.60.11.old/utils.mk nvidia-settings-525.60.11/utils.mk +--- nvidia-settings-525.60.11.old/utils.mk 2022-12-01 07:56:28.651046343 +0100 ++++ nvidia-settings-525.60.11/utils.mk 2022-12-01 07:56:49.883413225 +0100 +@@ -92,7 +92,7 @@ + + INSTALL ?= install + INSTALL_BIN_ARGS ?= -m 755 +-INSTALL_LIB_ARGS ?= -m 644 ++INSTALL_LIB_ARGS ?= -m 755 + INSTALL_DOC_ARGS ?= -m 644 + + M4 ?= m4 diff --git a/anda/system/nvidia-580/nvidia-settings/nvidia-settings-libXNVCtrl.patch b/anda/system/nvidia-580/nvidia-settings/nvidia-settings-libXNVCtrl.patch new file mode 100644 index 0000000000..3661d8c6f5 --- /dev/null +++ b/anda/system/nvidia-580/nvidia-settings/nvidia-settings-libXNVCtrl.patch @@ -0,0 +1,97 @@ +diff -Naur nvidia-settings-525.60.11.old/src/libXNVCtrl/Makefile nvidia-settings-525.60.11/src/libXNVCtrl/Makefile +--- nvidia-settings-525.60.11.old/src/libXNVCtrl/Makefile 2022-12-01 07:56:28.691047034 +0100 ++++ nvidia-settings-525.60.11/src/libXNVCtrl/Makefile 2022-12-01 08:02:18.889098255 +0100 +@@ -49,9 +49,10 @@ + ############################################################################## + + .PHONY: all +-all: $(LIBXNVCTRL) ++all: $(LIBXNVCTRL_SHARED) + + .PHONY: clean + clean: + rm -rf $(LIBXNVCTRL) *~ \ + $(OUTPUTDIR)/*.o $(OUTPUTDIR)/*.d ++ rm -f $(LIBXNVCTRL_SHARED) $(LIBXNVCTRL_SHARED).* +diff -Naur nvidia-settings-525.60.11.old/src/libXNVCtrl/xnvctrl.mk nvidia-settings-525.60.11/src/libXNVCtrl/xnvctrl.mk +--- nvidia-settings-525.60.11.old/src/libXNVCtrl/xnvctrl.mk 2022-12-01 07:56:28.691047034 +0100 ++++ nvidia-settings-525.60.11/src/libXNVCtrl/xnvctrl.mk 2022-12-01 08:02:18.934099033 +0100 +@@ -39,6 +39,8 @@ + + LIBXNVCTRL = $(OUTPUTDIR)/libXNVCtrl.a + ++LIBXNVCTRL_SHARED = $(OUTPUTDIR)/libXNVCtrl.so ++ + LIBXNVCTRL_SRC = $(XNVCTRL_DIR)/NVCtrl.c + + LIBXNVCTRL_OBJ = $(call BUILD_OBJECT_LIST,$(LIBXNVCTRL_SRC)) +@@ -47,3 +49,9 @@ + + $(LIBXNVCTRL) : $(LIBXNVCTRL_OBJ) + $(call quiet_cmd,AR) ru $@ $(LIBXNVCTRL_OBJ) ++ ++$(LIBXNVCTRL_SHARED): $(LIBXNVCTRL_OBJ) ++ $(RM) $@ $@.* ++ $(CC) -shared -Wl,-soname=$(@F).0 -o $@.0.0.0 $(LDFLAGS) $^ -lXext -lX11 ++ ln -s $(@F).0.0.0 $@.0 ++ ln -s $(@F).0 $@ +diff -Naur nvidia-settings-525.60.11.old/src/Makefile nvidia-settings-525.60.11/src/Makefile +--- nvidia-settings-525.60.11.old/src/Makefile 2022-12-01 08:02:11.280966791 +0100 ++++ nvidia-settings-525.60.11/src/Makefile 2022-12-01 08:02:59.233795388 +0100 +@@ -303,7 +303,11 @@ + all: $(NVIDIA_SETTINGS) $(GTK2LIB) $(GTK3LIB) $(WAYLANDLIB) + + .PHONY: install +-install: NVIDIA_SETTINGS_install NVIDIA_GTKLIB_install WAYLAND_LIB_install ++install: NVIDIA_SETTINGS_install NVIDIA_GTKLIB_install WAYLAND_LIB_install NVIDIA_XNVCTRL_install ++ ++NVIDIA_XNVCTRL_install: ++ $(MKDIR) $(LIBDIR) ++ cp -a $(LIBXNVCTRL_SHARED)* $(LIBDIR) + + .PHONY: NVIDIA_GTKLIB_install + NVIDIA_GTKLIB_install: $(GTK2LIB) $(GTK3LIB) +@@ -329,28 +333,28 @@ + $(INSTALL) $(INSTALL_BIN_ARGS) $< $(BINDIR)/$(notdir $<) + + $(eval $(call DEBUG_INFO_RULES, $(NVIDIA_SETTINGS))) +-$(NVIDIA_SETTINGS).unstripped: $(OBJS) $(LIBXNVCTRL) ++$(NVIDIA_SETTINGS).unstripped: $(OBJS) $(LIBXNVCTRL_SHARED) + $(call quiet_cmd,LINK) $(CFLAGS) $(LDFLAGS) $(BIN_LDFLAGS) \ +- -rdynamic -o $@ $(OBJS) $(LIBXNVCTRL) $(LIBS) ++ -rdynamic -o $@ $(OBJS) $(LIBXNVCTRL_SHARED) $(LIBS) + + ifdef BUILD_GTK2LIB + $(eval $(call DEBUG_INFO_RULES, $(GTK2LIB))) +-$(GTK2LIB).unstripped: $(LIBXNVCTRL) $(GTK2_OBJS) $(XCP_OBJS) $(IMAGE_OBJS) $(VERSION_MK) ++$(GTK2LIB).unstripped: $(LIBXNVCTRL_SHARED) $(GTK2_OBJS) $(XCP_OBJS) $(IMAGE_OBJS) $(VERSION_MK) + $(call quiet_cmd,LINK) -shared $(CFLAGS) $(LDFLAGS) $(BIN_LDFLAGS) \ + -o $@ \ + -Wl,-soname -Wl,$(GTK2LIB_SONAME) \ + $(GTK2_OBJS) $(IMAGE_OBJS) $(XCP_OBJS) \ +- $(LIBXNVCTRL) $(LIBS) $(GTK2_LIBS) ++ $(LIBXNVCTRL_SHARED) $(LIBS) $(GTK2_LIBS) + endif + + ifdef BUILD_GTK3LIB + $(eval $(call DEBUG_INFO_RULES, $(GTK3LIB))) +-$(GTK3LIB).unstripped: $(LIBXNVCTRL) $(GTK3_OBJS) $(XCP_OBJS) $(IMAGE_OBJS) $(VERSION_MK) ++$(GTK3LIB).unstripped: $(LIBXNVCTRL_SHARED) $(GTK3_OBJS) $(XCP_OBJS) $(IMAGE_OBJS) $(VERSION_MK) + $(call quiet_cmd,LINK) -shared $(CFLAGS) $(LDFLAGS) $(BIN_LDFLAGS) \ + -o $@ \ + -Wl,-soname -Wl,$(GTK3LIB_SONAME) \ + $(GTK3_OBJS) $(XCP_OBJS) $(IMAGE_OBJS) \ +- $(LIBXNVCTRL) $(LIBS) $(GTK3_LIBS) ++ $(LIBXNVCTRL_SHARED) $(LIBS) $(GTK3_LIBS) + endif + + ifdef BUILD_WAYLANDLIB +@@ -379,7 +383,7 @@ + $(OUTPUTDIR)/*.o $(OUTPUTDIR)/*.d \ + $(GTK2LIB) $(GTK3LIB) $(GTK2LIB_DIR) $(GTK3LIB_DIR) \ + $(WAYLANDLIB) $(WAYLANDLIB_DIR) \ +- $(IMAGE_HEADERS) $(LIBXNVCTRL) ++ $(IMAGE_HEADERS) $(LIBXNVCTRL_SHARED) + + ifdef BUILD_GTK2LIB + $(foreach src,$(GTK_SRC), \ diff --git a/anda/system/nvidia-580/nvidia-settings/nvidia-settings-link-order.patch b/anda/system/nvidia-580/nvidia-settings/nvidia-settings-link-order.patch new file mode 100644 index 0000000000..b8fffa9e45 --- /dev/null +++ b/anda/system/nvidia-580/nvidia-settings/nvidia-settings-link-order.patch @@ -0,0 +1,60 @@ +diff -Naur nvidia-settings-525.60.11.old/src/Makefile nvidia-settings-525.60.11/src/Makefile +--- nvidia-settings-525.60.11.old/src/Makefile 2022-12-01 07:56:28.657046446 +0100 ++++ nvidia-settings-525.60.11/src/Makefile 2022-12-01 08:01:09.920906524 +0100 +@@ -60,7 +60,7 @@ + endif + + ifndef GTK2_LDFLAGS +- GTK2_LDFLAGS := -Wl,--no-as-needed $(shell $(PKG_CONFIG) --libs gtk+-2.0) ++ GTK2_LDFLAGS := $(shell $(PKG_CONFIG) --libs gtk+-2.0) + endif + else + GTK2_CFLAGS ?= +@@ -82,7 +82,7 @@ + endif + + ifndef GTK3_LDFLAGS +- GTK3_LDFLAGS := -Wl,--no-as-needed $(shell $(PKG_CONFIG) --libs gtk+-3.0) ++ GTK3_LDFLAGS := $(shell $(PKG_CONFIG) --libs gtk+-3.0) + endif + else + GTK3_CFLAGS ?= +@@ -337,30 +337,29 @@ + $(eval $(call DEBUG_INFO_RULES, $(GTK2LIB))) + $(GTK2LIB).unstripped: $(LIBXNVCTRL) $(GTK2_OBJS) $(XCP_OBJS) $(IMAGE_OBJS) $(VERSION_MK) + $(call quiet_cmd,LINK) -shared $(CFLAGS) $(LDFLAGS) $(BIN_LDFLAGS) \ +- $(LIBXNVCTRL) $(LIBS) $(GTK2_LIBS) \ +- -Wl,--unresolved-symbols=ignore-all -o $@ \ ++ -o $@ \ + -Wl,-soname -Wl,$(GTK2LIB_SONAME) \ +- $(GTK2_OBJS) $(IMAGE_OBJS) $(XCP_OBJS) ++ $(GTK2_OBJS) $(IMAGE_OBJS) $(XCP_OBJS) \ ++ $(LIBXNVCTRL) $(LIBS) $(GTK2_LIBS) + endif + + ifdef BUILD_GTK3LIB + $(eval $(call DEBUG_INFO_RULES, $(GTK3LIB))) + $(GTK3LIB).unstripped: $(LIBXNVCTRL) $(GTK3_OBJS) $(XCP_OBJS) $(IMAGE_OBJS) $(VERSION_MK) + $(call quiet_cmd,LINK) -shared $(CFLAGS) $(LDFLAGS) $(BIN_LDFLAGS) \ +- $(LIBXNVCTRL) $(LIBS) $(GTK3_LIBS) \ +- -Wl,--unresolved-symbols=ignore-all -o $@ \ ++ -o $@ \ + -Wl,-soname -Wl,$(GTK3LIB_SONAME) \ +- $(GTK3_OBJS) $(XCP_OBJS) $(IMAGE_OBJS) ++ $(GTK3_OBJS) $(XCP_OBJS) $(IMAGE_OBJS) \ ++ $(LIBXNVCTRL) $(LIBS) $(GTK3_LIBS) + endif + + ifdef BUILD_WAYLANDLIB + $(eval $(call DEBUG_INFO_RULES, $(WAYLANDLIB))) + $(WAYLANDLIB).unstripped: $(WAYLAND_OBJS) + $(call quiet_cmd,LINK) -shared $(CFLAGS) $(LDFLAGS) $(BIN_LDFLAGS) \ +- $(LIBS) $(WAYLAND_LIBS) \ +- -Wl,--unresolved-symbols=ignore-all -o $@ \ ++ -o $@ \ + -Wl,-soname -Wl,$(WAYLANDLIB_SONAME) \ +- $(WAYLAND_OBJS) ++ $(WAYLAND_OBJS) $(LIBS) $(WAYLAND_LIBS) + + endif + diff --git a/anda/system/nvidia-580/nvidia-settings/nvidia-settings-load.desktop b/anda/system/nvidia-580/nvidia-settings/nvidia-settings-load.desktop new file mode 100644 index 0000000000..664e1f5e0e --- /dev/null +++ b/anda/system/nvidia-580/nvidia-settings/nvidia-settings-load.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Type=Application +Name=NVIDIA X Server Settings +Comment=Configure NVIDIA X Server Settings +Exec=/usr/bin/nvidia-settings --load-config-only +Terminal=false +Icon=nvidia-settings +Categories=Settings; diff --git a/anda/system/nvidia-580/nvidia-settings/nvidia-settings.appdata.xml b/anda/system/nvidia-580/nvidia-settings/nvidia-settings.appdata.xml new file mode 100644 index 0000000000..b085a8c628 --- /dev/null +++ b/anda/system/nvidia-580/nvidia-settings/nvidia-settings.appdata.xml @@ -0,0 +1,58 @@ + + + nvidia-settings.desktop + NVIDIA Graphics Drivers Control Panel + Accelerated Linux Graphics Driver Control Panel + +

+ The NVIDIA Accelerated Linux Graphics Driver brings accelerated 2D + functionality and high-performance OpenGL support to Linux with the + use of NVIDIA graphics processing units. +

+

+ These drivers provide optimized hardware acceleration for OpenGL and X + applications and support nearly all recent NVIDIA GPU products. + The NVIDIA graphics driver uses a Unified Driver Architecture: the single + graphics driver supports all modern NVIDIA GPUs. +

+

+ The nvidia-settings utility is a tool for configuring the NVIDIA graphics + driver. It operates by communicating with the NVIDIA X driver, querying + and updating state as appropriate. This communication is done via the + NV-CONTROL, GLX, XVideo, and RandR X extensions. +

+

+ Values such as brightness and gamma, XVideo attributes, temperature, and + OpenGL settings can be queried and configured via nvidia-settings. +

+
+ + http://www.nvidia.com/ + CC0-1.0 + GPL-2.0+ + NVIDIA Corporation + + + The nvidia-settings utility main window + https://raw.githubusercontent.com/terrapkg/packages/refs/heads/frawhide/anda/system/nvidia-580/nvidia-settings/nvidia-settings-0.png + + + Monitoring GPU status + https://raw.githubusercontent.com/terrapkg/packages/refs/heads/frawhide/anda/system/nvidia-580/nvidia-settings/nvidia-settings-1.png + + + Application profiles creation + https://raw.githubusercontent.com/terrapkg/packages/refs/heads/frawhide/anda/system/nvidia-580/nvidia-settings/nvidia-settings-2.png + + + + NVIDIA + driver + GeForce + Quadro + Vulkan + OpenGL + + https://github.com/terrapkg/packages/issues + https://github.com/terrapkg/packages +
diff --git a/anda/system/nvidia-580/nvidia-settings/update.rhai b/anda/system/nvidia-580/nvidia-settings/update.rhai new file mode 100644 index 0000000000..d1ef2924fb --- /dev/null +++ b/anda/system/nvidia-580/nvidia-settings/update.rhai @@ -0,0 +1,3 @@ +import "andax/nvidia.rhai" as nvidia; + +rpm.version(nvidia::nvidia_legacy_version()); diff --git a/anda/system/nvidia-580/nvidia-xconfig/anda.hcl b/anda/system/nvidia-580/nvidia-xconfig/anda.hcl new file mode 100644 index 0000000000..e96198e2ee --- /dev/null +++ b/anda/system/nvidia-580/nvidia-xconfig/anda.hcl @@ -0,0 +1,9 @@ +project "pkg" { + rpm { + spec = "nvidia-xconfig-580.spec" + } + labels = { + subrepo = "nvidia" + weekly = 4 + } +} diff --git a/anda/system/nvidia-580/nvidia-xconfig/nvidia-xconfig-580.spec b/anda/system/nvidia-580/nvidia-xconfig/nvidia-xconfig-580.spec new file mode 100644 index 0000000000..d060c047ae --- /dev/null +++ b/anda/system/nvidia-580/nvidia-xconfig/nvidia-xconfig-580.spec @@ -0,0 +1,53 @@ +%global real_name nvidia-xconfig + +Name: %{real_name}-580xx +Version: 580.159.03 +Release: 1%{?dist} +Summary: NVIDIA X configuration file editor +Epoch: 3 +License: GPL-2.0-or-later +URL: http://www.nvidia.com/object/unix.html +Source0: https://download.nvidia.com/XFree86/%{real_name}/%{real_name}-%{version}.tar.bz2 +BuildRequires: gcc +BuildRequires: libpciaccess-devel +BuildRequires: m4 +Requires: libnvidia-cfg-580xx%{?_isa} >= %{?epoch:%{epoch}:}%{version} +Requires: xorg-x11-nvidia-580xx%{?_isa} >= %{?epoch:%{epoch}:}%{version} +Provides: %{real_name}-580 = %{evr} +ExclusiveArch: x86_64 aarch64 +Packager: Terra Packaging Team + +%description +%{real_name} is a command line tool intended to provide basic control over +configuration options available in the NVIDIA X driver. + +%prep +%autosetup -p1 -n %{real_name}-%{version} +# Remove additional CFLAGS added when enabling DEBUG +sed -i '/+= -O0 -g/d' utils.mk + +%build +export CFLAGS="%{optflags}" +export LDFLAGS="%{?__global_ldflags}" +make %{?_smp_mflags} \ + DEBUG=1 \ + MANPAGE_GZIP=0 \ + NV_VERBOSE=1 \ + PREFIX=%{_prefix} \ + STRIP_CMD=true + +%install +%make_install \ + MANPAGE_GZIP=0 \ + NV_VERBOSE=1 \ + PREFIX=%{_prefix} \ + STRIP_CMD=true + +%files +%license COPYING +%{_bindir}/%{real_name} +%{_mandir}/man1/%{real_name}.1* + +%changelog +* Mon Apr 13 2026 Gilver E. - 3:580.142-3 +- Update spec for Terra packaging team diff --git a/anda/system/nvidia-580/nvidia-xconfig/update.rhai b/anda/system/nvidia-580/nvidia-xconfig/update.rhai new file mode 100644 index 0000000000..d1ef2924fb --- /dev/null +++ b/anda/system/nvidia-580/nvidia-xconfig/update.rhai @@ -0,0 +1,3 @@ +import "andax/nvidia.rhai" as nvidia; + +rpm.version(nvidia::nvidia_legacy_version()); diff --git a/anda/system/nvidia-patch/nvidia-patch.spec b/anda/system/nvidia-patch/nvidia-patch.spec index 9951d046ca..5c361215af 100644 --- a/anda/system/nvidia-patch/nvidia-patch.spec +++ b/anda/system/nvidia-patch/nvidia-patch.spec @@ -1,13 +1,13 @@ %global debug_package %{nil} -%global commit c28a647b527fbc2761f808fb1695b30cd7d97077 +%global commit 0e665c46a87ba99b41a07169fa3acf6162739648 %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commit_date 20251024 +%global commit_date 20260507 %global patches %{_datadir}/src/nvidia-patch Name: nvidia-patch Version: 0^%commit_date.%{shortcommit} -Release: 1%?dist +Release: 1%{?dist} Summary: NVENC and NvFBC patches for NVIDIA drivers License: EULA diff --git a/anda/system/nvidia/README.md b/anda/system/nvidia/README.md index c0fe5a7a8a..d09b8df2ec 100644 --- a/anda/system/nvidia/README.md +++ b/anda/system/nvidia/README.md @@ -8,8 +8,6 @@ Unlike negativo17 and Nobara, we do not manually generate a tarball of the NVIDI on-the-fly from the NVIDIA installer. This ensures that the packages can be easily maintained and updated, as long as the self-extracting NVIDIA installer still has the same command-line options. -One major difference for Terra's distro is that we install the closed-source kernel modules by default, instead of the newer open-source kernel modules. This is because the open-source modules only support GPUs that have a GSP (GPU System Processor), which only includes Turing (RTX 20 series) and newer GPUs. As we would like to still support older GPUs, we install the closed-source modules by default. - ## How Terra unpacks the self-extracting archive Instead of pre-generating the tarball, we run the NVIDIA installer with the `-x` flag to extract the contents directly to the build directory. We then make use of an RPM macro to set the new build directory as that tree. diff --git a/anda/system/nvidia/compat-nvidia-repo/anda.hcl b/anda/system/nvidia/compat-nvidia-repo/anda.hcl index 7bfd3b4224..4b01e5daf7 100644 --- a/anda/system/nvidia/compat-nvidia-repo/anda.hcl +++ b/anda/system/nvidia/compat-nvidia-repo/anda.hcl @@ -5,6 +5,6 @@ project pkg { } labels { subrepo = "nvidia" - weekly = 1 + weekly = 3 } } diff --git a/anda/system/nvidia/compat-nvidia-repo/compat-nvidia-repo.spec b/anda/system/nvidia/compat-nvidia-repo/compat-nvidia-repo.spec index d79eb67d37..6af2b664fa 100644 --- a/anda/system/nvidia/compat-nvidia-repo/compat-nvidia-repo.spec +++ b/anda/system/nvidia/compat-nvidia-repo/compat-nvidia-repo.spec @@ -1,20 +1,16 @@ Name: compat-nvidia-repo -Version: 580.95.05 +Version: 595.71.05 Epoch: 3 -Release: 1%?dist +Release: 1%{?dist} Summary: Compatibility package required by official CUDA packages License: NVIDIA License URL: https://developer.nvidia.com/cuda-toolkit - -BuildArch: noarch - Requires: nvidia-driver >= %{?epoch:%{epoch}:}%{version} Requires: nvidia-driver-cuda >= %{?epoch:%{epoch}:}%{version} Requires: nvidia-driver-cuda-libs >= %{?epoch:%{epoch}:}%{version} Requires: nvidia-driver-libs >= %{?epoch:%{epoch}:}%{version} Requires: nvidia-kmod >= %{?epoch:%{epoch}:}%{version} Requires: nvidia-settings >= %{?epoch:%{epoch}:}%{version} - Provides: cuda-drivers >= %{?epoch:%{epoch}:}%{version} Provides: nvidia-open >= %{?epoch:%{epoch}:}%{version} # Add any versioned provides: @@ -22,6 +18,8 @@ Provides: cuda-drivers-560 >= %{?epoch:%{epoch}:}%{version} Provides: cuda-drivers-565 >= %{?epoch:%{epoch}:}%{version} Provides: nvidia-open-560 >= %{?epoch:%{epoch}:}%{version} Provides: nvidia-open-565 >= %{?epoch:%{epoch}:}%{version} +BuildArch: noarch +Packager: Terra Packaging Team %description Nvidia drivers metapackage required by official CUDA packages. It pulls in all @@ -31,4 +29,5 @@ Nvidia driver components. # Without an empty files section the package is not created. %changelog -%autochangelog +* Mon Apr 13 2026 Gilver E. - 3:595.58.03-2 +- Update spec for Terra packaging team diff --git a/anda/system/nvidia/dkms-nvidia/closed/anda.hcl b/anda/system/nvidia/dkms-nvidia/anda.hcl similarity index 73% rename from anda/system/nvidia/dkms-nvidia/closed/anda.hcl rename to anda/system/nvidia/dkms-nvidia/anda.hcl index d8d0a41a19..6ddfc98572 100644 --- a/anda/system/nvidia/dkms-nvidia/closed/anda.hcl +++ b/anda/system/nvidia/dkms-nvidia/anda.hcl @@ -4,6 +4,7 @@ project pkg { } labels { subrepo = "nvidia" - weekly = 1 + updbranch = 1 + mock = 1 } } diff --git a/anda/system/nvidia/dkms-nvidia/closed/update.rhai b/anda/system/nvidia/dkms-nvidia/closed/update.rhai deleted file mode 100644 index e5eff132c0..0000000000 --- a/anda/system/nvidia/dkms-nvidia/closed/update.rhai +++ /dev/null @@ -1,3 +0,0 @@ -import "andax/nvidia.rhai" as nvidia; - -rpm.version(nvidia::nvidia_driver_version()); diff --git a/anda/system/nvidia/dkms-nvidia/dkms-no-weak-modules.conf b/anda/system/nvidia/dkms-nvidia/dkms-no-weak-modules.conf new file mode 100644 index 0000000000..24f6f95c96 --- /dev/null +++ b/anda/system/nvidia/dkms-nvidia/dkms-no-weak-modules.conf @@ -0,0 +1 @@ +NO_WEAK_MODULES="yes" diff --git a/anda/system/nvidia/dkms-nvidia/open/dkms-nvidia-open.conf b/anda/system/nvidia/dkms-nvidia/dkms-nvidia.conf similarity index 60% rename from anda/system/nvidia/dkms-nvidia/open/dkms-nvidia-open.conf rename to anda/system/nvidia/dkms-nvidia/dkms-nvidia.conf index 5db6994392..c91458b65a 100644 --- a/anda/system/nvidia/dkms-nvidia/open/dkms-nvidia-open.conf +++ b/anda/system/nvidia/dkms-nvidia/dkms-nvidia.conf @@ -2,27 +2,25 @@ PACKAGE_NAME="nvidia" PACKAGE_VERSION="__VERSION_STRING" AUTOINSTALL="yes" -MODULE_VARIANT=kernel-open - # Quote make to avoid DKMS replacing it with "make -j$parallel_jobs KERNELRELEASE=$kernelver" -MAKE[0]="'make' -j$(nproc) -C ${MODULE_VARIANT} KERNEL_UNAME=${kernelver} modules" +MAKE[0]="'make' -j$(nproc) KERNEL_UNAME=${kernelver} modules" BUILT_MODULE_NAME[0]="nvidia" -BUILT_MODULE_LOCATION[0]="${MODULE_VARIANT}" +BUILT_MODULE_LOCATION[0]="kernel-open" DEST_MODULE_LOCATION[0]="/extra" BUILT_MODULE_NAME[1]="nvidia-modeset" -BUILT_MODULE_LOCATION[1]="${MODULE_VARIANT}" +BUILT_MODULE_LOCATION[1]="kernel-open" DEST_MODULE_LOCATION[1]="/extra" BUILT_MODULE_NAME[2]="nvidia-drm" -BUILT_MODULE_LOCATION[2]="${MODULE_VARIANT}" +BUILT_MODULE_LOCATION[2]="kernel-open" DEST_MODULE_LOCATION[2]="/extra" BUILT_MODULE_NAME[3]="nvidia-uvm" -BUILT_MODULE_LOCATION[3]="${MODULE_VARIANT}" +BUILT_MODULE_LOCATION[3]="kernel-open" DEST_MODULE_LOCATION[3]="/extra" BUILT_MODULE_NAME[4]="nvidia-peermem" -BUILT_MODULE_LOCATION[4]="${MODULE_VARIANT}" +BUILT_MODULE_LOCATION[4]="kernel-open" DEST_MODULE_LOCATION[4]="/extra" diff --git a/anda/system/nvidia/dkms-nvidia/open/dkms-nvidia-open.spec b/anda/system/nvidia/dkms-nvidia/dkms-nvidia.spec similarity index 52% rename from anda/system/nvidia/dkms-nvidia/open/dkms-nvidia-open.spec rename to anda/system/nvidia/dkms-nvidia/dkms-nvidia.spec index cd088ec904..e6c840fbb0 100644 --- a/anda/system/nvidia/dkms-nvidia/open/dkms-nvidia-open.spec +++ b/anda/system/nvidia/dkms-nvidia/dkms-nvidia.spec @@ -3,30 +3,34 @@ %global debug_package %{nil} %global modulename nvidia -Name: dkms-%{modulename}-open -Version: 580.95.05 -Release: 1%?dist +Name: dkms-%{modulename} +Version: 595.71.05 +Release: 1%{?dist} Summary: NVIDIA display driver kernel module Epoch: 3 License: NVIDIA License URL: https://www.nvidia.com/object/unix.html -Source0: https://download.nvidia.com/XFree86/Linux-%{_arch}/%{version}/NVIDIA-Linux-%{_arch}-%{version}.run +Source0: https://github.com/NVIDIA/open-gpu-kernel-modules/archive/%{version}/open-gpu-kernel-modules-%{version}.tar.gz Source1: %{name}.conf +Patch0: https://github.com/CachyOS/open-gpu-kernel-modules/commit/211f012865b8ea2ba62c3422f5519cb32395c3e0.patch +Patch1: https://github.com/CachyOS/open-gpu-kernel-modules/commit/92789a5709f64008bee34bb044e33a3de9702eb7.patch BuildRequires: sed -Provides: %{modulename}-open-kmod = %{?epoch:%{epoch}:}%{version} Requires: %{modulename}-kmod-common = %{?epoch:%{epoch}:}%{version} Requires: dkms -Conflicts: akmod-nvidia +Provides: %{modulename}-kmod = %{?epoch:%{epoch}:}%{version} +Provides: %{name}-open = %{?epoch:%{epoch}:}%{version} +Obsoletes: %{name}-open < %{?epoch:%{epoch}:}%{version} +Conflicts: akmod-%{modulename} +Conflicts: %{modulename}-kmod-580xx # Unlike most DKMS packages, this package is NOT noarch! ExclusiveArch: x86_64 aarch64 +Packager: Terra Packaging Team %description This package provides the NVIDIA kernel driver modules. %prep -sh %{SOURCE0} -x --target dkms-nvidia-%{version}-%{_arch} -%setup -T -D -n dkms-nvidia-%{version}-%{_arch} -%autopatch -p1 +%autosetup -p1 -n open-gpu-kernel-modules-%{version} cp -f %{SOURCE1} dkms.conf @@ -35,6 +39,7 @@ sed -i -e 's/__VERSION_STRING/%{version}/g' dkms.conf %build %install +# Create empty tree: mkdir -p %{buildroot}%{_usrsrc}/%{modulename}-%{version}/ cp -fr * %{buildroot}%{_usrsrc}/%{modulename}-%{version}/ rm -f %{buildroot}%{_usrsrc}/%{modulename}-%{version}/*/dkms.conf @@ -42,19 +47,17 @@ rm -f %{buildroot}%{_usrsrc}/%{modulename}-%{version}/*/dkms.conf %post dkms add -m %{modulename} -v %{version} -q --rpm_safe_upgrade || : # Rebuild and make available for the currently running kernel: -dkms build -m %{modulename} -v %{version} -q || : -dkms install -m %{modulename} -v %{version} -q --force || : -dracut --regenerate-all --force --quiet +dkms build -m %{modulename} -v %{version} -q --force +dkms install -m %{modulename} -v %{version} -q --force %preun # Remove all versions from DKMS registry: dkms remove -m %{modulename} -v %{version} -q --all --rpm_safe_upgrade || : -if [ "$1" == 0 ]; then - dracut --regenerate-all --force --quiet -fi %files %{_usrsrc}/%{modulename}-%{version} %changelog -%autochangelog +* Mon Apr 13 2026 Gilver E. - 3:595.58.03-2 +- Update patches for DSC functionality +- Update spec for Terra packaging team diff --git a/anda/system/nvidia/dkms-nvidia/modules.conf b/anda/system/nvidia/dkms-nvidia/modules.conf new file mode 100644 index 0000000000..24f6f95c96 --- /dev/null +++ b/anda/system/nvidia/dkms-nvidia/modules.conf @@ -0,0 +1 @@ +NO_WEAK_MODULES="yes" diff --git a/anda/system/nvidia/dkms-nvidia/open/update.rhai b/anda/system/nvidia/dkms-nvidia/open/update.rhai deleted file mode 100644 index e5eff132c0..0000000000 --- a/anda/system/nvidia/dkms-nvidia/open/update.rhai +++ /dev/null @@ -1,3 +0,0 @@ -import "andax/nvidia.rhai" as nvidia; - -rpm.version(nvidia::nvidia_driver_version()); diff --git a/anda/system/nvidia/dkms-nvidia/update.rhai b/anda/system/nvidia/dkms-nvidia/update.rhai new file mode 100644 index 0000000000..a50e623acd --- /dev/null +++ b/anda/system/nvidia/dkms-nvidia/update.rhai @@ -0,0 +1,3 @@ +import "andax/bump_extras.rhai" as bump; + +rpm.version(bump::madoguchi("nvidia-kmod-common", labels.branch)); diff --git a/anda/system/nvidia/libva-nvidia-driver/libva-nvidia-driver.spec b/anda/system/nvidia/libva-nvidia-driver/libva-nvidia-driver.spec index 6d32b89bea..6e91d4590e 100644 --- a/anda/system/nvidia/libva-nvidia-driver/libva-nvidia-driver.spec +++ b/anda/system/nvidia/libva-nvidia-driver/libva-nvidia-driver.spec @@ -1,5 +1,5 @@ -%global commit0 3d46e26818a9e0eff26a7cd0db581316029d953b -%global date 20250929 +%global commit0 0ba758d54591bf90133f63ca8b29796d51ec1761 +%global date 20260415 %global shortcommit0 %(c=%{commit0}; echo ${c:0:7}) %global upstream_name nvidia-vaapi-driver @@ -10,8 +10,8 @@ Name: libva-nvidia-driver Epoch: 1 -Version: 0.0.14%{!?tag:^%{date}git%{shortcommit0}} -Release: 2%?dist +Version: 0.0.16%{!?tag:^%{date}git%{shortcommit0}} +Release: 1%{?dist} Summary: VA-API user mode driver for Nvidia GPUs License: MIT URL: https://github.com/elFarto/%{upstream_name} diff --git a/anda/system/nvidia/nvidia-container-toolkit/nvidia-container-toolkit.spec b/anda/system/nvidia/nvidia-container-toolkit/nvidia-container-toolkit.spec index c3a38b2725..c0cd6ec7de 100644 --- a/anda/system/nvidia/nvidia-container-toolkit/nvidia-container-toolkit.spec +++ b/anda/system/nvidia/nvidia-container-toolkit/nvidia-container-toolkit.spec @@ -1,6 +1,6 @@ Name: nvidia-container-toolkit -Version: 1.18.0 -Release: 1%?dist +Version: 1.19.0 +Release: 1%{?dist} Summary: NVIDIA Container Toolkit License: Apache-2.0 Group: Development/Tools/Other @@ -46,16 +46,16 @@ mkdir -p %{buildroot}%{_sysconfdir}/nvidia-container-runtime %post if rpm -q --quiet moby-engine; then - nvidia-ctk runtime configure --runtime=docker + nvidia-ctk runtime configure --runtime=docker || : /bin/systemctl --system try-restart docker.service &>/dev/null || : elif rpm -q --quiet containerd; then - nvidia-ctk runtime configure --runtime=containerd + nvidia-ctk runtime configure --runtime=containerd || : /bin/systemctl --system try-restart containerd.service &>/dev/null || : elif rpm -q --quiet cri-o; then - nvidia-ctk runtime configure --runtime=crio + nvidia-ctk runtime configure --runtime=crio || : /bin/systemctl --system try-restart crio.service &>/dev/null || : elif rpm -q --quiet podman; then - nvidia-ctk cdi generate --output=/etc/cdi/nvidia.yaml + nvidia-ctk cdi generate --output=/etc/cdi/nvidia.yaml || : fi %postun diff --git a/anda/system/nvidia/nvidia-driver/70-nvidia-driver.preset b/anda/system/nvidia/nvidia-driver/70-nvidia-driver.preset index f897d23a61..b9645ecb7b 100644 --- a/anda/system/nvidia/nvidia-driver/70-nvidia-driver.preset +++ b/anda/system/nvidia/nvidia-driver/70-nvidia-driver.preset @@ -1,11 +1,3 @@ -# Enable complete power management. From: -# file:///usr/share/doc/nvidia-driver/html/powermanagement.html - -enable nvidia-hibernate.service -enable nvidia-resume.service -enable nvidia-suspend.service -enable nvidia-suspend-then-hibernate.service - # Enable Dynamic Boost. From: # file:///usr/share/doc/nvidia-driver/html/dynamicboost.html diff --git a/anda/system/nvidia/nvidia-driver/alternate-install-present b/anda/system/nvidia/nvidia-driver/alternate-install-present index 4f8206e1ef..0e956593da 100644 --- a/anda/system/nvidia/nvidia-driver/alternate-install-present +++ b/anda/system/nvidia/nvidia-driver/alternate-install-present @@ -1,5 +1,5 @@ The NVIDIA proprietary driver is already installed in this system. It was -installed through a 3d party repository. +installed through a 3rd party repository. Please refer to the following page for additional information and to install optional driver components: diff --git a/anda/system/nvidia/nvidia-driver/anda.hcl b/anda/system/nvidia/nvidia-driver/anda.hcl index 4d1022e455..c74ea60d94 100644 --- a/anda/system/nvidia/nvidia-driver/anda.hcl +++ b/anda/system/nvidia/nvidia-driver/anda.hcl @@ -9,6 +9,6 @@ project "pkg" { labels = { subrepo = "nvidia" mock = 1 - weekly = 1 + weekly = 3 } } diff --git a/anda/system/nvidia/nvidia-driver/nvidia-driver.spec b/anda/system/nvidia/nvidia-driver/nvidia-driver.spec index ea74f3a981..c67ac5ff84 100644 --- a/anda/system/nvidia/nvidia-driver/nvidia-driver.spec +++ b/anda/system/nvidia/nvidia-driver/nvidia-driver.spec @@ -1,6 +1,5 @@ %global debug_package %{nil} -%global __strip %{nil} -%global __brp_strip_comment_note %{nil} +%global __brp_strip %{nil} %global __brp_ldconfig %{nil} %define _build_id_links none @@ -10,28 +9,20 @@ %endif Name: nvidia-driver -Version: 580.95.05 -Release: 1%?dist +Version: 595.71.05 +Release: 1%{?dist} Summary: NVIDIA's proprietary display driver for NVIDIA graphic cards Epoch: 3 License: NVIDIA License URL: http://www.nvidia.com/object/unix.html -ExclusiveArch: %{ix86} x86_64 aarch64 - -%dnl Source0: %{name}-%{version}-i386.tar.xz -%dnl Source1: %{name}-%{version}-x86_64.tar.xz -%dnl Source2: %{name}-%{version}-aarch64.tar.xz Source8: 70-nvidia-driver.preset Source9: 70-nvidia-driver-cuda.preset Source10: 10-nvidia.conf Source13: alternate-install-present - Source40: com.nvidia.driver.metainfo.xml Source41: parse-supported-gpus.py Source42: com.nvidia.driver.png - Source99: nvidia-generate-tarballs.sh - %ifarch x86_64 aarch64 BuildRequires: libappstream-glib %if 0%{?rhel} == 8 @@ -42,17 +33,16 @@ BuildRequires: python3 %endif BuildRequires: systemd-rpm-macros %endif - BuildRequires: wget BuildRequires: coreutils - Requires: nvidia-driver-libs%{?_isa} = %{?epoch:%{epoch}:}%{version} Requires: nvidia-kmod-common = %{?epoch:%{epoch}:}%{version} - Conflicts: nvidia-x11-drv Conflicts: nvidia-x11-drv-470xx Conflicts: xorg-x11-drv-nvidia Conflicts: xorg-x11-drv-nvidia-470xx +ExclusiveArch: %{ix86} x86_64 aarch64 +Packager: Terra Packaging Team %description This package provides the most recent NVIDIA display driver which allows for @@ -65,6 +55,11 @@ version %{version}. Summary: Libraries for %{name} Requires: egl-gbm%{?_isa} >= 2:1.1.2.1 Requires: (egl-wayland%{?_isa} >= 1.1.20 or egl-wayland2%{?_isa} >= 1.0.0~20250806gitd4deb7c-3) +%if %{defined fedora} +%ifarch x86_64 +Requires: (%{name}-libs(x86-32) = %{?epoch:%{epoch}:}%{version}-%{release} if steam(x86-32)) +%endif +%endif Suggests: egl-wayland%{?_isa} >= 1.1.20 Requires: egl-x11%{?_isa} >= 1.0.3 Requires: libvdpau%{?_isa} >= 1.5 @@ -73,17 +68,11 @@ Requires: libglvnd-egl%{?_isa} >= 1.0 Requires: libglvnd-gles%{?_isa} >= 1.0 Requires: libglvnd-glx%{?_isa} >= 1.0 Requires: libglvnd-opengl%{?_isa} >= 1.0 -Requires: libnvidia-ml%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} Requires: vulkan-loader -%if 0%{?fedora} -%ifarch x86_64 -Requires: (%{name}-libs(x86-32) = %{?epoch:%{epoch}:}%{version}-%{release} if steam(x86-32)) -%endif -%endif -# dlopened +# dlopened: Requires: libnvidia-gpucomp%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} Requires: libnvidia-ml%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} - +Requires: %{name}-cuda-libs%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} Conflicts: nvidia-x11-drv-libs Conflicts: nvidia-x11-drv-470xx-libs Conflicts: xorg-x11-drv-nvidia-libs @@ -94,22 +83,20 @@ This package provides the shared libraries for %{name}. %package cuda-libs Summary: Libraries for %{name}-cuda +Requires: %{name}-cuda-libs%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} Provides: %{name}-devel = %{?epoch:%{epoch}:}%{version}-%{release} Obsoletes: %{name}-devel < %{?epoch:%{epoch}:}%{version}-%{release} -Requires: libnvidia-ml = %{?epoch:%{epoch}:}%{version}-%{release} - +# dlopened: %ifarch x86_64 aarch64 Requires: libnvidia-cfg = %{?epoch:%{epoch}:}%{version}-%{release} %endif -%if 0%{?fedora} +Requires: libnvidia-gpucomp%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +Requires: libnvidia-ml = %{?epoch:%{epoch}:}%{version}-%{release} +%if %{defined fedora} %ifarch x86_64 Requires: (%{name}-cuda-libs(x86-32) = %{?epoch:%{epoch}:}%{version}-%{release} if steam(x86-32)) %endif %endif -# dlopened: -Requires: libnvidia-gpucomp%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} -Requires: libnvidia-ml = %{?epoch:%{epoch}:}%{version}-%{release} - Conflicts: xorg-x11-drv-nvidia-cuda-libs Conflicts: xorg-x11-drv-nvidia-470xx-cuda-libs @@ -120,13 +107,13 @@ This package provides the CUDA libraries for %{name}-cuda. Summary: NVIDIA OpenGL-based Framebuffer Capture libraries Provides: nvidia-driver-NvFBCOpenGL = %{?epoch:%{epoch}:}%{version}-%{release} Obsoletes: nvidia-driver-NvFBCOpenGL < %{?epoch:%{epoch}:}%{version}-%{release} -%if 0%{?fedora} +# dlopened (libnvidia-encode.so): +Requires: %{name}-cuda-libs%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +%if %{defined fedora} %ifarch x86_64 Requires: (libnvidia-fbc(x86-32) = %{?epoch:%{epoch}:}%{version}-%{release} if steam(x86-32)) %endif %endif -# dlopened: -Requires: %{name}-cuda-libs%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} %description -n libnvidia-fbc This library provides a high performance, low latency interface to capture and @@ -136,11 +123,7 @@ graphics scenarios. %package -n libnvidia-gpucomp Summary: NVIDIA library for shader compilation (nvgpucomp) -%if 0%{?fedora} -%ifarch x86_64 Requires: (libnvidia-gpucomp(x86-32) = %{?epoch:%{epoch}:}%{version}-%{release} if steam(x86-32)) -%endif -%endif %description -n libnvidia-gpucomp This package contains the private libnvidia-gpucomp runtime library which is used by @@ -150,12 +133,12 @@ other driver components. Summary: NVIDIA Management Library (NVML) Provides: cuda-nvml%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} Provides: nvidia-driver-NVML = %{?epoch:%{epoch}:}%{version}-%{release} -%if 0%{?fedora} +Obsoletes: nvidia-driver-NVML < %{?epoch:%{epoch}:}%{version}-%{release} +%if %{defined fedora} %ifarch x86_64 Requires: (libnvidia-ml(x86-32) = %{?epoch:%{epoch}:}%{version}-%{release} if steam(x86-32)) %endif %endif -Obsoletes: nvidia-driver-NVML < %{?epoch:%{epoch}:}%{version}-%{release} %description -n libnvidia-ml A C-based API for monitoring and managing various states of the NVIDIA GPU @@ -179,9 +162,8 @@ Summary: CUDA integration for %{name} Requires: %{name}-cuda-libs%{?_isa} = %{?epoch:%{epoch}:}%{version} Requires: nvidia-kmod-common = %{?epoch:%{epoch}:}%{version} Requires: nvidia-persistenced = %{?epoch:%{epoch}:}%{version} +Requires: (ocl-icd or OpenCL-ICD-Loader) Requires: opencl-filesystem -Requires: ocl-icd - Conflicts: xorg-x11-drv-nvidia-cuda Conflicts: xorg-x11-drv-nvidia-470xx-cuda @@ -194,7 +176,6 @@ Summary: X.org X11 NVIDIA driver and extensions Requires: %{name}%{?_isa} = %{?epoch:%{epoch}:}%{version} Requires: xorg-x11-server-Xorg%{?_isa} Supplements: (nvidia-driver and xorg-x11-server-Xorg) - Conflicts: xorg-x11-drv-nvidia Conflicts: xorg-x11-drv-nvidia-470xx @@ -203,11 +184,11 @@ The NVIDIA X.org X11 driver and associated components. %endif %endif - + %prep source %{SOURCE99} export VERSION=%{version} -%ifarch %ix86 +%ifarch %{ix86} export ARCH=x86_64 %else export ARCH=%{_arch} @@ -232,6 +213,13 @@ rm -f libnvidia-pkcs11.so.%{version} %endif %endif +# Avoid harmless Vulkan loader message: +# WARNING: [Loader Message] Code 0 : Path to given binary /usr/lib64/libGLX_nvidia.so.590.48.01 +# was found to differ from OS loaded path /usr/lib64/libGLX_nvidia.so.0 +# See also https://github.com/negativo17/nvidia-driver/issues/195 +mv libGLX_nvidia.so.%{version} libGLX_nvidia.so.0 +ln -sf libGLX_nvidia.so.0 libGLX_nvidia.so.%{version} + # Create symlinks for shared objects ldconfig -vn . @@ -294,7 +282,7 @@ install -p -m 0755 -D nvidia.icd %{buildroot}%{_sysconfdir}/OpenCL/vendors/nvidi # Binaries mkdir -p %{buildroot}%{_bindir} -install -p -m 0755 nvidia-{debugdump,smi,cuda-mps-control,cuda-mps-server,bug-report.sh,ngx-updater,powerd} %{buildroot}%{_bindir} +install -p -m 0755 nvidia-{debugdump,smi,cuda-mps-control,cuda-mps-server,ngx-updater,powerd} %{buildroot}%{_bindir} # Man pages mkdir -p %{buildroot}%{_mandir}/man1/ @@ -302,7 +290,7 @@ install -p -m 0644 nvidia-{smi,cuda-mps-control}*.gz %{buildroot}%{_mandir}/man1 %if 0%{?fedora} || 0%{?rhel} < 10 # X stuff -install -p -m 0644 -D %{SOURCE10} %{buildroot}%{_sysconfdir}/X11/xorg.conf.d/10-nvidia.conf +install -p -m 0644 -D nvidia-drm-outputclass.conf %{buildroot}%{_sysconfdir}/X11/xorg.conf.d/10-nvidia.conf install -p -m 0755 -D nvidia_drv.so %{buildroot}%{_libdir}/xorg/modules/drivers/nvidia_drv.so install -p -m 0755 -D libglxserver_nvidia.so.%{version} %{buildroot}%{_libdir}/xorg/modules/extensions/libglxserver_nvidia.so %endif @@ -321,9 +309,7 @@ install -p -m 0644 nvoptix.bin %{buildroot}%{_datadir}/nvidia/ mkdir -p %{buildroot}%{_systemd_util_dir}/system-preset/ install -p -m 0644 %{SOURCE8} %{SOURCE9} %{buildroot}%{_systemd_util_dir}/system-preset/ mkdir -p %{buildroot}%{_unitdir}/ -install -p -m 0644 systemd/system/*.service %{buildroot}%{_unitdir}/ -install -p -m 0755 systemd/nvidia-sleep.sh %{buildroot}%{_bindir}/ -install -p -m 0755 -D systemd/system-sleep/nvidia %{buildroot}%{_systemd_util_dir}/system-sleep/nvidia +cp -frv systemd/system/systemd-* systemd/system/nvidia-powerd.service %{buildroot}%{_unitdir}/ install -p -m 0644 -D nvidia-dbus.conf %{buildroot}%{_datadir}/dbus-1/system.d/nvidia-dbus.conf # Ignore powerd binary exiting if hardware is not present @@ -360,25 +346,13 @@ appstream-util validate --nonet %{buildroot}%{_metainfodir}/com.nvidia.driver.me %ifarch x86_64 aarch64 %post -%systemd_post nvidia-hibernate.service %systemd_post nvidia-powerd.service -%systemd_post nvidia-resume.service -%systemd_post nvidia-suspend.service -%systemd_post nvidia-suspend-then-hibernate.service %preun -%systemd_preun nvidia-hibernate.service %systemd_preun nvidia-powerd.service -%systemd_preun nvidia-resume.service -%systemd_preun nvidia-suspend.service -%systemd_preun nvidia-suspend-then-hibernate.service %postun -%systemd_postun nvidia-hibernate.service %systemd_postun nvidia-powerd.service -%systemd_postun nvidia-resume.service -%systemd_postun nvidia-suspend.service -%systemd_postun nvidia-suspend-then-hibernate.service %endif @@ -388,24 +362,25 @@ appstream-util validate --nonet %{buildroot}%{_metainfodir}/com.nvidia.driver.me %license LICENSE %doc NVIDIA_Changelog README.txt html supported-gpus/supported-gpus.json %dir %{_sysconfdir}/nvidia -%{_bindir}/nvidia-bug-report.sh %{_bindir}/nvidia-ngx-updater %ifarch x86_64 %{_bindir}/nvidia-pcc %endif %{_bindir}/nvidia-powerd -%{_bindir}/nvidia-sleep.sh %{_metainfodir}/com.nvidia.driver.metainfo.xml %{_datadir}/dbus-1/system.d/nvidia-dbus.conf %{_datadir}/nvidia/nvidia-application-profiles* %{_datadir}/pixmaps/com.nvidia.driver.png %{_systemd_util_dir}/system-preset/70-nvidia-driver.preset -%{_systemd_util_dir}/system-sleep/nvidia -%{_unitdir}/nvidia-hibernate.service %{_unitdir}/nvidia-powerd.service -%{_unitdir}/nvidia-resume.service -%{_unitdir}/nvidia-suspend.service -%{_unitdir}/nvidia-suspend-then-hibernate.service +%dir %{_unitdir}/systemd-suspend.service.d +%{_unitdir}/systemd-suspend.service.d/nvidia-suspend-nofreeze.conf +%dir %{_unitdir}/systemd-hibernate.service.d +%{_unitdir}/systemd-hibernate.service.d/nvidia-suspend-nofreeze.conf +%dir %{_unitdir}/systemd-suspend-then-hibernate.service.d +%{_unitdir}/systemd-suspend-then-hibernate.service.d/nvidia-suspend-nofreeze.conf +%dir %{_unitdir}/systemd-hybrid-sleep.service.d +%{_unitdir}/systemd-hybrid-sleep.service.d/nvidia-suspend-nofreeze.conf %if 0%{?fedora} < 42 || 0%{?rhel} %{_sysconfdir}/dnf/plugins/needs-restarting.d/%{name}.conf %endif @@ -459,7 +434,6 @@ appstream-util validate --nonet %{buildroot}%{_metainfodir}/com.nvidia.driver.me %{_libdir}/libnvidia-glcore.so.%{version} %{_libdir}/libnvidia-glsi.so.%{version} %{_libdir}/libnvidia-glvkspirv.so.%{version} -%{_libdir}/libnvidia-gpucomp.so.%{version} %{_libdir}/libnvidia-tls.so.%{version} %{_libdir}/vdpau/libvdpau_nvidia.so.1 %{_libdir}/vdpau/libvdpau_nvidia.so.%{version} @@ -469,20 +443,20 @@ appstream-util validate --nonet %{buildroot}%{_metainfodir}/com.nvidia.driver.me %{_libdir}/libnvidia-api.so.1 %{_libdir}/libnvidia-ngx.so.1 %{_libdir}/libnvidia-ngx.so.%{version} +%{_libdir}/libnvidia-present.so.%{version} %{_libdir}/libnvidia-rtcore.so.%{version} %{_libdir}/libnvoptix.so.1 %{_libdir}/libnvoptix.so.%{version} %endif %ifarch x86_64 %{_datadir}/vulkansc/icd.d/nvidia_icd.%{_target_cpu}.json -%if v"%{version}" > v"570.144" -%{_libdir}/libnvidia-present.so.%{version} -%endif %{_libdir}/libnvidia-vksc-core.so.1 %{_libdir}/libnvidia-vksc-core.so.%{version} %dir %{_libdir}/nvidia %dir %{_libdir}/nvidia/wine -%{_libdir}/nvidia/wine/*.dll +%{_libdir}/nvidia/wine/_nvngx.dll +%{_libdir}/nvidia/wine/nvngx.dll +%{_libdir}/nvidia/wine/nvngx_dlssg.dll %endif %files cuda-libs @@ -503,12 +477,11 @@ appstream-util validate --nonet %{buildroot}%{_metainfodir}/com.nvidia.driver.me %{_libdir}/libnvidia-opticalflow.so.%{version} %{_libdir}/libnvidia-ptxjitcompiler.so.1 %{_libdir}/libnvidia-ptxjitcompiler.so.%{version} +%{_libdir}/libnvidia-tileiras.so.%{version} %ifarch x86_64 aarch64 %{_libdir}/libcudadebugger.so.1 %{_libdir}/libcudadebugger.so.%{version} -%if v"%{version}" > v"570.144" %{_libdir}/libnvidia-nvvm70.so.4 -%endif %{_libdir}/libnvidia-sandboxutils.so.1 %{_libdir}/libnvidia-sandboxutils.so.%{version} %endif @@ -532,4 +505,5 @@ appstream-util validate --nonet %{buildroot}%{_metainfodir}/com.nvidia.driver.me %{_libdir}/libnvidia-ml.so.%{version} %changelog -%autochangelog +* Mon Apr 13 2026 Gilver E. - 3:595.58.03-2 +- Update spec for Terra packaging team diff --git a/anda/system/nvidia/nvidia-driver/nvidia-generate-tarballs.sh b/anda/system/nvidia/nvidia-driver/nvidia-generate-tarballs.sh index 37a41b0bc3..40942b422f 100755 --- a/anda/system/nvidia/nvidia-driver/nvidia-generate-tarballs.sh +++ b/anda/system/nvidia/nvidia-driver/nvidia-generate-tarballs.sh @@ -17,7 +17,17 @@ set_vars() { run_file_get() { printf "Downloading installer ${RUN_FILE}... " - [[ -f $RUN_FILE ]] || wget -c -q ${DL_SITE}/${PLATFORM}/${VERSION}/$RUN_FILE + if [[ ! -f $RUN_FILE ]]; then + # Orgininal comment from Negativo: "This is getting ridiculous" + # My comment: It sure fucking is. + if wget -q -S --spider https://download.nvidia.com/XFree86/${PLATFORM}/${VERSION}/$RUN_FILE; then + wget -q https://download.nvidia.com/XFree86/${PLATFORM}/${VERSION}/$RUN_FILE + elif wget -q -S --spider https://us.download.nvidia.com/XFree86/${PLATFORM}/${VERSION}/$RUN_FILE; then + wget -q https://us.download.nvidia.com/XFree86/${PLATFORM}/${VERSION}/$RUN_FILE + else + wget -q https://us.download.nvidia.com/tesla/${VERSION}/$RUN_FILE + fi + fi printf "OK\n" } @@ -26,8 +36,8 @@ run_file_extract() { sh ${RUN_FILE} --extract-only --target ${TEMP_UNPACK} } -cleanup_folder() { +cleanup_folder() { printf "Cleaning up binaries... " cd ${TEMP_UNPACK} @@ -36,24 +46,32 @@ cleanup_folder() { # - Compiled from source # - Interactive installer files # - GLVND GL libraries - # - Internal development only libraries - rm -fr \ + # - GLVND test scripts + # - Closed source modules + # - Open source modules with precompiled c++ code + rm -r \ nvidia-xconfig* \ nvidia-persistenced* \ nvidia-modprobe* \ - libnvidia-gtk* libnvidia-wayland-client* nvidia-settings* \ + libnvidia-gtk*.so* nvidia-settings* \ libGLESv1_CM.so.* libGLESv2.so.* libGLdispatch.so.* libOpenGL.so.* libGLX.so.* libGL.so.1* libEGL.so.1* \ libnvidia-egl-wayland.so.* libnvidia-egl-gbm.so.* libnvidia-egl-xcb.so.* libnvidia-egl-xlib.so.* \ + libnvidia-egl-wayland2.so.* \ libOpenCL.so.1* \ libEGL.so.${VERSION} \ - nvidia-installer* .manifest make* mk* tls_test* libglvnd_install_checker + nvidia-installer* .manifest make* mk* libglvnd_install_checker \ + 15_nvidia_gbm.json 10_nvidia_wayland.json 20_nvidia_xcb.json 20_nvidia_xlib.json \ + 09_nvidia_wayland2.json \ + kernel kernel-open if [ "${ARCH}" == x86_64 ]; then - rm -fr \ + rm -r \ + libnvidia-wayland-client.so* \ 32/libGLESv1_CM.so.* 32/libGLESv2.so.* 32/libGLdispatch.so.* 32/libOpenGL.so.* 32/libGLX.so.* 32/libGL.so.1* 32/libEGL.so.1* \ 32/libOpenCL.so.1* \ - 32/libGL.so.${VERSION} 32/libEGL.so.${VERSION} \ - 32/libnvidia-egl-wayland.so.* 32/libnvidia-egl-gbm.so.* 32/libnvidia-egl-xcb.so.* 32/libnvidia-egl-xlib.so.* + 32/libnvidia-egl-wayland.so.* 32/libnvidia-egl-gbm.so.* 32/libnvidia-egl-xcb.so.* 32/libnvidia-egl-xlib.so.* \ + 32/libnvidia-egl-wayland2.so.* \ + 32/libglvnd_install_checker cp -f *.json* 32/ fi @@ -64,37 +82,29 @@ cleanup_folder() { } create_tarball() { - - KMOD=nvidia-kmod-${VERSION}-${ARCH} KMOD_COMMON=nvidia-kmod-common-${VERSION} USR_64=nvidia-driver-${VERSION}-${ARCH} + USR_32=nvidia-driver-${VERSION}-i386 - mkdir ${KMOD} ${KMOD_COMMON} ${USR_64} - mv ${TEMP_UNPACK}/kernel* ${KMOD}/ - mv ${TEMP_UNPACK}/firmware ${KMOD_COMMON}/ + rm -rf ${KMOD_COMMON} ${USR_64} ${USR_32} + mkdir ${KMOD_COMMON} ${USR_64} + mv ${TEMP_UNPACK}/firmware ${TEMP_UNPACK}/nvidia-bug-report.sh ${KMOD_COMMON}/ if [ "$ARCH" == x86_64 ]; then - - USR_32=nvidia-driver-${VERSION}-i386 - mkdir ${USR_32} mv ${TEMP_UNPACK}/32/* ${USR_32}/ rm -fr ${TEMP_UNPACK}/32 - + else + USR_32= fi mv ${TEMP_UNPACK}/* ${USR_64}/ - rm -fr ${TEMP_UNPACK} - for tarball in ${KMOD} ${KMOD_COMMON} ${USR_64} ${USR_32}; do - + for tarball in ${KMOD_COMMON} ${USR_64} ${USR_32}; do printf "Creating tarball $tarball... " - # XZ_OPT='-T0' tar --remove-files -cJf $tarball.tar.xz $tarball - printf "OK\n" - done } @@ -114,4 +124,4 @@ create_tarball() { # cleanup_folder # create_tarball -# popd \ No newline at end of file +# popd diff --git a/anda/system/nvidia/nvidia-kmod-common/MODULE_VARIANT.txt b/anda/system/nvidia/nvidia-kmod-common/MODULE_VARIANT.txt deleted file mode 100644 index b10acb2a04..0000000000 --- a/anda/system/nvidia/nvidia-kmod-common/MODULE_VARIANT.txt +++ /dev/null @@ -1,17 +0,0 @@ -# This variable determines what kind of modules get installed on the system -# until the Nvidia driver provides only the open source variant. -# -# The name of the variable is the name of the folder that hosts the kernel -# module code inside the driver installer: -# -# +-------------+---------------------+----------------+ -# | Value | Type | License type | -# +-------------+---------------------+----------------+ -# | kernel | Proprietary drivers | NVIDIA license | -# +-------------+---------------------+----------------+ -# | kernel-open | Open source drivers | Dual MIT/GPL | -# +-------------+---------------------+----------------+ - -# TERRA-SPECIFIC NOTES: -# The default module versions have been added to the DKMS and Akmods packages. -# This file now exists only to explain how the variable works. diff --git a/anda/system/nvidia/nvidia-kmod-common/anda.hcl b/anda/system/nvidia/nvidia-kmod-common/anda.hcl index d0bd9685e5..8afbe4682c 100644 --- a/anda/system/nvidia/nvidia-kmod-common/anda.hcl +++ b/anda/system/nvidia/nvidia-kmod-common/anda.hcl @@ -1,10 +1,10 @@ project "pkg" { + arches = ["x86_64"] rpm { spec = "nvidia-kmod-common.spec" } - arches = ["x86_64"] labels = { subrepo = "nvidia" - weekly = 1 + updbranch = 1 } } diff --git a/anda/system/nvidia/nvidia-kmod-common/nvidia-boot-update b/anda/system/nvidia/nvidia-kmod-common/nvidia-boot-update index 142d7ca48a..83c13dd144 100755 --- a/anda/system/nvidia/nvidia-kmod-common/nvidia-boot-update +++ b/anda/system/nvidia/nvidia-kmod-common/nvidia-boot-update @@ -3,7 +3,7 @@ # EL8 (grub2 with BootLoaderSpec patches) # -# kernel options: grub.cfg + grubenv + /etc/kernel/cmdline +# kernel options: grub.cfg + grubenv # kernel options in /boot/loader/entries/*.conf use kernelopts from /boot/grub2/grubenv # grubby # - updates kernelopts in /boot/grub2/grubenv @@ -143,15 +143,16 @@ post() { fi # Edit /etc/kernel/cmdline - for param in $CMDLINE_ARGS_NVIDIA; do - grep -q $param /etc/kernel/cmdline - [ $? -eq 1 ] && sed -i -e "s|^.*|& $param|" /etc/kernel/cmdline - done - for param in $CMDLINE_ARGS_ALWAYS_REMOVE; do - grep -q $param /etc/kernel/cmdline - [ $? -eq 0 ] && sed -i -e "s| $param||" /etc/kernel/cmdline - done - + if [ -f /etc/kernel/cmdline ]; then + for param in $CMDLINE_ARGS_NVIDIA; do + grep -q $param /etc/kernel/cmdline + [ $? -eq 1 ] && sed -i -e "s|^.*|& $param|" /etc/kernel/cmdline + done + for param in $CMDLINE_ARGS_ALWAYS_REMOVE; do + grep -q $param /etc/kernel/cmdline + [ $? -eq 0 ] && sed -i -e "s| $param||" /etc/kernel/cmdline + done + fi } preun() { @@ -182,11 +183,12 @@ preun() { fi # Edit /etc/kernel/cmdline - for param in $CMDLINE_ARGS_NVIDIA; do - grep -q $param /etc/kernel/cmdline - [ $? -eq 0 ] && sed -i -e "s| $param||" /etc/kernel/cmdline - done - + if [ -f /etc/kernel/cmdline ]; then + for param in $CMDLINE_ARGS_NVIDIA; do + grep -q $param /etc/kernel/cmdline + [ $? -eq 0 ] && sed -i -e "s| $param||" /etc/kernel/cmdline + done + fi } case "$1" in diff --git a/anda/system/nvidia/nvidia-kmod-common/nvidia-kmod-common.spec b/anda/system/nvidia/nvidia-kmod-common/nvidia-kmod-common.spec index b2488d0cac..9d88534098 100644 --- a/anda/system/nvidia/nvidia-kmod-common/nvidia-kmod-common.spec +++ b/anda/system/nvidia/nvidia-kmod-common/nvidia-kmod-common.spec @@ -5,34 +5,31 @@ %global __brp_strip %{nil} Name: nvidia-kmod-common -Version: 580.95.05 -Release: 1%?dist +Version: 595.71.05 +Release: 1%{?dist} Summary: Common file for NVIDIA's proprietary driver kernel modules Epoch: 3 License: NVIDIA License URL: http://www.nvidia.com/object/unix.html - -BuildArch: noarch - Source0: http://download.nvidia.com/XFree86/Linux-x86_64/%{version}/NVIDIA-Linux-x86_64-%{version}.run -Source16: MODULE_VARIANT.txt Source17: nvidia-boot-update -Source18: nvidia-modeset.conf -Source19: nvidia.conf -Source20: 60-nvidia.rules -Source21: 99-nvidia.conf - +Source19: nvidia-modeset.conf +Source20: nvidia.conf +Source21: 60-nvidia.rules +Source24: 99-nvidia.conf # UDev rule location (_udevrulesdir) and systemd macros: BuildRequires: systemd-rpm-macros - Requires: dracut Requires: nvidia-modprobe Requires: nvidia-driver = %{?epoch:%{epoch}:}%{version} Requires: nvidia-driver-libs = %{?epoch:%{epoch}:}%{version} -Requires: (nvidia-open-kmod = %{?epoch:%{epoch}:}%{version} or nvidia-kmod = %{?epoch:%{epoch}:}%{version}) +Requires: nvidia-kmod = %{?epoch:%{epoch}:}%{version} +Requires: gcc-c++ Provides: nvidia-kmod-common = %{?epoch:%{epoch}:}%{version} -Provides: nvidia-open-kmod-common = %{?epoch:%{epoch}:}%{version} +Obsoletes: nvidia-open-kmod-common < %{?epoch:%{epoch}:}%{version} Obsoletes: cuda-nvidia-kmod-common < %{?epoch:%{epoch}:}%{version} +BuildArch: noarch +Packager: Terra Packaging Team %description This package provides the common files required by all NVIDIA kernel module @@ -47,47 +44,37 @@ sh %{SOURCE0} -x --target nvidia-kmod-%{version}-x86_64 install -p -m 0755 -D %{SOURCE17} %{buildroot}%{_bindir}/nvidia-boot-update # Nvidia modesetting support: -install -p -m 0644 -D %{SOURCE18} %{buildroot}%{_sysconfdir}/modprobe.d/nvidia-modeset.conf +install -p -m 0644 -D %{SOURCE19} %{buildroot}%{_sysconfdir}/modprobe.d/nvidia-modeset.conf # Load nvidia-uvm, enable complete power management: -install -p -m 0644 -D %{SOURCE19} %{buildroot}%{_modprobedir}/nvidia.conf +install -p -m 0644 -D %{SOURCE20} %{buildroot}%{_modprobedir}/nvidia.conf # Avoid Nvidia modules getting in the initrd: -install -p -m 0644 -D %{SOURCE21} %{buildroot}%{_dracut_conf_d}/99-nvidia.conf +install -p -m 0644 -D %{SOURCE24} %{buildroot}%{_dracut_conf_d}/99-nvidia.conf # UDev rules # https://github.com/NVIDIA/nvidia-modprobe/blob/master/modprobe-utils/nvidia-modprobe-utils.h#L33-L46 # https://github.com/negativo17/nvidia-kmod-common/issues/11 # https://github.com/negativo17/nvidia-driver/issues/27 -install -p -m 644 -D %{SOURCE20} %{buildroot}%{_udevrulesdir}/60-nvidia.rules +install -p -m 644 -D %{SOURCE21} %{buildroot}%{_udevrulesdir}/60-nvidia.rules # Firmware files: mkdir -p %{buildroot}%{_prefix}/lib/firmware/nvidia/%{version}/ install -p -m 644 firmware/* %{buildroot}%{_prefix}/lib/firmware/nvidia/%{version} +# Bug report script +install -p -m 755 -D nvidia-bug-report.sh %{buildroot}%{_bindir}/nvidia-bug-report.sh + %post %{_bindir}/nvidia-boot-update post -# Old kernel.conf rewritten as a doc file. -cp %{SOURCE18} . - -# Fallback service. Fall back to Nouveau if NVIDIA drivers fail. -# This is actually from RPM Fusion. -%dnl install -Dm644 %{SOURCE22} -t %{buildroot}%{_unitdir} -%dnl install -Dm644 %{SOURCE23} -t %{buildroot}%{_udevrulesdir} - -%pre -# Remove the kernel command line adjustments one last time when doing an upgrade -# from a version that was still setting up the command line parameters: -if [ "$1" -eq "2" ] && [ -x %{_bindir}/nvidia-boot-update ]; then +%preun +if [ "$1" -eq "0" ]; then %{_bindir}/nvidia-boot-update preun - fi ||: -%triggerin -- nvidia-kmod,nvidia-open-kmod -dracut --regenerate-all --force - %files +%{_bindir}/nvidia-bug-report.sh %{_dracut_conf_d}/99-nvidia.conf %{_modprobedir}/nvidia.conf %dir %{_prefix}/lib/firmware @@ -98,4 +85,5 @@ dracut --regenerate-all --force %{_udevrulesdir}/60-nvidia.rules %changelog -%autochangelog +* Mon Apr 13 2026 Gilver E. - 3:595.58.03-2 +- Update spec for Terra packaging team diff --git a/anda/system/nvidia/nvidia-kmod-common/update.rhai b/anda/system/nvidia/nvidia-kmod-common/update.rhai index e5eff132c0..3b53503809 100644 --- a/anda/system/nvidia/nvidia-kmod-common/update.rhai +++ b/anda/system/nvidia/nvidia-kmod-common/update.rhai @@ -1,3 +1,3 @@ -import "andax/nvidia.rhai" as nvidia; +import "andax/bump_extras.rhai" as bump; -rpm.version(nvidia::nvidia_driver_version()); +rpm.version(bump::madoguchi("nvidia-driver", labels.branch)); diff --git a/anda/system/nvidia/nvidia-kmod/closed/anda.hcl b/anda/system/nvidia/nvidia-kmod/anda.hcl similarity index 85% rename from anda/system/nvidia/nvidia-kmod/closed/anda.hcl rename to anda/system/nvidia/nvidia-kmod/anda.hcl index 7bc1d131cc..ff85d8b22f 100644 --- a/anda/system/nvidia/nvidia-kmod/closed/anda.hcl +++ b/anda/system/nvidia/nvidia-kmod/anda.hcl @@ -5,6 +5,6 @@ project "pkg" { labels { mock = 1 subrepo = "nvidia" - weekly =1 + updbranch = 1 } } diff --git a/anda/system/nvidia/nvidia-kmod/closed/update.rhai b/anda/system/nvidia/nvidia-kmod/closed/update.rhai deleted file mode 100644 index e5eff132c0..0000000000 --- a/anda/system/nvidia/nvidia-kmod/closed/update.rhai +++ /dev/null @@ -1,3 +0,0 @@ -import "andax/nvidia.rhai" as nvidia; - -rpm.version(nvidia::nvidia_driver_version()); diff --git a/anda/system/nvidia/nvidia-kmod/nvidia-kmod.spec b/anda/system/nvidia/nvidia-kmod/nvidia-kmod.spec new file mode 100644 index 0000000000..35e6ac4a54 --- /dev/null +++ b/anda/system/nvidia/nvidia-kmod/nvidia-kmod.spec @@ -0,0 +1,72 @@ +%global debug_package %{nil} + +# Build only the akmod package and no kernel module packages: +%define buildforkernels akmod + +# Build flags should be inherited from the kernel! +%undefine _auto_set_build_flags + +Name: nvidia-kmod +Version: 595.71.05 +Release: 1%{?dist} +Summary: NVIDIA display driver kernel module +Epoch: 3 +License: NVIDIA License +URL: http://www.nvidia.com/object/unix.html +Source0: https://github.com/NVIDIA/open-gpu-kernel-modules/archive/%{version}/open-gpu-kernel-modules-%{version}.tar.gz +Patch0: https://github.com/CachyOS/open-gpu-kernel-modules/commit/211f012865b8ea2ba62c3422f5519cb32395c3e0.patch +Patch1: https://github.com/CachyOS/open-gpu-kernel-modules/commit/92789a5709f64008bee34bb044e33a3de9702eb7.patch +BuildRequires: gcc-c++ +BuildRequires: kmodtool +Requires: nvidia-kmod-common = %{?epoch:%{epoch}:}%{version} +Requires: akmods +Provides: akmod-nvidia-open = %{?epoch:%{epoch}:}%{version} +Obsoletes: akmod-nvidia-open < %{?epoch:%{epoch}:}%{version} +Conflicts: dkms-nvidia +Conflicts: nvidia-kmod-580xx +ExclusiveArch: x86_64 aarch64 +Packager: Terra Packaging Team + +# kmodtool does its magic here: +%{expand:%(kmodtool --target %{_target_cpu} --repo terrapkg.com --kmodname %{name} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null) } + +%description +The NVidia %{version} display driver kernel module for kernel %{kversion}. + +%prep +# Error out if there was something wrong with kmodtool: +%{?kmodtool_check} +# Print kmodtool output for debugging purposes: +kmodtool --target %{_target_cpu} --repo terrapkg.com --kmodname %{name} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null + +%setup -c + +pushd open-gpu-kernel-modules-%{version} +%autopatch -p1 +popd + +rm -f open-gpu-kernel-modules-%{version}/dkms.conf + +for kernel_version in %{?kernel_versions}; do + cp -fr open-gpu-kernel-modules-%{version} _kmod_build_${kernel_version%%___*} +done + +%build +for kernel_version in %{?kernel_versions}; do + pushd _kmod_build_${kernel_version%%___*}/ + make %{?_smp_mflags} KERNEL_UNAME="${kernel_version%%___*}" modules + popd +done + +%install +for kernel_version in %{?kernel_versions}; do + mkdir -p %{buildroot}/%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/ + install -p -m 0755 _kmod_build_${kernel_version%%___*}/kernel-open/*.ko \ + %{buildroot}/%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/ +done +%{?akmod_install} + +%changelog +* Mon Apr 13 2026 Gilver E. - 3:595.58.03-3 +- Update patches for DSC functionality +- Update spec for Terra packaging team diff --git a/anda/system/nvidia/nvidia-kmod/open/nvidia-open-kmod.spec b/anda/system/nvidia/nvidia-kmod/open/nvidia-open-kmod.spec deleted file mode 100644 index 6910bac44f..0000000000 --- a/anda/system/nvidia/nvidia-kmod/open/nvidia-open-kmod.spec +++ /dev/null @@ -1,65 +0,0 @@ -# Build only the akmod package and no kernel module packages: -%define buildforkernels akmod - -%global debug_package %{nil} - -Name: nvidia-open-kmod -Version: 580.95.05 -Release: 1%?dist -Summary: NVIDIA display driver kernel module -Epoch: 3 -License: NVIDIA License -URL: http://www.nvidia.com/object/unix.html -ExclusiveArch: x86_64 aarch64 - -Source0: http://download.nvidia.com/XFree86/Linux-%{_arch}/%{version}/NVIDIA-Linux-%{_arch}-%{version}.run -Requires: nvidia-kmod-common = %{?epoch:%{epoch}:}%{version} -Requires: akmods - - -# Get the needed BuildRequires (in parts depending on what we build for): -BuildRequires: kmodtool - -# kmodtool does its magic here: -%{expand:%(kmodtool --target %{_target_cpu} --repo terra.fyralabs.com --kmodname %{name} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null) } - -%description -The NVidia %{version} display driver kernel module for kernel %{kversion}. - -%prep -# Error out if there was something wrong with kmodtool: -%{?kmodtool_check} -# Print kmodtool output for debugging purposes: -kmodtool --target %{_target_cpu} --repo terra.fyralabs.com --kmodname %{name} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null - -sh %{SOURCE0} -x --target nvidia-kmod-%{version}-%{_arch} -%setup -T -D -n nvidia-kmod-%{version}-%{_arch} -%autopatch -p1 - -rm -f */dkms.conf - -for kernel_version in %{?kernel_versions}; do - mkdir _kmod_build_${kernel_version%%___*} - cp -fr kernel* _kmod_build_${kernel_version%%___*} -done - -%build -export MODULE_VARIANT=kernel-open -for kernel_version in %{?kernel_versions}; do - pushd _kmod_build_${kernel_version%%___*}/ - make %{?_smp_mflags} -C ${MODULE_VARIANT} \ - KERNEL_UNAME="${kernel_version%%___*}" modules - popd -done - -%install -export MODULE_VARIANT=kernel-open -for kernel_version in %{?kernel_versions}; do - mkdir -p %{buildroot}/%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/ - install -p -m 0755 _kmod_build_${kernel_version%%___*}/${MODULE_VARIANT}/*.ko \ - %{buildroot}/%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/ -done -%{?akmod_install} - -%changelog -%autochangelog diff --git a/anda/system/nvidia/nvidia-kmod/open/update.rhai b/anda/system/nvidia/nvidia-kmod/open/update.rhai deleted file mode 100644 index e5eff132c0..0000000000 --- a/anda/system/nvidia/nvidia-kmod/open/update.rhai +++ /dev/null @@ -1,3 +0,0 @@ -import "andax/nvidia.rhai" as nvidia; - -rpm.version(nvidia::nvidia_driver_version()); diff --git a/anda/system/nvidia/nvidia-kmod/update.rhai b/anda/system/nvidia/nvidia-kmod/update.rhai new file mode 100644 index 0000000000..a50e623acd --- /dev/null +++ b/anda/system/nvidia/nvidia-kmod/update.rhai @@ -0,0 +1,3 @@ +import "andax/bump_extras.rhai" as bump; + +rpm.version(bump::madoguchi("nvidia-kmod-common", labels.branch)); diff --git a/anda/system/nvidia/nvidia-modprobe/anda.hcl b/anda/system/nvidia/nvidia-modprobe/anda.hcl index 29295cb5cd..86ef3ffe3d 100644 --- a/anda/system/nvidia/nvidia-modprobe/anda.hcl +++ b/anda/system/nvidia/nvidia-modprobe/anda.hcl @@ -4,6 +4,6 @@ project "pkg" { } labels = { subrepo = "nvidia" - weekly = 1 + weekly = 3 } } diff --git a/anda/system/nvidia/nvidia-modprobe/nvidia-modprobe.spec b/anda/system/nvidia/nvidia-modprobe/nvidia-modprobe.spec index 5d2608a472..82e682e235 100644 --- a/anda/system/nvidia/nvidia-modprobe/nvidia-modprobe.spec +++ b/anda/system/nvidia/nvidia-modprobe/nvidia-modprobe.spec @@ -1,17 +1,17 @@ Name: nvidia-modprobe -Version: 580.95.05 -Release: 1%?dist +Version: 595.71.05 +Release: 1%{?dist} Summary: NVIDIA kernel module loader Epoch: 3 -License: GPLv2+ +License: GPL-2.0-or-later URL: http://www.nvidia.com/object/unix.html -ExclusiveArch: x86_64 aarch64 - Source0: https://download.nvidia.com/XFree86/%{name}/%{name}-%{version}.tar.bz2 Patch0: %{name}-man-page-permissions.patch - BuildRequires: gcc BuildRequires: m4 +BuildRequires: sed +ExclusiveArch: x86_64 aarch64 +Packager: Terra Packaging Team %description This utility is used by user-space NVIDIA driver components to make sure the @@ -44,254 +44,5 @@ make %{?_smp_mflags} \ %{_mandir}/man1/%{name}.1.* %changelog -* Thu Dec 05 2024 Simone Caronni - 3:565.77-1 -- Update to 565.77. - -* Wed Oct 23 2024 Simone Caronni - 3:565.57.01-1 -- Update to 565.57.01. - -* Wed Aug 21 2024 Simone Caronni - 3:560.35.03-1 -- Update to 560.35.03. - -* Tue Aug 06 2024 Simone Caronni - 3:560.31.02-1 -- Update to 560.31.02. - -* Mon Aug 05 2024 Simone Caronni - 3:560.28.03-1 -- Update to 560.28.03. - -* Tue Jul 02 2024 Simone Caronni - 3:555.58.02-1 -- Update to 555.58.02. - -* Thu Jun 27 2024 Simone Caronni - 3:555.58-1 -- Update to 555.58. - -* Thu Jun 06 2024 Simone Caronni - 3:555.52.04-1 -- Update to 555.52.04. - -* Wed May 22 2024 Simone Caronni - 3:555.42.02-1 -- Update to 555.42.02. - -* Tue Apr 30 2024 Simone Caronni - 3:550.78-2 -- Switch to Nvidia provided tarball. - -* Fri Apr 26 2024 Simone Caronni - 3:550.78-1 -- Update to 550.78. - -* Thu Apr 18 2024 Simone Caronni - 3:550.76-1 -- Update to 550.76. - -* Sun Mar 24 2024 Simone Caronni - 3:550.67-1 -- Update to 550.67. - -* Sat Mar 09 2024 Simone Caronni - 3:550.54.14-2 -- Enable aarch64. - -* Sun Mar 03 2024 Simone Caronni - 3:550.54.14-1 -- Update to 550.54.14. - -* Tue Feb 06 2024 Simone Caronni - 3:550.40.07-1 -- Update to 550.40.07. - -* Fri Dec 01 2023 Simone Caronni - 3:545.29.06-1 -- Update to 545.29.06. - -* Tue Oct 31 2023 Simone Caronni - 3:545.29.02-1 -- Update to 545.29.02. - -* Wed Oct 18 2023 Simone Caronni - 3:545.23.06-1 -- Update to 545.23.06. - -* Fri Sep 22 2023 Simone Caronni - 3:535.113.01-1 -- Update to 535.113.01. - -* Thu Aug 24 2023 Simone Caronni - 3:535.104.05-1 -- Update to 535.104.05. - -* Wed Aug 09 2023 Simone Caronni - 3:535.98-1 -- Update to 535.98. - -* Wed Jul 19 2023 Simone Caronni - 3:535.86.05-1 -- Update to 535.86.05. - -* Thu Jun 15 2023 Simone Caronni - 3:535.54.03-1 -- Update to 535.54.03. - -* Tue Jun 13 2023 Simone Caronni - 3:535.43.02-1 -- Update to 535.43.02. - -* Fri Mar 24 2023 Simone Caronni - 3:530.41.03-1 -- Update to 530.41.03. - -* Wed Mar 08 2023 Simone Caronni - 3:530.30.02-1 -- Update to 530.30.02. - -* Fri Feb 10 2023 Simone Caronni - 3:525.89.02-1 -- Update to 525.89.02. - -* Fri Jan 20 2023 Simone Caronni - 3:525.85.05-1 -- Update to 525.85.05. - -* Mon Jan 09 2023 Simone Caronni - 3:525.78.01-1 -- Update to 525.78.01. - -* Tue Nov 29 2022 Simone Caronni - 3:525.60.11-1 -- Update to 525.60.11. - -* Thu Oct 13 2022 Simone Caronni - 3:520.56.06-1 -- Update to 520.56.06. - -* Wed Sep 21 2022 Simone Caronni - 3:515.76-1 -- Update to 515.76. - -* Mon Aug 08 2022 Simone Caronni - 3:515.65.01-1 -- Update to 515.65.01. - -* Wed Jun 29 2022 Simone Caronni - 3:515.57-1 -- Update to 515.57. - -* Wed Jun 01 2022 Simone Caronni - 3:515.48.07-1 -- Update to 515.48.07. - -* Thu May 12 2022 Simone Caronni - 3:515.43.04-1 -- Update to 515.43.04. - -* Mon May 02 2022 Simone Caronni - 3:510.68.02-1 -- Update to 510.68.02. - -* Mon Mar 28 2022 Simone Caronni - 3:510.60.02-1 -- Update to 510.60.02. - -* Mon Feb 14 2022 Simone Caronni - 3:510.54-1 -- Update to 510.54. - -* Wed Feb 02 2022 Simone Caronni - 3:510.47.03-1 -- Update to 510.47.03. - -* Tue Dec 14 2021 Simone Caronni - 3:495.46-1 -- Update to 495.46. - -* Tue Nov 02 2021 Simone Caronni - 3:495.44-1 -- Update to 495.44. - -* Tue Nov 02 2021 Simone Caronni - 3:470.82.00-1 -- Update to 470.82.00. - -* Tue Sep 21 2021 Simone Caronni - 3:470.74-1 -- Update to 470.74. - -* Wed Aug 11 2021 Simone Caronni - 3:470.63.01-1 -- Update to 470.63.01. - -* Tue Jul 20 2021 Simone Caronni - 3:470.57.02-1 -- Update to 470.57.02. - -* Wed Jun 30 2021 Simone Caronni - 3:470.42.01-1 -- Update to 470.42.01. - -* Wed May 26 2021 Simone Caronni - 3:465.31-1 -- Update to 465.31. - -* Sat May 01 2021 Simone Caronni - 3:465.27-1 -- Update to 465.27. - -* Sun Apr 18 2021 Simone Caronni - 3:465.24.02-1 -- Update to 465.24.02. -- Switch to github sources. - -* Fri Apr 09 2021 Simone Caronni - 3:465.19.01-1 -- Update to 465.19.01. - -* Fri Mar 19 2021 Simone Caronni - 3:460.67-1 -- Update to 460.67. - -* Mon Mar 01 2021 Simone Caronni - 3:460.56-1 -- Update to 460.56. - -* Wed Jan 27 2021 Simone Caronni - 3:460.39-1 -- Update to 460.39. - -* Thu Jan 7 2021 Simone Caronni - 3:460.32.03-1 -- Update to 460.32.03. - -* Sun Dec 20 2020 Simone Caronni - 3:460.27.04-1 -- Update to 460.27.04. -- Trim changelog. - -* Mon Dec 07 2020 Simone Caronni - 3:455.45.01-2 -- Use autoseptup macro. - -* Wed Nov 18 2020 Simone Caronni - 3:455.45.01-1 -- Update to 455.45.01. - -* Mon Nov 02 2020 Simone Caronni - 3:455.38-1 -- Update to 455.38. - -* Mon Oct 12 2020 Simone Caronni - 3:455.28-1 -- Update to 455.28. - -* Tue Oct 06 2020 Simone Caronni - 3:450.80.02-1 -- Update to 450.80.02. - -* Thu Aug 20 2020 Simone Caronni - 3:450.66-1 -- Update to 450.66. - -* Fri Jul 10 2020 Simone Caronni - 3:450.57-1 -- Update to 450.57. - -* Thu Jun 25 2020 Simone Caronni - 3:440.100-1 -- Update to 440.100. - -* Thu Apr 09 2020 Simone Caronni - 3:440.82-1 -- Update to 440.82. - -* Fri Feb 28 2020 Simone Caronni - 3:440.64-1 -- Update to 440.64. - -* Tue Feb 04 2020 Simone Caronni - 3:440.59-1 -- Update to 440.59. - -* Sat Dec 14 2019 Simone Caronni - 3:440.44-1 -- Update to 440.44. - -* Sat Nov 30 2019 Simone Caronni - 3:440.36-1 -- Update to 440.36. - -* Sat Nov 09 2019 Simone Caronni - 3:440.31-1 -- Update to 440.31. - -* Thu Oct 17 2019 Simone Caronni - 3:440.26-1 -- Update to 440.26. - -* Mon Sep 02 2019 Simone Caronni - 3:435.21-1 -- Update to 435.21. - -* Thu Aug 22 2019 Simone Caronni - 3:435.17-1 -- Update to 435.17. - -* Wed Jul 31 2019 Simone Caronni - 3:430.40-1 -- Update to 430.40. - -* Fri Jul 12 2019 Simone Caronni - 3:430.34-1 -- Update to 430.34. - -* Wed Jun 12 2019 Simone Caronni - 3:430.26-1 -- Update to 430.26. - -* Sat May 18 2019 Simone Caronni - 3:430.14-1 -- Update to 430.14. - -* Thu May 09 2019 Simone Caronni - 3:418.74-1 -- Update to 418.74. - -* Sun Mar 24 2019 Simone Caronni - 3:418.56-1 -- Update to 418.56. - -* Fri Feb 22 2019 Simone Caronni - 3:418.43-1 -- Update to 418.43. -- Trim changelog. - -* Wed Feb 06 2019 Simone Caronni - 3:418.30-1 -- Update to 418.30. - -* Thu Jan 17 2019 Simone Caronni - 3:415.27-1 -- Update to 415.27. +* Mon Apr 13 2026 Gilver E. - 3:595.58.03-2 +- Update spec for Terra packaging team diff --git a/anda/system/nvidia/nvidia-persistenced/anda.hcl b/anda/system/nvidia/nvidia-persistenced/anda.hcl index 34e7a22e91..ac2d60fe5e 100644 --- a/anda/system/nvidia/nvidia-persistenced/anda.hcl +++ b/anda/system/nvidia/nvidia-persistenced/anda.hcl @@ -4,6 +4,6 @@ project "pkg" { } labels = { subrepo = "nvidia" - weekly = 1 + weekly = 3 } } diff --git a/anda/system/nvidia/nvidia-persistenced/nvidia-persistenced-sysusers.conf b/anda/system/nvidia/nvidia-persistenced/nvidia-persistenced-sysusers.conf new file mode 100644 index 0000000000..c63f5405b4 --- /dev/null +++ b/anda/system/nvidia/nvidia-persistenced/nvidia-persistenced-sysusers.conf @@ -0,0 +1 @@ +u nvidia-persistenced - "NVIDIA Persistence Daemon" /run/nvidia-persistenced - diff --git a/anda/system/nvidia/nvidia-persistenced/nvidia-persistenced.service b/anda/system/nvidia/nvidia-persistenced/nvidia-persistenced.service index 0d83758660..5bb1c3408b 100644 --- a/anda/system/nvidia/nvidia-persistenced/nvidia-persistenced.service +++ b/anda/system/nvidia/nvidia-persistenced/nvidia-persistenced.service @@ -1,13 +1,14 @@ [Unit] Description=NVIDIA Persistence Daemon -After=syslog.target [Service] Type=forking -PIDFile=/var/run/nvidia-persistenced/nvidia-persistenced.pid +PIDFile=/run/nvidia-persistenced/nvidia-persistenced.pid Restart=always -ExecStart=/usr/sbin/nvidia-persistenced --verbose -ExecStopPost=/bin/rm -rf /var/run/nvidia-persistenced/* +ExecStart=/usr/bin/nvidia-persistenced +User=nvidia-persistenced +Group=nvidia-persistenced +RuntimeDirectory=nvidia-persistenced TimeoutSec=300 [Install] diff --git a/anda/system/nvidia/nvidia-persistenced/nvidia-persistenced.spec b/anda/system/nvidia/nvidia-persistenced/nvidia-persistenced.spec index 32b73216cd..68a782544f 100644 --- a/anda/system/nvidia/nvidia-persistenced/nvidia-persistenced.spec +++ b/anda/system/nvidia/nvidia-persistenced/nvidia-persistenced.spec @@ -1,25 +1,24 @@ -Name: nvidia-persistenced -Version: 580.95.05 -Release: 1%?dist -Summary: A daemon to maintain persistent software state in the NVIDIA driver -Epoch: 3 -License: GPLv2+ -URL: http://www.nvidia.com/object/unix.html -ExclusiveArch: x86_64 aarch64 - -Source0: https://download.nvidia.com/XFree86/%{name}/%{name}-%{version}.tar.bz2 -Source1: %{name}.service - -BuildRequires: gcc -BuildRequires: libtirpc-devel -BuildRequires: m4 - -# For Fedora systemd-rpm-macros would be enough: -BuildRequires: systemd-devel -Requires(post): systemd -Requires(preun): systemd -Requires(postun): systemd -Requires: libnvidia-cfg%{?_isa} >= %{?epoch:%{epoch}:}%{version} +Name: nvidia-persistenced +Version: 595.71.05 +Release: 1%{?dist} +Summary: A daemon to maintain persistent software state in the NVIDIA driver +Epoch: 3 +License: GPL-2.0-or-later +URL: http://www.nvidia.com/object/unix.html +Source0: https://download.nvidia.com/XFree86/%{name}/%{name}-%{version}.tar.bz2 +Source1: %{name}.service +Source2: %{name}-sysusers.conf +BuildRequires: gcc +BuildRequires: libtirpc-devel +BuildRequires: m4 +BuildRequires: sed +BuildRequires: systemd-rpm-macros +Requires: libnvidia-cfg%{?_isa} >= %{?epoch:%{epoch}:}%{version} +Requires(post): systemd +Requires(preun): systemd +Requires(postun): systemd +ExclusiveArch: x86_64 aarch64 +Packager: Terra Packaging Team %description The %{name} utility is used to enable persistent software state in the NVIDIA @@ -47,13 +46,11 @@ make %{?_smp_mflags} \ PREFIX=%{_prefix} \ STRIP_CMD=true -%if 0%{?fedora} < 42 -mv %{buildroot}%{_bindir} %{buildroot}%{_sbindir} -%endif -mkdir -p %{buildroot}%{_sharedstatedir}/%{name} - # Systemd unit files -install -p -m 644 -D %{SOURCE1} %{buildroot}%{_unitdir}/%{name}.service +install -Dpm644 %{SOURCE1} %{buildroot}%{_unitdir}/%{name}.service + +# Systemd user +install -Dpm644 %{SOURCE2} %{buildroot}%{_sysusersdir}/%{name}.conf %post %systemd_post %{name}.service @@ -67,13 +64,10 @@ install -p -m 644 -D %{SOURCE1} %{buildroot}%{_unitdir}/%{name}.service %files %license COPYING %{_mandir}/man1/%{name}.1.* -%if 0%{?fedora} < 42 -%{_sbindir}/%{name} -%else %{_bindir}/%{name} -%endif %{_unitdir}/%{name}.service -%{_sharedstatedir}/%{name} +%{_sysusersdir}/%{name}.conf %changelog -%autochangelog +* Mon Apr 13 2026 Gilver E. - 3:595.58.03-2 +- Update spec for Terra packaging team diff --git a/anda/system/nvidia/nvidia-settings/anda.hcl b/anda/system/nvidia/nvidia-settings/anda.hcl index e042848129..66e27123c6 100644 --- a/anda/system/nvidia/nvidia-settings/anda.hcl +++ b/anda/system/nvidia/nvidia-settings/anda.hcl @@ -4,6 +4,6 @@ project "pkg" { } labels = { subrepo = "nvidia" - weekly = 1 + weekly = 3 } } diff --git a/anda/system/nvidia/nvidia-settings/nvidia-settings-0.png b/anda/system/nvidia/nvidia-settings/nvidia-settings-0.png new file mode 100644 index 0000000000..2fe11e2c88 Binary files /dev/null and b/anda/system/nvidia/nvidia-settings/nvidia-settings-0.png differ diff --git a/anda/system/nvidia/nvidia-settings/nvidia-settings-1.png b/anda/system/nvidia/nvidia-settings/nvidia-settings-1.png new file mode 100644 index 0000000000..8d788b6937 Binary files /dev/null and b/anda/system/nvidia/nvidia-settings/nvidia-settings-1.png differ diff --git a/anda/system/nvidia/nvidia-settings/nvidia-settings-2.png b/anda/system/nvidia/nvidia-settings/nvidia-settings-2.png new file mode 100644 index 0000000000..2bd3f8b3e1 Binary files /dev/null and b/anda/system/nvidia/nvidia-settings/nvidia-settings-2.png differ diff --git a/anda/system/nvidia/nvidia-settings/nvidia-settings.appdata.xml b/anda/system/nvidia/nvidia-settings/nvidia-settings.appdata.xml index 0240ba817a..0946daf6fb 100644 --- a/anda/system/nvidia/nvidia-settings/nvidia-settings.appdata.xml +++ b/anda/system/nvidia/nvidia-settings/nvidia-settings.appdata.xml @@ -34,15 +34,15 @@ The nvidia-settings utility main window - https://negativo17.org/appstream/nvidia-settings-0.png + https://raw.githubusercontent.com/terrapkg/packages/refs/heads/frawhide/anda/system/nvidia/nvidia-settings/nvidia-settings-0.png Monitoring GPU status - https://negativo17.org/appstream/nvidia-settings-1.png + https://raw.githubusercontent.com/terrapkg/packages/refs/heads/frawhide/anda/system/nvidia/nvidia-settings/nvidia-settings-1.png Application profiles creation - https://negativo17.org/appstream/nvidia-settings-2.png + https://raw.githubusercontent.com/terrapkg/packages/refs/heads/frawhide/anda/system/nvidia/nvidia-settings/nvidia-settings-2.png @@ -53,5 +53,6 @@ Vulkan OpenGL - negativo17@gmail.com + https://github.com/terrapkg/packages/issues + https://github.com/terrapkg/packages diff --git a/anda/system/nvidia/nvidia-settings/nvidia-settings.spec b/anda/system/nvidia/nvidia-settings/nvidia-settings.spec index 7519844dc8..2662615a57 100644 --- a/anda/system/nvidia/nvidia-settings/nvidia-settings.spec +++ b/anda/system/nvidia/nvidia-settings/nvidia-settings.spec @@ -1,12 +1,10 @@ Name: nvidia-settings -Version: 580.95.05 -Release: 1%?dist +Version: 595.71.05 +Release: 1%{?dist} Summary: Configure the NVIDIA graphics driver Epoch: 3 -License: GPLv2+ +License: GPL-2.0-or-later URL: http://www.nvidia.com/object/unix.html -ExclusiveArch: x86_64 aarch64 - Source0: https://download.nvidia.com/XFree86/%{name}/%{name}-%{version}.tar.bz2 Source1: %{name}-load.desktop Source2: %{name}.appdata.xml @@ -15,7 +13,6 @@ Patch1: %{name}-lib-permissions.patch Patch2: %{name}-link-order.patch Patch3: %{name}-libXNVCtrl.patch Patch4: %{name}-ld-dep-remove.patch - BuildRequires: desktop-file-utils BuildRequires: dbus-devel BuildRequires: gcc @@ -31,12 +28,14 @@ BuildRequires: mesa-libEGL-devel BuildRequires: mesa-libGL-devel BuildRequires: pkgconfig(gtk+-3.0) BuildRequires: pkgconfig(wayland-client) +BuildRequires: sed BuildRequires: vulkan-headers - Requires: nvidia-libXNVCtrl%{?_isa} = %{?epoch}:%{version}-%{release} Requires: nvidia-driver%{?_isa} = %{?epoch}:%{version} # Loaded at runtime Requires: libvdpau%{?_isa} >= 0.9 +ExclusiveArch: x86_64 aarch64 +Packager: Terra Packaging Team %description The %{name} utility is a tool for configuring the NVIDIA graphics @@ -90,22 +89,18 @@ make \ mkdir -p %{buildroot}%{_includedir}/NVCtrl cp -af src/libXNVCtrl/*.h %{buildroot}%{_includedir}/NVCtrl/ -# Install main program %make_install \ DEBUG=1 \ NV_USE_BUNDLED_LIBJANSSON=0 \ NV_VERBOSE=1 \ PREFIX=%{_prefix} -# Install desktop file mkdir -p %{buildroot}%{_datadir}/{applications,pixmaps} desktop-file-install --dir %{buildroot}%{_datadir}/applications/ doc/%{name}.desktop cp doc/%{name}.png %{buildroot}%{_datadir}/pixmaps/ -# Install autostart file to load settings at login install -p -D -m 644 %{SOURCE1} %{buildroot}%{_sysconfdir}/xdg/autostart/%{name}-load.desktop -# install AppData and add modalias provides mkdir -p %{buildroot}%{_metainfodir}/ install -p -m 0644 %{SOURCE2} %{buildroot}%{_metainfodir}/ @@ -134,276 +129,5 @@ appstream-util validate-relax --nonet %{buildroot}/%{_metainfodir}/%{name}.appda %{_libdir}/libXNVCtrl.so %changelog -* Thu Dec 05 2024 Simone Caronni - 3:565.77-1 -- Update to 565.77. - -* Wed Oct 23 2024 Simone Caronni - 3:565.57.01-1 -- Update to 565.57.01. - -* Wed Aug 21 2024 Simone Caronni - 3:560.35.03-1 -- Update to 560.35.03. - -* Tue Aug 06 2024 Simone Caronni - 3:560.31.02-1 -- Update to 560.31.02. - -* Mon Aug 05 2024 Simone Caronni - 3:560.28.03-1 -- Update to 560.28.03. - -* Tue Jul 02 2024 Simone Caronni - 3:555.58.02-1 -- Update to 555.58.02. - -* Thu Jun 27 2024 Simone Caronni - 3:555.58-1 -- Update to 555.58. - -* Thu Jun 06 2024 Simone Caronni - 3:555.52.04-1 -- Update to 555.52.04. - -* Wed May 22 2024 Simone Caronni - 3:555.42.02-1 -- Update to 555.42.02. - -* Tue Apr 30 2024 Simone Caronni - 3:550.78-2 -- Switch to Nvidia provided tarball. - -* Fri Apr 26 2024 Simone Caronni - 3:550.78-1 -- Update to 550.78. - -* Thu Apr 18 2024 Simone Caronni - 3:550.76-1 -- Update to 550.76. - -* Sun Mar 24 2024 Simone Caronni - 3:550.67-1 -- Update to 550.67. - -* Sat Mar 09 2024 Simone Caronni - 3:550.54.14-3 -- Enable aarch64. - -* Fri Mar 08 2024 Simone Caronni - 3:550.54.14-2 -- Add missing patch. - -* Sun Mar 03 2024 Simone Caronni - 3:550.54.14-1 -- Update to 550.54.14. - -* Tue Feb 06 2024 Simone Caronni - 3:550.40.07-1 -- Update to 550.40.07. - -* Fri Dec 01 2023 Simone Caronni - 3:545.29.06-1 -- Update to 545.29.06. - -* Tue Oct 31 2023 Simone Caronni - 3:545.29.02-1 -- Update to 545.29.02. - -* Wed Oct 18 2023 Simone Caronni - 3:545.23.06-1 -- Update to 545.23.06. - -* Fri Sep 22 2023 Simone Caronni - 3:535.113.01-1 -- Update to 535.113.01. - -* Thu Aug 24 2023 Simone Caronni - 3:535.104.05-1 -- Update to 535.104.05. - -* Wed Aug 09 2023 Simone Caronni - 3:535.98-1 -- Update to 535.98. - -* Wed Jul 19 2023 Simone Caronni - 3:535.86.05-1 -- Update to 535.86.05. - -* Thu Jun 15 2023 Simone Caronni - 3:535.54.03-1 -- Update to 535.54.03. - -* Tue Jun 13 2023 Simone Caronni - 3:535.43.02-1 -- Update to 535.43.02. - -* Fri Mar 24 2023 Simone Caronni - 3:530.41.03-1 -- Update to 530.41.03. - -* Wed Mar 08 2023 Simone Caronni - 3:530.30.02-1 -- Update to 530.30.02. - -* Fri Feb 10 2023 Simone Caronni - 3:525.89.02-1 -- Update to 525.89.02. - -* Fri Jan 20 2023 Simone Caronni - 3:525.85.05-1 -- Update to 525.85.05. - -* Mon Jan 09 2023 Simone Caronni - 3:525.78.01-1 -- Update to 525.78.01. - -* Tue Nov 29 2022 Simone Caronni - 3:525.60.11-1 -- Update to 525.60.11. -- Finally drop gtk2. - -* Thu Oct 13 2022 Simone Caronni - 3:520.56.06-1 -- Update to 520.56.06. - -* Wed Sep 21 2022 Simone Caronni - 3:515.76-1 -- Update to 515.76. - -* Mon Aug 08 2022 Simone Caronni - 3:515.65.01-1 -- Update to 515.65.01. - -* Wed Jun 29 2022 Simone Caronni - 3:515.57-1 -- Update to 515.57. - -* Wed Jun 01 2022 Simone Caronni - 3:515.48.07-1 -- Update to 515.48.07. - -* Thu May 12 2022 Simone Caronni - 3:515.43.04-1 -- Update to 515.43.04. -- Update SPEC file. -- Update patches from upstream. - -* Mon May 02 2022 Simone Caronni - 3:510.68.02-1 -- Update to 510.68.02. - -* Mon Mar 28 2022 Simone Caronni - 3:510.60.02-1 -- Update to 510.60.02. - -* Mon Feb 14 2022 Simone Caronni - 3:510.54-1 -- Update to 510.54. - -* Wed Feb 02 2022 Simone Caronni - 3:510.47.03-1 -- Update to 510.47.03. - -* Tue Dec 14 2021 Simone Caronni - 3:495.46-1 -- Update to 495.46. - -* Tue Nov 02 2021 Simone Caronni - 3:495.44-1 -- Update to 495.44. - -* Tue Nov 02 2021 Simone Caronni - 3:470.82.00-1 -- Update to 470.82.00. - -* Tue Sep 21 2021 Simone Caronni - 3:470.74-1 -- Update to 470.74. - -* Wed Aug 11 2021 Simone Caronni - 3:470.63.01-1 -- Update to 470.63.01. - -* Tue Jul 20 2021 Simone Caronni - 3:470.57.02-1 -- Update to 470.57.02. - -* Wed Jun 30 2021 Simone Caronni - 3:470.42.01-1 -- Update to 470.42.01. - -* Wed May 26 2021 Simone Caronni - 3:465.31-1 -- Update to 465.31. - -* Sat May 01 2021 Simone Caronni - 3:465.27-1 -- Update to 465.27. - -* Sun Apr 18 2021 Simone Caronni - 3:465.24.02-1 -- Update to 465.24.02. -- Switch to github sources. - -* Fri Apr 09 2021 Simone Caronni - 3:465.19.01-1 -- Update to 465.19.01. - -* Fri Mar 19 2021 Simone Caronni - 3:460.67-1 -- Update to 460.67. - -* Mon Mar 01 2021 Simone Caronni - 3:460.56-1 -- Update to 460.56. - -* Wed Jan 27 2021 Simone Caronni - 3:460.39-1 -- Update to 460.39. - -* Thu Jan 7 2021 Simone Caronni - 3:460.32.03-1 -- Update to 460.32.03. - -* Sun Dec 20 2020 Simone Caronni - 3:460.27.04-1 -- Update to 460.27.04. -- Trim changelog. - -* Mon Dec 07 2020 Simone Caronni - 3:455.45.01-2 -- Remove RHEL/CentOS 6 support. -- Do not generate AppData on CentOS/RHEL 7. - -* Wed Nov 18 2020 Simone Caronni - 3:455.45.01-1 -- Update to 455.45.01. - -* Mon Nov 02 2020 Simone Caronni - 3:455.38-1 -- Update to 455.38. - -* Mon Oct 12 2020 Simone Caronni - 3:455.28-1 -- Update to 455.28. - -* Tue Oct 06 2020 Simone Caronni - 3:450.80.02-1 -- Update to 450.80.02. - -* Thu Aug 20 2020 Simone Caronni - 3:450.66-1 -- Update to 450.66. - -* Fri Jul 10 2020 Simone Caronni - 3:450.57-1 -- Update to 450.57. - -* Thu Jun 25 2020 Simone Caronni - 3:440.100-1 -- Update to 440.100. - -* Thu Apr 09 2020 Simone Caronni - 3:440.82-1 -- Update to 440.82. - -* Sat Mar 14 2020 Simone Caronni - 3:440.64-2 -- Add patch for GCC 10. - -* Fri Feb 28 2020 Simone Caronni - 3:440.64-1 -- Update to 440.64. - -* Tue Feb 04 2020 Simone Caronni - 3:440.59-1 -- Update to 440.59. - -* Sat Dec 14 2019 Simone Caronni - 3:440.44-1 -- Update to 440.44. - -* Sat Nov 30 2019 Simone Caronni - 3:440.36-1 -- Update to 440.36. - -* Sun Nov 17 2019 Simone Caronni - 3:440.31-2 -- Fix full libXNVCtrl libraries instead of symlinks in CentOS/RHEL 6/7. - -* Sat Nov 09 2019 Simone Caronni - 3:440.31-1 -- Update to 440.31. - -* Thu Oct 17 2019 Simone Caronni - 3:440.26-1 -- Update to 440.26. - -* Mon Sep 02 2019 Simone Caronni - 3:435.21-1 -- Update to 435.21. - -* Thu Aug 22 2019 Simone Caronni - 3:435.17-1 -- Update to 435.17. - -* Wed Jul 31 2019 Simone Caronni - 3:430.40-1 -- Update to 430.40. -- Update AppData installation. - -* Fri Jul 12 2019 Simone Caronni - 3:430.34-1 -- Update to 430.34. - -* Tue Jun 18 2019 Simone Caronni - 3:430.26-3 -- Fix rpm message when upgrading from Fedora's libXNVCtrl. - -* Sun Jun 16 2019 Simone Caronni - 3:430.26-2 -- Revert libXNVCtrl soname to libXNVCtrl.so.0. - -* Wed Jun 12 2019 Simone Caronni - 3:430.26-1 -- Update to 430.26. -- Update patches. -- Update SPEC file. - -* Sat May 18 2019 Simone Caronni - 3:430.14-1 -- Update to 430.14. - -* Thu May 09 2019 Simone Caronni - 3:418.74-1 -- Update to 418.74. - -* Sun Mar 24 2019 Simone Caronni - 3:418.56-1 -- Update to 418.56. - -* Fri Feb 22 2019 Simone Caronni - 3:418.43-1 -- Update to 418.43. -- Trim changelog. - -* Wed Feb 06 2019 Simone Caronni - 3:418.30-1 -- Update to 418.30. - -* Thu Jan 17 2019 Simone Caronni - 3:415.27-1 -- Update to 415.27. \ No newline at end of file +* Mon Apr 13 2026 Gilver E. - 3:595.58.03-2 +- Update spec for Terra packaging team diff --git a/anda/system/nvidia/nvidia-xconfig/anda.hcl b/anda/system/nvidia/nvidia-xconfig/anda.hcl index 51c74d4fb7..f683caaff8 100644 --- a/anda/system/nvidia/nvidia-xconfig/anda.hcl +++ b/anda/system/nvidia/nvidia-xconfig/anda.hcl @@ -4,6 +4,6 @@ project "pkg" { } labels = { subrepo = "nvidia" - weekly = 1 + weekly = 3 } } diff --git a/anda/system/nvidia/nvidia-xconfig/nvidia-xconfig.spec b/anda/system/nvidia/nvidia-xconfig/nvidia-xconfig.spec index dffafe99cc..bd50e931cc 100644 --- a/anda/system/nvidia/nvidia-xconfig/nvidia-xconfig.spec +++ b/anda/system/nvidia/nvidia-xconfig/nvidia-xconfig.spec @@ -1,20 +1,19 @@ Name: nvidia-xconfig -Version: 580.95.05 -Release: 1%?dist +Version: 595.71.05 +Release: 1%{?dist} Summary: NVIDIA X configuration file editor Epoch: 3 -License: GPLv2+ +License: GPL-2.0-or-later URL: http://www.nvidia.com/object/unix.html -ExclusiveArch: x86_64 aarch64 - Source0: https://download.nvidia.com/XFree86/%{name}/%{name}-%{version}.tar.bz2 - BuildRequires: gcc BuildRequires: libpciaccess-devel BuildRequires: m4 - +BuildRequires: sed Requires: libnvidia-cfg%{?_isa} >= %{?epoch:%{epoch}:}%{version} Requires: xorg-x11-nvidia%{?_isa} >= %{?epoch:%{epoch}:}%{version} +ExclusiveArch: x86_64 aarch64 +Packager: Terra Packaging Team %description %{name} is a command line tool intended to provide basic control over @@ -48,260 +47,5 @@ make %{?_smp_mflags} \ %{_mandir}/man1/%{name}.1* %changelog -* Thu Dec 05 2024 Simone Caronni - 3:565.77-1 -- Update to 565.77. - -* Wed Oct 23 2024 Simone Caronni - 3:565.57.01-1 -- Update to 565.57.01. - -* Sun Sep 01 2024 Simone Caronni - 3:560.35.03-2 -- Add requirement on xorg-x11-nvidia so package gets removed as well in case of - uninstallation of X.org components. - -* Wed Aug 21 2024 Simone Caronni - 3:560.35.03-1 -- Update to 560.35.03. - -* Tue Aug 06 2024 Simone Caronni - 3:560.31.02-1 -- Update to 560.31.02. - -* Mon Aug 05 2024 Simone Caronni - 3:560.28.03-1 -- Update to 560.28.03. - -* Tue Jul 02 2024 Simone Caronni - 3:555.58.02-1 -- Update to 555.58.02. -- Require dynamically loaded library libnvidia-cfg. - -* Thu Jun 27 2024 Simone Caronni - 3:555.58-1 -- Update to 555.58. - -* Thu Jun 06 2024 Simone Caronni - 3:555.52.04-1 -- Update to 555.52.04. - -* Wed May 22 2024 Simone Caronni - 3:555.42.02-1 -- Update to 555.42.02. - -* Tue Apr 30 2024 Simone Caronni - 3:550.78-2 -- Switch to Nvidia provided tarball. - -* Fri Apr 26 2024 Simone Caronni - 3:550.78-1 -- Update to 550.78. - -* Thu Apr 18 2024 Simone Caronni - 3:550.76-1 -- Update to 550.76. - -* Sun Mar 24 2024 Simone Caronni - 3:550.67-1 -- Update to 550.67. - -* Sat Mar 09 2024 Simone Caronni - 3:550.54.14-2 -- Enable aarch64. - -* Sun Mar 03 2024 Simone Caronni - 3:550.54.14-1 -- Update to 550.54.14. - -* Tue Feb 06 2024 Simone Caronni - 3:550.40.07-1 -- Update to 550.40.07. - -* Fri Dec 01 2023 Simone Caronni - 3:545.29.06-1 -- Update to 545.29.06. - -* Tue Oct 31 2023 Simone Caronni - 3:545.29.02-1 -- Update to 545.29.02. - -* Wed Oct 18 2023 Simone Caronni - 3:545.23.06-1 -- Update to 545.23.06. - -* Fri Sep 22 2023 Simone Caronni - 3:535.113.01-1 -- Update to 535.113.01. - -* Thu Aug 24 2023 Simone Caronni - 3:535.104.05-1 -- Update to 535.104.05. - -* Wed Aug 09 2023 Simone Caronni - 3:535.98-1 -- Update to 535.98. - -* Wed Jul 19 2023 Simone Caronni - 3:535.86.05-1 -- Update to 535.86.05. - -* Thu Jun 15 2023 Simone Caronni - 3:535.54.03-1 -- Update to 535.54.03. - -* Tue Jun 13 2023 Simone Caronni - 3:535.43.02-1 -- Update to 535.43.02. - -* Fri Mar 24 2023 Simone Caronni - 3:530.41.03-1 -- Update to 530.41.03. - -* Wed Mar 08 2023 Simone Caronni - 3:530.30.02-1 -- Update to 530.30.02. - -* Fri Feb 10 2023 Simone Caronni - 3:525.89.02-1 -- Update to 525.89.02. - -* Fri Jan 20 2023 Simone Caronni - 3:525.85.05-1 -- Update to 525.85.05. - -* Mon Jan 09 2023 Simone Caronni - 3:525.78.01-1 -- Update to 525.78.01. - -* Tue Nov 29 2022 Simone Caronni - 3:525.60.11-1 -- Update to 525.60.11. - -* Thu Oct 13 2022 Simone Caronni - 3:520.56.06-1 -- Update to 520.56.06. - -* Wed Sep 21 2022 Simone Caronni - 3:515.76-1 -- Update to 515.76. - -* Mon Aug 08 2022 Simone Caronni - 3:515.65.01-1 -- Update to 515.65.01. - -* Wed Jun 29 2022 Simone Caronni - 3:515.57-1 -- Update to 515.57. - -* Wed Jun 01 2022 Simone Caronni - 3:515.48.07-1 -- Update to 515.48.07. - -* Thu May 12 2022 Simone Caronni - 3:515.43.04-1 -- Update to 515.43.04. -- Add upstream patch. - -* Mon May 02 2022 Simone Caronni - 3:510.68.02-1 -- Update to 510.68.02. - -* Mon Mar 28 2022 Simone Caronni - 3:510.60.02-1 -- Update to 510.60.02. - -* Mon Feb 14 2022 Simone Caronni - 3:510.54-1 -- Update to 510.54. - -* Wed Feb 02 2022 Simone Caronni - 3:510.47.03-1 -- Update to 510.47.03. - -* Tue Dec 14 2021 Simone Caronni - 3:495.46-1 -- Update to 495.46. - -* Tue Nov 02 2021 Simone Caronni - 3:495.44-1 -- Update to 495.44. - -* Tue Nov 02 2021 Simone Caronni - 3:470.82.00-1 -- Update to 470.82.00. - -* Tue Sep 21 2021 Simone Caronni - 3:470.74-1 -- Update to 470.74. - -* Wed Aug 11 2021 Simone Caronni - 3:470.63.01-1 -- Update to 470.63.01. - -* Tue Jul 20 2021 Simone Caronni - 3:470.57.02-1 -- Update to 470.57.02. - -* Wed Jun 30 2021 Simone Caronni - 3:470.42.01-1 -- Update to 470.42.01. - -* Wed May 26 2021 Simone Caronni - 3:465.31-1 -- Update to 465.31. - -* Sat May 01 2021 Simone Caronni - 3:465.27-1 -- Update to 465.27. - -* Sun Apr 18 2021 Simone Caronni - 3:465.24.02-1 -- Update to 465.24.02. -- Switch to github sources. - -* Fri Apr 09 2021 Simone Caronni - 3:465.19.01-1 -- Update to 465.19.01. - -* Fri Mar 19 2021 Simone Caronni - 3:460.67-1 -- Update to 460.67. - -* Mon Mar 01 2021 Simone Caronni - 3:460.56-1 -- Update to 460.56. - -* Wed Jan 27 2021 Simone Caronni - 3:460.39-1 -- Update to 460.39. - -* Thu Jan 7 2021 Simone Caronni - 3:460.32.03-1 -- Update to 460.32.03. - -* Sun Dec 20 2020 Simone Caronni - 3:460.27.04-1 -- Update to 460.27.04. -- Trim changelog. - -* Mon Dec 07 2020 Simone Caronni - 3:455.45.01-2 -- Remove unused patch, use autoseptup macro. - -* Wed Nov 18 2020 Simone Caronni - 3:455.45.01-1 -- Update to 455.45.01. - -* Mon Nov 02 2020 Simone Caronni - 3:455.38-1 -- Update to 455.38. - -* Mon Oct 12 2020 Simone Caronni - 3:455.28-1 -- Update to 455.28. - -* Tue Oct 06 2020 Simone Caronni - 3:450.80.02-1 -- Update to 450.80.02. - -* Thu Aug 20 2020 Simone Caronni - 3:450.66-1 -- Update to 450.66. - -* Fri Jul 10 2020 Simone Caronni - 3:450.57-1 -- Update to 450.57. - -* Thu Jun 25 2020 Simone Caronni - 3:440.100-1 -- Update to 440.100. - -* Thu Apr 09 2020 Simone Caronni - 3:440.82-1 -- Update to 440.82. - -* Fri Feb 28 2020 Simone Caronni - 3:440.64-1 -- Update to 440.64. - -* Tue Feb 04 2020 Simone Caronni - 3:440.59-1 -- Update to 440.59. - -* Sat Dec 14 2019 Simone Caronni - 3:440.44-1 -- Update to 440.44. - -* Sat Nov 30 2019 Simone Caronni - 3:440.36-1 -- Update to 440.36. - -* Sat Nov 09 2019 Simone Caronni - 3:440.31-1 -- Update to 440.31. - -* Thu Oct 17 2019 Simone Caronni - 3:440.26-1 -- Update to 440.26. - -* Mon Sep 02 2019 Simone Caronni - 3:435.21-1 -- Update to 435.21. - -* Thu Aug 22 2019 Simone Caronni - 3:435.17-1 -- Update to 435.17. - -* Wed Jul 31 2019 Simone Caronni - 3:430.40-1 -- Update to 430.40. - -* Fri Jul 12 2019 Simone Caronni - 3:430.34-1 -- Update to 430.34. - -* Wed Jun 12 2019 Simone Caronni - 3:430.26-1 -- Update to 430.26. - -* Sat May 18 2019 Simone Caronni - 3:430.14-1 -- Update to 430.14. - -* Thu May 09 2019 Simone Caronni - 3:418.74-1 -- Update to 418.74. - -* Sun Mar 24 2019 Simone Caronni - 3:418.56-1 -- Update to 418.56. - -* Fri Feb 22 2019 Simone Caronni - 3:418.43-1 -- Update to 418.43. -- Trim changelog. - -* Wed Feb 06 2019 Simone Caronni - 3:418.30-1 -- Update to 418.30. - -* Thu Jan 17 2019 Simone Caronni - 3:415.27-1 -- Update to 415.27. \ No newline at end of file +* Mon Apr 13 2026 Gilver E. - 3:595.58.03-2 +- Update spec for Terra packaging team diff --git a/anda/system/opentabletdriver-nightly/opentabletdriver-nightly.spec b/anda/system/opentabletdriver-nightly/opentabletdriver-nightly.spec index da5d808e87..c5fac36506 100644 --- a/anda/system/opentabletdriver-nightly/opentabletdriver-nightly.spec +++ b/anda/system/opentabletdriver-nightly/opentabletdriver-nightly.spec @@ -1,7 +1,7 @@ -%global commit 4cebd851f5a90dbb11c48eba709ac27fe289ebf1 +%global commit 060571d8eb4e2487d7268659113cf224e0fded7a %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commit_date 20250904 -%global ver 0.6.5.1 +%global commit_date 20260504 +%global ver 0.6.7 # We aren't using Mono but RPM expected Mono %global __requires_exclude_from ^/usr/lib/opentabletdriver/.*$ @@ -11,7 +11,7 @@ Name: opentabletdriver-nightly Version: %ver^%commit_date.git~%shortcommit -Release: 1%?dist +Release: 1%{?dist} Summary: Open source, cross-platform, user-mode tablet driver License: LGPL-3.0-or-later Conflicts: opentabletdriver diff --git a/anda/system/opentabletdriver/opentabletdriver.spec b/anda/system/opentabletdriver/opentabletdriver.spec index 4d8e207818..989e37c98b 100644 --- a/anda/system/opentabletdriver/opentabletdriver.spec +++ b/anda/system/opentabletdriver/opentabletdriver.spec @@ -9,8 +9,8 @@ %global dotnet_runtime_version 8.0 Name: opentabletdriver -Version: 0.6.6.2 -Release: 1%?dist +Version: 0.6.7 +Release: 1%{?dist} Summary: A cross-platform open source tablet driver License: LGPLv3 URL: https://github.com/OpenTabletDriver/OpenTabletDriver diff --git a/anda/system/packagekit-bootc/PackageKit-bootc.spec b/anda/system/packagekit-bootc/PackageKit-bootc.spec new file mode 100644 index 0000000000..6acdca5d2a --- /dev/null +++ b/anda/system/packagekit-bootc/PackageKit-bootc.spec @@ -0,0 +1,51 @@ +%global appid com.fyralabs.PackageKit-bootc +%global appstream_component addon +Name: PackageKit-bootc +Version: 0.2.0 +Release: 1%{?dist} +Summary: bootc backend for PackageKit +Packager: Cappy Ishihara + +License: GPL-3.0-or-later +URL: https://github.com/FyraLabs/PackageKit-bootc +Source0: %{appid}.metainfo.xml + +BuildRequires: PackageKit-glib-devel +BuildRequires: glib2-devel +BuildRequires: PackageKit-devel +BuildRequires: meson +BuildRequires: ninja-build +BuildRequires: gcc +BuildRequires: git +BuildRequires: anda-srpm-macros +Requires: PackageKit +Requires: bootc + +%description +%{summary}. + +%prep +%git_clone %{url}.git v%{version} + + +%build +%meson +%meson_build + + + +%install +%meson_install +%terra_appstream -o %{SOURCE0} + +%files +%license LICENSE +%doc README.md +%{_libdir}/packagekit-backend/libpk_backend_bootc.so +%{_datadir}/PackageKit/helpers/bootc/bootcBackend.py +%{_metainfodir}/%{appid}.metainfo.xml + + +%changelog +* Thu Dec 04 2025 Cappy Ishihara +- Initial Release diff --git a/anda/system/packagekit-bootc/anda.hcl b/anda/system/packagekit-bootc/anda.hcl new file mode 100644 index 0000000000..a0ea0db4cb --- /dev/null +++ b/anda/system/packagekit-bootc/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "PackageKit-bootc.spec" + } +} \ No newline at end of file diff --git a/anda/system/packagekit-bootc/com.fyralabs.PackageKit-bootc.metainfo.xml b/anda/system/packagekit-bootc/com.fyralabs.PackageKit-bootc.metainfo.xml new file mode 100644 index 0000000000..26ecfa8a1b --- /dev/null +++ b/anda/system/packagekit-bootc/com.fyralabs.PackageKit-bootc.metainfo.xml @@ -0,0 +1,10 @@ + + com.fyralabs.PackageKit-bootc + org.freedesktop.packagekit + bootc for PackageKit + A PackageKit backend for bootc system updates. + GPL-3.0+ + + System + + diff --git a/anda/system/packagekit-bootc/update.rhai b/anda/system/packagekit-bootc/update.rhai new file mode 100644 index 0000000000..5b92441f35 --- /dev/null +++ b/anda/system/packagekit-bootc/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("FyraLabs/PackageKit-bootc")); \ No newline at end of file diff --git a/anda/system/pion/anda.hcl b/anda/system/pion/anda.hcl new file mode 100644 index 0000000000..cf94971bf1 --- /dev/null +++ b/anda/system/pion/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "pion.spec" + } +} diff --git a/anda/system/pion/pion.spec b/anda/system/pion/pion.spec new file mode 100644 index 0000000000..b44b5c599d --- /dev/null +++ b/anda/system/pion/pion.spec @@ -0,0 +1,47 @@ +Name: pion +Version: 0.1.0 +Release: 1%{?dist} +Summary: Binder IPC Linux userspace root service +License: MIT AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND (Unlicense OR MIT) +URL: https://github.com/technobaboo/pion +Source0: %{url}/archive/refs/tags/%{version}.tar.gz +Packager: Owen Zimmerman + +BuildRequires: cargo-rpm-macros +BuildRequires: systemd-rpm-macros + +%description +Binder IPC Linux userspace root service... Binder objects bound to files (like UNIX domain sockets!). + +%prep +%autosetup +%cargo_prep_online + +%build +%cargo_build +%{cargo_license_online} > LICENSE.dependencies + +%install +install -Dm755 target/rpm/pion-binder %{buildroot}%{_bindir}/pion-binder +install -Dm644 dist/pion-binder.service %{buildroot}%{_unitdir}/pion-binder.service +install -Dm644 dist/dev-binderfs.mount %{buildroot}%{_unitdir}/dev-binderfs.mount + +%post +%systemd_post pion-binder.service + +%preun +%systemd_preun pion-binder.service + +%postun +%systemd_postun_with_restart pion-binder.service + +%files +%doc README.md +%license LICENSE LICENSE.dependencies +%{_bindir}/pion-binder +%{_unitdir}/pion-binder.service +%{_unitdir}/dev-binderfs.mount + +%changelog +* Tue Mar 17 2026 Owen Zimmerman +- Initial commit diff --git a/anda/system/pion/update.rhai b/anda/system/pion/update.rhai new file mode 100644 index 0000000000..3510981958 --- /dev/null +++ b/anda/system/pion/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("technobaboo/pion")); diff --git a/anda/system/pixi/anda.hcl b/anda/system/pixi/anda.hcl new file mode 100644 index 0000000000..96879d9ca0 --- /dev/null +++ b/anda/system/pixi/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "pixi.spec" + } +} diff --git a/anda/system/pixi/pixi.spec b/anda/system/pixi/pixi.spec new file mode 100644 index 0000000000..c93e6c4d0a --- /dev/null +++ b/anda/system/pixi/pixi.spec @@ -0,0 +1,47 @@ +Name: pixi +Version: 0.67.2 +Release: 1%{?dist} +Summary: A cross-platform, multi-language package manager +License: BSD-3-Clause +URL: https://pixi.sh +Source: https://github.com/prefix-dev/pixi/archive/refs/tags/v%{version}.tar.gz +Packager: metcya + +BuildRequires: anda-srpm-macros +BuildRequires: cargo-rpm-macros >= 24 +BuildRequires: mold + +%pkg_completion -Befz + +%description +pixi is a cross-platform, multi-language package manager and workflow tool +built on the foundation of the conda ecosystem. It provides developers with an +exceptional experience similar to popular package managers like cargo or npm, +but for any language. + +%prep +%autosetup +%cargo_prep_online + +%build +%cargo_build +for shell in bash elvish fish zsh; do + target/rpm/%{name} completion --shell $shell > completions.$shell +done +%dnl %cargo_license_online > LICENSE.dependencies + +%install +install -Dm 755 target/rpm/%{name} %{buildroot}%{_bindir}/%{name} +install -Dm 644 completions.bash %{buildroot}%{bash_completions_dir}/%{name} +install -Dm 644 completions.elvish %{buildroot}%{elvish_completions_dir}/%{name}.elv +install -Dm 644 completions.fish %{buildroot}%{fish_completions_dir}/%{name}.fish +install -Dm 644 completions.zsh %{buildroot}%{zsh_completions_dir}/_%{name} + +%files +%doc README.md SECURITY.md CHANGELOG.md CODE_OF_CONDUCT.md CONTRIBUTING.md +%license LICENSE +%{_bindir}/%{name} + +%changelog +* Wed Dec 17 2025 metcya - 0.62.0 +- Initial package diff --git a/anda/system/pixi/update.rhai b/anda/system/pixi/update.rhai new file mode 100644 index 0000000000..45b1a84da9 --- /dev/null +++ b/anda/system/pixi/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("prefix-dev/pixi")); diff --git a/anda/system/polycrystal/polycrystal.spec b/anda/system/polycrystal/polycrystal.spec index 536002f422..cfd4ca01c3 100644 --- a/anda/system/polycrystal/polycrystal.spec +++ b/anda/system/polycrystal/polycrystal.spec @@ -1,15 +1,15 @@ Name: polycrystal Version: 0.2.0 -Release: 1%?dist +Release: 2%?dist Summary: Barebones "automatic" Flatpak installer for distribution-default Flatpak packages. URL: https://github.com/Ultramarine-Linux/polycrystal Source0: %url/archive/refs/tags/v%version.tar.gz -License: GPL +License: GPL-3.0-only BuildRequires: cargo cmake anda-srpm-macros cargo-rpm-macros systemd-rpm-macros mold glib2-devel flatpak-devel Packager: Owen Zimmerman %description -%summary +%summary. %prep %autosetup -n polycrystal-%version diff --git a/anda/system/readymade/git/readymade-git.spec b/anda/system/readymade/git/readymade-git.spec index 698e249a2d..af22342c96 100644 --- a/anda/system/readymade/git/readymade-git.spec +++ b/anda/system/readymade/git/readymade-git.spec @@ -1,10 +1,10 @@ -%global commit bb8cfa0ec76c703faac1f47743206cc5e267d16d -%global commit_date 20251004 +%global commit d65638a3e998f8af3cc0eda8c3641d134c73087d +%global commit_date 20260501 %global shortcommit %(c=%{commit}; echo ${c:0:7}) - +%global crate readymade Name: readymade-git Version: %commit_date.%shortcommit -Release: 2%?dist +Release: 1%{?dist} Summary: Install ready-made distribution images! License: GPL-3.0-or-later URL: https://github.com/FyraLabs/readymade @@ -12,6 +12,7 @@ Source0: %url/archive/%commit.tar.gz Source1: https://github.com/FyraLabs/rdms_proc_macros/archive/HEAD.tar.gz BuildRequires: anda-srpm-macros rust-packaging mold BuildRequires: pkgconfig(libhelium-1) +BuildRequires: pkgconfig(openssl) BuildRequires: clang-devel BuildRequires: gcc BuildRequires: cmake @@ -24,6 +25,8 @@ Obsoletes: readymade-nightly < 20250502.4dc78ec-3 Requires: efibootmgr +Packager: Owen Zimmerman + %description Readymade is a simple Linux Distribution installer. @@ -44,7 +47,7 @@ This package contains the configuration files for Readymade to install Ultramari %prep %autosetup -n readymade-%commit tar xf %{S:1} -rmdir taidan_proc_macros && mv rdms_proc_macros* taidan_proc_macros +rmdir crates/taidan_proc_macros && mv rdms_proc_macros* crates/taidan_proc_macros %cargo_prep_online %build @@ -69,4 +72,3 @@ ln -sf %{_datadir}/applications/com.fyralabs.Readymade.desktop %{buildroot}%{_da %_datadir/applications/liveinst.desktop %ghost %_datadir/readymade %_datadir/icons/hicolor/scalable/apps/com.fyralabs.Readymade.svg - diff --git a/anda/system/readymade/stable/readymade.spec b/anda/system/readymade/stable/readymade.spec index 91622a69bd..14442f33dc 100644 --- a/anda/system/readymade/stable/readymade.spec +++ b/anda/system/readymade/stable/readymade.spec @@ -1,6 +1,7 @@ +%global crate readymade Name: readymade -Version: 0.12.5 -Release: 1%?dist +Version: 0.14.0 +Release: 1%{?dist} Summary: Install ready-made distribution images! License: GPL-3.0-or-later URL: https://github.com/FyraLabs/readymade @@ -31,7 +32,7 @@ This package contains the configuration files for Readymade to install Ultramari %prep %autosetup tar xf %{S:1} -rmdir taidan_proc_macros && mv rdms_proc_macros* taidan_proc_macros +rmdir crates/taidan_proc_macros && mv rdms_proc_macros* crates/taidan_proc_macros %cargo_prep_online %build @@ -55,4 +56,3 @@ ln -sf %{_datadir}/applications/com.fyralabs.Readymade.desktop %{buildroot}%{_da %_datadir/applications/liveinst.desktop %ghost %_datadir/readymade %_datadir/icons/hicolor/scalable/apps/com.fyralabs.Readymade.svg - diff --git a/anda/system/rtl8821cu/akmod/rtl8821cu-kmod.spec b/anda/system/rtl8821cu/akmod/rtl8821cu-kmod.spec index f47ef34615..dfbb341e87 100644 --- a/anda/system/rtl8821cu/akmod/rtl8821cu-kmod.spec +++ b/anda/system/rtl8821cu/akmod/rtl8821cu-kmod.spec @@ -1,6 +1,6 @@ -%global commit 3d1fcf4bc838542ceb03b0b4e9e40600720cf6ae +%global commit 7f63a9da2e8ed83403f6f920e9b1628a37b38ef4 %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commit_date 20251010 +%global commit_date 20251215 %global ver 5.12.0.4 %global modulename rtl8821cu %global git_name 8821cu-20210916 @@ -11,7 +11,7 @@ Linux Driver for USB Wi-Fi Adapters that are based on the RTL8811CU, RTL8821CU, Name: %{modulename}-kmod Version: %{ver}^%{commit_date}git.%{shortcommit} -Release: 1%?dist +Release: 4%{?dist} Summary: Linux Driver for USB Wi-Fi Adapters using RTL8821 chipsets License: GPL-2.0-only URL: https://github.com/morrownr/8821cu-20210916 @@ -21,15 +21,15 @@ BuildRequires: systemd-rpm-macros Requires: %{modulename}-kmod-common = %{version} Requires: akmods Conflicts: dkms-%{modulename} -Packager: Gilver E. +Packager: Gilver E. -%{expand:%(kmodtool --target %{_target_cpu} --repo terra --kmodname %{name} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null) } +%{expand:%(kmodtool --target %{_target_cpu} --repo terrapkg.com --kmodname %{name} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null) } %description %_description %prep %{?kmodtool_check} -kmodtool --target %{_target_cpu} --repo terra --kmodname %{name} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null +kmodtool --target %{_target_cpu} --repo terrapkg.com --kmodname %{name} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null %autosetup -n %{git_name}-%{commit} @@ -44,7 +44,7 @@ sed -i 's/CONFIG_PLATFORM_ARM64_RPI = n/CONFIG_PLATFORM_ARM64_RPI = y/g' Makefil for kernel_version in %{?kernel_versions}; do mkdir _kmod_build_${kernel_version%%___*} - cp -fr core hal include os_dep platform Kconfig Makefile halmac.mk _kmod_build_${kernel_version%%___*} + cp -fr core hal include os_dep platform Kconfig Makefile halmac.mk rtl8821c.mk _kmod_build_${kernel_version%%___*} done %build diff --git a/anda/system/rtl8821cu/dkms/anda.hcl b/anda/system/rtl8821cu/dkms/anda.hcl index 3d716dd0ca..09cdb8c884 100644 --- a/anda/system/rtl8821cu/dkms/anda.hcl +++ b/anda/system/rtl8821cu/dkms/anda.hcl @@ -1,4 +1,5 @@ project pkg { + arches = ["x86_64"] rpm { spec = "dkms-rtl8821cu.spec" } diff --git a/anda/system/rtl8821cu/dkms/dkms-rtl8821cu.spec b/anda/system/rtl8821cu/dkms/dkms-rtl8821cu.spec index 7520b4b481..f1cce2d9f4 100644 --- a/anda/system/rtl8821cu/dkms/dkms-rtl8821cu.spec +++ b/anda/system/rtl8821cu/dkms/dkms-rtl8821cu.spec @@ -1,16 +1,15 @@ -%global commit 3d1fcf4bc838542ceb03b0b4e9e40600720cf6ae +%global commit 7f63a9da2e8ed83403f6f920e9b1628a37b38ef4 %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commit_date 20251010 +%global commit_date 20251215 %global ver 5.12.0.4 %global modulename rtl8821cu %global git_name 8821cu-20210916 -%global debug_package %{nil} %global _description %{expand: Linux Driver for USB Wi-Fi Adapters that are based on the RTL8811CU, RTL8821CU, RTL8821CUH, and RTL8731AU chipsets.} Name: dkms-%{modulename} Version: %{ver}^%{commit_date}git.%{shortcommit} -Release: 1%?dist +Release: 3%{?dist} Summary: Linux Driver for USB Wi-Fi Adapters using RTL8821 chipsets License: GPL-2.0-only URL: https://github.com/morrownr/8821cu-20210916 @@ -26,7 +25,8 @@ Requires: bc Requires: make Provides: %{modulename}-kmod Conflicts: akmod-%{modulename} -Packager: Gilver E. +BuildArch: noarch +Packager: Gilver E. %description %_description @@ -50,7 +50,7 @@ sed -i 's/CONFIG_PLATFORM_ARM64_RPI = n/CONFIG_PLATFORM_ARM64_RPI = y/g' Makefil %install mkdir -p %{buildroot}%{_usrsrc}/%{modulename}-%{version}/ -cp -fr core hal include os_dep platform Kconfig Makefile halmac.mk dkms-make.sh dkms.conf %{buildroot}%{_usrsrc}/%{modulename}-%{version}/ +cp -fr core hal include os_dep platform Kconfig Makefile halmac.mk rtl8821c.mk dkms-make.sh dkms.conf %{buildroot}%{_usrsrc}/%{modulename}-%{version}/ %if 0%{?fedora} # Do not enable weak modules support in Fedora (no kABI): diff --git a/anda/system/rtl8821cu/kmod-common/rtl8821cu-kmod-common.spec b/anda/system/rtl8821cu/kmod-common/rtl8821cu-kmod-common.spec index c0793ac4f0..b6685aefa8 100644 --- a/anda/system/rtl8821cu/kmod-common/rtl8821cu-kmod-common.spec +++ b/anda/system/rtl8821cu/kmod-common/rtl8821cu-kmod-common.spec @@ -1,14 +1,13 @@ -%global commit 3d1fcf4bc838542ceb03b0b4e9e40600720cf6ae +%global commit 7f63a9da2e8ed83403f6f920e9b1628a37b38ef4 %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commit_date 20251010 +%global commit_date 20251215 %global ver 5.12.0.4 %global modulename rtl8821cu %global git_name 8821cu-20210916 -%global debug_package %{nil} Name: %{modulename}-kmod-common Version: %{ver}^%{commit_date}git.%{shortcommit} -Release: 1%?dist +Release: 2%{?dist} Summary: Common files and documentation for the rtl8821cu driver License: GPL-2.0-only URL: https://github.com/morrownr/8821cu-20210916 @@ -16,7 +15,7 @@ Source0: %{url}/archive/%{commit}.tar.gz#/%{git_name}-%{shortcommit}.tar. BuildRequires: systemd-rpm-macros Requires: rtl8821cu-kmod = %{version} BuildArch: noarch -Packager: Gilver E. +Packager: Gilver E. %description Necessary files for the %{modulename} driver. diff --git a/anda/system/sc0710/akmod/anda.hcl b/anda/system/sc0710/akmod/anda.hcl new file mode 100644 index 0000000000..9082dd68d0 --- /dev/null +++ b/anda/system/sc0710/akmod/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + rpm { + spec = "sc0710-kmod.spec" + } + labels { + mock = 1 + updbranch = 1 + } +} diff --git a/anda/system/sc0710/akmod/sc0710-kmod.spec b/anda/system/sc0710/akmod/sc0710-kmod.spec new file mode 100644 index 0000000000..3222c892c1 --- /dev/null +++ b/anda/system/sc0710/akmod/sc0710-kmod.spec @@ -0,0 +1,55 @@ +%global commit 56c3cc0748cc66220487aaa63dc621aa1076994d +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global commitdate 20260418 +%global ver 0 +%define buildforkernels akmod +%global debug_package %{nil} +%global modulename sc0710 + +Name: %{modulename}-kmod +Version: %{ver}^%{commitdate}git.%{shortcommit} +Release: 1%{?dist} +Summary: Elgato 4K60 Pro MK.2 / 4K Pro capture card driver +License: GPL-2.0-only +URL: https://github.com/Nakildias/sc0710 +Source0: https://github.com/Nakildias/sc0710/archive/%{commit}.tar.gz#/sc0710-%{shortcommit}.tar.gz +BuildRequires: kmodtool +Requires: akmods +Requires: %{modulename} = %{?epoch:%{epoch}:}%{version} +Conflicts: dkms-%{modulename} +Packager: Kyle Gospodnetich + +%{expand:%(kmodtool --target %{_target_cpu} --repo terrapkg.com --kmodname %{name} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null) } + +%description +Elgato 4K60 Pro MK.2 / 4K Pro capture card driver. + +%prep +%{?kmodtool_check} +kmodtool --target %{_target_cpu} --repo terrapkg.com --kmodname %{name} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null + +%autosetup -p1 -n %{modulename}-%{commit} + +for kernel_version in %{?kernel_versions}; do + mkdir _kmod_build_${kernel_version%%___*} + cp -fr lib Makefile _kmod_build_${kernel_version%%___*} +done + +%build +for kernel_version in %{?kernel_versions}; do + pushd _kmod_build_${kernel_version%%___*}/ + %make_build -C "${kernel_version##*___}" M=$(pwd) VERSION="v%{version}" modules + popd +done + +%install +for kernel_version in %{?kernel_versions}; do + mkdir -p %{buildroot}/%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/ + install -p -m 0755 _kmod_build_${kernel_version%%___*}/*.ko \ + %{buildroot}/%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/ +done +%{?akmod_install} + +%changelog +* Fri Apr 03 2026 Kyle Gospodnetich +- Initial package diff --git a/anda/system/sc0710/akmod/update.rhai b/anda/system/sc0710/akmod/update.rhai new file mode 100644 index 0000000000..4969eb372d --- /dev/null +++ b/anda/system/sc0710/akmod/update.rhai @@ -0,0 +1,12 @@ +let c = sh("cat anda/system/sc0710/kmod-common/sc0710.spec | grep '%global commit ' | sed -E 's/.+commit //'", #{"stdout": "piped"}).ctx.stdout; +c.pop(); +rpm.global("commit", c); +if rpm.changed() { + rpm.release(); + let d = sh("cat anda/system/sc0710/kmod-common/sc0710.spec | grep '%global commitdate' | sed -E 's/.+commitdate //'", #{"stdout": "piped"}).ctx.stdout; + d.pop(); + rpm.global("commitdate", d); + let v = sh("cat anda/system/sc0710/kmod-common/sc0710.spec | grep '%global ver' | sed -E 's/.+ver //'", #{"stdout": "piped"}).ctx.stdout; + v.pop(); + rpm.global("ver", v); +} diff --git a/anda/system/sc0710/dkms/anda.hcl b/anda/system/sc0710/dkms/anda.hcl new file mode 100644 index 0000000000..d0e2b9a8af --- /dev/null +++ b/anda/system/sc0710/dkms/anda.hcl @@ -0,0 +1,10 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "dkms-sc0710.spec" + } + labels { + mock = 1 + updbranch = 1 + } +} diff --git a/anda/system/sc0710/dkms/dkms-sc0710.conf b/anda/system/sc0710/dkms/dkms-sc0710.conf new file mode 100644 index 0000000000..c508e1ac24 --- /dev/null +++ b/anda/system/sc0710/dkms/dkms-sc0710.conf @@ -0,0 +1,6 @@ +PACKAGE_NAME="sc0710" +PACKAGE_VERSION="__VERSION_STRING" +AUTOINSTALL="yes" + +BUILT_MODULE_NAME[0]="sc0710" +DEST_MODULE_LOCATION[0]="/kernel/drivers/media/pci/" diff --git a/anda/system/sc0710/dkms/dkms-sc0710.spec b/anda/system/sc0710/dkms/dkms-sc0710.spec new file mode 100644 index 0000000000..e3f8029845 --- /dev/null +++ b/anda/system/sc0710/dkms/dkms-sc0710.spec @@ -0,0 +1,60 @@ +%global commit 56c3cc0748cc66220487aaa63dc621aa1076994d +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global commitdate 20260418 +%global ver 0 +%global debug_package %{nil} +%global modulename sc0710 + +Name: dkms-%{modulename} +Version: %{ver}^%{commitdate}git.%{shortcommit} +Release: 1%{?dist} +Summary: Elgato 4K60 Pro MK.2 / 4K Pro capture card driver (DKMS) +License: GPL-2.0-only +URL: https://github.com/Nakildias/%{modulename} +Source0: https://github.com/Nakildias/%{modulename}/archive/%{commit}.tar.gz#/%{modulename}-%{shortcommit}.tar.gz +Source1: %{name}.conf +Source2: no-weak-modules.conf +Requires: %{modulename} = %{?epoch:%{epoch}:}%{version} +Requires: dkms +Conflicts: akmod-%{modulename} +Provides: %{modulename}-kmod +BuildArch: noarch +Packager: Kyle Gospodnetich + +%description +Elgato 4K60 Pro MK.2 / 4K Pro capture card driver (DKMS). + +%prep +%autosetup -p1 -n %{modulename}-%{commit} + +cp -f %{SOURCE1} dkms.conf + +sed -i -e 's/__VERSION_STRING/%{version}/g' dkms.conf + +%build + +%install +mkdir -p %{buildroot}%{_usrsrc}/%{modulename}-%{version}/ +cp -fr lib Makefile dkms.conf %{buildroot}%{_usrsrc}/%{modulename}-%{version}/ + +%if 0%{?fedora} +install -Dpm644 %{SOURCE2} %{buildroot}%{_sysconfdir}/dkms/%{modulename}.conf +%endif + +%post +dkms add -m %{modulename} -v %{version} -q --rpm_safe_upgrade || : +dkms build -m %{modulename} -v %{version} -q || : +dkms install -m %{modulename} -v %{version} -q --force || : + +%preun +dkms remove -m %{modulename} -v %{version} -q --all --rpm_safe_upgrade || : + +%files +%{_usrsrc}/%{modulename}-%{version} +%if 0%{?fedora} +%{_sysconfdir}/dkms/%{modulename}.conf +%endif + +%changelog +* Fri Apr 03 2026 Kyle Gospodnetich +- Initial package diff --git a/anda/system/sc0710/dkms/no-weak-modules.conf b/anda/system/sc0710/dkms/no-weak-modules.conf new file mode 100644 index 0000000000..24f6f95c96 --- /dev/null +++ b/anda/system/sc0710/dkms/no-weak-modules.conf @@ -0,0 +1 @@ +NO_WEAK_MODULES="yes" diff --git a/anda/system/sc0710/dkms/update.rhai b/anda/system/sc0710/dkms/update.rhai new file mode 100644 index 0000000000..4969eb372d --- /dev/null +++ b/anda/system/sc0710/dkms/update.rhai @@ -0,0 +1,12 @@ +let c = sh("cat anda/system/sc0710/kmod-common/sc0710.spec | grep '%global commit ' | sed -E 's/.+commit //'", #{"stdout": "piped"}).ctx.stdout; +c.pop(); +rpm.global("commit", c); +if rpm.changed() { + rpm.release(); + let d = sh("cat anda/system/sc0710/kmod-common/sc0710.spec | grep '%global commitdate' | sed -E 's/.+commitdate //'", #{"stdout": "piped"}).ctx.stdout; + d.pop(); + rpm.global("commitdate", d); + let v = sh("cat anda/system/sc0710/kmod-common/sc0710.spec | grep '%global ver' | sed -E 's/.+ver //'", #{"stdout": "piped"}).ctx.stdout; + v.pop(); + rpm.global("ver", v); +} diff --git a/anda/system/xpadneo/kmod-common/anda.hcl b/anda/system/sc0710/kmod-common/anda.hcl similarity index 77% rename from anda/system/xpadneo/kmod-common/anda.hcl rename to anda/system/sc0710/kmod-common/anda.hcl index 9b58032693..af7d62c918 100644 --- a/anda/system/xpadneo/kmod-common/anda.hcl +++ b/anda/system/sc0710/kmod-common/anda.hcl @@ -1,7 +1,7 @@ project pkg { arches = ["x86_64"] rpm { - spec = "xpadneo.spec" + spec = "sc0710.spec" } labels { nightly = 1 diff --git a/anda/system/sc0710/kmod-common/sc0710.spec b/anda/system/sc0710/kmod-common/sc0710.spec new file mode 100644 index 0000000000..ec5c2faf77 --- /dev/null +++ b/anda/system/sc0710/kmod-common/sc0710.spec @@ -0,0 +1,32 @@ +%global commit 56c3cc0748cc66220487aaa63dc621aa1076994d +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global commitdate 20260418 +%global ver 0 + +Name: sc0710 +Version: %{ver}^%{commitdate}git.%{shortcommit} +Release: 1%{?dist} +Summary: Elgato 4K60 Pro MK.2 / 4K Pro capture card driver common files +License: GPL-2.0-only +URL: https://github.com/Nakildias/%{name} +Source0: %{url}/archive/%{commit}.tar.gz#/%{name}-%{shortcommit}.tar.gz +Requires: %{name}-kmod = %{?epoch:%{epoch}:}%{version} +Provides: %{name}-kmod-common = %{?epoch:%{epoch}:}%{version} +BuildArch: noarch +Packager: Kyle Gospodnetich + +%description +Elgato 4K60 Pro MK.2 / 4K Pro capture card driver common files. + +%prep +%autosetup -p1 -n %{name}-%{commit} + +%install + +%files +%license LICENSE +%doc README.md + +%changelog +* Fri Apr 03 2026 Kyle Gospodnetich +- Initial package diff --git a/anda/system/sc0710/kmod-common/update.rhai b/anda/system/sc0710/kmod-common/update.rhai new file mode 100644 index 0000000000..23c41b09cc --- /dev/null +++ b/anda/system/sc0710/kmod-common/update.rhai @@ -0,0 +1,5 @@ +rpm.global("commit", gh_commit("Nakildias/sc0710")); +if rpm.changed() { + rpm.release(); + rpm.global("commitdate", date()); +} diff --git a/anda/system/scx-scheds/nightly/scx-scheds-nightly.spec b/anda/system/scx-scheds/nightly/scx-scheds-nightly.spec index 5a73a3efd8..7ceab46eaa 100644 --- a/anda/system/scx-scheds/nightly/scx-scheds-nightly.spec +++ b/anda/system/scx-scheds/nightly/scx-scheds-nightly.spec @@ -1,14 +1,15 @@ -%global commit 76e856410ffc63bbfbd53a71e9b1c0b93faad12a +%global commit a9e43b68d632f2746e97da4fb7a955a320795d1a %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commitdate 20251027 -%global ver 1.0.17 +%global commitdate 20260507 +%global ver 1.1.0 +%undefine __brp_mangle_shebangs Name: scx-scheds-nightly Version: %{ver}^%{commitdate}.git.%{shortcommit} -Release: 1%?dist +Release: 1%{?dist} Summary: Nightly builds of sched_ext schedulers and tools SourceLicense: GPL-2.0-only -License: ((Apache-2.0 OR MIT) AND BSD-3-Clause) AND ((MIT OR Apache-2.0) AND Unicode-3.0) AND (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND Apache-2.0 AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND BSD-2-Clause AND BSD-3-Clause AND GPL-2.0-only AND ISC AND (LGPL-2.1-only OR BSD-2-Clause) AND LGPL-2.1 AND (MIT OR Apache-2.0 OR LGPL-2.1-or-later) AND (MIT OR Apache-2.0) AND (MIT OR Zlib OR Apache-2.0) AND MIT AND (MPL-2.0 OR MIT OR Apache-2.0) AND MPL-2.0-only and MPL-2.0-or-later AND (Unlicense OR MIT) AND Zlib +License: ((Apache-2.0 OR MIT) AND BSD-3-Clause) AND ((MIT OR Apache-2.0) AND Unicode-3.0) AND (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND Apache-2.0 AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND BSD-2-Clause AND BSD-3-Clause AND BSL-1.0 AND GPL-2.0-only AND ISC AND (LGPL-2.1-only OR BSD-2-Clause) AND LGPL-2.1-only AND (MIT OR Apache-2.0 OR LGPL-2.1-or-later) AND (MIT OR Apache-2.0 OR Zlib) AND (MIT OR Apache-2.0) AND (MIT OR Zlib OR Apache-2.0) AND MIT AND (MPL-2.0 OR MIT OR Apache-2.0) AND MPL-2.0-or-later AND (Unlicense OR MIT) AND (Zlib OR Apache-2.0 OR MIT) AND Zlib URL: https://github.com/sched-ext/scx Source0: %{URL}/archive/%{commit}/scx-%{commit}.tar.gz BuildRequires: anda-srpm-macros @@ -32,6 +33,8 @@ BuildRequires: rust BuildRequires: systemd BuildRequires: systemd-rpm-macros BuildRequires: zlib-ng-compat +Requires: (scx-tools or scx-tools-nightly) +Suggests: scx-tools-nightly Requires: elfutils-libelf Requires: jq Requires: libseccomp @@ -50,7 +53,7 @@ Provides: scx_layered Provides: scx_rustland Provides: scx_rusty Obsoletes: scxctl <= 0.3.4 -Packager: Gilver E. +Packager: Gilver E. %description sched_ext is a Linux kernel feature which enables implementing kernel thread schedulers in BPF and dynamically loading them. @@ -70,25 +73,21 @@ License: GPL-2.0-only %cargo_prep_online %build -%meson \ - -Dsystemd=enabled \ - -Dopenrc=disabled -%meson_build - +%{cargo_build -a} \ + --workspace \ + --exclude scx_rlfifo \ + --exclude scx_mitosis \ + --exclude scx_wd40 \ + --exclude xtask \ + --exclude scxcash \ + --exclude vmlinux_docify \ + --exclude scx_arena_selftests %install -%meson_install +%install_cargo_bins +%install_cargo_devel_libs -%{cargo_license_online} > LICENSE.dependencies - -%post -%systemd_post scx_loader.service - -%preun -%systemd_preun scx_loader.service - -%postun -%systemd_postun_with_restart scx_loader.service +%{cargo_license_online -a} > LICENSE.dependencies %files %doc OVERVIEW.md @@ -96,13 +95,9 @@ License: GPL-2.0-only %license LICENSE %license LICENSE.dependencies %{_bindir}/scx* -%{_bindir}/vmlinux_docify -%{_bindir}/xtask -%{_unitdir}/scx_loader.service -%{_datadir}/dbus-1/system.d/org.scx.Loader.conf -%{_datadir}/dbus-1/system-services/org.scx.Loader.service -%config(noreplace) %{_datadir}/scx_loader/config.toml %changelog +* Sat May 2 2026 Gilver E. - 1.1.0^20260502.git.ce8aa3d-2 +- Update licenses * Sun Jun 15 2025 Gilver E. - 1.0.13^20250612.git.c1507b0-1 - Initial package diff --git a/anda/system/scx-scheds/stable/scx-scheds.spec b/anda/system/scx-scheds/stable/scx-scheds.spec index e6ec12b732..0dcc1acf46 100644 --- a/anda/system/scx-scheds/stable/scx-scheds.spec +++ b/anda/system/scx-scheds/stable/scx-scheds.spec @@ -1,9 +1,11 @@ +%undefine __brp_mangle_shebangs + Name: scx-scheds -Version: 1.0.17 -Release: 1%?dist -Summary: sched_ext schedulers and tools +Version: 1.1.0 +Release: 2%{?dist} +Summary: sched_ext schedulers SourceLicense: GPL-2.0-only -License: ((Apache-2.0 OR MIT) AND BSD-3-Clause) AND ((MIT OR Apache-2.0) AND Unicode-3.0) AND (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND Apache-2.0 AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND BSD-2-Clause AND BSD-3-Clause AND GPL-2.0-only AND ISC AND (LGPL-2.1-only OR BSD-2-Clause) AND LGPL-2.1 AND (MIT OR Apache-2.0 OR LGPL-2.1-or-later) AND (MIT OR Apache-2.0) AND (MIT OR Zlib OR Apache-2.0) AND MIT AND (MPL-2.0 OR MIT OR Apache-2.0) AND MPL-2.0-only and MPL-2.0-or-later AND (Unlicense OR MIT) AND Zlib +License: ((Apache-2.0 OR MIT) AND BSD-3-Clause) AND ((MIT OR Apache-2.0) AND Unicode-3.0) AND (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND Apache-2.0 AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND BSD-2-Clause AND BSD-3-Clause AND BSL-1.0 AND GPL-2.0-only AND ISC AND (LGPL-2.1-only OR BSD-2-Clause) AND LGPL-2.1-only AND (MIT OR Apache-2.0 OR LGPL-2.1-or-later) AND (MIT OR Apache-2.0 OR Zlib) AND (MIT OR Apache-2.0) AND (MIT OR Zlib OR Apache-2.0) AND MIT AND (MPL-2.0 OR MIT OR Apache-2.0) AND MPL-2.0-or-later AND (Unlicense OR MIT) AND (Zlib OR Apache-2.0 OR MIT) AND Zlib URL: https://github.com/sched-ext/scx Source0: %{URL}/archive/refs/tags/v%{version}.tar.gz BuildRequires: anda-srpm-macros @@ -27,6 +29,8 @@ BuildRequires: rust BuildRequires: systemd BuildRequires: systemd-rpm-macros BuildRequires: zlib-ng-compat +Requires: (scx-tools or scx-tools-nightly) +Suggests: scx-tools Requires: elfutils-libelf Requires: jq Requires: libseccomp @@ -38,6 +42,7 @@ Conflicts: scx_layered Conflicts: scx_rustland Conflicts: scx_rusty Conflicts: scx-scheds-git +Conflicts: scx-scheds-nightly Provides: rust-scx_utils-devel Provides: scx_c_schedulers Provides: scxctl = %{version} @@ -45,7 +50,7 @@ Provides: scx_layered Provides: scx_rustland Provides: scx_rusty Obsoletes: scxctl <= 0.3.4 -Packager: Gilver E. +Packager: Gilver E. %description sched_ext is a Linux kernel feature which enables implementing kernel thread schedulers in BPF and dynamically loading them. @@ -62,41 +67,31 @@ License: GPL-2.0-only %cargo_prep_online %build -%meson \ - -Dsystemd=enabled \ - -Dopenrc=disabled -%meson_build +%{cargo_build -a} \ + --workspace \ + --exclude scx_rlfifo \ + --exclude scx_mitosis \ + --exclude scx_wd40 \ + --exclude xtask \ + --exclude scxcash \ + --exclude vmlinux_docify \ + --exclude scx_arena_selftests %install -%meson_install +%install_cargo_bins +%install_cargo_devel_libs -mv services/systemd/README.md SERVICE_MIGRATION.md - -%{cargo_license_online} > LICENSE.dependencies - -%post -%systemd_post scx_loader.service - -%preun -%systemd_preun scx_loader.service - -%postun -%systemd_postun_with_restart scx_loader.service +%{cargo_license_online -a} > LICENSE.dependencies %files %doc OVERVIEW.md %doc README.md -%doc SERVICE_MIGRATION.md %license LICENSE %license LICENSE.dependencies %{_bindir}/scx* -%{_bindir}/vmlinux_docify -%{_bindir}/xtask -%{_unitdir}/scx_loader.service -%{_datadir}/dbus-1/system.d/org.scx.Loader.conf -%{_datadir}/dbus-1/system-services/org.scx.Loader.service -%config(noreplace) %{_datadir}/scx_loader/config.toml %changelog +* Sat May 2 2026 Gilver E. - 1.1.0-2 +- Update licenses * Sun Jun 15 2025 Gilver E. - 1.0.13-1 - Initial package diff --git a/anda/system/scx-tools/nightly/anda.hcl b/anda/system/scx-tools/nightly/anda.hcl new file mode 100644 index 0000000000..10de38ca82 --- /dev/null +++ b/anda/system/scx-tools/nightly/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "scx-tools-nightly.spec" + } + labels { + nightly = 1 + } +} diff --git a/anda/system/scx-tools/nightly/scx-tools-nightly.spec b/anda/system/scx-tools/nightly/scx-tools-nightly.spec new file mode 100644 index 0000000000..dae05b5c48 --- /dev/null +++ b/anda/system/scx-tools/nightly/scx-tools-nightly.spec @@ -0,0 +1,88 @@ +%global commit 224c78c7c5e88472b9ad6a66b8ce90c164157786 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global commitdate 20260423 +%global ver 1.1.0 +%global appid com.sched_ext.scx +%global developer "sched-ext Contributors" +%global org "com.sched_ext" + +Name: scx-tools-nightly +Version: %{ver}^%{commitdate}.git.%{shortcommit} +Release: 1%{?dist} +Summary: Sched_ext Tools +License: ((MIT OR Apache-2.0) AND Unicode-3.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND GPL-2.0-only AND (MIT OR Apache-2.0 OR LGPL-2.1-or-later) AND (MIT OR Apache-2.0) AND MIT AND MPL-2.0 AND (Unlicense OR MIT) AND (Zlib OR Apache-2.0 OR MIT) +SourceLicense: GPL-2.0-only +URL: https://github.com/sched-ext/scx-loader +Source0: %{url}/archive/%{commit}/%{commit}.tar.gz +BuildRequires: anda-srpm-macros +BuildRequires: bpftool +BuildRequires: cargo +BuildRequires: cargo-rpm-macros +BuildRequires: clang >= 17 +BuildRequires: gcc +BuildRequires: git +BuildRequires: libseccomp-devel +BuildRequires: lld >= 17 +BuildRequires: llvm >= 17 +BuildRequires: mold +BuildRequires: python3 +BuildRequires: rust +BuildRequires: systemd +BuildRequires: systemd-rpm-macros +Requires: (scx-scheds or scx-scheds-nightly) +Suggests: scx-scheds-nightly +Obsoletes: scxctl <= 0.3.4 +Provides: scxctl = %{evr} +Conflicts: scx-tools +Packager: Gilver E. + +%description +scx_loader: A D-Bus interface for managing sched_ext schedulers + +%prep +%autosetup -n scx-loader-%{commit} +%cargo_prep_online + +%build +%{cargo_build -a} \ + --workspace + +%install +find target/rpm \ + -maxdepth 1 -type f -executable ! -name '*.so' ! -name 'xtask' \ + -exec install -Dm755 -t %{buildroot}%{_bindir} {} + + +# Install runtime assets via xtask +./target/rpm/xtask install --destdir %{buildroot} + +install -Dm755 target/rpm/*.so -t %{buildroot}%{_libdir} || : + +%{cargo_license_online} > LICENSE.dependencies + +%terra_appstream + +%post +%systemd_post scx_loader.service + +%preun +%systemd_preun scx_loader.service + +%postun +%systemd_postun_with_restart scx_loader.service + +%files +%license LICENSE +%license LICENSE.dependencies +%doc README.md +%{_bindir}/scx* +%{_unitdir}/scx_loader.service +%{_datadir}/dbus-1/interfaces/org.scx.Loader.xml +%{_datadir}/dbus-1/system-services/org.scx.Loader.service +%{_datadir}/dbus-1/system.d/org.scx.Loader.conf +%{_datadir}/polkit-1/actions/org.scx.Loader.policy +%{_datadir}/scx_loader/config.toml +%{_metainfodir}/%{appid}.metainfo.xml + +%changelog +* Sun Nov 16 2025 Gilver E. - 1.0.18^20251114.git.d830ef7-1 +- Initial package diff --git a/anda/system/scx-tools/nightly/update.rhai b/anda/system/scx-tools/nightly/update.rhai new file mode 100644 index 0000000000..acab373af9 --- /dev/null +++ b/anda/system/scx-tools/nightly/update.rhai @@ -0,0 +1,8 @@ +rpm.global("commit", gh_commit("sched-ext/scx-loader")); +if rpm.changed() { + rpm.release(); + rpm.global("commitdate", date()); + let v = gh("sched-ext/scx-loader"); + v.crop(1); + rpm.global("ver", v); +} diff --git a/anda/system/scx-tools/stable/anda.hcl b/anda/system/scx-tools/stable/anda.hcl new file mode 100644 index 0000000000..c5223e522e --- /dev/null +++ b/anda/system/scx-tools/stable/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "scx-tools.spec" + } +} diff --git a/anda/system/scx-tools/stable/scx-tools.spec b/anda/system/scx-tools/stable/scx-tools.spec new file mode 100644 index 0000000000..bd8fbdde70 --- /dev/null +++ b/anda/system/scx-tools/stable/scx-tools.spec @@ -0,0 +1,85 @@ +%global appid com.sched_ext.scx +%global developer "sched-ext Contributors" +%global org "com.sched_ext" + +Name: scx-tools +Version: 1.1.0 +Release: 1%{?dist} +Summary: Sched_ext Tools +License: ((MIT OR Apache-2.0) AND Unicode-3.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND GPL-2.0-only AND (MIT OR Apache-2.0 OR LGPL-2.1-or-later) AND (MIT OR Apache-2.0) AND MIT AND MPL-2.0 AND (Unlicense OR MIT) AND (Zlib OR Apache-2.0 OR MIT) +SourceLicense: GPL-2.0-only +URL: https://github.com/sched-ext/scx-loader +Source0: %{url}/archive/refs/tags/v%{version}.tar.gz +BuildRequires: anda-srpm-macros +BuildRequires: bpftool +BuildRequires: cargo +BuildRequires: cargo-rpm-macros +BuildRequires: clang >= 17 +BuildRequires: gcc +BuildRequires: git +BuildRequires: libseccomp-devel +BuildRequires: lld >= 17 +BuildRequires: llvm >= 17 +BuildRequires: mold +BuildRequires: python3 +BuildRequires: rust +BuildRequires: systemd +BuildRequires: systemd-rpm-macros +Requires: (scx-scheds or scx-scheds-nightly) +Suggests: scx-scheds +Obsoletes: scxctl <= 0.3.4 +Provides: scxctl = %{evr} +Conflicts: scx-tools-git +Conflicts: scx-tools-nightly +Packager: Gilver E. + +%description +scx_loader: A D-Bus interface for managing sched_ext schedulers + +%prep +%autosetup -n scx-loader-%{version} +%cargo_prep_online + +%build +%{cargo_build -a} \ + --workspace + +%install +find target/rpm \ + -maxdepth 1 -type f -executable ! -name '*.so' ! -name 'xtask' \ + -exec install -Dm755 -t %{buildroot}%{_bindir} {} + + +# Install runtime assets via xtask +./target/rpm/xtask install --destdir %{buildroot} + +install -Dm755 target/rpm/*.so -t %{buildroot}%{_libdir} || : + +%{cargo_license_online} > LICENSE.dependencies + +%terra_appstream + +%post +%systemd_post scx_loader.service + +%preun +%systemd_preun scx_loader.service + +%postun +%systemd_postun_with_restart scx_loader.service + +%files +%license LICENSE +%license LICENSE.dependencies +%doc README.md +%{_bindir}/scx* +%{_unitdir}/scx_loader.service +%{_datadir}/dbus-1/interfaces/org.scx.Loader.xml +%{_datadir}/dbus-1/system-services/org.scx.Loader.service +%{_datadir}/dbus-1/system.d/org.scx.Loader.conf +%{_datadir}/polkit-1/actions/org.scx.Loader.policy +%{_datadir}/scx_loader/config.toml +%{_metainfodir}/%{appid}.metainfo.xml + +%changelog +* Sun Nov 16 2025 Gilver E. - 1.0.18-1 +- Initial package diff --git a/anda/system/scx-tools/stable/update.rhai b/anda/system/scx-tools/stable/update.rhai new file mode 100644 index 0000000000..af8768b383 --- /dev/null +++ b/anda/system/scx-tools/stable/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("sched-ext/scx-loader")); diff --git a/anda/system/si-cik-amdgpu/si-cik-amdgpu.spec b/anda/system/si-cik-amdgpu/si-cik-amdgpu.spec index fba10fafc4..e27444dfec 100644 --- a/anda/system/si-cik-amdgpu/si-cik-amdgpu.spec +++ b/anda/system/si-cik-amdgpu/si-cik-amdgpu.spec @@ -4,7 +4,7 @@ Name: si-cik-amdgpu Version: 0^%{commit_date}git.%{shortcommit} -Release: 1%{?dist} +Release: 2%{?dist} Summary: Modprobe config to enable the amdgpu drivers on Southern Islands (SI) and CIK (Sea Islands) License: GPL-3.0-only URL: https://github.com/terrapkg/pkg-si-cik-amdgpu @@ -13,7 +13,7 @@ BuildRequires: systemd-rpm-macros Requires(post): dracut Requires(postun): dracut BuildArch: noarch -Packager: Gilver E. +Packager: Gilver E. %description %{summary}. diff --git a/anda/system/submarine/submarine.spec b/anda/system/submarine/submarine.spec index d412590ae6..827ba6ad75 100644 --- a/anda/system/submarine/submarine.spec +++ b/anda/system/submarine/submarine.spec @@ -14,7 +14,12 @@ Release: 1%?dist Summary: Experimental bootloader for ChomeOS's depthcharge License: GPL-3.0 URL: https://github.com/FyraLabs/submarine -BuildRequires: make gcc flex bison elfutils-devel parted vboot-utils golang xz bc openssl-devel git depthcharge-tools uboot-tools +BuildRequires: make gcc flex bison elfutils-devel parted vboot-utils golang xz bc openssl-devel git depthcharge-tools uboot-tools openssl-devel-engine +%ifarch aarch64 +BuildRequires: python3-importlib-metadata +BuildRequires: python3-packaging +BuildRequires: python3-importlib-resources +%endif %description An experimental bootloader for ChomeOS's depthcharge. diff --git a/anda/system/supergfxctl/anda.hcl b/anda/system/supergfxctl/anda.hcl new file mode 100644 index 0000000000..7b76ffb458 --- /dev/null +++ b/anda/system/supergfxctl/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "supergfxctl.spec" + } +} diff --git a/anda/system/supergfxctl/supergfxctl.spec b/anda/system/supergfxctl/supergfxctl.spec new file mode 100644 index 0000000000..1de7f5e6af --- /dev/null +++ b/anda/system/supergfxctl/supergfxctl.spec @@ -0,0 +1,59 @@ +Name: supergfxctl +Version: 5.2.7 +Release: 2%?dist +Summary: GPU Utility for ASUS ROG Laptops +URL: https://gitlab.com/asus-linux/supergfxctl +Source0: %url/-/archive/%{version}/supergfxctl-%{version}.tar.gz +SourceLicense: MPL-2.0 +License: ((MIT OR Apache-2.0) AND Unicode-3.0) AND (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND MIT AND (MIT OR Apache-2.0) AND (MIT OR Zlib OR Apache-2.0) AND MPL-2.0 AND (Unlicense OR MIT) +BuildRequires: cargo anda-srpm-macros cargo-rpm-macros mold rust-udev-devel +BuildRequires: rpm_macro(systemd_post) +Packager: Its-J + +%description +%{summary}. + +%prep +%autosetup -n supergfxctl-%{version} +%cargo_prep_online + +%build +%cargo_license_summary_online +%{cargo_license_online} > LICENSE.dependencies +%cargo_build -f "cli daemon" + +%install +install -Dm 0755 target/rpm/supergfxd target/rpm/supergfxctl -t %buildroot%_bindir +install -Dm 0644 data/90-supergfxd-nvidia-pm.rules %{buildroot}%{_udevrulesdir}/90-supergfxd-nvidia-pm.rules +install -Dm 0644 data/org.supergfxctl.Daemon.conf %{buildroot}%{_datadir}/dbus-1/system.d/org.supergfxctl.Daemon.conf +install -Dm 0644 data/supergfxd.preset %{buildroot}%{_presetdir}/99-supergfxd.preset +install -Dm 0644 data/90-nvidia-screen-G05.conf %{buildroot}%{_datadir}/X11/xorg.conf.d/90-nvidia-screen-G05.conf +install -Dm 0644 data/supergfxd.service -t %buildroot%_unitdir + +%post +%systemd_post supergfxd.service + +%preun +%systemd_preun supergfxd.service + +%postun +%systemd_postun_with_restart supergfxd.service + +%files +%license LICENSE +%doc README.md +%{_bindir}/supergfxctl +%{_bindir}/supergfxd +%{_udevrulesdir}/90-supergfxd-nvidia-pm.rules +%{_datadir}/X11/xorg.conf.d/90-nvidia-screen-G05.conf +%{_datadir}/dbus-1/system.d/org.supergfxctl.Daemon.conf +%{_unitdir}/supergfxd.service +# We should not be installing .preset files (errors if not listed) +%ghost %{_presetdir}/99-supergfxd.preset + +%changelog +* Tue Apr 14 2026 Its-J +- Add email to my previous contributor attributions + +* Sun Oct 26 2025 Its-J +- Package SuperGFXctl diff --git a/anda/system/supergfxctl/update.rhai b/anda/system/supergfxctl/update.rhai new file mode 100644 index 0000000000..ada985a118 --- /dev/null +++ b/anda/system/supergfxctl/update.rhai @@ -0,0 +1,3 @@ +let v = gitlab_tag("bcdca4be"); +v.replace("-", "~"); +rpm.version(v); diff --git a/anda/system/surface-dtx-daemon/surface-dtx-daemon.spec b/anda/system/surface-dtx-daemon/surface-dtx-daemon.spec index 799a2b1102..309431fd3d 100644 --- a/anda/system/surface-dtx-daemon/surface-dtx-daemon.spec +++ b/anda/system/surface-dtx-daemon/surface-dtx-daemon.spec @@ -1,5 +1,5 @@ %global debug_package %{nil} -%global ver v0.3.10-1 +%global ver v0.3.11-1 %global ver2 %(echo %{ver} | sed 's/^v//') Name: terra-surface-dtx-daemon diff --git a/anda/system/system76-power/anda.hcl b/anda/system/system76-power/anda.hcl new file mode 100644 index 0000000000..690acd49e5 --- /dev/null +++ b/anda/system/system76-power/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "system76-power.spec" + } +} \ No newline at end of file diff --git a/anda/system/system76-power/system76-power.spec b/anda/system/system76-power/system76-power.spec new file mode 100644 index 0000000000..f4882ceea7 --- /dev/null +++ b/anda/system/system76-power/system76-power.spec @@ -0,0 +1,57 @@ +%global appid com.system76.PowerDaemon + +Name: system76-power +Version: 1.2.8 +Release: 1%{?dist} +Summary: Power Profiles and dGPU Hotplug for System76 Laptops +License: GPL-3.0-only + +Packager: Jaiden Riordan +URL: https://github.com/pop-os/system76-power +Source0: %{url}/archive/refs/tags/%{version}.tar.gz + +BuildRequires: libusb-compat-0.1-devel +BuildRequires: dbus-devel +BuildRequires: systemd-rpm-macros +BuildRequires: cargo-rpm-macros +BuildRequires: mold + +%description +%summary. + +%prep +%autosetup +%cargo_prep_online + +%build +%cargo_build + +%install +install -Dm 644 data/%{appid}.conf %{buildroot}%{_datadir}/dbus-1/system.d/%{appid}.conf +install -Dm 644 data/%{appid}.policy %{buildroot}%{_datadir}/polkit-1/actions/%{appid}.policy +install -Dm 644 data/%{appid}.service %{buildroot}%{_unitdir}/%{appid}.service +install -Dm 644 data/%{appid}.xml %{buildroot}%{_datadir}/dbus-1/interfaces/%{appid}.xml +install -Dm 755 target/rpm/%{name} %{buildroot}%{_bindir}/%{name} + +%post +%systemd_post com.system76.PowerDaemon.service + +%preun +%systemd_preun com.system76.PowerDaemon.service + +%postun +%systemd_postun_with_restart com.system76.PowerDaemon.service + +%files +%doc README.md TESTING.md +%license LICENSE +%{_bindir}/%{name} +%{_unitdir}/%{appid}.service +%{_datadir}/dbus-1/interfaces/%{appid}.xml +%{_datadir}/dbus-1/system.d/%{appid}.conf +%{_datadir}/polkit-1/actions/%{appid}.policy + +%changelog +* Fri Jan 9 2026 Jaiden Riordan +- Port to Terra + diff --git a/anda/system/system76-power/update.rhai b/anda/system/system76-power/update.rhai new file mode 100644 index 0000000000..c4d96350fc --- /dev/null +++ b/anda/system/system76-power/update.rhai @@ -0,0 +1 @@ +rpm.version(gh_tag("pop-os/system76-power")); diff --git a/anda/misc/system76-scheduler/anda.hcl b/anda/system/system76-scheduler/anda.hcl similarity index 100% rename from anda/misc/system76-scheduler/anda.hcl rename to anda/system/system76-scheduler/anda.hcl diff --git a/anda/misc/system76-scheduler/system76-scheduler.spec b/anda/system/system76-scheduler/system76-scheduler.spec similarity index 96% rename from anda/misc/system76-scheduler/system76-scheduler.spec rename to anda/system/system76-scheduler/system76-scheduler.spec index 31a01618bf..af871c9e49 100644 --- a/anda/misc/system76-scheduler/system76-scheduler.spec +++ b/anda/system/system76-scheduler/system76-scheduler.spec @@ -61,5 +61,5 @@ just rootdir=%buildroot sysconfdir=%_datadir install - Move default configurations to /usr/share/system76-scheduler - Add Requires: bcc-tools so execsnoop is available -* Tue May 23 2023 windowsboy111 - 2.0.1-1 +* Tue May 23 2023 madonuko - 2.0.1-1 - Initial package. diff --git a/anda/misc/system76-scheduler/update.rhai b/anda/system/system76-scheduler/update.rhai similarity index 100% rename from anda/misc/system76-scheduler/update.rhai rename to anda/system/system76-scheduler/update.rhai diff --git a/anda/system/t150-driver/akmod/anda.hcl b/anda/system/t150-driver/akmod/anda.hcl new file mode 100644 index 0000000000..113665e7bc --- /dev/null +++ b/anda/system/t150-driver/akmod/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + rpm { + spec = "t150-driver-kmod.spec" + } + labels { + mock = 1 + updbranch = 1 + } +} diff --git a/anda/system/t150-driver/akmod/t150-driver-kmod.spec b/anda/system/t150-driver/akmod/t150-driver-kmod.spec new file mode 100644 index 0000000000..88f013e575 --- /dev/null +++ b/anda/system/t150-driver/akmod/t150-driver-kmod.spec @@ -0,0 +1,55 @@ +%global commit f7ecb30c65ee5f7870e921bc0a2354df8e1e8100 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global commitdate 20250225 +%global ver 1.0 +%define buildforkernels akmod +%global debug_package %{nil} +%global modulename t150-driver + +Name: %{modulename}-kmod +Version: %{ver}^%{commitdate}git.%{shortcommit} +Release: 3%{?dist} +Summary: Thrustmaster T150 steering wheel kernel module +License: GPL-2.0-only +URL: https://github.com/scarburato/t150_driver +Source0: %{url}/archive/%{commit}.tar.gz#/t150_driver-%{shortcommit}.tar.gz +BuildRequires: kmodtool +Requires: akmods +Requires: %{modulename} = %{?epoch:%{epoch}:}%{version} +Requires: %{modulename}-akmod-modules = %{?epoch:%{epoch}:}%{version} +Conflicts: dkms-%{modulename} + +%{expand:%(kmodtool --target %{_target_cpu} --repo terrapkg.com --kmodname %{name} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null) } + +%description +Linux driver for Thrustmaster T150 Steering Wheel USB. + +%prep +%{?kmodtool_check} +kmodtool --target %{_target_cpu} --repo terrapkg.com --kmodname %{name} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null + +%autosetup -p1 -n t150_driver-%{commit} + +for kernel_version in %{?kernel_versions}; do + mkdir _kmod_build_${kernel_version%%___*} + cp -fr hid-t150/* _kmod_build_${kernel_version%%___*}/ +done + +%build +for kernel_version in %{?kernel_versions}; do + pushd _kmod_build_${kernel_version%%___*}/ + %make_build -C "${kernel_version##*___}" M=$(pwd) modules + popd +done + +%install +for kernel_version in %{?kernel_versions}; do + mkdir -p %{buildroot}/%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/ + install -p -m 0755 _kmod_build_${kernel_version%%___*}/*.ko \ + %{buildroot}/%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/ +done +%{?akmod_install} + +%changelog +* Thu Apr 02 2026 Kyle Gospodnetich +- Initial package diff --git a/anda/system/t150-driver/akmod/update.rhai b/anda/system/t150-driver/akmod/update.rhai new file mode 100644 index 0000000000..7885cb6a8d --- /dev/null +++ b/anda/system/t150-driver/akmod/update.rhai @@ -0,0 +1,12 @@ +let c = sh("cat anda/system/t150-driver/kmod-common/t150-driver.spec | grep '%global commit ' | sed -E 's/.+commit //'", #{"stdout": "piped"}).ctx.stdout; +c.pop(); +rpm.global("commit", c); +if rpm.changed() { + rpm.release(); + let d = sh("cat anda/system/t150-driver/kmod-common/t150-driver.spec | grep '%global commitdate' | sed -E 's/.+commitdate //'", #{"stdout": "piped"}).ctx.stdout; + d.pop(); + rpm.global("commitdate", d); + let v = sh("cat anda/system/t150-driver/kmod-common/t150-driver.spec | grep '%global ver' | sed -E 's/.+ver //'", #{"stdout": "piped"}).ctx.stdout; + v.pop(); + rpm.global("ver", v); +} diff --git a/anda/system/t150-driver/dkms/anda.hcl b/anda/system/t150-driver/dkms/anda.hcl new file mode 100644 index 0000000000..eb5944477d --- /dev/null +++ b/anda/system/t150-driver/dkms/anda.hcl @@ -0,0 +1,10 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "dkms-t150-driver.spec" + } + labels { + mock = 1 + updbranch = 1 + } +} diff --git a/anda/system/t150-driver/dkms/dkms-t150-driver.conf b/anda/system/t150-driver/dkms/dkms-t150-driver.conf new file mode 100644 index 0000000000..23a68a873a --- /dev/null +++ b/anda/system/t150-driver/dkms/dkms-t150-driver.conf @@ -0,0 +1,10 @@ +PACKAGE_NAME="t150-driver" +PACKAGE_VERSION="__VERSION_STRING" +AUTOINSTALL="yes" + +MAKE="make KDIR=${kernel_source_dir} all" +CLEAN="make KDIR=${kernel_source_dir} clean" + +BUILT_MODULE_NAME[0]="hid-t150" +BUILT_MODULE_LOCATION[0]="build/" +DEST_MODULE_LOCATION[0]="/extra" diff --git a/anda/system/t150-driver/dkms/dkms-t150-driver.spec b/anda/system/t150-driver/dkms/dkms-t150-driver.spec new file mode 100644 index 0000000000..3f1d3a79b6 --- /dev/null +++ b/anda/system/t150-driver/dkms/dkms-t150-driver.spec @@ -0,0 +1,58 @@ +%global commit f7ecb30c65ee5f7870e921bc0a2354df8e1e8100 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global commitdate 20250225 +%global ver 1.0 +%global debug_package %{nil} +%global modulename t150-driver + +Name: dkms-%{modulename} +Version: %{ver}^%{commitdate}git.%{shortcommit} +Release: 3%{?dist} +Summary: Thrustmaster T150 steering wheel kernel module (DKMS) +License: GPL-2.0-only +URL: https://github.com/scarburato/t150_driver +Source0: %{url}/archive/%{commit}.tar.gz#/t150_driver-%{shortcommit}.tar.gz +Source1: %{name}.conf +Source2: no-weak-modules.conf +Requires: %{modulename} = %{?epoch:%{epoch}:}%{version} +Requires: dkms +Conflicts: akmod-%{modulename} +Provides: %{modulename}-kmod +BuildArch: noarch + +%description +Linux driver for Thrustmaster T150 Steering Wheel USB. + +%prep +%autosetup -p1 -n t150_driver-%{commit} + +cp -f %{SOURCE1} dkms.conf +sed -i -e 's/__VERSION_STRING/%{version}/g' dkms.conf + +%build + +%install +mkdir -p %{buildroot}%{_usrsrc}/%{modulename}-%{version}/ +cp -fr hid-t150 dkms_make.mak dkms.conf %{buildroot}%{_usrsrc}/%{modulename}-%{version}/ + +%if 0%{?fedora} +install -Dpm644 %{SOURCE2} %{buildroot}%{_sysconfdir}/dkms/%{modulename}.conf +%endif + +%post +dkms add -m %{modulename} -v %{version} -q --rpm_safe_upgrade || : +dkms build -m %{modulename} -v %{version} -q || : +dkms install -m %{modulename} -v %{version} -q --force || : + +%preun +dkms remove -m %{modulename} -v %{version} -q --all --rpm_safe_upgrade || : + +%files +%{_usrsrc}/%{modulename}-%{version} +%if 0%{?fedora} +%{_sysconfdir}/dkms/%{modulename}.conf +%endif + +%changelog +* Thu Apr 02 2026 Kyle Gospodnetich +- Initial package diff --git a/anda/system/t150-driver/dkms/no-weak-modules.conf b/anda/system/t150-driver/dkms/no-weak-modules.conf new file mode 100644 index 0000000000..24f6f95c96 --- /dev/null +++ b/anda/system/t150-driver/dkms/no-weak-modules.conf @@ -0,0 +1 @@ +NO_WEAK_MODULES="yes" diff --git a/anda/system/t150-driver/dkms/update.rhai b/anda/system/t150-driver/dkms/update.rhai new file mode 100644 index 0000000000..7885cb6a8d --- /dev/null +++ b/anda/system/t150-driver/dkms/update.rhai @@ -0,0 +1,12 @@ +let c = sh("cat anda/system/t150-driver/kmod-common/t150-driver.spec | grep '%global commit ' | sed -E 's/.+commit //'", #{"stdout": "piped"}).ctx.stdout; +c.pop(); +rpm.global("commit", c); +if rpm.changed() { + rpm.release(); + let d = sh("cat anda/system/t150-driver/kmod-common/t150-driver.spec | grep '%global commitdate' | sed -E 's/.+commitdate //'", #{"stdout": "piped"}).ctx.stdout; + d.pop(); + rpm.global("commitdate", d); + let v = sh("cat anda/system/t150-driver/kmod-common/t150-driver.spec | grep '%global ver' | sed -E 's/.+ver //'", #{"stdout": "piped"}).ctx.stdout; + v.pop(); + rpm.global("ver", v); +} diff --git a/anda/system/t150-driver/kmod-common/anda.hcl b/anda/system/t150-driver/kmod-common/anda.hcl new file mode 100644 index 0000000000..51d88e9b18 --- /dev/null +++ b/anda/system/t150-driver/kmod-common/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "t150-driver.spec" + } + labels { + nightly = 1 + } +} diff --git a/anda/system/t150-driver/kmod-common/t150-driver.spec b/anda/system/t150-driver/kmod-common/t150-driver.spec new file mode 100644 index 0000000000..199f72369f --- /dev/null +++ b/anda/system/t150-driver/kmod-common/t150-driver.spec @@ -0,0 +1,46 @@ +%global commit f7ecb30c65ee5f7870e921bc0a2354df8e1e8100 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global commitdate 20250225 +%global ver 1.0 + +Name: t150-driver +Version: %{ver}^%{commitdate}git.%{shortcommit} +Release: 3%{?dist} +Summary: Thrustmaster T150 steering wheel driver common files +License: GPL-2.0-only +URL: https://github.com/scarburato/t150_driver +Source0: %{url}/archive/%{commit}.tar.gz#/t150_driver-%{shortcommit}.tar.gz +Requires: %{name}-kmod = %{?epoch:%{epoch}:}%{version} +Provides: %{name}-kmod-common = %{?epoch:%{epoch}:}%{version} +BuildArch: noarch + +%description +Linux driver for Thrustmaster T150 Steering Wheel USB. This package contains +common files shared between the akmod and dkms variants. + +%package akmod-modules +Summary: Modules for Akmods +Requires: %{name}-kmod = %{?epoch:%{epoch}:}%{version} +BuildArch: noarch + +%description akmod-modules +Akmods modules for the akmod-%{name} package. + +%prep +%autosetup -p1 -n t150_driver-%{commit} + +echo hid-t150 > %{name}.conf + +%install +install -Dm644 %{name}.conf -t %{buildroot}%{_modulesloaddir} + +%files +%license LICENSE +%doc README.md + +%files akmod-modules +%{_modulesloaddir}/%{name}.conf + +%changelog +* Thu Apr 02 2026 Kyle Gospodnetich +- Initial package diff --git a/anda/system/t150-driver/kmod-common/update.rhai b/anda/system/t150-driver/kmod-common/update.rhai new file mode 100644 index 0000000000..ad5b36bdda --- /dev/null +++ b/anda/system/t150-driver/kmod-common/update.rhai @@ -0,0 +1,8 @@ +rpm.global("commit", gh_commit("scarburato/t150_driver")); +if rpm.changed() { + rpm.release(); + rpm.global("commitdate", date()); + let ver = gh("scarburato/t150_driver"); + ver.crop(0); + rpm.global("ver", ver); +} diff --git a/anda/system/taidan/anda.hcl b/anda/system/taidan/anda.hcl new file mode 100644 index 0000000000..5ca54bc05c --- /dev/null +++ b/anda/system/taidan/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "taidan.spec" + } +} diff --git a/anda/system/taidan/taidan.spec b/anda/system/taidan/taidan.spec new file mode 100644 index 0000000000..90a2a9aec3 --- /dev/null +++ b/anda/system/taidan/taidan.spec @@ -0,0 +1,67 @@ +Name: taidan +Version: 0.2.0 +Release: 1%{?dist} +Summary: Out-Of-Box-Experience (OOBE) and Welcome App +SourceLicense: GPL-3.0-or-later AND GPL-2.0-or-later +License: (0BSD OR MIT OR Apache-2.0) AND Apache-2.0 AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR ISC OR MIT) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND MIT AND (MIT OR Apache-2.0) AND (MIT OR Zlib OR Apache-2.0) AND Unicode-3.0 AND (Unlicense OR MIT) AND Zlib AND GPL-3.0-or-later AND GPL-2.0-or-later +URL: https://github.com/Ultramarine-Linux/taidan +Packager: Terra Packaging Team +Conflicts: initial-setup +Requires: dbus-daemon +Requires: (glib2 or (/usr/bin/plasma-apply-colorscheme and kf6-kconfig)) +Requires: shadow-utils +Requires: systemd-udev +Requires: bash +Requires: (dnf5 and dnf5-command(copr)) +Requires: flatpak +Requires: libwebp +Requires: webp-pixbuf-loader +Requires: xhost +Requires: kwin-wayland swaybg +Requires: netto network-manager-applet +Requires: polkit +BuildRequires: anda-srpm-macros mold cargo rust-packaging perl systemd-rpm-macros +BuildRequires: pkgconfig(libhelium-1) +BuildRequires: pkgconfig(openssl) +BuildRequires: gcc clang clang-libs +BuildRequires: pkgconfig(libacl) +BuildRequires: pkgconfig(libattr) +BuildRequires: glibc-all-langpacks + +%description +Taidan is a GUI Out-Of-Box-Experience (OOBE) and Welcome App for Ultramarine +Linux, written in Rust and the Helium toolkit. + +%prep +%git_clone +%cargo_prep_online + +%build +%{cargo_license_online} > LICENSE.dependencies + +%install +%cargo_install +DESTDIR=%buildroot ./scripts/install.sh + +%files +%doc README.md +%license LICENSE.md LICENSE.dependencies +%_bindir/taidan +%_libexecdir/start-taidan +%_datadir/polkit-1/rules.d/100-taidan.rules +%_datadir/taidan/ +%_presetdir/95-taidan.preset +%_sysconfdir/com.fyralabs.Taidan/ +%_sysconfdir/pam.d/taidan +%_sysusersdir/taidan.conf +%_unitdir/taidan-initial-setup.service +%_unitdir/taidan-initial-setup-reconfiguration.service +%dir %_prefix/lib/taidan/ +%_prefix/lib/taidan/labwc/* + +%changelog +* Sun Mar 15 2026 Tulip Blossom +- Add dbus-daemon as runtime dependency + +* Sun Mar 15 2026 Tulip Blossom +- Port manifest from Ultramarine repos to Terra diff --git a/anda/system/taidan/update.rhai b/anda/system/taidan/update.rhai new file mode 100644 index 0000000000..d4ee78b6c5 --- /dev/null +++ b/anda/system/taidan/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("ultramarine-linux/taidan")); diff --git a/anda/system/usbio-drivers/akmod/0011-include-linux-mfd-usbio-Fix-missing-prototypes.patch b/anda/system/usbio-drivers/akmod/0011-include-linux-mfd-usbio-Fix-missing-prototypes.patch new file mode 100644 index 0000000000..48ce1fc353 --- /dev/null +++ b/anda/system/usbio-drivers/akmod/0011-include-linux-mfd-usbio-Fix-missing-prototypes.patch @@ -0,0 +1,34 @@ +From c86e7a74c151304af7393c27f8f3df84d7d005ae Mon Sep 17 00:00:00 2001 +From: Kate Hsuan +Date: Tue, 23 Sep 2025 14:17:05 +0800 +Subject: [PATCH 2/2] include: linux: mfd: usbio: Fix missing-prototypes +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Fix the following missing-prototypes issues + +drivers/mfd/usbio.c: At top level: +drivers/mfd/usbio.c:473:6: warning: no previous prototype for ‘usbio_unregister_event_cb’ [-Wmissing-prototypes] + 473 | void usbio_unregister_event_cb(struct platform_device *pdev) + | ^~~~~~~~~~~~~~~~~~~~~~~~~ +--- + include/linux/mfd/usbio.h | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/include/linux/mfd/usbio.h b/include/linux/mfd/usbio.h +index c8024a8..ecf8ac9 100644 +--- a/include/linux/mfd/usbio.h ++++ b/include/linux/mfd/usbio.h +@@ -45,5 +45,8 @@ int usbio_transfer(struct platform_device *pdev, u8 cmd, const void *obuf, + int obuf_len, void *ibuf, int *ibuf_len); + int usbio_transfer_noack(struct platform_device *pdev, u8 cmd, const void *obuf, + int obuf_len); ++int usbio_register_event_cb(struct platform_device *pdev, ++ usbio_event_cb_t event_cb); ++void usbio_unregister_event_cb(struct platform_device *pdev); + + #endif +-- +2.51.0 + diff --git a/anda/system/usbio-drivers/akmod/01-387.patch b/anda/system/usbio-drivers/akmod/01-387.patch new file mode 100644 index 0000000000..2261a98b82 --- /dev/null +++ b/anda/system/usbio-drivers/akmod/01-387.patch @@ -0,0 +1,69 @@ +From 1e6f315ec4e867fe25da5c6d216bb4757757515e Mon Sep 17 00:00:00 2001 +From: Kate Hsuan +Date: Mon, 15 Sep 2025 17:15:41 +0800 +Subject: [PATCH] patches: remove "u64 dma_mask" for the kernel higher than + 6.16 + +The upstream commits 1284c9693953aed2a9974a5a384ce2a42a1b9ae8 brought the +kernel crash + +[ 6.697129] BUG: unable to handle page fault for address: 00000000ff78d008 +[ 6.697134] #PF: supervisor read access in kernel mode +[ 6.697135] #PF: error_code(0x0000) - not-present page +[ 6.697137] PGD 0 P4D 0 +[ 6.697141] Oops: Oops: 0000 [#1] SMP NOPTI +[ 6.697145] CPU: 12 UID: 0 PID: 1149 Comm: (udev-worker) Tainted: G OE 6.16.5-200.fc42.x86_64 #1 PREEMPT(lazy) +[ 6.697149] Tainted: [O]=OOT_MODULE, [E]=UNSIGNED_MODULE +[ 6.697150] Hardware name: LENOVO 21HQSIT024/21HQSIT024, BIOS N3XET40W (1.15 ) 05/22/2023 +[ 6.697152] RIP: 0010:ipu6_psys_probe+0x384/0x3b0 [intel_ipu6_psys] +[ 6.697164] Code: ff c7 44 24 10 fb fd ff ff e9 f8 fc ff ff c7 44 24 10 f4 ff ff ff eb cb 49 8b 84 24 98 03 00 00 48 c7 c6 cf 51 ad c1 4c 89 e7 <48> 8b 40 08 89 43 18 89 c2 e8 8e a5 e3 e4 80 3d 33 6b f3 ff 00 0f +[ 6.697166] RSP: 0018:ffffcee981177860 EFLAGS: 00010246 +[ 6.697169] RAX: 00000000ff78d000 RBX: ffff8bc153c8e028 RCX: 0000000000002000 +[ 6.697171] RDX: ffff8bc146d58020 RSI: ffffffffc1ad51cf RDI: ffff8bc14e7d1000 +[ 6.697172] RBP: ffff8bc146d58020 R08: 0000000000000002 R09: ffffcee980ba7000 +[ 6.697174] R10: ffffcee980ba7000 R11: ffff8bc141b00480 R12: ffff8bc14e7d1000 +[ 6.697175] R13: ffff8bc153c8e440 R14: ffff8bc146d5a020 R15: ffff8bc146d5a000 +[ 6.697176] FS: 00007feae3a8d3c0(0000) GS:ffff8bc4e565f000(0000) knlGS:0000000000000000 +[ 6.697179] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 +[ 6.697180] CR2: 00000000ff78d008 CR3: 0000000104809001 CR4: 0000000000f70ef0 +[ 6.697182] PKRU: 55555554 +[ 6.697183] Call Trace: +[ 6.697186] +[ 6.697189] ? __pfx_ipu6_psys_probe+0x10/0x10 [intel_ipu6_psys] +[ 6.697196] auxiliary_bus_probe+0x46/0x80 +[ 6.697202] really_probe+0xdb/0x340 + +Since the upstream commit 1284c9693953aed2a9974a5a384ce2a42a1b9ae8 +removed dms_mask from struct ipu6_bus_device, the size of +struct ipu6_bus_device isn't the same as it is in the upstream kernel. +"u64 dms_mask" has to be removed when it is built with the upstream kernel +higher than 6.16. + +Resolves: #372 +--- + patches/0001-v6.10-IPU6-headers-used-by-PSYS.patch | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/patches/0001-v6.10-IPU6-headers-used-by-PSYS.patch b/patches/0001-v6.10-IPU6-headers-used-by-PSYS.patch +index b8eeaae662d3..44c213050d9d 100644 +--- a/patches/0001-v6.10-IPU6-headers-used-by-PSYS.patch ++++ b/patches/0001-v6.10-IPU6-headers-used-by-PSYS.patch +@@ -28,7 +28,7 @@ new file mode 100644 + index 000000000..b26c6aee1 + --- /dev/null + +++ b/drivers/media/pci/intel/ipu6/ipu6-bus.h +-@@ -0,0 +1,58 @@ ++@@ -0,0 +1,60 @@ + +/* SPDX-License-Identifier: GPL-2.0-only */ + +/* Copyright (C) 2013 - 2024 Intel Corporation */ + + +@@ -59,7 +59,9 @@ index 000000000..b26c6aee1 + + struct ipu6_mmu *mmu; + + struct ipu6_device *isp; + + struct ipu6_buttress_ctrl *ctrl; +++#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 16, 0) + + u64 dma_mask; +++#endif + + const struct firmware *fw; + + struct sg_table fw_sgt; + + u64 *pkg_dir; diff --git a/anda/system/usbio-drivers/akmod/23-38.patch b/anda/system/usbio-drivers/akmod/23-38.patch new file mode 100644 index 0000000000..fe37dfa114 --- /dev/null +++ b/anda/system/usbio-drivers/akmod/23-38.patch @@ -0,0 +1,49 @@ +From 1e2311383bb5fdc857664d1e30700dd3496a5a11 Mon Sep 17 00:00:00 2001 +From: You-Sheng Yang +Date: Wed, 13 Aug 2025 14:58:19 +0800 +Subject: [PATCH] backport: fix build against kernel >= 6.17 + +v6.17-rc1 commit 98ce1eb1fd87e ("gpiolib: introduce gpio_chip setters +that return values") added two new APIs `set_rv` and `set_multiple_rv` +to `struct gpio_irq_chip` that duplicate existing `set` and +`set_multiple` without return values. They then completely replace the +no-return-value APIs in same v6.17-rc1 commit d9d87d90cc0b1 +("treewide: rename GPIO set callbacks back to their original names"). + +Bug-Ubuntu: https://bugs.launchpad.net/bugs/2120461 +Signed-off-by: You-Sheng Yang +--- + drivers/gpio/gpio-usbio.c | 13 +++++++++++-- + 1 file changed, 11 insertions(+), 2 deletions(-) + +diff --git a/drivers/gpio/gpio-usbio.c b/drivers/gpio/gpio-usbio.c +index 625558b..9c904e7 100644 +--- a/drivers/gpio/gpio-usbio.c ++++ b/drivers/gpio/gpio-usbio.c +@@ -175,8 +175,13 @@ static int usbio_gpio_get_value(struct gpio_chip *chip, unsigned int offset) + return usbio_gpio_read(usbio_gpio, offset); + } + +-static void usbio_gpio_set_value(struct gpio_chip *chip, unsigned int offset, +- int val) ++static ++#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 17, 0) ++void ++#else ++int ++#endif ++usbio_gpio_set_value(struct gpio_chip *chip, unsigned int offset, int val) + { + struct usbio_gpio_dev *usbio_gpio = gpiochip_get_data(chip); + int ret; +@@ -186,6 +191,10 @@ static void usbio_gpio_set_value(struct gpio_chip *chip, unsigned int offset, + dev_err(chip->parent, + "%s offset:%d val:%d set value failed %d\n", __func__, + offset, val, ret); ++ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 17, 0) ++ return ret; ++#endif + } + + static int usbio_gpio_direction_input(struct gpio_chip *chip, diff --git a/anda/system/usbio-drivers/akmod/intel-usbio-kmod.spec b/anda/system/usbio-drivers/akmod/intel-usbio-kmod.spec index 9fabdccbc0..2d07e88742 100644 --- a/anda/system/usbio-drivers/akmod/intel-usbio-kmod.spec +++ b/anda/system/usbio-drivers/akmod/intel-usbio-kmod.spec @@ -1,29 +1,26 @@ %global buildforkernels akmod %global debug_package %{nil} -%global commit 774890f017eaa000df0647965a627f8738dcea71 +%global commit ee221ecae757d43ab3fb39433f389373b2026109 %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commit_date 20251011 +%global commit_date 20251031 %global modulename intel-usbio Name: %{modulename}-kmod Summary: Kernel drivers for the USBIO Extension Version: 0^%{commit_date}git.%{shortcommit} -Release: 1%?dist +Release: 4%{?dist} License: GPL-2.0-only URL: https://github.com/intel/usbio-drivers Source0: %{url}/archive/%{commit}.tar.gz#/usbio-drivers-%{shortcommit}.tar.gz -Patch0: https://github.com/jwrdegoede/usbio-drivers/commit/d5f08986936a7fda0cce543c73fb8d9bab76eae2.patch -Patch1: https://github.com/jwrdegoede/usbio-drivers/commit/47b34a6f467eebb4e9fc59f5e25618fe760fbf33.patch -Patch2: https://github.com/jwrdegoede/usbio-drivers/commit/0eae85556558b410635ad03ed5eccb9648e11fce.patch BuildRequires: elfutils-libelf-devel BuildRequires: gcc BuildRequires: kmodtool Requires: %{modulename}-kmod-common = %{?epoch:%{epoch}:}%{version} Requires: akmods Requires: akmod-intel-ipu6 -Packager: Gilver E. +Packager: Gilver E. -%{expand:%(kmodtool --target %{_target_cpu} --repo terra --kmodname %{modulename} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null) } +%{expand:%(kmodtool --target %{_target_cpu} --repo terrapkg.com --kmodname %{modulename} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null) } %description This package enables USBIO Extension drivers on Intel Alder Lake, Raptor Lake, Meteor Lake and Lunar Lake platforms. @@ -33,7 +30,7 @@ This package enables USBIO Extension drivers on Intel Alder Lake, Raptor Lake, M %{?kmodtool_check} # print kmodtool output for debugging purposes: -kmodtool --target %{_target_cpu} --repo terra --kmodname %{modulename} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null +kmodtool --target %{_target_cpu} --repo terrapkg.com --kmodname %{modulename} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null %autosetup -p1 -n usbio-drivers-%{commit} rm -fr .github diff --git a/anda/system/usbio-drivers/dkms/0011-include-linux-mfd-usbio-Fix-missing-prototypes.patch b/anda/system/usbio-drivers/dkms/0011-include-linux-mfd-usbio-Fix-missing-prototypes.patch new file mode 100644 index 0000000000..48ce1fc353 --- /dev/null +++ b/anda/system/usbio-drivers/dkms/0011-include-linux-mfd-usbio-Fix-missing-prototypes.patch @@ -0,0 +1,34 @@ +From c86e7a74c151304af7393c27f8f3df84d7d005ae Mon Sep 17 00:00:00 2001 +From: Kate Hsuan +Date: Tue, 23 Sep 2025 14:17:05 +0800 +Subject: [PATCH 2/2] include: linux: mfd: usbio: Fix missing-prototypes +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Fix the following missing-prototypes issues + +drivers/mfd/usbio.c: At top level: +drivers/mfd/usbio.c:473:6: warning: no previous prototype for ‘usbio_unregister_event_cb’ [-Wmissing-prototypes] + 473 | void usbio_unregister_event_cb(struct platform_device *pdev) + | ^~~~~~~~~~~~~~~~~~~~~~~~~ +--- + include/linux/mfd/usbio.h | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/include/linux/mfd/usbio.h b/include/linux/mfd/usbio.h +index c8024a8..ecf8ac9 100644 +--- a/include/linux/mfd/usbio.h ++++ b/include/linux/mfd/usbio.h +@@ -45,5 +45,8 @@ int usbio_transfer(struct platform_device *pdev, u8 cmd, const void *obuf, + int obuf_len, void *ibuf, int *ibuf_len); + int usbio_transfer_noack(struct platform_device *pdev, u8 cmd, const void *obuf, + int obuf_len); ++int usbio_register_event_cb(struct platform_device *pdev, ++ usbio_event_cb_t event_cb); ++void usbio_unregister_event_cb(struct platform_device *pdev); + + #endif +-- +2.51.0 + diff --git a/anda/system/usbio-drivers/dkms/01-387.patch b/anda/system/usbio-drivers/dkms/01-387.patch new file mode 100644 index 0000000000..2261a98b82 --- /dev/null +++ b/anda/system/usbio-drivers/dkms/01-387.patch @@ -0,0 +1,69 @@ +From 1e6f315ec4e867fe25da5c6d216bb4757757515e Mon Sep 17 00:00:00 2001 +From: Kate Hsuan +Date: Mon, 15 Sep 2025 17:15:41 +0800 +Subject: [PATCH] patches: remove "u64 dma_mask" for the kernel higher than + 6.16 + +The upstream commits 1284c9693953aed2a9974a5a384ce2a42a1b9ae8 brought the +kernel crash + +[ 6.697129] BUG: unable to handle page fault for address: 00000000ff78d008 +[ 6.697134] #PF: supervisor read access in kernel mode +[ 6.697135] #PF: error_code(0x0000) - not-present page +[ 6.697137] PGD 0 P4D 0 +[ 6.697141] Oops: Oops: 0000 [#1] SMP NOPTI +[ 6.697145] CPU: 12 UID: 0 PID: 1149 Comm: (udev-worker) Tainted: G OE 6.16.5-200.fc42.x86_64 #1 PREEMPT(lazy) +[ 6.697149] Tainted: [O]=OOT_MODULE, [E]=UNSIGNED_MODULE +[ 6.697150] Hardware name: LENOVO 21HQSIT024/21HQSIT024, BIOS N3XET40W (1.15 ) 05/22/2023 +[ 6.697152] RIP: 0010:ipu6_psys_probe+0x384/0x3b0 [intel_ipu6_psys] +[ 6.697164] Code: ff c7 44 24 10 fb fd ff ff e9 f8 fc ff ff c7 44 24 10 f4 ff ff ff eb cb 49 8b 84 24 98 03 00 00 48 c7 c6 cf 51 ad c1 4c 89 e7 <48> 8b 40 08 89 43 18 89 c2 e8 8e a5 e3 e4 80 3d 33 6b f3 ff 00 0f +[ 6.697166] RSP: 0018:ffffcee981177860 EFLAGS: 00010246 +[ 6.697169] RAX: 00000000ff78d000 RBX: ffff8bc153c8e028 RCX: 0000000000002000 +[ 6.697171] RDX: ffff8bc146d58020 RSI: ffffffffc1ad51cf RDI: ffff8bc14e7d1000 +[ 6.697172] RBP: ffff8bc146d58020 R08: 0000000000000002 R09: ffffcee980ba7000 +[ 6.697174] R10: ffffcee980ba7000 R11: ffff8bc141b00480 R12: ffff8bc14e7d1000 +[ 6.697175] R13: ffff8bc153c8e440 R14: ffff8bc146d5a020 R15: ffff8bc146d5a000 +[ 6.697176] FS: 00007feae3a8d3c0(0000) GS:ffff8bc4e565f000(0000) knlGS:0000000000000000 +[ 6.697179] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 +[ 6.697180] CR2: 00000000ff78d008 CR3: 0000000104809001 CR4: 0000000000f70ef0 +[ 6.697182] PKRU: 55555554 +[ 6.697183] Call Trace: +[ 6.697186] +[ 6.697189] ? __pfx_ipu6_psys_probe+0x10/0x10 [intel_ipu6_psys] +[ 6.697196] auxiliary_bus_probe+0x46/0x80 +[ 6.697202] really_probe+0xdb/0x340 + +Since the upstream commit 1284c9693953aed2a9974a5a384ce2a42a1b9ae8 +removed dms_mask from struct ipu6_bus_device, the size of +struct ipu6_bus_device isn't the same as it is in the upstream kernel. +"u64 dms_mask" has to be removed when it is built with the upstream kernel +higher than 6.16. + +Resolves: #372 +--- + patches/0001-v6.10-IPU6-headers-used-by-PSYS.patch | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/patches/0001-v6.10-IPU6-headers-used-by-PSYS.patch b/patches/0001-v6.10-IPU6-headers-used-by-PSYS.patch +index b8eeaae662d3..44c213050d9d 100644 +--- a/patches/0001-v6.10-IPU6-headers-used-by-PSYS.patch ++++ b/patches/0001-v6.10-IPU6-headers-used-by-PSYS.patch +@@ -28,7 +28,7 @@ new file mode 100644 + index 000000000..b26c6aee1 + --- /dev/null + +++ b/drivers/media/pci/intel/ipu6/ipu6-bus.h +-@@ -0,0 +1,58 @@ ++@@ -0,0 +1,60 @@ + +/* SPDX-License-Identifier: GPL-2.0-only */ + +/* Copyright (C) 2013 - 2024 Intel Corporation */ + + +@@ -59,7 +59,9 @@ index 000000000..b26c6aee1 + + struct ipu6_mmu *mmu; + + struct ipu6_device *isp; + + struct ipu6_buttress_ctrl *ctrl; +++#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 16, 0) + + u64 dma_mask; +++#endif + + const struct firmware *fw; + + struct sg_table fw_sgt; + + u64 *pkg_dir; diff --git a/anda/system/usbio-drivers/dkms/23-38.patch b/anda/system/usbio-drivers/dkms/23-38.patch new file mode 100644 index 0000000000..fe37dfa114 --- /dev/null +++ b/anda/system/usbio-drivers/dkms/23-38.patch @@ -0,0 +1,49 @@ +From 1e2311383bb5fdc857664d1e30700dd3496a5a11 Mon Sep 17 00:00:00 2001 +From: You-Sheng Yang +Date: Wed, 13 Aug 2025 14:58:19 +0800 +Subject: [PATCH] backport: fix build against kernel >= 6.17 + +v6.17-rc1 commit 98ce1eb1fd87e ("gpiolib: introduce gpio_chip setters +that return values") added two new APIs `set_rv` and `set_multiple_rv` +to `struct gpio_irq_chip` that duplicate existing `set` and +`set_multiple` without return values. They then completely replace the +no-return-value APIs in same v6.17-rc1 commit d9d87d90cc0b1 +("treewide: rename GPIO set callbacks back to their original names"). + +Bug-Ubuntu: https://bugs.launchpad.net/bugs/2120461 +Signed-off-by: You-Sheng Yang +--- + drivers/gpio/gpio-usbio.c | 13 +++++++++++-- + 1 file changed, 11 insertions(+), 2 deletions(-) + +diff --git a/drivers/gpio/gpio-usbio.c b/drivers/gpio/gpio-usbio.c +index 625558b..9c904e7 100644 +--- a/drivers/gpio/gpio-usbio.c ++++ b/drivers/gpio/gpio-usbio.c +@@ -175,8 +175,13 @@ static int usbio_gpio_get_value(struct gpio_chip *chip, unsigned int offset) + return usbio_gpio_read(usbio_gpio, offset); + } + +-static void usbio_gpio_set_value(struct gpio_chip *chip, unsigned int offset, +- int val) ++static ++#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 17, 0) ++void ++#else ++int ++#endif ++usbio_gpio_set_value(struct gpio_chip *chip, unsigned int offset, int val) + { + struct usbio_gpio_dev *usbio_gpio = gpiochip_get_data(chip); + int ret; +@@ -186,6 +191,10 @@ static void usbio_gpio_set_value(struct gpio_chip *chip, unsigned int offset, + dev_err(chip->parent, + "%s offset:%d val:%d set value failed %d\n", __func__, + offset, val, ret); ++ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 17, 0) ++ return ret; ++#endif + } + + static int usbio_gpio_direction_input(struct gpio_chip *chip, diff --git a/anda/system/usbio-drivers/dkms/dkms-intel-usbio.spec b/anda/system/usbio-drivers/dkms/dkms-intel-usbio.spec index d950ccb459..ab85503ada 100644 --- a/anda/system/usbio-drivers/dkms/dkms-intel-usbio.spec +++ b/anda/system/usbio-drivers/dkms/dkms-intel-usbio.spec @@ -1,25 +1,22 @@ -%global commit 774890f017eaa000df0647965a627f8738dcea71 +%global commit ee221ecae757d43ab3fb39433f389373b2026109 %global shortcommit %{sub %{commit} 1 7} -%global commit_date 20251011 +%global commit_date 20251031 %global debug_package %{nil} %global modulename intel-usbio Name: dkms-%{modulename} Version: 0^%{commit_date}git.%{shortcommit} -Release: 1%?dist +Release: 2%{?dist} Summary: Kernel drivers for the USBIO Extension License: GPL-2.0-only URL: https://github.com/intel/usbio-drivers Source0: %{url}/archive/%{commit}.tar.gz#/usbio-drivers-%{shortcommit}.tar.gz Source2: %{name}.conf -Patch0: https://github.com/jwrdegoede/usbio-drivers/commit/d5f08986936a7fda0cce543c73fb8d9bab76eae2.patch -Patch1: https://github.com/jwrdegoede/usbio-drivers/commit/47b34a6f467eebb4e9fc59f5e25618fe760fbf33.patch -Patch2: https://github.com/jwrdegoede/usbio-drivers/commit/0eae85556558b410635ad03ed5eccb9648e11fce.patch Provides: %{modulename}-kmod = %{version} Requires: dkms Requires: dkms-intel-ipu6 BuildArch: noarch -Packager: Gilver E. +Packager: Gilver E. %description This package enables USBIO Extension drivers on Intel Alder Lake, Raptor Lake, Meteor Lake and Lunar Lake platforms. diff --git a/anda/system/usbio-drivers/kmod-common/intel-usbio-drivers.spec b/anda/system/usbio-drivers/kmod-common/intel-usbio-drivers.spec index 49130798d3..6028c9b532 100644 --- a/anda/system/usbio-drivers/kmod-common/intel-usbio-drivers.spec +++ b/anda/system/usbio-drivers/kmod-common/intel-usbio-drivers.spec @@ -1,11 +1,11 @@ -%global commit 774890f017eaa000df0647965a627f8738dcea71 +%global commit ee221ecae757d43ab3fb39433f389373b2026109 %global shortcommit %{sub %{commit} 1 7} -%global commit_date 20251011 +%global commit_date 20251031 %global debug_package %{nil} -Name: dkms-%{modulename} +Name: intel-usbio Version: 0^%{commit_date}git.%{shortcommit} -Release: 1%?dist +Release: 2%{?dist} Summary: Common files for the USBIO drivers License: GPL-2.0-only URL: https://github.com/intel/usbio-drivers @@ -14,7 +14,7 @@ BuildRequires: anda-srpm-macros Provides: intel-usbio-kmod-common = %{evr} Requires: intel-ipu6-kmod-common BuildArch: noarch -Packager: Gilver E. +Packager: Gilver E. %description This package contains the common files for the UBSIO kernel modules. @@ -29,10 +29,8 @@ This package contains the common files for the UBSIO kernel modules. # Hi, I'm also empty! %files -%doc CODE_OF_CONDUCT.md %doc README.md %doc SECURITY.md -%doc security.md %license LICENSE.txt %changelog diff --git a/anda/system/uupd/anda.hcl b/anda/system/uupd/anda.hcl new file mode 100644 index 0000000000..5463a64b87 --- /dev/null +++ b/anda/system/uupd/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "uupd.spec" + } +} diff --git a/anda/system/uupd/update.rhai b/anda/system/uupd/update.rhai new file mode 100644 index 0000000000..133dc16bfb --- /dev/null +++ b/anda/system/uupd/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("ublue-os/uupd")); diff --git a/anda/system/uupd/uupd.spec b/anda/system/uupd/uupd.spec new file mode 100644 index 0000000000..39f1511550 --- /dev/null +++ b/anda/system/uupd/uupd.spec @@ -0,0 +1,49 @@ +Name: uupd +Version: 1.3.0 +Release: 1%?dist +Summary: Centralized update service/checker made for Universal Blue +License: Apache-2.0 +URL: https://github.com/ublue-os/uupd +Source0: %url/archive/refs/tags/v%version.tar.gz +BuildRequires: golang +BuildRequires: go-rpm-macros +BuildRequires: systemd-rpm-macros +Recommends: bootc +Packager: Tulip Blossom + +%description +%{summary}. + +%gopkg +%global goipath github.com/ublue-os/uupd +%gometa -f + +%prep +%goprep + +%build +%define gomodulesmode GO111MODULE=on +%gobuild -o %{name} + +%install +install -Dpm0755 -t %{buildroot}%{_bindir}/ %{name} +install -Dpm0644 -t %{buildroot}%{_unitdir}/ %{name}.service %{name}.timer +install -Dpm0644 -t %{buildroot}%{_sysconfdir}/polkit-1/rules.d/%{name}.rules %{name}.rules + +%post +%systemd_post %{name}.timer + +%preun +%systemd_preun %{name}.timer + +%files +%license LICENSE +%doc README.md +%{_bindir}/%{name} +%{_unitdir}/%{name}.service +%{_unitdir}/%{name}.timer +%{_sysconfdir}/polkit-1/rules.d/%{name}.rules + +%changelog +* Sun Apr 19 2026 Tulip Blossom +- Initial commit diff --git a/anda/system/uutils-coreutils-replace/uutils-coreutils-replace.spec b/anda/system/uutils-coreutils-replace/uutils-coreutils-replace.spec index 11e2ce6c1b..fb48f818da 100644 --- a/anda/system/uutils-coreutils-replace/uutils-coreutils-replace.spec +++ b/anda/system/uutils-coreutils-replace/uutils-coreutils-replace.spec @@ -5,8 +5,8 @@ %endif Name: uutils-coreutils-replace -Version: 0.3.0 -Release: 1%?dist +Version: 0.8.0 +Release: 1%{?dist} Summary: Cross-platform Rust rewrite of the GNU coreutils License: MIT URL: https://github.com/uutils/coreutils diff --git a/anda/system/v4l2-relayd/v4l2-relayd.spec b/anda/system/v4l2-relayd/v4l2-relayd.spec index 763b455c2d..d3cd4661f2 100644 --- a/anda/system/v4l2-relayd/v4l2-relayd.spec +++ b/anda/system/v4l2-relayd/v4l2-relayd.spec @@ -1,5 +1,5 @@ -%global commit 8811ec2435e51cbbd9659fee0465ecaeccf8869a -%global commit_date 20250926 +%global commit d6ec36aae87e765eddef8308f0f58c7b5be95ad7 +%global commit_date 20251028 %global shortcommit %(c=%{commit}; echo ${c:0:7}) Name: v4l2-relayd @@ -28,8 +28,10 @@ This is used to relay the input GStreamer source to an output source or a V4L2 d %autosetup -p1 -n %{name}-%{commit} autoreconf --force --install --verbose -%build +%conf %configure + +%build %make_build %install @@ -40,12 +42,15 @@ install -p -D -m 0644 %{SOURCE1} %{buildroot}%{_presetdir}/95-v4l2-relayd.preset %post %systemd_post v4l2-relayd.service +%systemd_post v4l2-relayd@.service %preun %systemd_preun v4l2-relayd.service +%systemd_preun v4l2-relayd@.service %postun %systemd_postun_with_restart v4l2-relayd.service +%systemd_postun_with_restart v4l2-relayd@.service %files %license LICENSE @@ -54,7 +59,10 @@ install -p -D -m 0644 %{SOURCE1} %{buildroot}%{_presetdir}/95-v4l2-relayd.preset %{_modprobedir}/v4l2-relayd.conf %{_modulesloaddir}/v4l2-relayd.conf %{_unitdir}/v4l2-relayd.service +%{_unitdir}/v4l2-relayd@.service %{_presetdir}/95-v4l2-relayd.preset +%{_systemdgeneratordir}/v4l2-relayd-generator + %changelog %autochangelog diff --git a/anda/system/v4l2loopback/akmod/v4l2loopback-kmod.spec b/anda/system/v4l2loopback/akmod/v4l2loopback-kmod.spec index c67731d13d..f2312787eb 100644 --- a/anda/system/v4l2loopback/akmod/v4l2loopback-kmod.spec +++ b/anda/system/v4l2loopback/akmod/v4l2loopback-kmod.spec @@ -17,8 +17,8 @@ This module allows you to create \"virtual video devices.\" Normal \(v4l2\) appl Name: %{modulename}-kmod Summary: Kernel module (kmod) for V4L2 loopback devices -Version: 0.15.2 -Release: 1%?dist +Version: 0.15.3 +Release: 4%{?dist} License: GPL-2.0-or-later URL: https://github.com/v4l2loopback/v4l2loopback Source0: %{url}/archive/v%{version}/%{modulename}-%{version}.tar.gz @@ -35,14 +35,14 @@ Requires: kernel-devel Conflicts: dkms-%{modulename} Packager: Cappy Ishihara -%{expand:%(kmodtool --target %{_target_cpu} --repo terra --kmodname %{modulename} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null) } +%{expand:%(kmodtool --target %{_target_cpu} --repo terrapkg.com --kmodname %{modulename} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null) } %description %_description %prep %{?kmodtool_check} -kmodtool --target %{_target_cpu} --repo terra --kmodname %{modulename} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null +kmodtool --target %{_target_cpu} --repo terrapkg.com --kmodname %{modulename} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null %setup -q -c (cd v4l2loopback-%{version} diff --git a/anda/system/v4l2loopback/dkms/dkms-v4l2loopback.spec b/anda/system/v4l2loopback/dkms/dkms-v4l2loopback.spec index 34435b0cad..58ee8502d9 100644 --- a/anda/system/v4l2loopback/dkms/dkms-v4l2loopback.spec +++ b/anda/system/v4l2loopback/dkms/dkms-v4l2loopback.spec @@ -4,8 +4,8 @@ This module allows you to create \"virtual video devices.\" Normal \(v4l2\) applications will read these devices as if they were ordinary video devices, but the video will not be read from e.g. a capture card but instead it is generated by another application.} Name: dkms-%{modulename} -Version: 0.15.2 -Release: 1%?dist +Version: 0.15.3 +Release: 3%{?dist} Summary: Utils for V4L2 loopback devices License: GPL-2.0-or-later URL: https://github.com/v4l2loopback/v4l2loopback @@ -17,7 +17,7 @@ Requires: dkms Requires: help2man Conflicts: akmod-%{modulename} BuildArch: noarch -Packager: Gilver E. +Packager: Gilver E. %description %_description diff --git a/anda/system/v4l2loopback/kmod-common/v4l2loopback.spec b/anda/system/v4l2loopback/kmod-common/v4l2loopback.spec index 6a134caf3f..48a2c75cde 100644 --- a/anda/system/v4l2loopback/kmod-common/v4l2loopback.spec +++ b/anda/system/v4l2loopback/kmod-common/v4l2loopback.spec @@ -5,8 +5,8 @@ Name: v4l2loopback Summary: Utils for V4L2 loopback devices -Version: 0.15.2 -Release: 1%?dist +Version: 0.15.3 +Release: 2%?dist License: GPL-2.0-or-later URL: https://github.com/v4l2loopback/v4l2loopback Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz @@ -29,7 +29,7 @@ Allows you to create "virtual video devices". Normal (v4l2) applications will re %package akmod-modules Summary: Modules for Akmods -Requires: akmod-%{name} +Requires: %{name}-kmod = %{?epoch:%{epoch}:}%{version} BuildArch: noarch %description akmod-modules diff --git a/anda/system/veracrypt/anda.hcl b/anda/system/veracrypt/anda.hcl new file mode 100644 index 0000000000..f3c96b29db --- /dev/null +++ b/anda/system/veracrypt/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "veracrypt.spec" + } +} diff --git a/anda/system/veracrypt/jp.veracrypt.veracrypt.metainfo.xml b/anda/system/veracrypt/jp.veracrypt.veracrypt.metainfo.xml new file mode 100644 index 0000000000..ebff2fb605 --- /dev/null +++ b/anda/system/veracrypt/jp.veracrypt.veracrypt.metainfo.xml @@ -0,0 +1,37 @@ + + + jp.veracrypt.veracrypt + CC0-1.0 + Apache-2.0 AND TrueCrypt-License-version-3.0 AND LGPL-3.0-only AND BSD-2-Clause AND Zlib AND BSD-3-Clause AND Public Domain + https://github.com/veracrypt/VeraCrypt/blob/master/src/Resources/Icons/VeraCrypt.svg + + Veracrypt + Disk encryption with strong security based on TrueCrypt + + +

+ Free open source disk encryption software for Windows, Mac OSX and Linux. Brought to you by AM Crypto and based on TrueCrypt 7.1a. +

+

+ VeraCrypt main features: + + - Creates a virtual encrypted disk within a file and mounts it as a real disk. + - Encrypts an entire partition or storage device such as USB flash drive or hard drive. + - Encrypts a partition or drive where Windows is installed (pre-boot authentication). + - Encryption is automatic, real-time(on-the-fly) and transparent. + - Parallelization and pipelining allow data to be read and written as fast as if the drive was not encrypted. + - Encryption can be hardware-accelerated on modern processors. + - Provides plausible deniability, in case an adversary forces you to reveal the password: Hidden volume (steganography) and hidden operating system. + - More information about the features of VeraCrypt may be found in the documentation + +

+
+ + veracrypt.desktop + + https://veracrypt.jp/en/Home.html + + + Encryption + +
diff --git a/anda/system/veracrypt/update.rhai b/anda/system/veracrypt/update.rhai new file mode 100644 index 0000000000..5330e38c8c --- /dev/null +++ b/anda/system/veracrypt/update.rhai @@ -0,0 +1 @@ +rpm.global("ver", gh("veracrypt/VeraCrypt")); \ No newline at end of file diff --git a/anda/system/veracrypt/veracrypt.spec b/anda/system/veracrypt/veracrypt.spec new file mode 100644 index 0000000000..8f71f1b476 --- /dev/null +++ b/anda/system/veracrypt/veracrypt.spec @@ -0,0 +1,81 @@ +%define debug_package %{nil} +%define _unpackaged_files_terminate_build 0 +%define appid jp.veracrypt.veracrypt +%global ver VeraCrypt_1.26.24 +%global sanitized_ver %(echo %{ver} | sed 's/^VeraCrypt_//') + +Name: veracrypt +Version: %{sanitized_ver} +Release: 2%?dist +Summary: Disk encryption with strong security based on TrueCrypt +URL: https://veracrypt.jp/en/Home.html +Source0: https://github.com/veracrypt/VeraCrypt/archive/refs/tags/VeraCrypt_%version.tar.gz +Source1: %{appid}.metainfo.xml +License: Apache-2.0 AND TrueCrypt-License-version-3.0 AND LGPL-3.0-only AND BSD-2-Clause AND Zlib AND BSD-3-Clause AND Public Domain +BuildRequires: make +BuildRequires: yasm +BuildRequires: gcc +BuildRequires: gcc-c++ +BuildRequires: clang +BuildRequires: pkgconf-pkg-config +BuildRequires: wxGTK-devel +BuildRequires: pkgconfig(fuse) +BuildRequires: pcsc-lite-devel +Requires: wxGTK-devel + +Provides: VeraCrypt + +Packager: Owen Zimmerman + +%description +%{summary}. + +%package lang +Summary: Translations for package %{name} +Requires: %{name} = %{evr} +Supplements: %{name} +Provides: %{name}-lang-all = %{evr} +BuildArch: noarch + +%description lang +%{summary}. + +%package doc +Summary: Documentation for %{name} +Requires: %{name} = %{evr} +Supplements: %{name} +BuildArch: noarch + +%description doc +%{summary}. + +%prep +%autosetup -n VeraCrypt-VeraCrypt_%{version} + +%build +%make_build -C src + +%install +%make_install -C src +cp -r doc/ %{buildroot}%{_pkgdocdir}/ +%terra_appstream -o %{SOURCE1} + +%files +%doc README.md +%license License.txt +%{_bindir}/veracrypt +%{_bindir}/veracrypt-uninstall.sh +%{_appsdir}/veracrypt.desktop +%{_datadir}/mime/packages/veracrypt.xml +%{_datadir}/pixmaps/veracrypt.xpm +%{_metainfodir}/%{appid}.metainfo.xml + +%files lang +%{_datadir}/veracrypt/languages/* + +%files doc +%{_pkgdocdir}/ + +%changelog +* Sat Feb 07 2026 Owen Zimmerman +- Initial commit diff --git a/anda/system/vicinae/anda.hcl b/anda/system/vicinae/anda.hcl new file mode 100644 index 0000000000..63c46bf7c5 --- /dev/null +++ b/anda/system/vicinae/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "vicinae.spec" + } + labels { + mock = 1 + } +} diff --git a/anda/system/vicinae/update.rhai b/anda/system/vicinae/update.rhai new file mode 100644 index 0000000000..c731f04401 --- /dev/null +++ b/anda/system/vicinae/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("vicinaehq/vicinae")); diff --git a/anda/system/vicinae/vicinae.spec b/anda/system/vicinae/vicinae.spec new file mode 100644 index 0000000000..ad23f4ce3f --- /dev/null +++ b/anda/system/vicinae/vicinae.spec @@ -0,0 +1,86 @@ +Name: vicinae +Version: 0.20.15 +Release: 1%{?dist} +License: GPL-3.0 +URL: https://docs.vicinae.com +Source: https://github.com/vicinaehq/%{name}/archive/refs/tags/v%{version}.tar.gz +Summary: A high-performance, native launcher for Linux +Packager: metcya + +BuildRequires: cmake +BuildRequires: gcc-c++ +BuildRequires: cmake(absl) +BuildRequires: openssl-devel +BuildRequires: cmark-gfm-devel +BuildRequires: cmake(glaze) +BuildRequires: cmake(minizip) +BuildRequires: cmake(Qt6) +BuildRequires: cmake(Qt6Svg) +BuildRequires: cmake(Qt6Keychain) +BuildRequires: cmake(LayerShellQt) +BuildRequires: pkgconfig(libqalculate) +BuildRequires: pkgconfig(protobuf) +BuildRequires: pkgconfig(icu-uc) +BuildRequires: wayland-devel +BuildRequires: nodejs-npm +BuildRequires: systemd-rpm-macros +BuildRequires: anda-srpm-macros +BuildRequires: ninja-build +BuildRequires: qt6-qtbase-devel +BuildRequires: qt6-qtbase-private-devel +BuildRequires: desktop-file-utils + +Requires: nodejs-npm + +%description +Vicinae (pronounced "vih-SIN-ay") is a high-performance, native launcher for +your desktop — built with C++ and Qt. + +%prep +%autosetup + +%build +%cmake -G Ninja -DCMAKE_BUILD_TYPE=None -DBUILD_SHARED_LIBS=OFF -DNOSTRIP=ON +%cmake_build + +%install +%cmake_install +install -Dm 644 extra/%{name}.desktop -t %{buildroot}%{_appsdir} +install -Dm 644 extra/%{name}-url-handler.desktop -t %{buildroot}%{_appsdir} +%desktop_file_edit -k StartupWMClass -v vicinae-server -f %{buildroot}%{_appsdir}/%{name}.desktop + +%check +%desktop_file_validate -f %{buildroot}%{_appsdir}/%{name}.desktop + +%post +%systemd_user_post %{name}.service + +%preun +%systemd_user_preun %{name}.service + +%postun +%systemd_user_postun_with_restart %{name}.service + +%files +%license LICENSE +%doc README.md +%{_bindir}/%{name} +%{_userunitdir}/%{name}.service +%{_datadir}/%{name}/themes/ +%{_appsdir}/%{name}.desktop +%{_appsdir}/%{name}-url-handler.desktop +%{_hicolordir}/512x512/apps/%{name}.png +%{_sysconfdir}/chromium/native-messaging-hosts/com.vicinae.vicinae.json +%{_prefix}/lib/mozilla/native-messaging-hosts/com.vicinae.vicinae.json +%{_datadir}/%{name}/native-messaging-hosts/com.vicinae.vicinae.chromium.json.in +%{_datadir}/%{name}/native-messaging-hosts/com.vicinae.vicinae.firefox.json.in +%{_libexecdir}/%{name}/vicinae-browser-link +%{_libexecdir}/%{name}/vicinae-data-control-server +%{_libexecdir}/%{name}/vicinae-server +%{_libexecdir}/%{name}/vicinae-snippet-server + +%changelog +* Wed Feb 18 2026 Jaiden Riordan - 0.19.8 +- Fixup desktop file and xdgpp +* Fri Dec 26 2025 metcya - 0.17.3 +- Package vicinae \ No newline at end of file diff --git a/anda/system/wine/dev/wine-dev.spec b/anda/system/wine/dev/wine-dev.spec index 8d03663015..a8d81894fd 100644 --- a/anda/system/wine/dev/wine-dev.spec +++ b/anda/system/wine/dev/wine-dev.spec @@ -7,9 +7,9 @@ %global compat_package terra-wine-dev # Cannot use the _datadir macro here or it will cause mass macro recursion %global _prefix /usr/share/wine-dev -%global srcmajor 10.x +%global srcmajor 11.x # Make this as a variable instead in case of WINE RCs -%global ver wine-10.17 +%global ver wine-11.8 %global cleanver %(echo %{ver} | sed 's/v//g;s/wine-//g') # This is unfortunate but a lot of Fedora's/SUSE's hardening flags break WINE @@ -19,7 +19,7 @@ # Also less confusing because it has a devel package Name: wine-dev Version: %(echo %{cleanver} | sed 's/-/~/g') -Release: 1%?dist +Release: 1%{?dist} Epoch: 1 Summary: WINE Is Not An Emulator - runs MS Windows programs License: LGPL-2.0-or-later diff --git a/anda/system/wine/stable/wine-stable.spec b/anda/system/wine/stable/wine-stable.spec index c869ae36cf..d356a4ba4e 100644 --- a/anda/system/wine/stable/wine-stable.spec +++ b/anda/system/wine/stable/wine-stable.spec @@ -11,8 +11,8 @@ %undefine _hardened_build Name: wine-stable -Version: 10.0 -Release: 2%{?dist} +Version: 11.0 +Release: 1%?dist Epoch: 1 Summary: WINE Is Not An Emulator - runs MS Windows programs License: LGPL-2.0-or-later diff --git a/anda/system/wine/staging/wine-staging.spec b/anda/system/wine/staging/wine-staging.spec index 16113524d1..e4a8b30814 100644 --- a/anda/system/wine/staging/wine-staging.spec +++ b/anda/system/wine/staging/wine-staging.spec @@ -14,12 +14,12 @@ %define _prefix /usr/share/wine-staging %undefine _hardened_build -%global srcmajor 10.x +%global srcmajor 11.x Name: wine-staging -Version: 10.17 -Release: 1%?dist +Version: 11.8 +Release: 1%{?dist} Epoch: 1 Summary: WINE Is Not An Emulator - runs MS Windows programs License: LGPL-2.0-or-later @@ -369,6 +369,7 @@ done %{_mandir}/man?/winepath.?* %{_mandir}/man?/wineserver.?* %dir %{_datadir}/wine +%{_datadir}/wine/winmd/ %{_datadir}/wine/wine.inf %{_datadir}/wine/nls/*.nls %{_datadir}/applications/*.desktop diff --git a/anda/system/wl-kmod/wl-kmod-031_replace_EXTRA_CFLAGS_EXTRA_LDFLAGS_with_ccflags-y_ldflags-y.patch b/anda/system/wl-kmod/wl-kmod-031_replace_EXTRA_CFLAGS_EXTRA_LDFLAGS_with_ccflags-y_ldflags-y.patch new file mode 100644 index 0000000000..a4077e907d --- /dev/null +++ b/anda/system/wl-kmod/wl-kmod-031_replace_EXTRA_CFLAGS_EXTRA_LDFLAGS_with_ccflags-y_ldflags-y.patch @@ -0,0 +1,63 @@ +From 26597004c02ca97d4ff620ed11091cf0dd68a92d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Nicolas=20Vi=C3=A9ville?= +Date: Tue, 17 Jun 2025 14:34:24 +0200 +Subject: [PATCH] makefile: replace EXTRA_CFLAGS and EXTRA_LDFLAGS with + ccflags-y and ldflags-y from commit "kbuild: remove EXTRA_*FLAGS support" + (Masahiro Yamada, 6 Feb 2025) saying they have been deprecated since 2007 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Nicolas Viéville +--- + Makefile | 18 +++++++++--------- + 1 file changed, 9 insertions(+), 9 deletions(-) + +diff --git a/Makefile b/Makefile +index 296162c..6e90afb 100644 +--- a/Makefile ++++ b/Makefile +@@ -131,15 +131,15 @@ GCCVERSION := $(subst $(space),$(empty),$(GCCVERSION)) + GCCVERSION := $(shell expr `echo $(GCCVERSION)` | cut -b1-3) + GE_49 := $(shell expr `echo $(GCCVERSION)` \>= 490) + +-EXTRA_CFLAGS := ++ccflags-y := + + ifeq ($(APIFINAL),CFG80211) +- EXTRA_CFLAGS += -DUSE_CFG80211 ++ ccflags-y += -DUSE_CFG80211 + $(info Using CFG80211 API) + endif + + ifeq ($(APIFINAL),WEXT) +- EXTRA_CFLAGS += -DUSE_IW ++ ccflags-y += -DUSE_IW + $(info Using Wireless Extension API) + endif + +@@ -151,15 +151,15 @@ wl-objs += src/wl/sys/wl_linux.o + wl-objs += src/wl/sys/wl_iw.o + wl-objs += src/wl/sys/wl_cfg80211_hybrid.o + +-EXTRA_CFLAGS += -I$(src)/src/include -I$(src)/src/common/include +-EXTRA_CFLAGS += -I$(src)/src/wl/sys -I$(src)/src/wl/phy -I$(src)/src/wl/ppr/include +-EXTRA_CFLAGS += -I$(src)/src/shared/bcmwifi/include +-#EXTRA_CFLAGS += -DBCMDBG_ASSERT -DBCMDBG_ERR ++ccflags-y += -I$(src)/src/include -I$(src)/src/common/include ++ccflags-y += -I$(src)/src/wl/sys -I$(src)/src/wl/phy -I$(src)/src/wl/ppr/include ++ccflags-y += -I$(src)/src/shared/bcmwifi/include ++#ccflags-y += -DBCMDBG_ASSERT -DBCMDBG_ERR + ifeq "$(GE_49)" "1" +-EXTRA_CFLAGS += -Wno-date-time ++ccflags-y += -Wno-date-time + endif + +-EXTRA_LDFLAGS := $(src)/lib/wlc_hybrid.o_shipped ++ldflags-y := $(src)/lib/wlc_hybrid.o_shipped + + KBASE ?= /lib/modules/`uname -r` + KBUILD_DIR ?= $(KBASE)/build +-- +2.49.0 + diff --git a/anda/system/wl-kmod/wl-kmod-032_add_MODULE_DESCRIPTION_macro.patch b/anda/system/wl-kmod/wl-kmod-032_add_MODULE_DESCRIPTION_macro.patch new file mode 100644 index 0000000000..db2b9a7b4b --- /dev/null +++ b/anda/system/wl-kmod/wl-kmod-032_add_MODULE_DESCRIPTION_macro.patch @@ -0,0 +1,30 @@ +From 3b780d05b0f9a3b36196c0cfedb57cb2241f87f8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Nicolas=20Vi=C3=A9ville?= +Date: Tue, 17 Jun 2025 14:49:31 +0200 +Subject: [PATCH] wl_linux.c: add MODULE_DESCRIPTION macro related to commit + "modpost: require a MODULE_DESCRIPTION()" (Jeff Johnson, 11 Mar 2025) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Nicolas Viéville +--- + src/wl/sys/wl_linux.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/wl/sys/wl_linux.c b/src/wl/sys/wl_linux.c +index 3c25ce4..0c08fe7 100644 +--- a/src/wl/sys/wl_linux.c ++++ b/src/wl/sys/wl_linux.c +@@ -164,6 +164,8 @@ static int wl_set_radio_block(void *data, bool blocked); + static void wl_report_radio_state(wl_info_t *wl); + #endif + ++// Related to commit "modpost: require a MODULE_DESCRIPTION()" (Jeff Johnson, 11 Mar 2025) ++MODULE_DESCRIPTION("Broadcom STA wireless driver [unmaintained, out-of-tree]"); + MODULE_LICENSE("MIXED/Proprietary"); + + static struct pci_device_id wl_id_table[] = +-- +2.49.0 + diff --git a/anda/system/wl-kmod/wl-kmod-033_disable_objtool_add_warning_unmaintained.patch b/anda/system/wl-kmod/wl-kmod-033_disable_objtool_add_warning_unmaintained.patch new file mode 100644 index 0000000000..c502c50a49 --- /dev/null +++ b/anda/system/wl-kmod/wl-kmod-033_disable_objtool_add_warning_unmaintained.patch @@ -0,0 +1,64 @@ +From 642f61c3ff369e5938eb6b70bf5cc9566a7e04ae Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Nicolas=20Vi=C3=A9ville?= +Date: Tue, 17 Jun 2025 15:04:16 +0200 +Subject: [PATCH] =?UTF-8?q?wl=5Flinux.c=20and=20makefile:=20added=20warnin?= + =?UTF-8?q?g=20when=20the=20module=20is=20loaded=20about=20unmaintained=20?= + =?UTF-8?q?state=20of=20driver=20and=20its=20provided=20binary=20blob=20an?= + =?UTF-8?q?d=20possible=20security=20risks=20related=20to=20current=20Linu?= + =?UTF-8?q?x=20kernel=20security=20standards=20(e.g.=20IBT)=20-=20disablin?= + =?UTF-8?q?g=20objtool=20accordingly=20as=20well=20-=20thanks=20to=20Joan?= + =?UTF-8?q?=20Bruguera=20Mic=C3=B3?= +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Nicolas Viéville +--- + Makefile | 15 +++++++++++++++ + src/wl/sys/wl_linux.c | 4 ++++ + 2 files changed, 19 insertions(+) + +diff --git a/Makefile b/Makefile +index 6e90afb..c38c3ee 100644 +--- a/Makefile ++++ b/Makefile +@@ -169,6 +169,21 @@ MDEST_DIR ?= $(KBASE)/kernel/drivers/net/wireless + CROSS_TOOLS = /path/to/tools + CROSS_KBUILD_DIR = /path/to/kernel/tree + ++# Rel. commit "objtool: Always fail on fatal errors" (Josh Poimboeuf, 31 Mar 2025) ++# This is a *ugly* hack to disable objtool during the final processing of wl.o. ++# Since is embeds the proprietary blob (wlc_hybrid.o_shipped), objtool can't ++# process it, as it does not follow the requirements of current kernels, ++# including support for critical security features. As of Linux v6.15+, it causes ++# a build error. Disable it, at your own risk. Note the MIT license applies: ++# THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ++# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ++# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ++# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ++# SOFTWARE. ++wl.o: override objtool-enabled = ++ + all: + KBUILD_NOPEDANTIC=1 make -C $(KBUILD_DIR) M=`pwd` + +diff --git a/src/wl/sys/wl_linux.c b/src/wl/sys/wl_linux.c +index 0c08fe7..59873e1 100644 +--- a/src/wl/sys/wl_linux.c ++++ b/src/wl/sys/wl_linux.c +@@ -922,6 +922,10 @@ static struct pci_driver wl_pci_driver __refdata = { + static int __init + wl_module_init(void) + { ++ printk(KERN_WARNING "You are using the Broadcom STA wireless driver, which is " ++ "not maintained and is incompatible with Linux kernel security mitigations. " ++ "It is heavily recommended to replace the hardware and remove the driver. " ++ "Proceed at your own risk!"); + int error = -ENODEV; + + #ifdef BCMDBG +-- +2.49.0 + diff --git a/anda/system/wl-kmod/wl-kmod-034_kernel_6.15_adaptation_replace_del_timer_with_timer_delete.patch b/anda/system/wl-kmod/wl-kmod-034_kernel_6.15_adaptation_replace_del_timer_with_timer_delete.patch new file mode 100644 index 0000000000..9f93394cdd --- /dev/null +++ b/anda/system/wl-kmod/wl-kmod-034_kernel_6.15_adaptation_replace_del_timer_with_timer_delete.patch @@ -0,0 +1,35 @@ +From ddfac506c7060e7514952c6ec340b34ee0273864 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Nicolas=20Vi=C3=A9ville?= +Date: Tue, 17 Jun 2025 15:12:03 +0200 +Subject: [PATCH] wl_linux.c: fix compatibility with kernel >= 6.15 replace + del_timer function with timer_delete function - related to commit "treewide: + Switch/rename to timer_delete[_sync]()" (Thomas Gleixner, 5 Apr 2025) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Nicolas Viéville +--- + src/wl/sys/wl_linux.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/src/wl/sys/wl_linux.c b/src/wl/sys/wl_linux.c +index 59873e1..4512f73 100644 +--- a/src/wl/sys/wl_linux.c ++++ b/src/wl/sys/wl_linux.c +@@ -2501,7 +2501,12 @@ wl_del_timer(wl_info_t *wl, wl_timer_t *t) + ASSERT(t); + if (t->set) { + t->set = FALSE; ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 15, 0) ++ // Rel. commit "treewide: Switch/rename to timer_delete[_sync]()" (Thomas Gleixner, 5 Apr 2025) ++ if (!timer_delete(&t->timer)) { ++#else + if (!del_timer(&t->timer)) { ++#endif + #ifdef BCMDBG + WL_INFORM(("wl%d: Failed to delete timer %s\n", wl->unit, t->name)); + #endif +-- +2.49.0 + diff --git a/anda/system/wl-kmod/wl-kmod-035_kernel_6.17_adaptation_fix_functions_prototypes.patch b/anda/system/wl-kmod/wl-kmod-035_kernel_6.17_adaptation_fix_functions_prototypes.patch new file mode 100644 index 0000000000..dbfa45f8c0 --- /dev/null +++ b/anda/system/wl-kmod/wl-kmod-035_kernel_6.17_adaptation_fix_functions_prototypes.patch @@ -0,0 +1,102 @@ +From 564dc0af953480b3155266b388637e51fb8c6fc8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Nicolas=20Vi=C3=A9ville?= +Date: Thu, 18 Sep 2025 16:01:05 +0200 +Subject: [PATCH] wl_cfg80211_hybrid.c: fix compatibility with kernel >= 6.17 + in funtions prototypes for wl_cfg80211_set_wiphy_params, + wl_cfg80211_set_tx_power and wl_cfg80211_get_tx_power - related to commit + "wifi: cfg80211/mac80211: Add support to get radio index" (Roopni Devanathan, + 15 Jun 2025) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Nicolas Viéville +--- + src/wl/sys/wl_cfg80211_hybrid.c | 34 +++++++++++++++++++++++++++++---- + 1 file changed, 30 insertions(+), 4 deletions(-) + +diff --git a/src/wl/sys/wl_cfg80211_hybrid.c b/src/wl/sys/wl_cfg80211_hybrid.c +index 5a7f0c4..58f1023 100644 +--- a/src/wl/sys/wl_cfg80211_hybrid.c ++++ b/src/wl/sys/wl_cfg80211_hybrid.c +@@ -70,7 +70,12 @@ wl_cfg80211_scan(struct wiphy *wiphy, + static s32 wl_cfg80211_scan(struct wiphy *wiphy, struct net_device *ndev, + struct cfg80211_scan_request *request); + #endif ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 17, 0) ++static s32 wl_cfg80211_set_wiphy_params(struct wiphy *wiphy, int radio_idx, ++ u32 changed); ++#else + static s32 wl_cfg80211_set_wiphy_params(struct wiphy *wiphy, u32 changed); ++#endif + static s32 wl_cfg80211_join_ibss(struct wiphy *wiphy, struct net_device *dev, + struct cfg80211_ibss_params *params); + static s32 wl_cfg80211_leave_ibss(struct wiphy *wiphy, struct net_device *dev); +@@ -89,7 +94,12 @@ static int wl_cfg80211_connect(struct wiphy *wiphy, struct net_device *dev, + struct cfg80211_connect_params *sme); + static s32 wl_cfg80211_disconnect(struct wiphy *wiphy, struct net_device *dev, u16 reason_code); + +-#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 17, 0) ++static s32 ++wl_cfg80211_set_tx_power(struct wiphy *wiphy, struct wireless_dev *wdev, ++ int radio_idx, ++ enum nl80211_tx_power_setting type, s32 dbm); ++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0) + static s32 + wl_cfg80211_set_tx_power(struct wiphy *wiphy, struct wireless_dev *wdev, + enum nl80211_tx_power_setting type, s32 dbm); +@@ -101,7 +111,10 @@ static s32 wl_cfg80211_set_tx_power(struct wiphy *wiphy, + enum tx_power_setting type, s32 dbm); + #endif + +-#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 14, 0) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 17, 0) ++static s32 wl_cfg80211_get_tx_power(struct wiphy *wiphy, struct wireless_dev *wdev, ++ int radio_idx, unsigned int link_id, s32 *dbm); ++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(6, 14, 0) + static s32 wl_cfg80211_get_tx_power(struct wiphy *wiphy, struct wireless_dev *wdev, + unsigned int link_id, s32 *dbm); + #elif LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0) +@@ -732,7 +745,12 @@ static s32 wl_set_retry(struct net_device *dev, u32 retry, bool l) + return err; + } + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 17, 0) ++static s32 wl_cfg80211_set_wiphy_params(struct wiphy *wiphy, int radio_idx, ++ u32 changed) ++#else + static s32 wl_cfg80211_set_wiphy_params(struct wiphy *wiphy, u32 changed) ++#endif + { + struct wl_cfg80211_priv *wl = wiphy_to_wl(wiphy); + struct net_device *ndev = wl_to_ndev(wl); +@@ -1167,7 +1185,12 @@ wl_cfg80211_disconnect(struct wiphy *wiphy, struct net_device *dev, u16 reason_c + return err; + } + +-#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 17, 0) ++static s32 ++wl_cfg80211_set_tx_power(struct wiphy *wiphy, struct wireless_dev *wdev, ++ int radio_idx, ++ enum nl80211_tx_power_setting type, s32 dbm) ++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0) + static s32 + wl_cfg80211_set_tx_power(struct wiphy *wiphy, struct wireless_dev *wdev, + enum nl80211_tx_power_setting type, s32 dbm) +@@ -1228,7 +1251,10 @@ wl_cfg80211_set_tx_power(struct wiphy *wiphy, enum tx_power_setting type, s32 db + return err; + } + +-#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 14, 0) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 17, 0) ++static s32 wl_cfg80211_get_tx_power(struct wiphy *wiphy, struct wireless_dev *wdev, ++ int radio_idx, unsigned int link_id, s32 *dbm) ++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(6, 14, 0) + static s32 wl_cfg80211_get_tx_power(struct wiphy *wiphy, struct wireless_dev *wdev, + unsigned int link_id, s32 *dbm) + #elif LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0) +-- +2.51.0 + diff --git a/anda/system/wl-kmod/wl-kmod.spec b/anda/system/wl-kmod/wl-kmod.spec index 7221f0d952..77f043179b 100644 --- a/anda/system/wl-kmod/wl-kmod.spec +++ b/anda/system/wl-kmod/wl-kmod.spec @@ -10,7 +10,7 @@ Name: wl-kmod Version: 6.30.223.271 -Release: 3%{?dist} +Release: 6%{?dist} Summary: Kernel module for Broadcom wireless devices Group: System Environment/Kernel License: Redistributable, no modification permitted @@ -27,7 +27,7 @@ Patch5: wl-kmod-007_kernel_4.8_add_cfg80211_scan_info_struct.patch Patch6: wl-kmod-008_fix_kernel_warnings.patch Patch7: wl-kmod-009_kernel_4.11_remove_last_rx_in_net_device_struct.patch Patch8: wl-kmod-010_kernel_4.12_add_cfg80211_roam_info_struct.patch -Patch9: wl-kmod-011_kernel_4.14_new_kernel_read_function_prototype.patch +Patch9: wl-kmod-011_kernel_4.14_new_kernel_read_function_prototype.patch Patch10: wl-kmod-012_kernel_4.15_new_timer.patch Patch11: wl-kmod-013_gcc8_fix_bounds_check_warnings.patch Patch12: wl-kmod-014_kernel_read_pos_increment_fix.patch @@ -47,13 +47,18 @@ Patch25: wl-kmod-027_wpa_supplicant-2.11_add_max_scan_ie_len.patch Patch26: wl-kmod-028_kernel_6.12_adaptation.patch Patch27: wl-kmod-029_kernel_6.13_adaptation.patch Patch28: wl-kmod-030_kernel_6.14_adaptation.patch +Patch29: wl-kmod-031_replace_EXTRA_CFLAGS_EXTRA_LDFLAGS_with_ccflags-y_ldflags-y.patch +Patch30: wl-kmod-032_add_MODULE_DESCRIPTION_macro.patch +Patch31: wl-kmod-033_disable_objtool_add_warning_unmaintained.patch +Patch32: wl-kmod-034_kernel_6.15_adaptation_replace_del_timer_with_timer_delete.patch +Patch33: wl-kmod-035_kernel_6.17_adaptation_fix_functions_prototypes.patch ExclusiveArch: i686 x86_64 BuildRequires: kmodtool BuildRequires: elfutils-libelf-devel %{!?kernels:BuildRequires: gcc, elfutils-libelf-devel} -%{expand:%(kmodtool --target %{_target_cpu} --repo terra --kmodname %{name} --filterfile %{SOURCE11} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null) } +%{expand:%(kmodtool --target %{_target_cpu} --repo terrapkg.com --kmodname %{name} --filterfile %{SOURCE11} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null) } %description These packages contain Broadcom's IEEE 802.11a/b/g/n hybrid Linux device driver for use with Broadcom's BCM4311-, BCM4312-, BCM4313-, BCM4321-, BCM4322-, BCM43142-, BCM43224-, BCM43225-, BCM43227-, BCM43228-, BCM4331-, BCM4360, and -BCM4352-. @@ -62,7 +67,7 @@ NOTE: Please read the LICENSE.txt file in the docs directory before using this d %prep %{?kmodtool_check} -kmodtool --target %{_target_cpu} --repo terra --kmodname %{name} --filterfile %{SOURCE11} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null +kmodtool --target %{_target_cpu} --repo terrapkg.com --kmodname %{name} --filterfile %{SOURCE11} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null %setup -q -c -T mkdir %{name}-%{version}-src @@ -81,7 +86,7 @@ pushd %{name}-%{version}-src %patch -P 6 -p1 -b .fix_kernel_warnings %patch -P 7 -p1 -b .kernel_4.11_remove_last_rx_in_net_device_struct %patch -P 8 -p1 -b .kernel_4.12_add_cfg80211_roam_info_struct -%patch -P 9 -p1 -b .kernel_4.14_new_kernel_read_function_prototype +%patch -P 9 -p1 -b .kernel_4.14_new_kernel_read_function_prototype %patch -P 10 -p1 -b .kernel_4.15_new_timer %patch -P 11 -p1 -b .gcc8_fix_bounds_check_warnings %patch -P 12 -p1 -b .kernel_read_pos_increment_fix @@ -101,30 +106,296 @@ pushd %{name}-%{version}-src %patch -P 26 -p1 -b .kernel_6.12_adaptation %patch -P 27 -p1 -b .kernel_6.13_adaptation %patch -P 28 -p1 -b .kernel_6.14_adaptation +%patch -P 29 -p1 -b .EXTRA_CFLAGS_EXTRA_LDFLAGS +%patch -P 30 -p1 -b .MODULE_DESCRIPTION +%patch -P 31 -p1 -b .disable_objtool +%patch -P 32 -p1 -b .kernel_6.15_adaptation +%patch -P 33 -p1 -b .kernel_6.17_adaptation -### NOTE: These MUST be added to as new EL versions are released. -%if 0%{?rhel} == 9 +# Manual patching to build for RHEL - inspired by CentOS wl-kmod.spec +# Actually works for RHEL 6.x and 7.x +%if 0%{?rhel} == 6 + # Define kvl (linux) & kvr (release) for use in "patching" logical %define kvl %(echo %{kernel_versions} | cut -d"-" -f1) %define kvr %(echo %{kernel_versions} | cut -d"-" -f2 | cut -d"." -f1) -### Patching for various point release kernels. + # Perform "patching" edits to the src/wl/sys/wl_cfg80211_hybrid.c file. + # Note: Using this method, as opposed to making a patch, allows + # the src.rpm to be compiled under various point release kernels. + # Note: Use [ >][>=] where both >= & > are present + %if "%{kvl}" == "2.6.32" + %if %{kvr} >= 71 + # Apply to EL 6.0 point release and later + %{__sed} -i 's/ >= KERNEL_VERSION(3, 6, 0)/ >= KERNEL_VERSION(2, 6, 32)/' src/wl/sys/wl_cfg80211_hybrid.c + %endif + %if %{kvr} >= 131 + # Apply to EL 6.1 point release and later (2.6.32-131.0.15) + # > No changes currently needed for EL 6.1 point release + %endif + %if %{kvr} >= 220 + # Apply to EL 6.2 point release and later + # > No changes currently needed for EL 6.2 point release + %endif + %if %{kvr} >= 279 + # Apply to EL 6.3 point release and later + %{__sed} -i 's/ >= KERNEL_VERSION(2, 6, 36)/ >= KERNEL_VERSION(2, 6, 32)/' src/wl/sys/wl_cfg80211_hybrid.c + %{__sed} -i 's/ >= KERNEL_VERSION(2, 6, 37)/ >= KERNEL_VERSION(2, 6, 32)/' src/wl/sys/wl_cfg80211_hybrid.c + %{__sed} -i 's/ >= KERNEL_VERSION(2, 6, 38)/ >= KERNEL_VERSION(2, 6, 32)/' src/wl/sys/wl_cfg80211_hybrid.c + %{__sed} -i 's/ > KERNEL_VERSION(2, 6, 39)/ > KERNEL_VERSION(2, 6, 31)/' src/wl/sys/wl_cfg80211_hybrid.c + %{__sed} -i 's/ >= KERNEL_VERSION(2, 6, 39)/ >= KERNEL_VERSION(2, 6, 32)/' src/wl/sys/wl_cfg80211_hybrid.c + %{__sed} -i 's/ >= KERNEL_VERSION(3, 1, 0)/ >= KERNEL_VERSION(2, 6, 32)/' src/wl/sys/wl_cfg80211_hybrid.c + %endif + %if %{kvr} == 358 + # Only apply to EL 6.4 point release + if $(grep -q "/lib/modules/kabi/kabi_whitelist" /usr/lib/rpm/redhat/find-requires.ksyms 2>/dev/null) ; then + %{__sed} -i 's@/lib/modules/kabi/kabi_whitelist@/lib/modules/kabi-current/kabi_whitelist@g' /usr/lib/rpm/redhat/find-requires.ksyms + fi + %endif + %if %{kvr} >= 358 + # Apply to EL 6.4 point release and later + # > No changes currently needed for EL 6.4 point release + %endif + %if %{kvr} == 431 + # Only apply to EL 6.5 point release + if $(grep -q "/lib/modules/kabi/kabi_whitelist" /usr/lib/rpm/redhat/find-requires.ksyms 2>/dev/null) ; then + %{__sed} -i 's@/lib/modules/kabi/kabi_whitelist@/lib/modules/kabi-current/kabi_whitelist@g' /usr/lib/rpm/redhat/find-requires.ksyms + fi + %endif + %if %{kvr} >= 431 + # Apply to EL 6.5 point release and later + %{__sed} -i 's/ >= KERNEL_VERSION(3, 8, 0)/ >= KERNEL_VERSION(2, 6, 32)/' src/wl/sys/wl_cfg80211_hybrid.c + %{__sed} -i 's/ >= KERNEL_VERSION(3, 9, 0)/ >= KERNEL_VERSION(2, 6, 32)/' src/wl/sys/wl_cfg80211_hybrid.c + %endif + %if %{kvr} == 504 + # Only apply to EL 6.6 point release + if $(grep -q "/lib/modules/kabi/kabi_whitelist" /usr/lib/rpm/redhat/find-requires.ksyms 2>/dev/null) ; then + %{__sed} -i 's@/lib/modules/kabi/kabi_whitelist@/lib/modules/kabi-current/kabi_whitelist@g' /usr/lib/rpm/redhat/find-requires.ksyms + fi + %endif + %if %{kvr} >= 504 + # Apply to EL 6.6 point release and later + # > No changes currently needed for EL 6.6 point release + %endif + %if %{kvr} >= 573 + # Apply to EL 6.7 point release and later + %{__sed} -i 's/ >= KERNEL_VERSION(3, 11, 0)/ >= KERNEL_VERSION(2, 6, 32)/' src/wl/sys/wl_cfg80211_hybrid.c + %{__sed} -i 's/ < KERNEL_VERSION(3, 16, 0)/ < KERNEL_VERSION(2, 6, 32)/' src/wl/sys/wl_cfg80211_hybrid.c + %{__sed} -i 's/ < KERNEL_VERSION(3, 18, 0)/ < KERNEL_VERSION(2, 6, 32)/' src/wl/sys/wl_cfg80211_hybrid.c + %{__sed} -i 's/ >= KERNEL_VERSION(3, 15, 0)/ >= KERNEL_VERSION(2, 6, 32)/' src/wl/sys/wl_cfg80211_hybrid.c + %endif + %if %{kvr} >= 642 + # Apply to EL 6.8 point release and later + %{__sed} -i 's/ >= KERNEL_VERSION(4, 0, 0)/ >= KERNEL_VERSION(2, 6, 32)/' src/wl/sys/wl_cfg80211_hybrid.c + %{__sed} -i 's/ < KERNEL_VERSION(4,2,0)/ < KERNEL_VERSION(2, 6, 32)/' src/wl/sys/wl_cfg80211_hybrid.c + %endif + %if %{kvr} >= 696 + # Apply to EL 6.9 point release and later + # > No changes currently needed for EL 6.9 point release + %endif + %if %{kvr} >= 754 + # Apply to EL 6.10 point release and later + # > No changes currently needed for EL 6.10 point release + %endif + %endif +%endif +%if 0%{?rhel} == 7 + # Define kvl (linux) & kvr (release) for use in "patching" logical + %define kvl %(echo %{kernel_versions} | cut -d"-" -f1) + %define kvr %(echo %{kernel_versions} | cut -d"-" -f2 | cut -d"." -f1) + + # Perform "patching" edits to the src/wl/sys/wl_cfg80211_hybrid.c file. + # Note: Using this method, as opposed to making a patch, allows + # the src.rpm to be compiled under various point release kernels. + # Note: Use [ >][>=] where both >= & > are present + %if "%{kvl}" == "3.10.0" + %if %{kvr} == 123 + # Only apply to EL 7.0 point release + if $(grep -q "/lib/modules/kabi/kabi_whitelist" /usr/lib/rpm/redhat/find-requires.ksyms 2>/dev/null) ; then + %{__sed} -i 's@/lib/modules/kabi/kabi_whitelist@/lib/modules/kabi-rhel70/kabi_whitelist@g' /usr/lib/rpm/redhat/find-requires.ksyms + fi + %endif + %if %{kvr} >= 123 + # Apply to EL 7.0 point release and later + # > No changes currently needed for EL 7.0 point release + %endif + %if %{kvr} >= 229 + # Apply to EL 7.1 point release and later + %{__sed} -i 's/ >= KERNEL_VERSION(3, 11, 0)/ >= KERNEL_VERSION(3, 10, 0)/' src/wl/sys/wl_cfg80211_hybrid.c + %{__sed} -i 's/ >= KERNEL_VERSION(3, 15, 0)/ >= KERNEL_VERSION(3, 10, 0)/' src/wl/sys/wl_cfg80211_hybrid.c + %{__sed} -i 's/ < KERNEL_VERSION(3, 16, 0)/ < KERNEL_VERSION(3, 10, 0)/' src/wl/sys/wl_cfg80211_hybrid.c + %endif + %if %{kvr} >= 327 + # Apply to EL 7.2 point release and later + %{__sed} -i 's/ < KERNEL_VERSION(3, 18, 0)/ < KERNEL_VERSION(3, 9, 0)/' src/wl/sys/wl_cfg80211_hybrid.c + %{__sed} -i 's/ >= KERNEL_VERSION(4, 0, 0)/ >= KERNEL_VERSION(3, 10, 0)/' src/wl/sys/wl_cfg80211_hybrid.c + %endif + %if %{kvr} >= 514 + # Apply to EL 7.3 point release and later + %{__sed} -i 's/ < KERNEL_VERSION(4,2,0)/ < KERNEL_VERSION(3, 9, 0)/' src/wl/sys/wl_cfg80211_hybrid.c + %{__sed} -i 's/ >= KERNEL_VERSION(4, 7, 0)/ >= KERNEL_VERSION(3, 10, 0)/' src/wl/sys/wl_cfg80211_hybrid.c + %endif + %if %{kvr} >= 693 + # Apply to EL 7.4 point release and later + %{__sed} -i 's/ >= KERNEL_VERSION(4, 8, 0)/ >= KERNEL_VERSION(3, 10, 0)/' src/wl/sys/wl_cfg80211_hybrid.c + %endif + %if %{kvr} >= 862 + # Apply to EL 7.5 point release and later + %{__sed} -i 's/ <= KERNEL_VERSION(4, 10, 0)/ <= KERNEL_VERSION(3, 9, 0)/' src/wl/sys/wl_linux.c + %{__sed} -i 's/ >= KERNEL_VERSION(4, 11, 0)/ >= KERNEL_VERSION(3, 10, 0)/g' src/wl/sys/wl_cfg80211_hybrid.c + %{__sed} -i 's/ < KERNEL_VERSION(4, 12, 0)/ < KERNEL_VERSION(3, 10, 0)/g' src/wl/sys/wl_cfg80211_hybrid.c + %{__sed} -i 's/ >= KERNEL_VERSION(4, 12, 0)/ >= KERNEL_VERSION(3, 10, 0)/g' src/wl/sys/wl_cfg80211_hybrid.c + %endif + %if %{kvr} >= 957 + # Apply to EL 7.6 point release and later + # > No changes currently needed for EL 7.6 point release + %endif + %if %{kvr} >= 1062 + # Apply to EL 7.7 point release and later + %{__sed} -i -e 's@__attribute__((__fallthrough__));.*@/* fall through */@g' src/wl/sys/wl_cfg80211_hybrid.c + %endif + %if %{kvr} >= 1127 + # Apply to EL 7.8 point release and later + # > No changes currently needed for EL 7.8 point release + %endif + %if %{kvr} >= 1160 + # Apply to EL 7.9 point release and later + # > No changes currently needed for EL 7.9 point release + %endif + %endif +%endif +%if 0%{?rhel} == 8 + # Define kvl (linux) & kvr (release) for use in "patching" logical + %define kvl %(echo %{kernel_versions} | cut -d"-" -f1) + %define kvr %(echo %{kernel_versions} | cut -d"-" -f2 | cut -d"." -f1) + + # Perform "patching" edits to the src/wl/sys/wl_cfg80211_hybrid.c file. + # Note: Using this method, as opposed to making a patch, allows + # the src.rpm to be compiled under various point release kernels. + # Note: Use [ >][>=] where both >= & > are present + %if "%{kvl}" == "4.18.0" + %if %{kvr} == 80 + # Only apply to EL 8.0 point release + # > No changes currently needed for EL 8.0 point release + %endif + %if %{kvr} >= 80 + # Apply to EL 8.0 point release and later + # > No changes currently needed for EL 8.0 point release + %endif + %if %{kvr} >= 147 + # Apply to EL 8.1 point release and later + # > No changes currently needed for EL 8.1 point release + %endif + %if %{kvr} >= 193 + # Apply to EL 8.2 point release and later + # > No changes currently needed for EL 8.2 point release + %endif + %if %{kvr} >= 240 + # Apply to EL 8.3 point release and later + # > No changes currently needed for EL 8.3 point release + %endif + %if %{kvr} >= 305 + # Apply to EL 8.4 point release and later + # > No changes currently needed for EL 8.4 point release + %endif + %if %{kvr} >= 348 + # Apply to EL 8.5 point release and later + # > No changes currently needed for EL 8.5 point release + %endif + %if %{kvr} >= 372 + # Apply to EL 8.6 point release and later + # > No changes currently needed for EL 8.6 point release + %endif + %if %{kvr} >= 425 + # Apply to EL 8.7 point release and later + # > No changes currently needed for EL 8.7 point release + %endif + %if %{kvr} >= 477 + # Apply to EL 8.8 point release and later + %{__sed} -i 's/ >= KERNEL_VERSION(6, 0, 0)/ >= KERNEL_VERSION(4, 18, 0)/g' src/wl/sys/wl_cfg80211_hybrid.c + %{__sed} -i 's/ >= KERNEL_VERSION(6, 1, 0)/ >= KERNEL_VERSION(4, 18, 0)/g' src/wl/sys/wl_cfg80211_hybrid.c + %endif + %if %{kvr} >= 513 + # Apply to EL 8.9 point release and later + # > No changes currently needed for EL 8.9 point release + %endif + %if %{kvr} >= 553 + # Apply to EL 8.10 point release and later + # > No changes currently needed for EL 8.10 point release + %endif + %endif +%endif +%if 0%{?rhel} == 9 + # Define kvl (linux) & kvr (release) for use in "patching" logical + %define kvl %(echo %{kernel_versions} | cut -d"-" -f1) + %define kvr %(echo %{kernel_versions} | cut -d"-" -f2 | cut -d"." -f1) + + # Perform "patching" edits to the src/wl/sys/wl_cfg80211_hybrid.c file. + # Note: Using this method, as opposed to making a patch, allows + # the src.rpm to be compiled under various point release kernels. + # Note: Use [ >][>=] where both >= & > are present %if "%{kvl}" == "5.14.0" %if %{kvr} == 70 + # Only apply to EL 9.0 point release + # > No changes currently needed for EL 9.0 point release %endif %if %{kvr} >= 70 + # Apply to EL 9.0 point release and later %{__sed} -i 's/ < KERNEL_VERSION(5, 17, 0)/ < KERNEL_VERSION(5, 14, 0)/g' src/wl/sys/wl_iw.h %{__sed} -i 's/ >= KERNEL_VERSION(5, 17, 0)/ >= KERNEL_VERSION(5, 14, 0)/g' src/wl/sys/wl_linux.c %endif %if %{kvr} >= 162 + # Apply to EL 9.1 point release and later + # > No changes currently needed for EL 9.1 point release %endif %if %{kvr} >= 284 + # Apply to EL 9.2 point release and later + # > No changes currently needed for EL 9.2 point release %endif %if %{kvr} >= 362 + # Apply to EL 9.3 point release and later %{__sed} -i 's/ >= KERNEL_VERSION(6, [01], 0)/ >= KERNEL_VERSION(5, 14, 0)/g' src/wl/sys/wl_cfg80211_hybrid.c %endif %if %{kvr} >= 427 + # Apply to EL 9.4 point release and later + # > No changes currently needed for EL 9.4 point release %endif %if %{kvr} >= 503 + # Apply to EL 9.5 point release and later + # > No changes currently needed for EL 9.5 point release + %endif + %if %{kvr} >= 570 + # Apply to EL 9.6 point release and later + # > No changes currently needed for EL 9.6 point release + %endif + %if %{kvr} >= 611 + # Apply to EL 9.7 point release and later + %{__sed} -i 's/ < KERNEL_VERSION(6, 13, 0)/ < KERNEL_VERSION(5, 14, 0)/g' src/include/linuxver.h + %{__sed} -i 's/ >= KERNEL_VERSION(6, 14, 0)/ >= KERNEL_VERSION(5, 14, 0)/g' src/wl/sys/wl_cfg80211_hybrid.c + %{__sed} -i 's/ >= KERNEL_VERSION(6, 17, 0)/ >= KERNEL_VERSION(5, 14, 0)/g' src/wl/sys/wl_cfg80211_hybrid.c + %endif + %endif +%endif +%if 0%{?rhel} == 10 + # Define kvl (linux) & kvr (release) for use in "patching" logical + %define kvl %(echo %{kernel_versions} | cut -d"-" -f1) + %define kvr %(echo %{kernel_versions} | cut -d"-" -f2 | cut -d"." -f1) + + # Perform "patching" edits to the src/wl/sys/wl_cfg80211_hybrid.c file. + # Note: Using this method, as opposed to making a patch, allows + # the src.rpm to be compiled under various point release kernels. + # Note: Use [ >][>=] where both >= & > are present + %if "%{kvl}" == "6.12.0" + %if %{kvr} == 55 + # Only apply to EL 10.0 point release + # > No changes currently needed for EL 10.0 point release + %endif + %if %{kvr} >= 55 + # Apply to EL 10.0 point release and later + %{__sed} -i 's/ < KERNEL_VERSION(6, 13, 0)/ < KERNEL_VERSION(6, 12, 0)/g' src/include/linuxver.h + %endif + %if %{kvr} >= 124 + # Apply to EL 10.1 point release and later + %{__sed} -i 's/ >= KERNEL_VERSION(6, 14, 0)/ >= KERNEL_VERSION(6, 12, 0)/g' src/wl/sys/wl_cfg80211_hybrid.c %endif %endif %endif diff --git a/anda/system/wluma/anda.hcl b/anda/system/wluma/anda.hcl new file mode 100644 index 0000000000..5e18893f61 --- /dev/null +++ b/anda/system/wluma/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "wluma.spec" + } +} diff --git a/anda/system/wluma/update.rhai b/anda/system/wluma/update.rhai new file mode 100644 index 0000000000..95ba7eca20 --- /dev/null +++ b/anda/system/wluma/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("max-baz/wluma")) diff --git a/anda/system/wluma/wluma.spec b/anda/system/wluma/wluma.spec new file mode 100644 index 0000000000..d72bb4177e --- /dev/null +++ b/anda/system/wluma/wluma.spec @@ -0,0 +1,55 @@ +Name: wluma +Version: 4.11.0 +Release: 1%{?dist} +Summary: Automatic brightness adjustment based on screen contents and ALS +URL: https://github.com/max-baz/wluma +Source0: %{url}/archive/refs/tags/%{version}.tar.gz +License: ISC +BuildRequires: cargo anda-srpm-macros cargo-rpm-macros mold v4l-utils libv4l-devel rust-libudev-devel vulkan-loader-devel dbus-devel clang systemd-rpm-macros +Packager: Its-J + +%description +%{summary}. + +%prep +%autosetup -n %{name}-%{version} +%cargo_prep_online + +%build +%cargo_build + +%install +%cargo_install +%cargo_license_summary_online +%{cargo_license_online -a} > LICENSE.dependencies +install -Dm 644 %{name}.service %{buildroot}%{_userunitdir}/%{name}.service +install -Dm 644 90-%{name}-backlight.rules %{buildroot}%{_udevrulesdir}/90-%{name}-backlight.rules +install -Dm 644 config.toml %{buildroot}%{_datadir}/%{name}/config.toml + +%post +%systemd_user_post %{name}.service + +%preun +%systemd_user_preun %{name}.service + +%postun +%systemd_user_postun_with_restart %{name}.service + +%files +%doc README.md +%license LICENSE +%license LICENSE.dependencies +%{_bindir}/wluma +%{_userunitdir}/%{name}.service +%{_udevrulesdir}/90-%{name}-backlight.rules +%{_datadir}/%{name}/config.toml + +%changelog +* Tue Apr 14 2026 Its-J +- Add email to my previous contributor attributions + +* Sat Nov 29 2025 metcya +- Package systemd service, example config, and udev rules + +* Fri Nov 28 2025 Its-J +- Package wluma diff --git a/anda/system/xbps/anda.hcl b/anda/system/xbps/anda.hcl new file mode 100644 index 0000000000..cac5e59859 --- /dev/null +++ b/anda/system/xbps/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "xbps.spec" + } +} diff --git a/anda/system/xbps/update.rhai b/anda/system/xbps/update.rhai new file mode 100644 index 0000000000..060990e1d9 --- /dev/null +++ b/anda/system/xbps/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("void-linux/xbps")); diff --git a/anda/system/xbps/xbps.spec b/anda/system/xbps/xbps.spec new file mode 100644 index 0000000000..ef1df35a06 --- /dev/null +++ b/anda/system/xbps/xbps.spec @@ -0,0 +1,80 @@ +%global _distro_extra_cflags -Wno-discarded-qualifiers + +Name: xbps +Version: 0.60.7 +Release: 2%?dist +License: BSD-2-Clause AND BSD-3-Clause AND ISC +Summary: A binary package system designed and implemented from scratch +URL: https://github.com/void-linux/xbps +Source: %{url}/archive/refs/tags/%{version}.tar.gz +Packager: Metcya + +BuildRequires: gcc +BuildRequires: make +BuildRequires: pkgconfig(pkgconf) +BuildRequires: pkgconfig(zlib) +BuildRequires: pkgconfig(openssl) +BuildRequires: pkgconfig(libarchive) >= 3.3.3 +Requires: %name-libs = %evr + +%pkg_completion -B xbps xbps-checkvers xbps-create xbps-dgraph xbps-install xbps-pkgdb xbps-query xbps-reconfigure xbps-remove xbps-rindex +%pkg_completion -z xbps xbps_src + +%description +The X Binary Package System (in short XBPS) is a binary package system designed +and implemented from scratch. Its goal is to be fast, easy to use, bug-free, +featureful and portable as much as possible. + +%package libs +%pkg_libs_files + +%package static +%pkg_static_files + +%package devel +%pkg_devel_files + +%prep +%autosetup + +%conf +%configure + +%build +%make_build + +%install +%make_install + +%files +%license LICENSE LICENSE.3RDPARTY +%doc README.md NEWS 3RDPARTY AUTHORS +%_bindir/xbps-alternatives +%_bindir/xbps-checkvers +%_bindir/xbps-create +%_bindir/xbps-dgraph +%_bindir/xbps-digest +%_bindir/xbps-fbulk +%_bindir/xbps-fetch +%_bindir/xbps-install +%_bindir/xbps-pkgdb +%_bindir/xbps-query +%_bindir/xbps-reconfigure +%_bindir/xbps-remove +%_bindir/xbps-rindex +%_bindir/xbps-uchroot +%_bindir/xbps-uhelper +%_bindir/xbps-uunshare +%_datadir/%name.d/00-repository-main.conf +%_datadir/%name.d/%name.conf +%_mandir/man1/*.1.* +%_mandir/man5/*.5.* +%_mandir/man7/*.7.* +/var/db/%name/keys/*.plist + +%changelog +* Tue Feb 24 2026 Metcya - 0.60.7-2 +- Fix broken dependency + +* Fri Dec 12 2025 Metcya - 0.60.6 +- package xbps diff --git a/anda/system/xone/nightly/akmod/xone-nightly-kmod.spec b/anda/system/xone/nightly/akmod/xone-nightly-kmod.spec index 04be4f8b0b..68188620f7 100644 --- a/anda/system/xone/nightly/akmod/xone-nightly-kmod.spec +++ b/anda/system/xone/nightly/akmod/xone-nightly-kmod.spec @@ -1,14 +1,14 @@ -%global commit 778dbc953b1987d259ea6d802fd6967b6a0d2097 +%global commit f2aa9fe01103d7600553b505b298ff0bd47ff280 %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commitdate 20250718 -%global ver 0.3.4 +%global commitdate 20260314 +%global ver 0.5.7 %define buildforkernels akmod %global debug_package %{nil} %global modulename xone Name: %{modulename}-nightly-kmod Version: %{ver}^%{commitdate}git.%{shortcommit} -Release: 1%?dist +Release: 3%{?dist} %if 0%{?fedora} <= 43 || 0%{?rhel} <= 10 Epoch: 1 %endif @@ -26,16 +26,16 @@ Conflicts: %{modulename}-kmod %if 0%{?fedora} <= 43 || 0%{?rhel} <= 10 Obsoletes: %{name} < %{?epoch:%{epoch}:}3.0^20250419git.c682b0c %endif -Packager: Gilver E. +Packager: Gilver E. -%{expand:%(kmodtool --target %{_target_cpu} --repo terra --kmodname %{name} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null) } +%{expand:%(kmodtool --target %{_target_cpu} --repo terrapkg.com --kmodname %{name} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null) } %description Linux kernel driver for Xbox One and Xbox Series X|S accessories. %prep %{?kmodtool_check} -kmodtool --target %{_target_cpu} --repo terra --kmodname %{name} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null +kmodtool --target %{_target_cpu} --repo terrapkg.com --kmodname %{name} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null %autosetup -p1 -n %{modulename}-%{commit} diff --git a/anda/system/xone/nightly/dkms/dkms-xone-nightly.spec b/anda/system/xone/nightly/dkms/dkms-xone-nightly.spec index 504d073fb8..b4de82ea2c 100644 --- a/anda/system/xone/nightly/dkms/dkms-xone-nightly.spec +++ b/anda/system/xone/nightly/dkms/dkms-xone-nightly.spec @@ -1,13 +1,13 @@ -%global commit 778dbc953b1987d259ea6d802fd6967b6a0d2097 +%global commit f2aa9fe01103d7600553b505b298ff0bd47ff280 %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commitdate 20250718 -%global ver 0.3.4 +%global commitdate 20260314 +%global ver 0.5.7 %global debug_package %{nil} %global modulename xone Name: dkms-%{modulename}-nightly Version: %{ver}^%{commitdate}git.%{shortcommit} -Release: 1%?dist +Release: 2%{?dist} %if 0%{?fedora} <= 43 || 0%{?rhel} <= 10 Epoch: 1 %endif @@ -27,7 +27,7 @@ Provides: %{modulename}-nightly-kmod = %{?epoch:%{epoch}:}%{version} Obsoletes: dkms-%{modulename} < %{?epoch:%{epoch}:}3.0^20250419git.c682b0c %endif BuildArch: noarch -Packager: Gilver E. +Packager: Gilver E. %description Linux kernel driver for Xbox One and Xbox Series X|S accessories. diff --git a/anda/system/xone/nightly/kmod-common/update.rhai b/anda/system/xone/nightly/kmod-common/update.rhai index bf0ec4fdfe..e46f17f7d2 100644 --- a/anda/system/xone/nightly/kmod-common/update.rhai +++ b/anda/system/xone/nightly/kmod-common/update.rhai @@ -1,9 +1,8 @@ rpm.global("commit", gh_commit("dlundqvist/xone")); if rpm.changed() { - import "andax/bump_extras.rhai" as bump; rpm.release(); rpm.global("commitdate", date()); - let ver = bump::madoguchi("xone", labels.branch); - ver.crop(1); - rpm.global("ver", ver); + let v = gh("dlundqvist/xone"); + v.crop(1); + rpm.global("ver", v); } diff --git a/anda/system/xone/nightly/kmod-common/xone-nightly.spec b/anda/system/xone/nightly/kmod-common/xone-nightly.spec index 545865cc88..8625122ca2 100644 --- a/anda/system/xone/nightly/kmod-common/xone-nightly.spec +++ b/anda/system/xone/nightly/kmod-common/xone-nightly.spec @@ -1,15 +1,17 @@ -%global commit 778dbc953b1987d259ea6d802fd6967b6a0d2097 +%global commit f2aa9fe01103d7600553b505b298ff0bd47ff280 %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commitdate 20250718 -%global ver 0.3.4 +%global commitdate 20260314 +%global ver 0.5.7 %global modulename xone %global _dracutconfdir %{_prefix}/lib/dracut/dracut.conf.d -%global firmware_hash0 48084d9fa53b9bb04358f3bb127b7495dc8f7bb0b3ca1437bd24ef2b6eabdf66 -%global firmware_hash1 080ce4091e53a4ef3e5fe29939f51fd91f46d6a88be6d67eb6e99a5723b3a223 +%global firmware_hash0 080ce4091e53a4ef3e5fe29939f51fd91f46d6a88be6d67eb6e99a5723b3a223 +%global firmware_hash1 48084d9fa53b9bb04358f3bb127b7495dc8f7bb0b3ca1437bd24ef2b6eabdf66 +%global firmware_hash2 0023a7bae02974834500c665a281e25b1ba52c9226c84989f9084fa5ce591d9b +%global firmware_hash3 e2710daf81e7b36d35985348f68a81d18bc537a2b0c508ffdfde6ac3eae1bad7 Name: xone-nightly Version: %{ver}^%{commitdate}git.%{shortcommit} -Release: 1%?dist +Release: 2%{?dist} %if 0%{?fedora} <= 43 || 0%{?rhel} <= 10 Epoch: 1 %endif @@ -18,11 +20,12 @@ License: GPL-2.0-or-later URL: https://github.com/dlundqvist/xone Source0: %{url}/archive/%{commit}.tar.gz#/xone-%{shortcommit}.tar.gz Source1: modules.conf -### Windows drivers and firmware files: -Source2: http://download.windowsupdate.com/c/msdownload/update/driver/drvs/2017/07/1cd6a87c-623f-4407-a52d-c31be49e925c_e19f60808bdcbfbd3c3df6be3e71ffc52e43261e.cab -Source3: https://catalog.s.download.windowsupdate.com/d/msdownload/update/driver/drvs/2015/12/20810869_8ce2975a7fbaa06bcfb0d8762a6275a1cf7c1dd3.cab +Source2: https://catalog.s.download.windowsupdate.com/d/msdownload/update/driver/drvs/2017/03/2ea9591b-f751-442c-80ce-8f4692cdc67b_6b555a3a288153cf04aec6e03cba360afe2fce34.cab +Source3: https://catalog.s.download.windowsupdate.com/c/msdownload/update/driver/drvs/2017/07/1cd6a87c-623f-4407-a52d-c31be49e925c_e19f60808bdcbfbd3c3df6be3e71ffc52e43261e.cab +Source4: https://catalog.s.download.windowsupdate.com/c/msdownload/update/driver/drvs/2017/06/1dbd7cb4-53bc-4857-a5b0-5955c8acaf71_9081931e7d664429a93ffda0db41b7545b7ac257.cab +Source5: https://catalog.s.download.windowsupdate.com/d/msdownload/update/driver/drvs/2017/08/aeff215c-3bc4-4d36-a3ea-e14bfa8fa9d2_e58550c4f74a27e51e5cb6868b10ff633fa77164.cab ### Microsoft TOU copy: -Source4: https://www.microsoft.com/en-us/legal/terms-of-use +Source6: https://www.microsoft.com/en-us/legal/terms-of-use BuildRequires: cabextract BuildRequires: sed BuildRequires: systemd-rpm-macros @@ -35,14 +38,14 @@ Conflicts: %{modulename} Conflicts: xow <= 0.5 Obsoletes: xow <= 0.5 BuildArch: noarch -Packager: Gilver E. +Packager: Gilver E. %description Linux kernel driver for Xbox One and Xbox Series X|S accessories common files. %package akmod-modules Summary: Modules for Akmods -Requires: akmod-%{name} +Requires: %{name}-kmod = %{?epoch:%{epoch}:}%{version} BuildArch: noarch %description akmod-modules @@ -59,12 +62,11 @@ Proprietary firmware for XBox controller dongles. %prep %autosetup -p1 -n %{modulename}-%{commit} -/usr/bin/cp %{SOURCE4} . /usr/bin/sed -nE '/^BUILT_MODULE_NAME/{s@^.+"(.+)"@\1@; s|-|_|g; p}' dkms.conf > %{modulename}.conf ### Firmware: -# The .bin files have the same name so put them in subdirs -mkdir firm{0..1} +# Some of the .bin files have the same name so put them in subdirs +mkdir firm{0..4} pushd firm0 cabextract -F FW_ACC_00U.bin %{SOURCE2} @@ -76,6 +78,16 @@ cabextract -F FW_ACC_00U.bin %{SOURCE3} echo %{firmware_hash1} FW_ACC_00U.bin | sha256sum -c popd +pushd firm2 +cabextract -F FW_ACC_CL.bin %{SOURCE4} +echo %{firmware_hash2} FW_ACC_CL.bin | sha256sum -c +popd + +pushd firm3 +cabextract -F FW_ACC_BR.bin %{SOURCE5} +echo %{firmware_hash3} FW_ACC_BR.bin | sha256sum -c +popd + %install # xone-gip-headset module should have the snd-pcm and snd-seq modules be preloaded or it will give errors on boot due to injecting late. # It still loads afterwards, but this error is easily fixable by just loading the modules in the initramfs. @@ -85,12 +97,17 @@ install -Dpm644 %{SOURCE1} %{buildroot}%{_dracutconfdir}/60-%{modulename}-snd.co install -Dpm644 install/modprobe.conf %{buildroot}%{_modprobedir}/60-%{modulename}.conf # Firmware: -install -Dpm644 firm0/FW_ACC_00U.bin %{buildroot}%{_prefix}/lib/firmware/xow_dongle.bin -install -Dpm644 firm1/FW_ACC_00U.bin %{buildroot}%{_prefix}/lib/firmware/xow_dongle_045e_02e6.bin +install -Dpm644 firm0/FW_ACC_00U.bin %{buildroot}%{_prefix}/lib/firmware/xone_dongle_02e6.bin +install -Dpm644 firm1/FW_ACC_00U.bin %{buildroot}%{_prefix}/lib/firmware/xone_dongle_02fe.bin +install -Dpm644 firm2/FW_ACC_CL.bin %{buildroot}%{_prefix}/lib/firmware/xone_dongle_02f9.bin +install -Dpm644 firm3/FW_ACC_BR.bin %{buildroot}%{_prefix}/lib/firmware/xone_dongle_091e.bin # Akmods modules install -Dm644 %{modulename}.conf -t %{buildroot}%{_modulesloaddir} +# TOU file +/usr/bin/cp %{SOURCE6} . + %files %license LICENSE %doc README.md @@ -102,21 +119,22 @@ install -Dm644 %{modulename}.conf -t %{buildroot}%{_modulesloaddir} %files firmware %license terms-of-use -%{_prefix}/lib/firmware/xow_dongle.bin -%{_prefix}/lib/firmware/xow_dongle_045e_02e6.bin - -%post -/usr/bin/dracut -f +%{_prefix}/lib/firmware/xone_dongle_02e6.bin +%{_prefix}/lib/firmware/xone_dongle_02fe.bin +%{_prefix}/lib/firmware/xone_dongle_02f9.bin +%{_prefix}/lib/firmware/xone_dongle_091e.bin %postun -/usr/bin/dracut -f +/usr/bin/dracut -f || : %post firmware echo "The firmware for the wireless dongle is subject to Microsoft's Terms of Use:" echo 'https://www.microsoft.com/en-us/legal/terms-of-use' %changelog -* Thu Apr 17 2025 Gilver E. - 0.3^20250418git.ecdd59e-2%{?dist} +* Wed Dec 10 2025 Gilver E. - 0.3.4^20250718git.778dbc9-2 +- Added new firmware files +* Thu Apr 17 2025 Gilver E. - 0.3^20250418git.ecdd59e-2 - Added additional firmware needed for dongle pairing on some controllers * Thu Feb 27 2025 Gilver E. - Initial package diff --git a/anda/system/xone/stable/akmod/xone-kmod.spec b/anda/system/xone/stable/akmod/xone-kmod.spec index 68204aa03b..39651ecf4b 100644 --- a/anda/system/xone/stable/akmod/xone-kmod.spec +++ b/anda/system/xone/stable/akmod/xone-kmod.spec @@ -3,8 +3,8 @@ %global modulename xone Name: %{modulename}-kmod -Version: 0.4.8 -Release: 1%?dist +Version: 0.5.8 +Release: 3%{?dist} %if 0%{?fedora} <= 43 || 0%{?rhel} <= 10 Epoch: 2 %endif @@ -22,16 +22,16 @@ Conflicts: %{modulename}-nightly-kmod %if 0%{?fedora} <= 43 || 0%{?rhel} <= 10 Obsoletes: %{name} < %{?epoch:%{epoch}:}0.3.4 %endif -Packager: Gilver E. +Packager: Gilver E. -%{expand:%(kmodtool --target %{_target_cpu} --repo terra --kmodname %{name} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null) } +%{expand:%(kmodtool --target %{_target_cpu} --repo terrapkg.com --kmodname %{name} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null) } %description Linux kernel driver for Xbox One and Xbox Series X|S accessories. %prep %{?kmodtool_check} -kmodtool --target %{_target_cpu} --repo terra --kmodname %{name} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null +kmodtool --target %{_target_cpu} --repo terrapkg.com --kmodname %{name} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null %autosetup -p1 -n %{modulename}-%{version} diff --git a/anda/system/xone/stable/dkms/dkms-xone.spec b/anda/system/xone/stable/dkms/dkms-xone.spec index 4f1c380369..2c86dfe891 100644 --- a/anda/system/xone/stable/dkms/dkms-xone.spec +++ b/anda/system/xone/stable/dkms/dkms-xone.spec @@ -2,8 +2,8 @@ %global modulename xone Name: dkms-%{modulename} -Version: 0.4.8 -Release: 1%?dist +Version: 0.5.8 +Release: 2%{?dist} %if 0%{?fedora} <= 43 || 0%{?rhel} <= 10 Epoch: 2 %endif @@ -23,7 +23,7 @@ Provides: %{modulename}-kmod Obsoletes: %{name} < %{?epoch:%{epoch}:}0.3.4 %endif BuildArch: noarch -Packager: Gilver E. +Packager: Gilver E. %description Linux kernel driver for Xbox One and Xbox Series X|S accessories. diff --git a/anda/system/xone/stable/kmod-common/xone.spec b/anda/system/xone/stable/kmod-common/xone.spec index 66257b2d9b..d219664c9e 100644 --- a/anda/system/xone/stable/kmod-common/xone.spec +++ b/anda/system/xone/stable/kmod-common/xone.spec @@ -1,10 +1,12 @@ %global _dracutconfdir %{_prefix}/lib/dracut/dracut.conf.d -%global firmware_hash0 48084d9fa53b9bb04358f3bb127b7495dc8f7bb0b3ca1437bd24ef2b6eabdf66 -%global firmware_hash1 080ce4091e53a4ef3e5fe29939f51fd91f46d6a88be6d67eb6e99a5723b3a223 +%global firmware_hash0 080ce4091e53a4ef3e5fe29939f51fd91f46d6a88be6d67eb6e99a5723b3a223 +%global firmware_hash1 48084d9fa53b9bb04358f3bb127b7495dc8f7bb0b3ca1437bd24ef2b6eabdf66 +%global firmware_hash2 0023a7bae02974834500c665a281e25b1ba52c9226c84989f9084fa5ce591d9b +%global firmware_hash3 e2710daf81e7b36d35985348f68a81d18bc537a2b0c508ffdfde6ac3eae1bad7 Name: xone -Version: 0.4.8 -Release: 1%?dist +Version: 0.5.8 +Release: 2%{?dist} %if 0%{?fedora} <= 43 || 0%{?rhel} <= 10 Epoch: 2 %endif @@ -14,10 +16,12 @@ URL: https://github.com/dlundqvist/xone Source0: %{url}/archive/refs/tags/v%{version}.tar.gz Source1: modules.conf ### Windows drivers and firmware files: -Source2: http://download.windowsupdate.com/c/msdownload/update/driver/drvs/2017/07/1cd6a87c-623f-4407-a52d-c31be49e925c_e19f60808bdcbfbd3c3df6be3e71ffc52e43261e.cab -Source3: https://catalog.s.download.windowsupdate.com/d/msdownload/update/driver/drvs/2015/12/20810869_8ce2975a7fbaa06bcfb0d8762a6275a1cf7c1dd3.cab +Source2: https://catalog.s.download.windowsupdate.com/d/msdownload/update/driver/drvs/2017/03/2ea9591b-f751-442c-80ce-8f4692cdc67b_6b555a3a288153cf04aec6e03cba360afe2fce34.cab +Source3: https://catalog.s.download.windowsupdate.com/c/msdownload/update/driver/drvs/2017/07/1cd6a87c-623f-4407-a52d-c31be49e925c_e19f60808bdcbfbd3c3df6be3e71ffc52e43261e.cab +Source4: https://catalog.s.download.windowsupdate.com/c/msdownload/update/driver/drvs/2017/06/1dbd7cb4-53bc-4857-a5b0-5955c8acaf71_9081931e7d664429a93ffda0db41b7545b7ac257.cab +Source5: https://catalog.s.download.windowsupdate.com/d/msdownload/update/driver/drvs/2017/08/aeff215c-3bc4-4d36-a3ea-e14bfa8fa9d2_e58550c4f74a27e51e5cb6868b10ff633fa77164.cab ### Microsoft TOU copy: -Source4: https://www.microsoft.com/en-us/legal/terms-of-use +Source6: https://www.microsoft.com/en-us/legal/terms-of-use BuildRequires: cabextract BuildRequires: sed BuildRequires: systemd-rpm-macros @@ -33,14 +37,14 @@ Obsoletes: xow <= 0.5 Obsoletes: %{name} < %{?epoch:%{epoch}:}0.3.4 %endif BuildArch: noarch -Packager: Gilver E. +Packager: Gilver E. %description Linux kernel driver for Xbox One and Xbox Series X|S accessories common files. %package akmod-modules Summary: Modules for Akmods -Requires: akmod-%{name} +Requires: %{name}-kmod = %{?epoch:%{epoch}:}%{version} BuildArch: noarch %description akmod-modules @@ -60,12 +64,11 @@ Proprietary firmware for XBox controller dongles. %prep %autosetup -p1 -n %{name}-%{version} -/usr/bin/cp %{SOURCE4} . /usr/bin/sed -nE '/^BUILT_MODULE_NAME/{s@^.+"(.+)"@\1@; s|-|_|g; p}' dkms.conf > %{name}.conf ### Firmware: -# The .bin files have the same name so put them in subdirs -mkdir firm{0..1} +# Some of the .bin files have the same name so put them in subdirs +mkdir firm{0..4} pushd firm0 cabextract -F FW_ACC_00U.bin %{SOURCE2} @@ -77,6 +80,16 @@ cabextract -F FW_ACC_00U.bin %{SOURCE3} echo %{firmware_hash1} FW_ACC_00U.bin | sha256sum -c popd +pushd firm2 +cabextract -F FW_ACC_CL.bin %{SOURCE4} +echo %{firmware_hash2} FW_ACC_CL.bin | sha256sum -c +popd + +pushd firm3 +cabextract -F FW_ACC_BR.bin %{SOURCE5} +echo %{firmware_hash3} FW_ACC_BR.bin | sha256sum -c +popd + %install # xone-gip-headset module should have the snd-pcm and snd-seq modules be preloaded or it will give errors on boot due to injecting late. # It still loads afterwards, but this error is easily fixable by just loading the modules in the initramfs. @@ -86,12 +99,17 @@ install -Dpm644 %{SOURCE1} %{buildroot}%{_dracutconfdir}/60-%{name}-snd.conf install -Dpm644 install/modprobe.conf %{buildroot}%{_modprobedir}/60-%{name}.conf # Firmware: -install -Dpm644 firm0/FW_ACC_00U.bin %{buildroot}%{_prefix}/lib/firmware/xow_dongle.bin -install -Dpm644 firm1/FW_ACC_00U.bin %{buildroot}%{_prefix}/lib/firmware/xow_dongle_045e_02e6.bin +install -Dpm644 firm0/FW_ACC_00U.bin %{buildroot}%{_prefix}/lib/firmware/xone_dongle_02e6.bin +install -Dpm644 firm1/FW_ACC_00U.bin %{buildroot}%{_prefix}/lib/firmware/xone_dongle_02fe.bin +install -Dpm644 firm2/FW_ACC_CL.bin %{buildroot}%{_prefix}/lib/firmware/xone_dongle_02f9.bin +install -Dpm644 firm3/FW_ACC_BR.bin %{buildroot}%{_prefix}/lib/firmware/xone_dongle_091e.bin # Akmods modules install -Dm644 %{name}.conf -t %{buildroot}%{_modulesloaddir} +# TOU file +/usr/bin/cp %{SOURCE6} . + %files %license LICENSE %doc README.md @@ -103,21 +121,18 @@ install -Dm644 %{name}.conf -t %{buildroot}%{_modulesloaddir} %files firmware %license terms-of-use -%{_prefix}/lib/firmware/xow_dongle.bin -%{_prefix}/lib/firmware/xow_dongle_045e_02e6.bin - -%post -/usr/bin/dracut -f +%{_prefix}/lib/firmware/xone_dongle_02e6.bin +%{_prefix}/lib/firmware/xone_dongle_02fe.bin +%{_prefix}/lib/firmware/xone_dongle_02f9.bin +%{_prefix}/lib/firmware/xone_dongle_091e.bin %postun -/usr/bin/dracut -f - -%post firmware -echo "The firmware for the wireless dongle is subject to Microsoft's Terms of Use:" -echo 'https://www.microsoft.com/en-us/legal/terms-of-use' +/usr/bin/dracut -f || : %changelog -* Thu Apr 17 2025 Gilver E. - 0.3^20250418git.ecdd59e-2%{?dist} +* Wed Dec 10 2025 Gilver E. - 0.5.0-2 +- Added new firmware files +* Thu Apr 17 2025 Gilver E. - 0.3^20250418git.ecdd59e-2 - Added additional firmware needed for dongle pairing on some controllers * Thu Feb 27 2025 Gilver E. - Initial package diff --git a/anda/system/xonedo/nightly/akmod/anda.hcl b/anda/system/xonedo/nightly/akmod/anda.hcl new file mode 100644 index 0000000000..ca1a552d4b --- /dev/null +++ b/anda/system/xonedo/nightly/akmod/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + rpm { + spec = "xonedo-nightly-kmod.spec" + } + labels { + mock = 1 + updbranch = 1 + } +} diff --git a/anda/system/xonedo/nightly/akmod/update.rhai b/anda/system/xonedo/nightly/akmod/update.rhai new file mode 100644 index 0000000000..943bab2262 --- /dev/null +++ b/anda/system/xonedo/nightly/akmod/update.rhai @@ -0,0 +1,13 @@ +let c = sh("cat anda/system/xonedo/nightly/kmod-common/xonedo-nightly.spec | grep '%global commit ' | sed -E 's/.+commit //'", #{"stdout": "piped"}).ctx.stdout; +c.pop(); +rpm.global("commit", c); +if rpm.changed() { + rpm.release(); + let d = sh("cat anda/system/xonedo/nightly/kmod-common/xonedo-nightly.spec | grep '%global commitdate' | sed -E 's/.+commitdate //'", #{"stdout": "piped"}).ctx.stdout; + d.pop(); + rpm.global("commitdate", d); + let v = sh("cat anda/system/xonedo/nightly/kmod-common/xonedo-nightly.spec | grep '%global ver' | sed -E 's/.+ver //'", #{"stdout": "piped"}).ctx.stdout; + v.pop(); + rpm.global("ver", v); +} + diff --git a/anda/system/xonedo/nightly/akmod/xonedo-nightly-kmod.spec b/anda/system/xonedo/nightly/akmod/xonedo-nightly-kmod.spec new file mode 100644 index 0000000000..61e2d361b3 --- /dev/null +++ b/anda/system/xonedo/nightly/akmod/xonedo-nightly-kmod.spec @@ -0,0 +1,69 @@ +%global commit 982cbcb019ae4d2bee5ae69385223409ee555c88 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global commitdate 20260315 +%global ver 0.5.7 +%define buildforkernels akmod +%global debug_package %{nil} +%global modulename xonedo + +Name: %{modulename}-nightly-kmod +Version: %{ver}^%{commitdate}git.%{shortcommit} +Release: 4%{?dist} +%if 0%{?fedora} <= 43 || 0%{?rhel} <= 10 +Epoch: 1 +%endif +Summary: Linux kernel driver for Xbox One and Xbox Series X|S accessories +License: GPL-2.0-or-later +URL: https://github.com/OpenGamingCollective/xonedo +Source0: %{url}/archive/%{commit}.tar.gz#/%{modulename}-%{shortcommit}.tar.gz +BuildRequires: kmodtool +BuildRequires: systemd-rpm-macros +Requires: %{modulename}-nightly = %{?epoch:%{epoch}:}%{version} +Requires: %{modulename}-nightly-akmod-modules = %{?epoch:%{epoch}:}%{version} +Requires: akmods +Conflicts: dkms-%{modulename}-nightly +Conflicts: %{modulename}-kmod +Conflicts: dkms-xone-nightly +Conflicts: xone-kmod +Provides: %{modulename}-nightly-kmod +%if 0%{?fedora} <= 43 || 0%{?rhel} <= 10 +Obsoletes: %{name} < %{?epoch:%{epoch}:}3.0^20250419git.c682b0c +%endif +Packager: Kyle Gospodnetich + +%{expand:%(kmodtool --target %{_target_cpu} --repo terrapkg.com --kmodname %{name} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null) } + +%description +Linux kernel driver for Xbox One and Xbox Series X|S accessories. Compatible with the xpad kernel module. + +%prep +%{?kmodtool_check} +kmodtool --target %{_target_cpu} --repo terrapkg.com --kmodname %{name} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null + +%autosetup -p1 -n %{modulename}-%{commit} + +find . -type f -name '*.c' -exec sed -i "s/#VERSION#/%{version}/" {} \; + +for kernel_version in %{?kernel_versions}; do + mkdir _kmod_build_${kernel_version%%___*} + cp -fr auth bus driver transport Kbuild _kmod_build_${kernel_version%%___*} +done + +%build +for kernel_version in %{?kernel_versions}; do + pushd _kmod_build_${kernel_version%%___*}/ + %make_build -C "${kernel_version##*___}" M=$(pwd) VERSION="v%{version}" modules + popd +done + +%install +for kernel_version in %{?kernel_versions}; do + mkdir -p %{buildroot}/%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/ + install -p -m 0755 _kmod_build_${kernel_version%%___*}/*.ko \ + %{buildroot}/%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/ +done +%{?akmod_install} + +%changelog +* Sun Mar 15 2026 Kyle Gospodnetich +- Initial package diff --git a/anda/system/xonedo/nightly/dkms/anda.hcl b/anda/system/xonedo/nightly/dkms/anda.hcl new file mode 100644 index 0000000000..df85fd67ea --- /dev/null +++ b/anda/system/xonedo/nightly/dkms/anda.hcl @@ -0,0 +1,10 @@ +project pkg { + arches=["x86_64"] + rpm { + spec = "dkms-xonedo-nightly.spec" + } + labels { + mock = 1 + updbranch = 1 + } +} diff --git a/anda/system/xonedo/nightly/dkms/dkms-xonedo-nightly.spec b/anda/system/xonedo/nightly/dkms/dkms-xonedo-nightly.spec new file mode 100644 index 0000000000..134a1aeefb --- /dev/null +++ b/anda/system/xonedo/nightly/dkms/dkms-xonedo-nightly.spec @@ -0,0 +1,75 @@ +%global commit 982cbcb019ae4d2bee5ae69385223409ee555c88 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global commitdate 20260314 +%global ver 0.5.7 +%global debug_package %{nil} +%global modulename xonedo + +Name: dkms-%{modulename}-nightly +Version: %{ver}^%{commitdate}git.%{shortcommit} +Release: 3%{?dist} +%if 0%{?fedora} <= 43 || 0%{?rhel} <= 10 +Epoch: 1 +%endif +Summary: Linux kernel driver for Xbox One and Xbox Series X|S accessories +License: GPL-2.0-or-later +URL: https://github.com/OpenGamingCollective/xonedo +Source0: %{url}/archive/%{commit}.tar.gz#/%{modulename}-%{shortcommit}.tar.gz +Source1: no-weak-modules.conf +BuildRequires: sed +BuildRequires: systemd-rpm-macros +Requires: %{modulename}-nightly = %{?epoch:%{epoch}:}%{version} +Requires: dkms +Conflicts: akmod-%{modulename}-nightly +Conflicts: %{modulename}-kmod +Conflicts: dkms-xone-nightly +Conflicts: dkms-xone +Provides: %{modulename}-nightly-kmod = %{?epoch:%{epoch}:}%{version} +%if 0%{?fedora} <= 43 || 0%{?rhel} <= 10 +Obsoletes: dkms-%{modulename} < %{?epoch:%{epoch}:}3.0^20250419git.c682b0c +%endif +BuildArch: noarch +Packager: Kyle Gospodnetich + +%description +Linux kernel driver for Xbox One and Xbox Series X|S accessories. Compatible with the xpad kernel module. + +%prep +%autosetup -p1 -n %{modulename}-%{commit} + +sed -i \ + -e 's|#VERSION#|%{version}|g' \ + -e 's|kernel/drivers/input/joystick|extra|g' \ + dkms.conf + +find . -type f -name '*.c' -exec sed -i "s/#VERSION#/%{version}/" {} \; + +%install +# Create empty tree: +mkdir -p %{buildroot}%{_usrsrc}/%{modulename}-%{version}/ +cp -fr auth bus driver transport Kbuild dkms.conf %{buildroot}%{_usrsrc}/%{modulename}-%{version}/ + +%if 0%{?fedora} +# Do not enable weak modules support in Fedora (no kABI): +install -Dpm644 %{SOURCE1} %{buildroot}%{_sysconfdir}/dkms/%{modulename}.conf +%endif + +%post +dkms add -m %{modulename} -v %{version} -q --rpm_safe_upgrade || : +# Rebuild and make available for the currently running kernel: +dkms build -m %{modulename} -v %{version} -q || : +dkms install -m %{modulename} -v %{version} -q --force || : + +%preun +# Remove all versions from DKMS registry: +dkms remove -m %{modulename} -v %{version} -q --all --rpm_safe_upgrade || : + +%files +%{_usrsrc}/%{modulename}-%{version} +%if 0%{?fedora} +%{_sysconfdir}/dkms/%{modulename}.conf +%endif + +%changelog +* Sun Mar 15 2026 Kyle Gospodnetich +- Initial package diff --git a/anda/system/xonedo/nightly/dkms/no-weak-modules.conf b/anda/system/xonedo/nightly/dkms/no-weak-modules.conf new file mode 100644 index 0000000000..24f6f95c96 --- /dev/null +++ b/anda/system/xonedo/nightly/dkms/no-weak-modules.conf @@ -0,0 +1 @@ +NO_WEAK_MODULES="yes" diff --git a/anda/system/xonedo/nightly/dkms/update.rhai b/anda/system/xonedo/nightly/dkms/update.rhai new file mode 100644 index 0000000000..943bab2262 --- /dev/null +++ b/anda/system/xonedo/nightly/dkms/update.rhai @@ -0,0 +1,13 @@ +let c = sh("cat anda/system/xonedo/nightly/kmod-common/xonedo-nightly.spec | grep '%global commit ' | sed -E 's/.+commit //'", #{"stdout": "piped"}).ctx.stdout; +c.pop(); +rpm.global("commit", c); +if rpm.changed() { + rpm.release(); + let d = sh("cat anda/system/xonedo/nightly/kmod-common/xonedo-nightly.spec | grep '%global commitdate' | sed -E 's/.+commitdate //'", #{"stdout": "piped"}).ctx.stdout; + d.pop(); + rpm.global("commitdate", d); + let v = sh("cat anda/system/xonedo/nightly/kmod-common/xonedo-nightly.spec | grep '%global ver' | sed -E 's/.+ver //'", #{"stdout": "piped"}).ctx.stdout; + v.pop(); + rpm.global("ver", v); +} + diff --git a/anda/system/xonedo/nightly/kmod-common/anda.hcl b/anda/system/xonedo/nightly/kmod-common/anda.hcl new file mode 100644 index 0000000000..b008b1a957 --- /dev/null +++ b/anda/system/xonedo/nightly/kmod-common/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "xonedo-nightly.spec" + } + labels { + nightly = 1 + } +} diff --git a/anda/system/xonedo/nightly/kmod-common/modules.conf b/anda/system/xonedo/nightly/kmod-common/modules.conf new file mode 100644 index 0000000000..776e9eff4f --- /dev/null +++ b/anda/system/xonedo/nightly/kmod-common/modules.conf @@ -0,0 +1 @@ +add_drivers+=" snd-pcm snd-seq " diff --git a/anda/system/xonedo/nightly/kmod-common/update.rhai b/anda/system/xonedo/nightly/kmod-common/update.rhai new file mode 100644 index 0000000000..570d7773b9 --- /dev/null +++ b/anda/system/xonedo/nightly/kmod-common/update.rhai @@ -0,0 +1,8 @@ +rpm.global("commit", gh_commit("OpenGamingCollective/xonedo")); +if rpm.changed() { + rpm.release(); + rpm.global("commitdate", date()); + let v = gh_tag("OpenGamingCollective/xonedo"); + v.crop(1); + rpm.global("relver", v); +} diff --git a/anda/system/xonedo/nightly/kmod-common/xonedo-nightly.spec b/anda/system/xonedo/nightly/kmod-common/xonedo-nightly.spec new file mode 100644 index 0000000000..d850fa0598 --- /dev/null +++ b/anda/system/xonedo/nightly/kmod-common/xonedo-nightly.spec @@ -0,0 +1,139 @@ +%global commit 982cbcb019ae4d2bee5ae69385223409ee555c88 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global commitdate 20260314 +%global relver 0.5.7-ogc1 +%global ver %(echo %{relver} | sed 's/-/^/g') +%global modulename xonedo +%global _dracutconfdir %{_prefix}/lib/dracut/dracut.conf.d +%global firmware_hash0 080ce4091e53a4ef3e5fe29939f51fd91f46d6a88be6d67eb6e99a5723b3a223 +%global firmware_hash1 48084d9fa53b9bb04358f3bb127b7495dc8f7bb0b3ca1437bd24ef2b6eabdf66 +%global firmware_hash2 0023a7bae02974834500c665a281e25b1ba52c9226c84989f9084fa5ce591d9b +%global firmware_hash3 e2710daf81e7b36d35985348f68a81d18bc537a2b0c508ffdfde6ac3eae1bad7 + +Name: xonedo-nightly +Version: %{ver}^%{commitdate}git.%{shortcommit} +Release: 3%{?dist} +%if 0%{?fedora} <= 43 || 0%{?rhel} <= 10 +Epoch: 1 +%endif +Summary: Linux kernel driver for Xbox One and Xbox Series X|S accessories common files +License: GPL-2.0-or-later +URL: https://github.com/OpenGamingCollective/xonedo +Source0: %{url}/archive/%{commit}.tar.gz#/xone-%{shortcommit}.tar.gz +Source1: modules.conf +Source2: https://catalog.s.download.windowsupdate.com/d/msdownload/update/driver/drvs/2017/03/2ea9591b-f751-442c-80ce-8f4692cdc67b_6b555a3a288153cf04aec6e03cba360afe2fce34.cab +Source3: https://catalog.s.download.windowsupdate.com/c/msdownload/update/driver/drvs/2017/07/1cd6a87c-623f-4407-a52d-c31be49e925c_e19f60808bdcbfbd3c3df6be3e71ffc52e43261e.cab +Source4: https://catalog.s.download.windowsupdate.com/c/msdownload/update/driver/drvs/2017/06/1dbd7cb4-53bc-4857-a5b0-5955c8acaf71_9081931e7d664429a93ffda0db41b7545b7ac257.cab +Source5: https://catalog.s.download.windowsupdate.com/d/msdownload/update/driver/drvs/2017/08/aeff215c-3bc4-4d36-a3ea-e14bfa8fa9d2_e58550c4f74a27e51e5cb6868b10ff633fa77164.cab +### Microsoft TOU copy: +Source6: https://www.microsoft.com/en-us/legal/terms-of-use +BuildRequires: cabextract +BuildRequires: sed +BuildRequires: systemd-rpm-macros +Requires: wireless-regdb +Requires: %{name}-firmware = %{?epoch:%{epoch}:}%{version}-%{release} +Requires: %{name}-kmod = %{?epoch:%{epoch}:}%{version} +Requires(post): dracut +Provides: %{name}-kmod-common = %{?epoch:%{epoch}:}%{version} +Conflicts: xone +Conflicts: %{modulename} +Conflicts: xow <= 0.5 +Obsoletes: xow <= 0.5 +BuildArch: noarch +Packager: Kyle Gospodnetich + +%description +Linux kernel driver for Xbox One and Xbox Series X|S accessories common files. Compatible with the xpad kernel module. + +%package akmod-modules +Summary: Modules for Akmods +Requires: %{name}-kmod = %{?epoch:%{epoch}:}%{version} +BuildArch: noarch + +%description akmod-modules +Akmods modules for the akmod-%{name} package. + +%package firmware +Summary: Firmware for the XBox One controller dongle +License: Proprietary +Requires: wireless-regdb +Conflicts: xone-firmware +BuildArch: noarch + +%description firmware +Proprietary firmware for XBox controller dongles. + +%prep +%autosetup -p1 -n %{modulename}-%{commit} +/usr/bin/sed -nE '/^BUILT_MODULE_NAME/{s@^.+"(.+)"@\1@; s|-|_|g; p}' dkms.conf > %{modulename}.conf + +### Firmware: +# Some of the .bin files have the same name so put them in subdirs +mkdir firm{0..4} + +pushd firm0 +cabextract -F FW_ACC_00U.bin %{SOURCE2} +echo %{firmware_hash0} FW_ACC_00U.bin | sha256sum -c +popd + +pushd firm1 +cabextract -F FW_ACC_00U.bin %{SOURCE3} +echo %{firmware_hash1} FW_ACC_00U.bin | sha256sum -c +popd + +pushd firm2 +cabextract -F FW_ACC_CL.bin %{SOURCE4} +echo %{firmware_hash2} FW_ACC_CL.bin | sha256sum -c +popd + +pushd firm3 +cabextract -F FW_ACC_BR.bin %{SOURCE5} +echo %{firmware_hash3} FW_ACC_BR.bin | sha256sum -c +popd + +%install +# xone-gip-headset module should have the snd-pcm and snd-seq modules be preloaded or it will give errors on boot due to injecting late. +# It still loads afterwards, but this error is easily fixable by just loading the modules in the initramfs. +install -Dpm644 %{SOURCE1} %{buildroot}%{_dracutconfdir}/60-%{modulename}-snd.conf + +# Blacklist: +install -Dpm644 install/modprobe.conf %{buildroot}%{_modprobedir}/60-%{modulename}.conf + +# Firmware: +install -Dpm644 firm0/FW_ACC_00U.bin %{buildroot}%{_prefix}/lib/firmware/xone_dongle_02e6.bin +install -Dpm644 firm1/FW_ACC_00U.bin %{buildroot}%{_prefix}/lib/firmware/xone_dongle_02fe.bin +install -Dpm644 firm2/FW_ACC_CL.bin %{buildroot}%{_prefix}/lib/firmware/xone_dongle_02f9.bin +install -Dpm644 firm3/FW_ACC_BR.bin %{buildroot}%{_prefix}/lib/firmware/xone_dongle_091e.bin + +# Akmods modules +install -Dm644 %{modulename}.conf -t %{buildroot}%{_modulesloaddir} + +# TOU file +/usr/bin/cp %{SOURCE6} . + +%files +%license LICENSE +%doc README.md +%{_modprobedir}/60-%{modulename}.conf +%{_dracutconfdir}/60-%{modulename}-snd.conf + +%files akmod-modules +%{_modulesloaddir}/%{modulename}.conf + +%files firmware +%license terms-of-use +%{_prefix}/lib/firmware/xone_dongle_02e6.bin +%{_prefix}/lib/firmware/xone_dongle_02fe.bin +%{_prefix}/lib/firmware/xone_dongle_02f9.bin +%{_prefix}/lib/firmware/xone_dongle_091e.bin + +%postun +/usr/bin/dracut -f || : + +%post firmware +echo "The firmware for the wireless dongle is subject to Microsoft's Terms of Use:" +echo 'https://www.microsoft.com/en-us/legal/terms-of-use' + +%changelog +* Sun Mar 15 2026 Kyle Gospodnetich +- Initial package diff --git a/anda/system/xonedo/stable/akmod/anda.hcl b/anda/system/xonedo/stable/akmod/anda.hcl new file mode 100644 index 0000000000..4d2bfffeef --- /dev/null +++ b/anda/system/xonedo/stable/akmod/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + rpm { + spec = "xonedo-kmod.spec" + } + labels { + mock = 1 + updbranch = 1 + } +} diff --git a/anda/system/xonedo/stable/akmod/update.rhai b/anda/system/xonedo/stable/akmod/update.rhai new file mode 100644 index 0000000000..747989c246 --- /dev/null +++ b/anda/system/xonedo/stable/akmod/update.rhai @@ -0,0 +1,4 @@ +import "andax/bump_extras.rhai" as bump; + +rpm.version(bump::madoguchi("xonedo", labels.branch)); + diff --git a/anda/system/xonedo/stable/akmod/xonedo-kmod.spec b/anda/system/xonedo/stable/akmod/xonedo-kmod.spec new file mode 100644 index 0000000000..36d0950055 --- /dev/null +++ b/anda/system/xonedo/stable/akmod/xonedo-kmod.spec @@ -0,0 +1,66 @@ +%define buildforkernels akmod +%global debug_package %{nil} +%global modulename xonedo +%global ogcversion 1 + +Name: %{modulename}-kmod +Version: 0.5.7 +Release: 4%{?dist} +%if 0%{?fedora} <= 43 || 0%{?rhel} <= 10 +Epoch: 2 +%endif +Summary: Linux kernel driver for Xbox One and Xbox Series X|S accessories +License: GPL-2.0-or-later +URL: https://github.com/OpenGamingCollective/xonedo +Source0: %{url}/archive/refs/tags/v%{version}-ogc%{ogcversion}.tar.gz +BuildRequires: kmodtool +BuildRequires: systemd-rpm-macros +Requires: %{modulename} = %{?epoch:%{epoch}:}%{version} +Requires: %{modulename}-akmod-modules = %{?epoch:%{epoch}:}%{version} +Requires: akmods +Conflicts: dkms-%{modulename} +Conflicts: %{modulename}-nightly-kmod +Conflicts: dkms-xone +Conflicts: xone-nightly-kmod +Provides: %{modulename}-kmod +%if 0%{?fedora} <= 43 || 0%{?rhel} <= 10 +Obsoletes: %{name} < %{?epoch:%{epoch}:}0.3.4 +%endif +Packager: Kyle Gospodnetich + +%{expand:%(kmodtool --target %{_target_cpu} --repo terrapkg.com --kmodname %{name} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null) } + +%description +Linux kernel driver for Xbox One and Xbox Series X|S accessories. Compatible with the xpad kernel module. + +%prep +%{?kmodtool_check} +kmodtool --target %{_target_cpu} --repo terrapkg.com --kmodname %{name} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null + +%autosetup -p1 -n %{modulename}-%{version}-ogc%{ogcversion} + +find . -type f -name '*.c' -exec sed -i "s/#VERSION#/%{version}/" {} \; + +for kernel_version in %{?kernel_versions}; do + mkdir _kmod_build_${kernel_version%%___*} + cp -fr auth bus driver transport Kbuild _kmod_build_${kernel_version%%___*} +done + +%build +for kernel_version in %{?kernel_versions}; do + pushd _kmod_build_${kernel_version%%___*}/ + %make_build -C "${kernel_version##*___}" M=$(pwd) VERSION="v%{version}" modules + popd +done + +%install +for kernel_version in %{?kernel_versions}; do + mkdir -p %{buildroot}/%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/ + install -p -m 0755 _kmod_build_${kernel_version%%___*}/*.ko \ + %{buildroot}/%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/ +done +%{?akmod_install} + +%changelog +* Sun Mar 15 2026 Kyle Gospodnetich +- Initial package diff --git a/anda/system/xonedo/stable/dkms/anda.hcl b/anda/system/xonedo/stable/dkms/anda.hcl new file mode 100644 index 0000000000..1b3bd131a8 --- /dev/null +++ b/anda/system/xonedo/stable/dkms/anda.hcl @@ -0,0 +1,10 @@ +project pkg { + arches=["x86_64"] + rpm { + spec = "dkms-xonedo.spec" + } + labels { + mock = 1 + updbranch = 1 + } +} diff --git a/anda/system/xonedo/stable/dkms/dkms-xonedo.spec b/anda/system/xonedo/stable/dkms/dkms-xonedo.spec new file mode 100644 index 0000000000..f6da01c6e2 --- /dev/null +++ b/anda/system/xonedo/stable/dkms/dkms-xonedo.spec @@ -0,0 +1,72 @@ +%global debug_package %{nil} +%global modulename xonedo +%global ogcversion 1 + +Name: dkms-%{modulename} +Version: 0.5.7 +Release: 3%?dist +%if 0%{?fedora} <= 43 || 0%{?rhel} <= 10 +Epoch: 2 +%endif +Summary: Linux kernel driver for Xbox One and Xbox Series X|S accessories +License: GPL-2.0-or-later +URL: https://github.com/OpenGamingCollective/xonedo +Source0: %{url}/archive/refs/tags/v%{version}-ogc%{ogcversion}.tar.gz +Source1: no-weak-modules.conf +BuildRequires: sed +BuildRequires: systemd-rpm-macros +Requires: %{modulename} = %{?epoch:%{epoch}:}%{version} +Requires: dkms +Conflicts: akmod-%{modulename} +Conflicts: %{modulename}-nightly-kmod +Conflicts: akmod-xone +Conflicts: xone-nightly-kmod +Provides: %{modulename}-kmod +%if 0%{?fedora} <= 43 || 0%{?rhel} <= 10 +Obsoletes: %{name} < %{?epoch:%{epoch}:}0.3.4 +%endif +BuildArch: noarch +Packager: Kyle Gospodnetich + +%description +Linux kernel driver for Xbox One and Xbox Series X|S accessories. Compatible with the xpad kernel module. + +%prep +%autosetup -p1 -n %{modulename}-%{version}-ogc%{ogcversion} + +sed -i \ + -e 's|#VERSION#|%{version}|g' \ + -e 's|kernel/drivers/input/joystick|extra|g' \ + dkms.conf + +find . -type f -name '*.c' -exec sed -i "s/#VERSION#/%{version}/" {} \; + +%install +# Create empty tree: +mkdir -p %{buildroot}%{_usrsrc}/%{modulename}-%{version}/ +cp -fr auth bus driver transport Kbuild dkms.conf %{buildroot}%{_usrsrc}/%{modulename}-%{version}/ + +%if 0%{?fedora} +# Do not enable weak modules support in Fedora (no kABI): +install -Dpm644 %{SOURCE1} %{buildroot}%{_sysconfdir}/dkms/%{modulename}.conf +%endif + +%post +dkms add -m %{modulename} -v %{version} -q --rpm_safe_upgrade || : +# Rebuild and make available for the currently running kernel: +dkms build -m %{modulename} -v %{version} -q || : +dkms install -m %{modulename} -v %{version} -q --force || : + +%preun +# Remove all versions from DKMS registry: +dkms remove -m %{modulename} -v %{version} -q --all --rpm_safe_upgrade || : + +%files +%{_usrsrc}/%{modulename}-%{version} +%if 0%{?fedora} +%{_sysconfdir}/dkms/%{modulename}.conf +%endif + +%changelog +* Sun Mar 15 2026 Kyle Gospodnetich +- Initial package diff --git a/anda/system/xonedo/stable/dkms/no-weak-modules.conf b/anda/system/xonedo/stable/dkms/no-weak-modules.conf new file mode 100644 index 0000000000..24f6f95c96 --- /dev/null +++ b/anda/system/xonedo/stable/dkms/no-weak-modules.conf @@ -0,0 +1 @@ +NO_WEAK_MODULES="yes" diff --git a/anda/system/xonedo/stable/dkms/update.rhai b/anda/system/xonedo/stable/dkms/update.rhai new file mode 100644 index 0000000000..747989c246 --- /dev/null +++ b/anda/system/xonedo/stable/dkms/update.rhai @@ -0,0 +1,4 @@ +import "andax/bump_extras.rhai" as bump; + +rpm.version(bump::madoguchi("xonedo", labels.branch)); + diff --git a/anda/system/xonedo/stable/kmod-common/anda.hcl b/anda/system/xonedo/stable/kmod-common/anda.hcl new file mode 100644 index 0000000000..e02b579bf1 --- /dev/null +++ b/anda/system/xonedo/stable/kmod-common/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "xonedo.spec" + } +} diff --git a/anda/system/xonedo/stable/kmod-common/modules.conf b/anda/system/xonedo/stable/kmod-common/modules.conf new file mode 100644 index 0000000000..776e9eff4f --- /dev/null +++ b/anda/system/xonedo/stable/kmod-common/modules.conf @@ -0,0 +1 @@ +add_drivers+=" snd-pcm snd-seq " diff --git a/anda/system/xonedo/stable/kmod-common/update.rhai b/anda/system/xonedo/stable/kmod-common/update.rhai new file mode 100644 index 0000000000..1e3d61c10b --- /dev/null +++ b/anda/system/xonedo/stable/kmod-common/update.rhai @@ -0,0 +1,3 @@ +let v = gh_tag("OpenGamingCollective/xonedo"); + +rpm.version(find(`([\d.]+)-ogc`, v, 1)); \ No newline at end of file diff --git a/anda/system/xonedo/stable/kmod-common/xonedo.spec b/anda/system/xonedo/stable/kmod-common/xonedo.spec new file mode 100644 index 0000000000..e8ff0b001d --- /dev/null +++ b/anda/system/xonedo/stable/kmod-common/xonedo.spec @@ -0,0 +1,138 @@ +%global _dracutconfdir %{_prefix}/lib/dracut/dracut.conf.d +%global firmware_hash0 080ce4091e53a4ef3e5fe29939f51fd91f46d6a88be6d67eb6e99a5723b3a223 +%global firmware_hash1 48084d9fa53b9bb04358f3bb127b7495dc8f7bb0b3ca1437bd24ef2b6eabdf66 +%global firmware_hash2 0023a7bae02974834500c665a281e25b1ba52c9226c84989f9084fa5ce591d9b +%global firmware_hash3 e2710daf81e7b36d35985348f68a81d18bc537a2b0c508ffdfde6ac3eae1bad7 +%global ogcversion 1 + +Name: xonedo +Version: 0.5.7 +Release: 3%?dist +%if 0%{?fedora} <= 43 || 0%{?rhel} <= 10 +Epoch: 2 +%endif +Summary: Linux kernel driver for Xbox One and Xbox Series X|S accessories common files +License: GPL-2.0-or-later +URL: https://github.com/OpenGamingCollective/xonedo +Source0: %{url}/archive/refs/tags/v%{version}-ogc%{ogcversion}.tar.gz +Source1: modules.conf +### Windows drivers and firmware files: +Source2: https://catalog.s.download.windowsupdate.com/d/msdownload/update/driver/drvs/2017/03/2ea9591b-f751-442c-80ce-8f4692cdc67b_6b555a3a288153cf04aec6e03cba360afe2fce34.cab +Source3: https://catalog.s.download.windowsupdate.com/c/msdownload/update/driver/drvs/2017/07/1cd6a87c-623f-4407-a52d-c31be49e925c_e19f60808bdcbfbd3c3df6be3e71ffc52e43261e.cab +Source4: https://catalog.s.download.windowsupdate.com/c/msdownload/update/driver/drvs/2017/06/1dbd7cb4-53bc-4857-a5b0-5955c8acaf71_9081931e7d664429a93ffda0db41b7545b7ac257.cab +Source5: https://catalog.s.download.windowsupdate.com/d/msdownload/update/driver/drvs/2017/08/aeff215c-3bc4-4d36-a3ea-e14bfa8fa9d2_e58550c4f74a27e51e5cb6868b10ff633fa77164.cab +### Microsoft TOU copy: +Source6: https://www.microsoft.com/en-us/legal/terms-of-use +BuildRequires: cabextract +BuildRequires: sed +BuildRequires: systemd-rpm-macros +Requires: wireless-regdb +Requires: %{name}-firmware = %{?epoch:%{epoch}:}%{version}-%{release} +Requires: %{name}-kmod = %{?epoch:%{epoch}:}%{version} +Requires(post): dracut +Provides: %{name}-kmod-common = %{?epoch:%{epoch}:}%{version} +Conflicts: %{name}-nightly +Conflicts: xone-nightly +Conflicts: xone +Conflicts: xow <= 0.5 +Obsoletes: xow <= 0.5 +%if 0%{?fedora} <= 43 || 0%{?rhel} <= 10 +Obsoletes: %{name} < %{?epoch:%{epoch}:}0.3.4 +%endif +BuildArch: noarch +Packager: Kyle Gospodnetich + +%description +Linux kernel driver for Xbox One and Xbox Series X|S accessories common files. + +%package akmod-modules +Summary: Modules for Akmods +Requires: %{name}-kmod = %{?epoch:%{epoch}:}%{version} +BuildArch: noarch + +%description akmod-modules +Akmods modules for the akmod-%{name} package. + +%package firmware +Summary: Firmware for the XBox One controller dongle +License: Proprietary +Requires: wireless-regdb +%if 0%{?fedora} <= 43 || 0%{?rhel} <= 10 +Obsoletes: %{name}-firmware < %{?epoch:%{epoch}:}0.3^20250419git.c682b0c +%endif +Conflicts: xone-firmware +BuildArch: noarch + +%description firmware +Proprietary firmware for XBox controller dongles. + +%prep +%autosetup -p1 -n %{name}-%{version}-ogc%{ogcversion} +/usr/bin/sed -nE '/^BUILT_MODULE_NAME/{s@^.+"(.+)"@\1@; s|-|_|g; p}' dkms.conf > %{name}.conf + +### Firmware: +# Some of the .bin files have the same name so put them in subdirs +mkdir firm{0..4} + +pushd firm0 +cabextract -F FW_ACC_00U.bin %{SOURCE2} +echo %{firmware_hash0} FW_ACC_00U.bin | sha256sum -c +popd + +pushd firm1 +cabextract -F FW_ACC_00U.bin %{SOURCE3} +echo %{firmware_hash1} FW_ACC_00U.bin | sha256sum -c +popd + +pushd firm2 +cabextract -F FW_ACC_CL.bin %{SOURCE4} +echo %{firmware_hash2} FW_ACC_CL.bin | sha256sum -c +popd + +pushd firm3 +cabextract -F FW_ACC_BR.bin %{SOURCE5} +echo %{firmware_hash3} FW_ACC_BR.bin | sha256sum -c +popd + +%install +# xone-gip-headset module should have the snd-pcm and snd-seq modules be preloaded or it will give errors on boot due to injecting late. +# It still loads afterwards, but this error is easily fixable by just loading the modules in the initramfs. +install -Dpm644 %{SOURCE1} %{buildroot}%{_dracutconfdir}/60-%{name}-snd.conf + +# Blacklist: +install -Dpm644 install/modprobe.conf %{buildroot}%{_modprobedir}/60-%{name}.conf + +# Firmware: +install -Dpm644 firm0/FW_ACC_00U.bin %{buildroot}%{_prefix}/lib/firmware/xone_dongle_02e6.bin +install -Dpm644 firm1/FW_ACC_00U.bin %{buildroot}%{_prefix}/lib/firmware/xone_dongle_02fe.bin +install -Dpm644 firm2/FW_ACC_CL.bin %{buildroot}%{_prefix}/lib/firmware/xone_dongle_02f9.bin +install -Dpm644 firm3/FW_ACC_BR.bin %{buildroot}%{_prefix}/lib/firmware/xone_dongle_091e.bin + +# Akmods modules +install -Dm644 %{name}.conf -t %{buildroot}%{_modulesloaddir} + +# TOU file +/usr/bin/cp %{SOURCE6} . + +%files +%license LICENSE +%doc README.md +%{_modprobedir}/60-%{name}.conf +%{_dracutconfdir}/60-%{name}-snd.conf + +%files akmod-modules +%{_modulesloaddir}/%{name}.conf + +%files firmware +%license terms-of-use +%{_prefix}/lib/firmware/xone_dongle_02e6.bin +%{_prefix}/lib/firmware/xone_dongle_02fe.bin +%{_prefix}/lib/firmware/xone_dongle_02f9.bin +%{_prefix}/lib/firmware/xone_dongle_091e.bin + +%postun +/usr/bin/dracut -f || : + +%changelog +* Sun Mar 15 2026 Kyle Gospodnetich +- Initial package diff --git a/anda/system/xpad-noone/akmod/0000.patch b/anda/system/xpad-noone/akmod/0000.patch deleted file mode 100644 index 59826a8f7f..0000000000 --- a/anda/system/xpad-noone/akmod/0000.patch +++ /dev/null @@ -1,43 +0,0 @@ ---- a/xpad.c -+++ b/xpad.c -@@ -117,6 +117,7 @@ static const struct xpad_device { - u8 xtype; - } xpad_device[] = { - { 0x0079, 0x18d4, "GPD Win 2 X-Box Controller", 0, XTYPE_XBOX360 }, -+ { 0x16d0, 0x10bc, "Cyborg Compact Gamingkeypad", 0, XTYPE_XBOX360 }, - { 0x03eb, 0xff01, "Wooting One (Legacy)", 0, XTYPE_XBOX360 }, - { 0x03eb, 0xff02, "Wooting Two (Legacy)", 0, XTYPE_XBOX360 }, - { 0x044f, 0x0f00, "Thrustmaster Wheel", 0, XTYPE_XBOX }, -@@ -303,6 +304,7 @@ static const struct xpad_device { - { 0x24c6, 0xfafe, "Rock Candy Gamepad for Xbox 360", 0, XTYPE_XBOX360 }, - { 0x2563, 0x058d, "OneXPlayer Gamepad", 0, XTYPE_XBOX360 }, - { 0x2dc8, 0x3106, "8BitDo Pro 2 Wired Controller", 0, XTYPE_XBOX360 }, -+ { 0x2dc8, 0x3109, "8BitDo Ultimate Wireless Bluetooth", 0, XTYPE_XBOX360 }, - { 0x31e3, 0x1100, "Wooting One", 0, XTYPE_XBOX360 }, - { 0x31e3, 0x1200, "Wooting Two", 0, XTYPE_XBOX360 }, - { 0x31e3, 0x1210, "Wooting Lekker", 0, XTYPE_XBOX360 }, -@@ -311,7 +313,8 @@ static const struct xpad_device { - { 0x31e3, 0x1310, "Wooting 60HE (ARM)", 0, XTYPE_XBOX360 }, - { 0x3285, 0x0607, "Nacon GC-100", 0, XTYPE_XBOX360 }, - { 0x3537, 0x1004, "GameSir T4 Kaleid", 0, XTYPE_XBOX360 }, -+ { 0x413d, 0x2104, "Black Shark Green Ghost Gamepad", 0, XTYPE_XBOX360 }, - { 0x3767, 0x0101, "Fanatec Speedster 3 Forceshock Wheel", 0, XTYPE_XBOX }, - { 0xffff, 0xffff, "Chinese-made Xbox Controller", 0, XTYPE_XBOX }, - { 0x0000, 0x0000, "Generic X-Box pad", 0, XTYPE_UNKNOWN } - }; -@@ -384,6 +387,7 @@ static const signed short xpad_abs_triggers[] = { - - static const struct usb_device_id xpad_table[] = { - { USB_INTERFACE_INFO('X', 'B', 0) }, /* Xbox USB-IF not-approved class */ -+ XPAD_XBOX360_VENDOR(0x16d0), /* Azeron Custom Gamingkeypad Vendor */ - XPAD_XBOX360_VENDOR(0x0079), /* GPD Win 2 controller */ - XPAD_XBOX360_VENDOR(0x03eb), /* Wooting Keyboards (Legacy) */ - XPAD_XBOX360_VENDOR(0x044f), /* Thrustmaster Xbox 360 controllers */ -@@ -420,6 +424,7 @@ - XPAD_XBOX360_VENDOR(0x31e3), /* Wooting Keyboards */ - XPAD_XBOX360_VENDOR(0x3285), /* Nacon GC-100 */ - XPAD_XBOX360_VENDOR(0x3537), /* GameSir Controllers */ -+ XPAD_XBOX360_VENDOR(0x413d), /* Black Shark Green Ghost Controller */ - { } - }; - diff --git a/anda/system/xpad-noone/akmod/xpad-noone-kmod.spec b/anda/system/xpad-noone/akmod/xpad-noone-kmod.spec index 7ae74e4dcd..fff0b2ab46 100644 --- a/anda/system/xpad-noone/akmod/xpad-noone-kmod.spec +++ b/anda/system/xpad-noone/akmod/xpad-noone-kmod.spec @@ -10,13 +10,14 @@ This is the original upstream xpad driver from the Linux kernel with support for Name: %{modulename}-kmod Version: %{ver}^%{commitdate}git.%{shortcommit} -Release: 1%?dist +Release: 6%{?dist} License: GPL-2.0-or-later Summary: xpad driver with support for XBox One controllers removed URL: https://github.com/medusalix/xpad-noone Source0: %{url}/archive/%{commit}/%{modulename}-%{commit}.tar.gz#/%{modulename}-%{shortcommit}.tar.gz -# Extra support for controllers that register as XBox 360 controllers -Patch0: 0000.patch +# Fix kmod compilation on kernel 6.18+ +Patch0: https://github.com/medusalix/xpad-noone/pull/8.patch +Patch1: https://github.com/medusalix/xpad-noone/pull/9.patch BuildRequires: gcc BuildRequires: kmodtool BuildRequires: make @@ -25,16 +26,16 @@ Requires: %{modulename} = %{?epoch:%{epoch}:}%{version} Requires: %{modulename}-akmod-modules Requires: akmods Conflicts: dkms-%{modulename} -Packager: Gilver E. +Packager: Gilver E. -%{expand:%(kmodtool --target %{_target_cpu} --repo terra --kmodname %{modulename} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null) } +%{expand:%(kmodtool --target %{_target_cpu} --repo terrapkg.com --kmodname %{modulename} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null) } %description %_description %prep %{?kmodtool_check} -kmodtool --target %{_target_cpu} --repo terra --kmodname %{modulename} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null +kmodtool --target %{_target_cpu} --repo terrapkg.com --kmodname %{modulename} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null %autosetup -n %{modulename}-%{commit} -p1 diff --git a/anda/system/xpad-noone/dkms/0000.patch b/anda/system/xpad-noone/dkms/0000.patch deleted file mode 100644 index 59826a8f7f..0000000000 --- a/anda/system/xpad-noone/dkms/0000.patch +++ /dev/null @@ -1,43 +0,0 @@ ---- a/xpad.c -+++ b/xpad.c -@@ -117,6 +117,7 @@ static const struct xpad_device { - u8 xtype; - } xpad_device[] = { - { 0x0079, 0x18d4, "GPD Win 2 X-Box Controller", 0, XTYPE_XBOX360 }, -+ { 0x16d0, 0x10bc, "Cyborg Compact Gamingkeypad", 0, XTYPE_XBOX360 }, - { 0x03eb, 0xff01, "Wooting One (Legacy)", 0, XTYPE_XBOX360 }, - { 0x03eb, 0xff02, "Wooting Two (Legacy)", 0, XTYPE_XBOX360 }, - { 0x044f, 0x0f00, "Thrustmaster Wheel", 0, XTYPE_XBOX }, -@@ -303,6 +304,7 @@ static const struct xpad_device { - { 0x24c6, 0xfafe, "Rock Candy Gamepad for Xbox 360", 0, XTYPE_XBOX360 }, - { 0x2563, 0x058d, "OneXPlayer Gamepad", 0, XTYPE_XBOX360 }, - { 0x2dc8, 0x3106, "8BitDo Pro 2 Wired Controller", 0, XTYPE_XBOX360 }, -+ { 0x2dc8, 0x3109, "8BitDo Ultimate Wireless Bluetooth", 0, XTYPE_XBOX360 }, - { 0x31e3, 0x1100, "Wooting One", 0, XTYPE_XBOX360 }, - { 0x31e3, 0x1200, "Wooting Two", 0, XTYPE_XBOX360 }, - { 0x31e3, 0x1210, "Wooting Lekker", 0, XTYPE_XBOX360 }, -@@ -311,7 +313,8 @@ static const struct xpad_device { - { 0x31e3, 0x1310, "Wooting 60HE (ARM)", 0, XTYPE_XBOX360 }, - { 0x3285, 0x0607, "Nacon GC-100", 0, XTYPE_XBOX360 }, - { 0x3537, 0x1004, "GameSir T4 Kaleid", 0, XTYPE_XBOX360 }, -+ { 0x413d, 0x2104, "Black Shark Green Ghost Gamepad", 0, XTYPE_XBOX360 }, - { 0x3767, 0x0101, "Fanatec Speedster 3 Forceshock Wheel", 0, XTYPE_XBOX }, - { 0xffff, 0xffff, "Chinese-made Xbox Controller", 0, XTYPE_XBOX }, - { 0x0000, 0x0000, "Generic X-Box pad", 0, XTYPE_UNKNOWN } - }; -@@ -384,6 +387,7 @@ static const signed short xpad_abs_triggers[] = { - - static const struct usb_device_id xpad_table[] = { - { USB_INTERFACE_INFO('X', 'B', 0) }, /* Xbox USB-IF not-approved class */ -+ XPAD_XBOX360_VENDOR(0x16d0), /* Azeron Custom Gamingkeypad Vendor */ - XPAD_XBOX360_VENDOR(0x0079), /* GPD Win 2 controller */ - XPAD_XBOX360_VENDOR(0x03eb), /* Wooting Keyboards (Legacy) */ - XPAD_XBOX360_VENDOR(0x044f), /* Thrustmaster Xbox 360 controllers */ -@@ -420,6 +424,7 @@ - XPAD_XBOX360_VENDOR(0x31e3), /* Wooting Keyboards */ - XPAD_XBOX360_VENDOR(0x3285), /* Nacon GC-100 */ - XPAD_XBOX360_VENDOR(0x3537), /* GameSir Controllers */ -+ XPAD_XBOX360_VENDOR(0x413d), /* Black Shark Green Ghost Controller */ - { } - }; - diff --git a/anda/system/xpad-noone/dkms/dkms-xpad-noone.spec b/anda/system/xpad-noone/dkms/dkms-xpad-noone.spec index f7831a347e..97716c4969 100644 --- a/anda/system/xpad-noone/dkms/dkms-xpad-noone.spec +++ b/anda/system/xpad-noone/dkms/dkms-xpad-noone.spec @@ -8,24 +8,25 @@ This is the original upstream xpad driver from the Linux kernel with support for Name: dkms-%{modulename} Version: %{ver}^%{commitdate}git.%{shortcommit} -Release: 1%?dist +Release: 4%{?dist} License: GPL-2.0-or-later Summary: xpad driver with support for XBox One controllers removed URL: https://github.com/medusalix/xpad-noone Source0: %{url}/archive/%{commit}/%{modulename}-%{commit}.tar.gz#/%{modulename}-%{shortcommit}.tar.gz Source1: no-weak-modules.conf -# Extra support for controllers that register as XBox 360 controllers -Patch0: 0000.patch +# Fix kmod compilation on kernel 6.18+ +Patch0: https://github.com/medusalix/xpad-noone/pull/8.patch +Patch1: https://github.com/medusalix/xpad-noone/pull/9.patch Requires: %{modulename} = %{?epoch:%{epoch}:}%{version} Requires: dkms Conflicts: akmod-%{modulename} BuildArch: noarch -Packager: Gilver E. +Packager: Gilver E. %description %_description %prep -%autosetup -n %{modulename}-%{commit} +%autosetup -n %{modulename}-%{commit} -p1 %build diff --git a/anda/system/xpad-noone/kmod-common/xpad-noone.spec b/anda/system/xpad-noone/kmod-common/xpad-noone.spec index 767764d890..04847a5d12 100644 --- a/anda/system/xpad-noone/kmod-common/xpad-noone.spec +++ b/anda/system/xpad-noone/kmod-common/xpad-noone.spec @@ -7,7 +7,7 @@ This is the original upstream xpad driver from the Linux kernel with support for Name: xpad-noone Version: %{ver}^%{commitdate}git.%{shortcommit} -Release: 1%{?dist} +Release: 3%{?dist} License: GPL-2.0-or-later Summary: xpad driver with support for XBox One controllers removed URL: https://github.com/medusalix/xpad-noone @@ -19,13 +19,13 @@ Requires: (akmod-%{name} = %{?epoch:%{epoch}:}%{version} or dkms-%{name} = Conflicts: xow <= 0.5 Obsoletes: xow <= 0.5 BuildArch: noarch -Packager: Gilver E. +Packager: Gilver E. %description %_description %package akmod-modules Summary: Modules for Akmods -Requires: akmod-%{name} +Requires: %{name}-kmod = %{?epoch:%{epoch}:}%{version} BuildArch: noarch %description akmod-modules diff --git a/anda/system/xpadneo/akmod/update.rhai b/anda/system/xpadneo/akmod/update.rhai deleted file mode 100644 index b7de501f56..0000000000 --- a/anda/system/xpadneo/akmod/update.rhai +++ /dev/null @@ -1,13 +0,0 @@ -let c = sh("cat anda/system/xpadneo/kmod-common/xpadneo.spec | grep '%global commit ' | sed -E 's/.+commit //'", #{"stdout": "piped"}).ctx.stdout; -c.pop(); -rpm.global("commit", c); -if rpm.changed() { - rpm.release(); - let d = sh("cat anda/system/xpadneo/kmod-common/xpadneo.spec | grep '%global commitdate' | sed -E 's/.+commitdate //'", #{"stdout": "piped"}).ctx.stdout; - d.pop(); - rpm.global("commitdate", d); - let v = sh("cat anda/system/xpadneo/kmod-common/xpadneo.spec | grep '%global ver' | sed -E 's/.+ver //'", #{"stdout": "piped"}).ctx.stdout; - v.pop(); - rpm.global("ver", v); -} - diff --git a/anda/system/xpadneo/dkms/update.rhai b/anda/system/xpadneo/dkms/update.rhai deleted file mode 100644 index b7de501f56..0000000000 --- a/anda/system/xpadneo/dkms/update.rhai +++ /dev/null @@ -1,13 +0,0 @@ -let c = sh("cat anda/system/xpadneo/kmod-common/xpadneo.spec | grep '%global commit ' | sed -E 's/.+commit //'", #{"stdout": "piped"}).ctx.stdout; -c.pop(); -rpm.global("commit", c); -if rpm.changed() { - rpm.release(); - let d = sh("cat anda/system/xpadneo/kmod-common/xpadneo.spec | grep '%global commitdate' | sed -E 's/.+commitdate //'", #{"stdout": "piped"}).ctx.stdout; - d.pop(); - rpm.global("commitdate", d); - let v = sh("cat anda/system/xpadneo/kmod-common/xpadneo.spec | grep '%global ver' | sed -E 's/.+ver //'", #{"stdout": "piped"}).ctx.stdout; - v.pop(); - rpm.global("ver", v); -} - diff --git a/anda/system/xpadneo/kmod-common/io.github.xpadneo.metainfo.xml b/anda/system/xpadneo/kmod-common/io.github.xpadneo.metainfo.xml deleted file mode 100644 index f11f630d07..0000000000 --- a/anda/system/xpadneo/kmod-common/io.github.xpadneo.metainfo.xml +++ /dev/null @@ -1,26 +0,0 @@ - - io.github.xpadneo - xpadneo - xpadneo - Advanced Linux Driver for Xbox One Wireless Controller (shipped with Xbox One S) - -

- Wireless Drivers for the Xbox One and Series S|X controllers. - - Across all models, xpadneo won't support audio features of the controllers because the firmware doesn't support audio in Bluetooth mode. In the future, xpadneo may support audio when USB and dongle support will be added. -

-
- https://atar-axis.github.io/xpadneo/ - CC0-1.0 - - GPL-3.0 - - - Florian Dollinger - - - - - usb:v045Ep02FDd0008dc00dsc00dp00ic03isc00ip00in00 - -
\ No newline at end of file diff --git a/anda/system/xpadneo/kmod-common/xpadneo.spec b/anda/system/xpadneo/kmod-common/xpadneo.spec deleted file mode 100644 index d5da4a7961..0000000000 --- a/anda/system/xpadneo/kmod-common/xpadneo.spec +++ /dev/null @@ -1,63 +0,0 @@ -%global commit a16acb03e7be191d47ebfbc8ca1d5223422dac3e -%global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commitdate 20250705 -%global ver 0.9.7 - -Name: xpadneo -Version: %{ver}^%{commitdate}git.%{shortcommit} -Release: 1%?dist -Summary: Advanced Linux Driver for Xbox One Wireless Gamepad common files -License: GPL-3.0 -URL: https://atar-axis.github.io/%{name} -Source0: https://github.com/atar-axis/%{name}/archive/%{commit}.tar.gz#/%{name}-%{shortcommit}.tar.gz -Source1: io.github.%{name}.metainfo.xml -BuildRequires: sed -BuildRequires: systemd-rpm-macros -Requires: (akmod-%{name} = %{?epoch:%{epoch}:}%{version} or dkms-%{name} = %{?epoch:%{epoch}:}%{version}) -Provides: %{name}-kmod-common = %{?epoch:%{epoch}:}%{version} -Obsoletes: %{name}-kmod-common < %{?epoch:%{epoch}:}0.9.7^20241224git.8d20a23-4%{?dist} -BuildArch: noarch -Packager: Gilver E. - -%description -Advanced Linux Driver for Xbox One Wireless Gamepad common files. - -%package akmod-modules -Summary: Modules for Akmods -Requires: akmod-%{name} -BuildArch: noarch - -%description akmod-modules -Akmods modules for the akmod-%{name} package. - -%prep -%autosetup -p1 -n %{name}-%{commit} -/usr/bin/sed -nE '/^BUILT_MODULE_NAME/{s@^.+"(.+)"@\1@; s|-|_|g; p}' hid-%{name}/dkms.conf.in > %{name}.conf - -%install -# Aliases: -install -Dpm644 hid-%{name}/etc-modprobe.d/%{name}.conf -t %{buildroot}%{_modprobedir} - -# UDev rules: -install -Dpm644 hid-%{name}/etc-udev-rules.d/*.rules -t %{buildroot}%{_udevrulesdir}/ - -# Metadata -install -Dm644 %{SOURCE1} %{buildroot}%{_datadir}/metainfo/io.github.%{name}.metainfo.xml - -# Akmods modules -install -Dm644 %{name}.conf -t %{buildroot}%{_modulesloaddir} - -%files -%license LICENSE -%doc docs/*.md -%{_modprobedir}/%{name}.conf -%{_udevrulesdir}/60-%{name}.rules -%{_udevrulesdir}/70-%{name}-disable-hidraw.rules -%{_datadir}/metainfo/io.github.%{name}.metainfo.xml - -%files akmod-modules -%{_modulesloaddir}/%{name}.conf - -%changelog -* Fri Mar 07 2025 Gilver E. -- Package refactoring diff --git a/anda/system/xpadneo/nightly/akmod/anda.hcl b/anda/system/xpadneo/nightly/akmod/anda.hcl new file mode 100644 index 0000000000..f1d6f092a5 --- /dev/null +++ b/anda/system/xpadneo/nightly/akmod/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + rpm { + spec = "xpadneo-nightly-kmod.spec" + } + labels { + mock = 1 + updbranch = 1 + } +} diff --git a/anda/system/xpadneo/nightly/akmod/update.rhai b/anda/system/xpadneo/nightly/akmod/update.rhai new file mode 100644 index 0000000000..2054b27a42 --- /dev/null +++ b/anda/system/xpadneo/nightly/akmod/update.rhai @@ -0,0 +1,13 @@ +let c = sh("cat anda/system/xpadneo/nightly/kmod-common/xpadneo-nightly.spec | grep '%global commit ' | sed -E 's/.+commit //'", #{"stdout": "piped"}).ctx.stdout; +c.pop(); +rpm.global("commit", c); +if rpm.changed() { + rpm.release(); + let d = sh("cat anda/system/xpadneo/nightly/kmod-common/xpadneo-nightly.spec | grep '%global commitdate' | sed -E 's/.+commitdate //'", #{"stdout": "piped"}).ctx.stdout; + d.pop(); + rpm.global("commitdate", d); + let v = sh("cat anda/system/xpadneo/nightly/kmod-common/xpadneo-nightly.spec | grep '%global ver' | sed -E 's/.+ver //'", #{"stdout": "piped"}).ctx.stdout; + v.pop(); + rpm.global("ver", v); +} + diff --git a/anda/system/xpadneo/akmod/xpadneo-kmod.spec b/anda/system/xpadneo/nightly/akmod/xpadneo-nightly-kmod.spec similarity index 60% rename from anda/system/xpadneo/akmod/xpadneo-kmod.spec rename to anda/system/xpadneo/nightly/akmod/xpadneo-nightly-kmod.spec index cc2ef1d9a1..b06e60de4a 100644 --- a/anda/system/xpadneo/akmod/xpadneo-kmod.spec +++ b/anda/system/xpadneo/nightly/akmod/xpadneo-nightly-kmod.spec @@ -1,16 +1,16 @@ -%global commit a16acb03e7be191d47ebfbc8ca1d5223422dac3e +%global commit b514bd4454ddca2c40bf5522b3083cf079c9764e %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commitdate 20250705 -%global ver 0.9.7 +%global commitdate 20260413 +%global ver 0.10.2 %define buildforkernels akmod %global debug_package %{nil} %global modulename xpadneo -Name: %{modulename}-kmod -Version: %{ver}^%{commitdate}git.%{shortcommit} -Release: 1%?dist +Name: %{modulename}-nightly-kmod +Version: %{ver}^%{commitdate}git%{shortcommit} +Release: 1%{?dist} Summary: Advanced Linux Driver for Xbox One Wireless Gamepad -License: GPL-3.0 +License: GPL-2.0-only AND GPL-3.0-or-later URL: https://atar-axis.github.io/xpadneo Source0: https://github.com/atar-axis/xpadneo/archive/%{commit}.tar.gz#/xpadneo-%{shortcommit}.tar.gz BuildRequires: kmodtool @@ -18,19 +18,19 @@ BuildRequires: systemd-rpm-macros Requires: akmods Requires: bluez Requires: bluez-tools -Requires: %{modulename} = %{?epoch:%{epoch}:}%{version} -Requires: %{modulename}-akmod-modules = %{?epoch:%{epoch}:}%{version} +Requires: %{modulename}-nightly-kmod-common = %{?epoch:%{epoch}:}%{version} +Requires: %{modulename}-nightly-akmod-modules = %{?epoch:%{epoch}:}%{version} Conflicts: dkms-%{modulename} -Packager: Gilver E. +Packager: Gilver E. -%{expand:%(kmodtool --target %{_target_cpu} --repo terra --kmodname %{name} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null) } +%{expand:%(kmodtool --target %{_target_cpu} --repo terrapkg.com --kmodname %{name} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null) } %description Advanced Linux Driver for Xbox One Wireless Gamepad. %prep %{?kmodtool_check} -kmodtool --target %{_target_cpu} --repo terra --kmodname %{name} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null +kmodtool --target %{_target_cpu} --repo terrapkg.com --kmodname %{name} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null %autosetup -p1 -n %{modulename}-%{commit} @@ -55,5 +55,7 @@ done %{?akmod_install} %changelog +* Sat Apr 11 2026 Gilver E. - 0.10.2^45f3982git20260411 +- Separated nightly builds into their own packages * Thu Feb 27 2025 Gilver E. - Package refactoring for alternative DKMS package compatibility diff --git a/anda/system/xpadneo/nightly/dkms/anda.hcl b/anda/system/xpadneo/nightly/dkms/anda.hcl new file mode 100644 index 0000000000..155d865ee6 --- /dev/null +++ b/anda/system/xpadneo/nightly/dkms/anda.hcl @@ -0,0 +1,10 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "dkms-xpadneo-nightly.spec" + } + labels { + mock = 1 + updbranch = 1 + } +} diff --git a/anda/system/xpadneo/dkms/dkms-xpadneo.spec b/anda/system/xpadneo/nightly/dkms/dkms-xpadneo-nightly.spec similarity index 73% rename from anda/system/xpadneo/dkms/dkms-xpadneo.spec rename to anda/system/xpadneo/nightly/dkms/dkms-xpadneo-nightly.spec index a3e46f68b9..001e31a9b4 100644 --- a/anda/system/xpadneo/dkms/dkms-xpadneo.spec +++ b/anda/system/xpadneo/nightly/dkms/dkms-xpadneo-nightly.spec @@ -1,27 +1,26 @@ -%global commit a16acb03e7be191d47ebfbc8ca1d5223422dac3e +%global commit b514bd4454ddca2c40bf5522b3083cf079c9764e %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commitdate 20250705 -%global ver 0.9.7 -%global debug_package %{nil} +%global commitdate 20260413 +%global ver 0.10.2 %global modulename xpadneo -Name: dkms-%{modulename} -Version: %{ver}^%{commitdate}git.%{shortcommit} -Release: 1%?dist +Name: dkms-%{modulename}-nightly +Version: %{ver}^%{commitdate}git%{shortcommit} +Release: 1%{?dist} Summary: Advanced Linux Driver for Xbox One Wireless Gamepad -License: GPL-3.0 +License: GPL-2.0-only AND GPL-3.0-or-later URL: https://atar-axis.github.io/%{modulename} Source0: https://github.com/atar-axis/%{modulename}/archive/%{commit}.tar.gz#/%{modulename}-%{shortcommit}.tar.gz -Source1: %{name}.conf +Source1: dkms-%{modulename}.conf Source2: no-weak-modules.conf BuildRequires: sed Requires: bluez Requires: bluez-tools -Requires: %{modulename} = %{?epoch:%{epoch}:}%{version} +Requires: %{modulename}-kmod-common = %{?epoch:%{epoch}:}%{version} Requires: dkms Conflicts: akmod-%{modulename} BuildArch: noarch -Packager: Gilver E. +Packager: Gilver E. %description Advanced Linux Driver for Xbox One Wireless Gamepad. @@ -42,7 +41,7 @@ sed -i -e 's/$(VERSION)/v%{version}/g' hid-xpadneo/src/Makefile mkdir -p %{buildroot}%{_usrsrc}/%{modulename}-%{version}/ cp -fr hid-xpadneo/src/* %{buildroot}%{_usrsrc}/%{modulename}-%{version}/ -%if 0%{?fedora} +%if %{defined fedora} # Do not enable weak modules support in Fedora (no kABI): install -Dpm644 %{SOURCE2} %{buildroot}%{_sysconfdir}/dkms/%{modulename}.conf %endif @@ -59,10 +58,12 @@ dkms remove -m %{modulename} -v %{version} -q --all --rpm_safe_upgrade || : %files %{_usrsrc}/%{modulename}-%{version} -%if 0%{?fedora} +%if %{defined fedora} %{_sysconfdir}/dkms/%{modulename}.conf %endif %changelog +* Sat Apr 11 2026 Gilver E. - 0.10.2^45f3982git20260411 +- Separated nightly builds into their own packages * Thu Feb 27 2025 Gilver E. - Initial package diff --git a/anda/system/xpadneo/dkms/dkms-xpadneo.conf b/anda/system/xpadneo/nightly/dkms/dkms-xpadneo.conf similarity index 100% rename from anda/system/xpadneo/dkms/dkms-xpadneo.conf rename to anda/system/xpadneo/nightly/dkms/dkms-xpadneo.conf diff --git a/anda/system/xpadneo/nightly/dkms/no-weak-modules.conf b/anda/system/xpadneo/nightly/dkms/no-weak-modules.conf new file mode 100644 index 0000000000..24f6f95c96 --- /dev/null +++ b/anda/system/xpadneo/nightly/dkms/no-weak-modules.conf @@ -0,0 +1 @@ +NO_WEAK_MODULES="yes" diff --git a/anda/system/xpadneo/nightly/dkms/update.rhai b/anda/system/xpadneo/nightly/dkms/update.rhai new file mode 100644 index 0000000000..2054b27a42 --- /dev/null +++ b/anda/system/xpadneo/nightly/dkms/update.rhai @@ -0,0 +1,13 @@ +let c = sh("cat anda/system/xpadneo/nightly/kmod-common/xpadneo-nightly.spec | grep '%global commit ' | sed -E 's/.+commit //'", #{"stdout": "piped"}).ctx.stdout; +c.pop(); +rpm.global("commit", c); +if rpm.changed() { + rpm.release(); + let d = sh("cat anda/system/xpadneo/nightly/kmod-common/xpadneo-nightly.spec | grep '%global commitdate' | sed -E 's/.+commitdate //'", #{"stdout": "piped"}).ctx.stdout; + d.pop(); + rpm.global("commitdate", d); + let v = sh("cat anda/system/xpadneo/nightly/kmod-common/xpadneo-nightly.spec | grep '%global ver' | sed -E 's/.+ver //'", #{"stdout": "piped"}).ctx.stdout; + v.pop(); + rpm.global("ver", v); +} + diff --git a/anda/system/xpadneo/nightly/kmod-common/anda.hcl b/anda/system/xpadneo/nightly/kmod-common/anda.hcl new file mode 100644 index 0000000000..a0ac3dafaf --- /dev/null +++ b/anda/system/xpadneo/nightly/kmod-common/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "xpadneo-nightly.spec" + } + labels { + nightly = 1 + } +} diff --git a/anda/system/xpadneo/kmod-common/update.rhai b/anda/system/xpadneo/nightly/kmod-common/update.rhai similarity index 100% rename from anda/system/xpadneo/kmod-common/update.rhai rename to anda/system/xpadneo/nightly/kmod-common/update.rhai diff --git a/anda/system/xpadneo/nightly/kmod-common/xpadneo-nightly.spec b/anda/system/xpadneo/nightly/kmod-common/xpadneo-nightly.spec new file mode 100644 index 0000000000..7e9239e8c0 --- /dev/null +++ b/anda/system/xpadneo/nightly/kmod-common/xpadneo-nightly.spec @@ -0,0 +1,60 @@ +%global commit b514bd4454ddca2c40bf5522b3083cf079c9764e +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global commitdate 20260413 +%global ver 0.10.2 +%global appid io.github.atar_axis.xpadneo + +Name: xpadneo-nightly +Version: %{ver}^%{commitdate}git%{shortcommit} +Release: 1%{?dist} +Summary: Advanced Linux Driver for Xbox One Wireless Gamepad common files +License: GPL-2.0-only AND GPL-3.0-or-later +URL: https://atar-axis.github.io/xpadneo +Source0: https://github.com/atar-axis/xpadneo/archive/%{commit}.tar.gz#/xpadneo-%{shortcommit}.tar.gz +BuildRequires: make +BuildRequires: sed +BuildRequires: systemd-rpm-macros +Requires: %{name}-kmod = %{?epoch:%{epoch}:}%{version} +Provides: %{name}-kmod-common = %{?epoch:%{epoch}:}%{version} +Obsoletes: %{name}-kmod-common < %{?epoch:%{epoch}:}0.9.7^20241224git.8d20a23-5%{?dist} +BuildArch: noarch +Packager: Gilver E. + +%description +Advanced Linux Driver for Xbox One Wireless Gamepad common files. + +%package akmod-modules +Summary: Modules for Akmods +Requires: %{name}-kmod = %{?epoch:%{epoch}:}%{version} +BuildArch: noarch + +%description akmod-modules +Akmods modules for the akmod-%{name} package. + +%prep +%autosetup -p1 -n xpadneo-%{commit} +/usr/bin/sed -nE '/^BUILT_MODULE_NAME/{s@^.+"(.+)"@\1@; s|-|_|g; p}' hid-xpadneo/dkms.conf.in > xpadneo.conf + +%install +%{__make} install-all PREFIX="%{buildroot}" ETC_PREFIX="%{_prefix}/lib" VERSION="%{version}" + +# Akmods modules +install -Dm644 xpadneo.conf -t %{buildroot}%{_modulesloaddir} + +%files +%license LICENSE.md +# Let RPM handle the docs +%doc %{_docdir}/xpadneo/* +%{_modprobedir}/xpadneo.conf +%{_udevrulesdir}/60-xpadneo.rules +%{_udevrulesdir}/70-xpadneo-disable-hidraw.rules +%{_metainfodir}/%{appid}.metainfo.xml + +%files akmod-modules +%{_modulesloaddir}/xpadneo.conf + +%changelog +* Sat Apr 11 2026 Gilver E. - 0.10.2^45f3982git20260411 +- Separated nightly builds into their own packages +* Fri Mar 07 2025 Gilver E. +- Package refactoring diff --git a/anda/system/xpadneo/akmod/anda.hcl b/anda/system/xpadneo/stable/akmod/anda.hcl similarity index 100% rename from anda/system/xpadneo/akmod/anda.hcl rename to anda/system/xpadneo/stable/akmod/anda.hcl diff --git a/anda/system/xpadneo/stable/akmod/update.rhai b/anda/system/xpadneo/stable/akmod/update.rhai new file mode 100644 index 0000000000..eb076f74aa --- /dev/null +++ b/anda/system/xpadneo/stable/akmod/update.rhai @@ -0,0 +1,3 @@ +import "andax/bump_extras.rhai" as bump; + +rpm.version(bump::madoguchi("xpadneo", labels.branch)); diff --git a/anda/system/xpadneo/stable/akmod/xpadneo-kmod.spec b/anda/system/xpadneo/stable/akmod/xpadneo-kmod.spec new file mode 100644 index 0000000000..43068fa0bf --- /dev/null +++ b/anda/system/xpadneo/stable/akmod/xpadneo-kmod.spec @@ -0,0 +1,59 @@ +%define buildforkernels akmod +%global debug_package %{nil} +%global modulename xpadneo + +Name: %{modulename}-kmod +Version: 0.10.2 +Release: 1%{?dist} +%if 0%{?fedora} <= 45 +Epoch: 1 +%endif +Summary: Advanced Linux Driver for Xbox One Wireless Gamepad +License: GPL-2.0-only AND GPL-3.0-or-later +URL: https://atar-axis.github.io/xpadneo +Source0: https://github.com/atar-axis/xpadneo/archive/refs/tags/v%{version}.tar.gz +BuildRequires: kmodtool +BuildRequires: systemd-rpm-macros +Requires: akmods +Requires: bluez +Requires: bluez-tools +Requires: %{modulename} = %{?epoch:%{epoch}:}%{version} +Requires: %{modulename}-akmod-modules = %{?epoch:%{epoch}:}%{version} +Conflicts: dkms-%{modulename} +Provides: %{modulename}-kmod +Packager: Gilver E. + +%{expand:%(kmodtool --target %{_target_cpu} --repo terrapkg.com --kmodname %{name} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null) } + +%description +Advanced Linux Driver for Xbox One Wireless Gamepad. + +%prep +%{?kmodtool_check} +kmodtool --target %{_target_cpu} --repo terrapkg.com --kmodname %{name} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null + +%autosetup -p1 -n %{modulename}-%{version} + +for kernel_version in %{?kernel_versions}; do + mkdir _kmod_build_${kernel_version%%___*} + cp -fr hid-xpadneo/src/* _kmod_build_${kernel_version%%___*} +done + +%build +for kernel_version in %{?kernel_versions}; do + pushd _kmod_build_${kernel_version%%___*}/ + %make_build -C "${kernel_version##*___}" M=$(pwd) VERSION="v%{version}" modules + popd +done + +%install +for kernel_version in %{?kernel_versions}; do + mkdir -p %{buildroot}/%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/ + install -p -m 0755 _kmod_build_${kernel_version%%___*}/*.ko \ + %{buildroot}/%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/ +done +%{?akmod_install} + +%changelog +* Sat Apr 11 2026 Gilver E. - 1:0.10.2-1 +- Initial stable package diff --git a/anda/system/xpadneo/dkms/anda.hcl b/anda/system/xpadneo/stable/dkms/anda.hcl similarity index 100% rename from anda/system/xpadneo/dkms/anda.hcl rename to anda/system/xpadneo/stable/dkms/anda.hcl diff --git a/anda/system/xpadneo/stable/dkms/dkms-xpadneo.conf b/anda/system/xpadneo/stable/dkms/dkms-xpadneo.conf new file mode 100644 index 0000000000..ecde0d0673 --- /dev/null +++ b/anda/system/xpadneo/stable/dkms/dkms-xpadneo.conf @@ -0,0 +1,6 @@ +PACKAGE_NAME="xpadneo" +PACKAGE_VERSION="__VERSION_STRING" +AUTOINSTALL="yes" + +BUILT_MODULE_NAME[0]="hid-xpadneo" +DEST_MODULE_LOCATION[0]="/extra" diff --git a/anda/system/xpadneo/stable/dkms/dkms-xpadneo.spec b/anda/system/xpadneo/stable/dkms/dkms-xpadneo.spec new file mode 100644 index 0000000000..59c56849b9 --- /dev/null +++ b/anda/system/xpadneo/stable/dkms/dkms-xpadneo.spec @@ -0,0 +1,68 @@ +%global modulename xpadneo + +Name: dkms-%{modulename} +Version: 0.10.2 +Release: 1%{?dist} +%if 0%{?fedora} <= 45 +Epoch: 1 +%endif +Summary: Advanced Linux Driver for Xbox One Wireless Gamepad +License: GPL-2.0-only AND GPL-3.0-or-later +URL: https://atar-axis.github.io/%{modulename} +Source0: https://github.com/atar-axis/xpadneo/archive/refs/tags/v%{version}.tar.gz +Source1: %{name}.conf +Source2: no-weak-modules.conf +BuildRequires: sed +Provides: %{modulename}-kmod +Requires: bluez +Requires: bluez-tools +Requires: %{modulename} = %{?epoch:%{epoch}:}%{version} +Requires: dkms +Conflicts: akmod-%{modulename} +Provides: %{modulename}-kmod +BuildArch: noarch +Packager: Gilver E. + +%description +Advanced Linux Driver for Xbox One Wireless Gamepad. + +%prep +%autosetup -p1 -n %{modulename}-%{version} + + +cp -f %{SOURCE1} hid-xpadneo/src/dkms.conf + +sed -i -e 's/__VERSION_STRING/%{version}/g' hid-xpadneo/src/dkms.conf +sed -i -e 's/$(VERSION)/v%{version}/g' hid-xpadneo/src/Makefile + +%build + +%install +# Create empty tree: +mkdir -p %{buildroot}%{_usrsrc}/%{modulename}-%{version}/ +cp -fr hid-xpadneo/src/* %{buildroot}%{_usrsrc}/%{modulename}-%{version}/ + +%if %{defined fedora} +# Do not enable weak modules support in Fedora (no kABI): +install -Dpm644 %{SOURCE2} %{buildroot}%{_sysconfdir}/dkms/%{modulename}.conf +%endif + +%post +dkms add -m %{modulename} -v %{version} -q --rpm_safe_upgrade || : +# Rebuild and make available for the currently running kernel: +dkms build -m %{modulename} -v %{version} -q || : +dkms install -m %{modulename} -v %{version} -q --force || : + +%preun +# Remove all versions from DKMS registry: +dkms remove -m %{modulename} -v %{version} -q --all --rpm_safe_upgrade || : + +%files +%{_usrsrc}/%{modulename}-%{version} +%if %{defined fedora} +%{_sysconfdir}/dkms/%{modulename}.conf +%endif + +%changelog +* Sat Apr 11 2026 Gilver E. - 1:0.10.2-1 +- Initial stable package diff --git a/anda/system/xpadneo/stable/dkms/no-weak-modules.conf b/anda/system/xpadneo/stable/dkms/no-weak-modules.conf new file mode 100644 index 0000000000..24f6f95c96 --- /dev/null +++ b/anda/system/xpadneo/stable/dkms/no-weak-modules.conf @@ -0,0 +1 @@ +NO_WEAK_MODULES="yes" diff --git a/anda/system/xpadneo/stable/dkms/update.rhai b/anda/system/xpadneo/stable/dkms/update.rhai new file mode 100644 index 0000000000..eb076f74aa --- /dev/null +++ b/anda/system/xpadneo/stable/dkms/update.rhai @@ -0,0 +1,3 @@ +import "andax/bump_extras.rhai" as bump; + +rpm.version(bump::madoguchi("xpadneo", labels.branch)); diff --git a/anda/system/xpadneo/stable/kmod-common/anda.hcl b/anda/system/xpadneo/stable/kmod-common/anda.hcl new file mode 100644 index 0000000000..91956479d9 --- /dev/null +++ b/anda/system/xpadneo/stable/kmod-common/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "xpadneo.spec" + } +} diff --git a/anda/system/xpadneo/stable/kmod-common/update.rhai b/anda/system/xpadneo/stable/kmod-common/update.rhai new file mode 100644 index 0000000000..0a63919e92 --- /dev/null +++ b/anda/system/xpadneo/stable/kmod-common/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("atar-axis/xpadneo")); diff --git a/anda/system/xpadneo/stable/kmod-common/xpadneo.spec b/anda/system/xpadneo/stable/kmod-common/xpadneo.spec new file mode 100644 index 0000000000..4ae97912e3 --- /dev/null +++ b/anda/system/xpadneo/stable/kmod-common/xpadneo.spec @@ -0,0 +1,57 @@ +%global appid io.github.atar_axis.xpadneo + +Name: xpadneo +Version: 0.10.2 +Release: 1%{?dist} +%if 0%{?fedora} <= 45 +Epoch: 1 +%endif +Summary: Advanced Linux Driver for Xbox One Wireless Gamepad common files +License: GPL-2.0-only AND GPL-3.0-or-later +URL: https://atar-axis.github.io/%{name} +Source0: https://github.com/atar-axis/xpadneo/archive/refs/tags/v%{version}.tar.gz +BuildRequires: make +BuildRequires: sed +BuildRequires: systemd-rpm-macros +Requires: %{name}-kmod = %{?epoch:%{epoch}:}%{version} +Provides: %{name}-kmod-common = %{?epoch:%{epoch}:}%{version} +Obsoletes: %{name}-kmod-common < %{?epoch:%{epoch}:}0.9.7^20241224git.8d20a23-5%{?dist} +BuildArch: noarch +Packager: Gilver E. + +%description +Advanced Linux Driver for Xbox One Wireless Gamepad common files. + +%package akmod-modules +Summary: Modules for Akmods +Requires: %{name}-kmod = %{?epoch:%{epoch}:}%{version} +BuildArch: noarch + +%description akmod-modules +Akmods modules for the akmod-%{name} package. + +%prep +%autosetup -p1 -n %{name}-%{version} +%{__sed} -nE '/^BUILT_MODULE_NAME/{s@^.+"(.+)"@\1@; s|-|_|g; p}' hid-%{name}/dkms.conf.in > %{name}.conf + +%install +%{__make} install-all PREFIX="%{buildroot}" ETC_PREFIX="%{_prefix}/lib" VERSION="%{version}" + +# Akmods modules +install -Dm644 %{name}.conf -t %{buildroot}%{_modulesloaddir} + +%files +%license LICENSE.md +# Let RPM handle the docs +%doc %{_docdir}/%{name}/* +%{_modprobedir}/%{name}.conf +%{_udevrulesdir}/60-%{name}.rules +%{_udevrulesdir}/70-%{name}-disable-hidraw.rules +%{_metainfodir}/%{appid}.metainfo.xml + +%files akmod-modules +%{_modulesloaddir}/%{name}.conf + +%changelog +* Sat Apr 11 2026 Gilver E. - 1:0.10.2-1 +- Initial stable package diff --git a/anda/system/zenergy/akmod/anda.hcl b/anda/system/zenergy/akmod/anda.hcl new file mode 100644 index 0000000000..4c61e3c13f --- /dev/null +++ b/anda/system/zenergy/akmod/anda.hcl @@ -0,0 +1,10 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "zenergy-kmod.spec" + } + labels { + mock = 1 + nightly = 1 + } +} diff --git a/anda/system/zenergy/akmod/update.rhai b/anda/system/zenergy/akmod/update.rhai new file mode 100644 index 0000000000..ae37ba7dd5 --- /dev/null +++ b/anda/system/zenergy/akmod/update.rhai @@ -0,0 +1,5 @@ +rpm.global("commit", gh_commit("BoukeHaarsma23/zenergy")); +if rpm.changed() { + rpm.release(); + rpm.global("commitdate", date()); +} diff --git a/anda/system/zenergy/akmod/zenergy-kmod.spec b/anda/system/zenergy/akmod/zenergy-kmod.spec new file mode 100644 index 0000000000..49d828ac25 --- /dev/null +++ b/anda/system/zenergy/akmod/zenergy-kmod.spec @@ -0,0 +1,72 @@ +# The reason why this package is a separate from the main one despite using the same sources +# is because akmods use the srpm to build the kmod package, and if the kmod package is included +# in the main package, akmods will reinstall the userspace package every time the kernel is updated. + +%if 0%{?fedora} +%global buildforkernels akmod +%global debug_package %{nil} +%endif + +%global commit 58f2fda7184fbde95033f492f7c54990552ef86f +%global commitdate 20250831 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global modulename zenergy + +Name: %{modulename}-kmod +Version: 1.0^%{commitdate}git.%{shortcommit} +Release: 4%{?dist} +Summary: Exposes the energy counters that are reported via the Running Average Power Limit (RAPL) Model-specific Registers (MSRs) via the hardware monitor (HWMON) sysfs interface. +License: GPL-2.0 +URL: https://github.com/BoukeHaarsma23/zenergy +Source0: %{url}/archive/%{commit}.tar.gz#/%{modulename}-%{shortcommit}.tar.gz +# AMD only makes x86_64 CPUs, They literally invented x86_64. +BuildArch: x86_64 +BuildRequires: gcc +BuildRequires: make +BuildRequires: kmodtool + +Requires: akmods +Requires: %{modulename} = %{?epoch:%{epoch}:}%{version} +Requires: %{modulename}-akmod-modules = %{?epoch:%{epoch}:}%{version} +Requires: help2man +Requires: kernel-devel +Conflicts: dkms-%{modulename} +Packager: Cappy Ishihara + +%{expand:%(kmodtool --target %{_target_cpu} --repo terrapkg.com --kmodname %{modulename} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null) } + +%description +Based on AMD_ENERGY driver, but with some jiffies added so non-root users can read it safely. +Exposes the energy counters that are reported via the Running Average Power Limit (RAPL) Model-specific Registers (MSRs) +via the hardware monitor (HWMON) sysfs interface. + +%prep +# error out if there was something wrong with kmodtool +%{?kmodtool_check} + +# print kmodtool output for debugging purposes: +kmodtool --target %{_target_cpu} --repo terrapkg.com --kmodname %{modulename} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null + +%setup -q -c -n %{modulename}-%{commit} + +find . -type f -name '*.c' -exec sed -i "s/#VERSION#/%{version}/" {} \+ + +for kernel_version in %{?kernel_versions} ; do + cp -a %{modulename}-%{commit} _kmod_build_${kernel_version%%___*} +done + +%build +for kernel_version in %{?kernel_versions} ; do + make V=1 %{?_smp_mflags} -C ${kernel_version##*___} M=${PWD}/_kmod_build_${kernel_version%%___*} VERSION=v%{version} modules +done + +%install +for kernel_version in %{?kernel_versions}; do + mkdir -p %{buildroot}%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/ + install -D -m 755 _kmod_build_${kernel_version%%___*}/zenergy.ko %{buildroot}%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/ + chmod a+x %{buildroot}%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/zenergy.ko +done +%{?akmod_install} + +%changelog +%autochangelog diff --git a/anda/system/zenergy/dkms/anda.hcl b/anda/system/zenergy/dkms/anda.hcl new file mode 100644 index 0000000000..ff0dddedb9 --- /dev/null +++ b/anda/system/zenergy/dkms/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "dkms-zenergy.spec" + } + labels { + nightly = 1 + } +} diff --git a/anda/system/zenergy/dkms/dkms-zenergy.spec b/anda/system/zenergy/dkms/dkms-zenergy.spec new file mode 100644 index 0000000000..945eb78933 --- /dev/null +++ b/anda/system/zenergy/dkms/dkms-zenergy.spec @@ -0,0 +1,62 @@ +%global commit 58f2fda7184fbde95033f492f7c54990552ef86f +%global debug_package %{nil} +%global modulename zenergy +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global commitdate 20250831 + +Name: dkms-%{modulename} +Version: 1.0^%{commitdate}git.%{shortcommit} +Release: 3%?dist +Summary: Exposes the energy counters that are reported via the Running Average Power Limit (RAPL) Model-specific Registers (MSRs) via the hardware monitor (HWMON) sysfs interface. +License: GPL-2.0 +URL: https://github.com/BoukeHaarsma23/zenergy +Source0: %{url}/archive/%{commit}.tar.gz#/%{name}-%{shortcommit}.tar.gz +BuildRequires: sed +BuildRequires: systemd-rpm-macros +Requires: %{modulename} = %{?epoch:%{epoch}:}%{version} +Provides: %{name}-kmod-common = %{?epoch:%{epoch}:}%{version} +BuildArch: x86_64 +Requires: dkms +Requires: help2man +Conflicts: akmod-%{modulename} +Provides: %{modulename}-kmod +Packager: Cappy Ishihara + +%description +Based on AMD_ENERGY driver, but with some jiffies added so non-root users can read it safely. +Exposes the energy counters that are reported via the Running Average Power Limit (RAPL) Model-specific Registers (MSRs) +via the hardware monitor (HWMON) sysfs interface. + + +%package akmod-modules +Summary: Modules for Akmods +Requires: akmod-%{name} +BuildArch: noarch + +%description akmod-modules +Akmods modules for the akmod-%{name} package. + +%prep +%autosetup -p1 -n %{modulename}-%{commit} +# Zenergy has no concrete version, but upstream says "1.0" in their documentation +/usr/bin/sed -i 's/@VERSION@/%{version}/g' dkms.conf + +%install +mkdir -p %{buildroot}%{_usrsrc}/%{modulename}-%{version} +cp -fr ./ %{buildroot}%{_usrsrc}/%{modulename}-%{version}/ + +%post +dkms add -m %{modulename} -v %{version} -q --rpm_safe_upgrade || : +# Rebuild and make available for the currently running kernel: +dkms build -m %{modulename} -v %{version} -q || : +dkms install -m %{modulename} -v %{version} -q --force || : + + +%files +%{_usrsrc}/%{modulename}-%{version} +%license LICENSE +%doc README.md + + +%changelog +%autochangelog diff --git a/anda/system/zenergy/dkms/update.rhai b/anda/system/zenergy/dkms/update.rhai new file mode 100644 index 0000000000..ae37ba7dd5 --- /dev/null +++ b/anda/system/zenergy/dkms/update.rhai @@ -0,0 +1,5 @@ +rpm.global("commit", gh_commit("BoukeHaarsma23/zenergy")); +if rpm.changed() { + rpm.release(); + rpm.global("commitdate", date()); +} diff --git a/anda/system/zenergy/kmod-common/anda.hcl b/anda/system/zenergy/kmod-common/anda.hcl new file mode 100644 index 0000000000..36c8d29b16 --- /dev/null +++ b/anda/system/zenergy/kmod-common/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "zenergy.spec" + } + labels { + nightly = 1 + } +} diff --git a/anda/system/zenergy/kmod-common/com.github.zenergy.metainfo.xml b/anda/system/zenergy/kmod-common/com.github.zenergy.metainfo.xml new file mode 100644 index 0000000000..dd3092c029 --- /dev/null +++ b/anda/system/zenergy/kmod-common/com.github.zenergy.metainfo.xml @@ -0,0 +1,30 @@ + + com.github.zenergy + zenergy + zenergy + Exposes the energy counters that are reported via the Running Average Power Limit (RAPL) + +

+ Based on AMD_ENERGY driver, but with some jiffies added so non-root users can read it safely. + Exposes the energy counters that are reported via the Running Average Power Limit (RAPL) Model-specific Registers (MSRs) + via the hardware monitor (HWMON) sysfs interface. +

+
+ https://github.com/BoukeHaarsma23/zenergy + CC0-1.0 + + GPL-2.0 + + + BoukeHaarsma23 + + + + + + platform:zenergy + cpu:type:x86,ven0002fam0017mod*:feature:* + cpu:type:x86,ven0002fam0019mod*:feature:* + cpu:type:x86,ven0002fam001Amod*:feature:* + +
\ No newline at end of file diff --git a/anda/system/zenergy/kmod-common/update.rhai b/anda/system/zenergy/kmod-common/update.rhai new file mode 100644 index 0000000000..ae37ba7dd5 --- /dev/null +++ b/anda/system/zenergy/kmod-common/update.rhai @@ -0,0 +1,5 @@ +rpm.global("commit", gh_commit("BoukeHaarsma23/zenergy")); +if rpm.changed() { + rpm.release(); + rpm.global("commitdate", date()); +} diff --git a/anda/system/zenergy/kmod-common/zenergy.spec b/anda/system/zenergy/kmod-common/zenergy.spec new file mode 100644 index 0000000000..380a305067 --- /dev/null +++ b/anda/system/zenergy/kmod-common/zenergy.spec @@ -0,0 +1,56 @@ +%global commit 58f2fda7184fbde95033f492f7c54990552ef86f +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global commitdate 20250831 + +Name: zenergy +Version: 1.0^%{commitdate}git.%{shortcommit} +Release: 3%?dist +Summary: Exposes the energy counters that are reported via the Running Average Power Limit (RAPL) Model-specific Registers (MSRs) via the hardware monitor (HWMON) sysfs interface. +License: GPL-2.0 +URL: https://github.com/BoukeHaarsma23/zenergy +Source0: %{url}/archive/%{commit}.tar.gz#/%{name}-%{shortcommit}.tar.gz +Source1: com.github.zenergy.metainfo.xml +BuildRequires: sed +BuildRequires: systemd-rpm-macros +Requires: %{name}-kmod = %{?epoch:%{epoch}:}%{version} +Provides: %{name}-kmod-common = %{?epoch:%{epoch}:}%{version} +BuildArch: noarch +Packager: Cappy Ishihara + +%description +Based on AMD_ENERGY driver, but with some jiffies added so non-root users can read it safely. +Exposes the energy counters that are reported via the Running Average Power Limit (RAPL) Model-specific Registers (MSRs) +via the hardware monitor (HWMON) sysfs interface. + + +%package akmod-modules +Summary: Modules for Akmods +Requires: %{name}-kmod = %{?epoch:%{epoch}:}%{version} +BuildArch: noarch + +%description akmod-modules +Akmods modules for the akmod-%{name} package. + +%prep +%autosetup -p1 -n %{name}-%{commit} + +# Zenergy has no concrete version, but upstream says "1.0" in their documentation +/usr/bin/sed -nE 's/@VERSION@/%{version}/g' dkms.conf > %{name}.conf + +%install +install -Dm644 %{SOURCE1} %{buildroot}%{_datadir}/metainfo/com.github.zenergy.metainfo.xml + +# Akmods modules +install -Dm644 %{name}.conf -t %{buildroot}%{_modulesloaddir} + + +%files +%license LICENSE +%doc README.md +%{_datadir}/metainfo/com.github.zenergy.metainfo.xml + +%files akmod-modules +%{_modulesloaddir}/%{name}.conf + +%changelog +%autochangelog \ No newline at end of file diff --git a/anda/terra/appstream-helper/anda.hcl b/anda/terra/appstream-helper/anda.hcl new file mode 100644 index 0000000000..fdd41b3b22 --- /dev/null +++ b/anda/terra/appstream-helper/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "terra-appstream-helper.spec" + } +} diff --git a/anda/terra/appstream-helper/terra-appstream-helper.spec b/anda/terra/appstream-helper/terra-appstream-helper.spec new file mode 100644 index 0000000000..248cda2d73 --- /dev/null +++ b/anda/terra/appstream-helper/terra-appstream-helper.spec @@ -0,0 +1,54 @@ +Name: terra-appstream-helper +Version: 0.1.10 +Release: 2%?dist +Summary: Scripts and RPM macros to help with AppStream metadata generation for Terra +License: GPL-3.0-or-Later +URL: https://github.com/terrapkg/appstream-helper +Source: %{url}/archive/refs/tags/v%version.tar.gz +BuildArch: noarch +Requires: python3-%{name} = %{evr} +BuildRequires: anda-srpm-macros python3-devel python3-installer pyproject-rpm-macros python3dist(pip) python3dist(setuptools) python3dist(wheel) + +Packager: Terra Packaging Team + +%description +%{summary}. + +%package -n python3-%{name} +Summary: Python files for %{name} +Requires: %{name} = %{evr} +BuildArch: noarch + +%description -n python3-%{name} +Python files needed for %{name}. + +%prep +%autosetup -n appstream-helper-%{version} + +%generate_buildrequires +%pyproject_buildrequires + + +%build +%pyproject_wheel + + +%install +%pyproject_install +%pyproject_save_files -l terra_appstream_helper +install -Dpm644 terra-appstream.macros %buildroot%_rpmmacrodir/macros.terra-appstream + +%files +%license LICENSE +%doc README.md +%{_bindir}/terra-appstream-helper +%{_rpmmacrodir}/macros.terra-appstream + + + +%files -n python3-%{name} -f %{pyproject_files} + + + +%changelog +%autochangelog diff --git a/anda/terra/appstream-helper/update.rhai b/anda/terra/appstream-helper/update.rhai new file mode 100644 index 0000000000..657b5f98cd --- /dev/null +++ b/anda/terra/appstream-helper/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("terrapkg/appstream-helper")); diff --git a/anda/terra/gpg-keys/RELEASE.txt b/anda/terra/gpg-keys/RELEASE.txt new file mode 100644 index 0000000000..d00099938a --- /dev/null +++ b/anda/terra/gpg-keys/RELEASE.txt @@ -0,0 +1 @@ +F45 \ No newline at end of file diff --git a/anda/terra/gpg-keys/RPM-GPG-KEY-terra42 b/anda/terra/gpg-keys/RPM-GPG-KEY-terra42 new file mode 100644 index 0000000000..de111ff469 --- /dev/null +++ b/anda/terra/gpg-keys/RPM-GPG-KEY-terra42 @@ -0,0 +1,17 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GopenPGP 2.8.1 +Comment: https://gopenpgp.org + +xjMEZ63W4BYJKwYBBAHaRw8BAQdAYtN3o+Qh2alk+yClHDIe+/6tRcfiToEMaN3e +/P7WFuLNIFRlcnJhIDQyIDxzZWN1cml0eUBmeXJhbGFicy5jb20+wr8EExYIAHEF +gmet1uADCwkHCZDNmoI61qelQjUUAAAAAAAcABBzYWx0QG5vdGF0aW9ucy5vcGVu +cGdwanMub3JnIH3foqNaO3XXewtQPpMDEgIVCAMWAAICGQECmwMCHgEWIQRj+9Uj +CpWqzF+dKhnNmoI61qelQgAAlFAA/j5zhtUcJ0FssUp9KOwbBeodSdOa6rnxx2lu +3uoCW/baAQCFfUeWkOFBlPghsdFwZHm9/Z5TUkEGOkgxG8T873PIBs44BGet1uAS +CisGAQQBl1UBBQEBB0DqvEFEbJEJzB578qTYjBeEY9x+THygZdVIgEK60ggdMwMB +CgnCrgQYFggAYAWCZ63W4AmQzZqCOtanpUI1FAAAAAAAHAAQc2FsdEBub3RhdGlv +bnMub3BlbnBncGpzLm9yZ+jezP7s8tYraZzi4OK7o7gCmwwWIQRj+9UjCpWqzF+d +KhnNmoI61qelQgAAm1AA/RiLylQ6ycK7yQ3cLW399BnBCA4zHqfPffN10gXmBzen +AQChles9i2FccxuXO4X/lz2asd+Zp24kZXt2FRKSHhVQAg== +=sDzf +-----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/anda/terra/gpg-keys/RPM-GPG-KEY-terra42-extras b/anda/terra/gpg-keys/RPM-GPG-KEY-terra42-extras new file mode 100644 index 0000000000..28f4d7f3dd --- /dev/null +++ b/anda/terra/gpg-keys/RPM-GPG-KEY-terra42-extras @@ -0,0 +1,17 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GopenPGP 2.8.1 +Comment: https://gopenpgp.org + +xjMEZ63X3xYJKwYBBAHaRw8BAQdAyW3sTnrnrL82L/Vq996Adl1ngwm1fKFbBPNJ +yVq8Q2TNKVRlcnJhIDQyIC0gRXh0cmFzIDxzZWN1cml0eUBmeXJhbGFicy5jb20+ +wr8EExYIAHEFgmet198DCwkHCZBlDm3m42vVBzUUAAAAAAAcABBzYWx0QG5vdGF0 +aW9ucy5vcGVucGdwanMub3JnVXCpe/loAJD37z2+mtslmgIVCAMWAAICGQECmwMC +HgEWIQSwC0OJqvjwNhVAJhxlDm3m42vVBwAAupYA/j+WfJ83bbkM37t5NLEPnf2y +PKTzCEgFO6zxpJUxY9UWAP96xShDojeRsv5bEBBZtjZ5sEIid7CYxW8VxWU6SHon +CM44BGet198SCisGAQQBl1UBBQEBB0AauSxJQY1hPhFphtpaJdAPTzR+E2/2inhL +0ZhFWKPnXAMBCgnCrgQYFggAYAWCZ63X3wmQZQ5t5uNr1Qc1FAAAAAAAHAAQc2Fs +dEBub3RhdGlvbnMub3BlbnBncGpzLm9yZ4o8L99F30HKqHLvi2gYa04CmwwWIQSw +C0OJqvjwNhVAJhxlDm3m42vVBwAANT8BANSV/lG9JI3NRoRh5DWICAI3J74qwBLF +FZ5DYYHS5EKyAQC/D8uWKLse7zaAdMux+naTCVgJDG9QKq3P4gXvb+6SAg== +=kFE8 +-----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/anda/terra/gpg-keys/RPM-GPG-KEY-terra42-extras-source b/anda/terra/gpg-keys/RPM-GPG-KEY-terra42-extras-source new file mode 100644 index 0000000000..0737e04091 --- /dev/null +++ b/anda/terra/gpg-keys/RPM-GPG-KEY-terra42-extras-source @@ -0,0 +1,18 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GopenPGP 2.8.1 +Comment: https://gopenpgp.org + +xjMEZ63W+hYJKwYBBAHaRw8BAQdAye2MPbtYoXxUqtRFGma0H9gL7RHvWaHNY5ON +caH9KXfNMlRlcnJhIDQyIC0gRXh0cmFzIC0gU291cmNlIDxzZWN1cml0eUBmeXJh +bGFicy5jb20+wr8EExYIAHEFgmet1voDCwkHCZAG312XUsYC1jUUAAAAAAAcABBz +YWx0QG5vdGF0aW9ucy5vcGVucGdwanMub3JnJvS0jrDDgRKd7f3sHbIgTwIVCAMW +AAICGQECmwMCHgEWIQTIyVfeciGuWK6pPw8G312XUsYC1gAAsIAA/1svfGBdhsbe +LTZ1efX1wm2RyRLBPf4hjD5z3joE9D3zAQDuJ92i5IGM6s4njxXHrl+YQWj3hJQm +/ZTTwhpBbGLVBs44BGet1voSCisGAQQBl1UBBQEBB0DSPQ3lm0VrB3VJDiFnob/y +tZPQWpM2sWupPHG2SdqdUAMBCgnCrgQYFggAYAWCZ63W+gmQBt9dl1LGAtY1FAAA +AAAAHAAQc2FsdEBub3RhdGlvbnMub3BlbnBncGpzLm9yZ07s40JgMUXH5xP3J58C +5+4CmwwWIQTIyVfeciGuWK6pPw8G312XUsYC1gAAWNsBAPrEDGExSqu6muN4cimc +oleTXa1zliRF56/mZi51i6Y4AQCgJCxJxa5MpVNgrKc9+zATNgqMtkpR3bvS0ta/ ++OlbDQ== +=P8iJ +-----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/anda/terra/gpg-keys/RPM-GPG-KEY-terra42-mesa b/anda/terra/gpg-keys/RPM-GPG-KEY-terra42-mesa new file mode 100644 index 0000000000..b648afbee7 --- /dev/null +++ b/anda/terra/gpg-keys/RPM-GPG-KEY-terra42-mesa @@ -0,0 +1,17 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GopenPGP 2.8.1 +Comment: https://gopenpgp.org + +xjMEZ63XNRYJKwYBBAHaRw8BAQdAtb8PJJDaOV/bthrUxCBNfQG4LKHULOOii2Tf +V/T4LZnNJ1RlcnJhIDQyIC0gTWVzYSA8c2VjdXJpdHlAZnlyYWxhYnMuY29tPsK/ +BBMWCABxBYJnrdc1AwsJBwmQdy7hubHmNR81FAAAAAAAHAAQc2FsdEBub3RhdGlv +bnMub3BlbnBncGpzLm9yZ6TFZ17ldwmU4CYtpuXhflMCFQgDFgACAhkBApsDAh4B +FiEEIXhDV34au5kL7imady7hubHmNR8AAL0kAQDxAv22/EUoa1L8rBuuBtt8KWo8 +PbzQM0GkuEI05HbWbwEA+yngEIWQht6G243TAqFeuCNRTkwFVvVS/Ev3ktmuvQbO +OARnrdc1EgorBgEEAZdVAQUBAQdAO0HY0WRcLkCWcmHDUJSu9c0E35uBmebTKUSX +8giOf0wDAQoJwq4EGBYIAGAFgmet1zUJkHcu4bmx5jUfNRQAAAAAABwAEHNhbHRA +bm90YXRpb25zLm9wZW5wZ3Bqcy5vcme4cmRNuGeQK+2H7NDZjCIiApsMFiEEIXhD +V34au5kL7imady7hubHmNR8AAIJ4APoCNKyA1Wg8ExVcezLqi07f2nwd3Gf6Ex+p +mCV2yWgNbQD/VgZz4GKAtiASSYABb9cdfOoDs62V8jkG4TI296uXDAY= +=aqfL +-----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/anda/terra/gpg-keys/RPM-GPG-KEY-terra42-mesa-source b/anda/terra/gpg-keys/RPM-GPG-KEY-terra42-mesa-source new file mode 100644 index 0000000000..84029f9136 --- /dev/null +++ b/anda/terra/gpg-keys/RPM-GPG-KEY-terra42-mesa-source @@ -0,0 +1,18 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GopenPGP 2.8.1 +Comment: https://gopenpgp.org + +xjMEZ63XAhYJKwYBBAHaRw8BAQdAOSRhbgZpmBcWBFZpMOJ1d9xM3Y+0JhXpOXZD +axLhFpvNMFRlcnJhIDQyIC0gTWVzYSAtIFNvdXJjZSA8c2VjdXJpdHlAZnlyYWxh +YnMuY29tPsK/BBMWCABxBYJnrdcCAwsJBwmQYrP373Z5ubo1FAAAAAAAHAAQc2Fs +dEBub3RhdGlvbnMub3BlbnBncGpzLm9yZ1UIXHg0171aGTPWwhAZfO0CFQgDFgAC +AhkBApsDAh4BFiEECYnYXaJSWqKcOaHIYrP373Z5uboAAHZtAQDw+4kcdGLW3XVi +agJowJExmvJnVsBNj+bivKzH7po+jQD/eJAXIaSNHGDITd74584mbU4OM+kSr7q9 +2bLI2Yfa6gzOOARnrdcCEgorBgEEAZdVAQUBAQdAQ9dxluUvpN+6XqbMIqYMyMx3 +QVdV4UrA3aGyL01i7gIDAQoJwq0EGBYIAGAFgmet1wIJkGKz9+92ebm6NRQAAAAA +ABwAEHNhbHRAbm90YXRpb25zLm9wZW5wZ3Bqcy5vcmdyPu3xF8K0VOxKOmozcBSm +ApsMFiEECYnYXaJSWqKcOaHIYrP373Z5uboAAIcQAPi96Q9sn3nSakjoVS9HyEVz +QoSFeoFHcMEAStEchxeFAPsGCAC6l3PNpg2d1CiDehQxiF6E52KxKGzZJKZ8doOH +Cg== +=91sI +-----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/anda/terra/gpg-keys/RPM-GPG-KEY-terra42-multimedia b/anda/terra/gpg-keys/RPM-GPG-KEY-terra42-multimedia new file mode 100644 index 0000000000..697353906e --- /dev/null +++ b/anda/terra/gpg-keys/RPM-GPG-KEY-terra42-multimedia @@ -0,0 +1,17 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GopenPGP 2.8.1 +Comment: https://gopenpgp.org + +xjMEaRt2rhYJKwYBBAHaRw8BAQdAJIqGX3byOwXmhwPsOdSwMtQLX8/2qOvRx9Tg +MyVIDRbNK1RlcnJhIDQyIE11bHRpbWVkaWEgPHNlY3VyaXR5QGZ5cmFsYWJzLmNv +bT7CvwQTFggAcQWCaRt2rgMLCQcJkJooZh2o6voMNRQAAAAAABwAEHNhbHRAbm90 +YXRpb25zLm9wZW5wZ3Bqcy5vcmdUGLq+f8XGbPvCFtLmDnjpAhUIAxYAAgIZAQKb +AwIeARYhBERKDUPK2KC2cWnDZpooZh2o6voMAABPrgEAgnj1qBiMYliBMzdIVez7 +cfF2EChqUeX7ABTkx1YgIUsBAPWev9Kjn4m5a2ympyhVQqrNb11MPraTyi4CrDSV +fgEAzjgEaRt2rhIKKwYBBAGXVQEFAQEHQO4hBC3Swk3E5m1YnNNJ4+xbvbQFCpmO +zoRtiAX1rOwrAwEKCcKuBBgWCABgBYJpG3auCZCaKGYdqOr6DDUUAAAAAAAcABBz +YWx0QG5vdGF0aW9ucy5vcGVucGdwanMub3JnPNngBcT1cLB6faBHQ8cjSQKbDBYh +BERKDUPK2KC2cWnDZpooZh2o6voMAACCbAEAnFHSR80tTFKiC6a1RyrmVTYi6M9E +IcUa7SwDTHhUTuEA/jXzBjGHeVqOlw4xd2UVpBk9WwytNO6Wyn+8UCf4vIsB +=qWZ1 +-----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/anda/terra/gpg-keys/RPM-GPG-KEY-terra42-multimedia-source b/anda/terra/gpg-keys/RPM-GPG-KEY-terra42-multimedia-source new file mode 100644 index 0000000000..962b2e8057 --- /dev/null +++ b/anda/terra/gpg-keys/RPM-GPG-KEY-terra42-multimedia-source @@ -0,0 +1,18 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GopenPGP 2.8.1 +Comment: https://gopenpgp.org + +xjMEaRt2uRYJKwYBBAHaRw8BAQdAotUH95n0pMtlJVkooGwnHk8aoyBNgNg5Augx +2Q5Bxp3NNFRlcnJhIDQyIE11bHRpbWVkaWEgLSBTb3VyY2UgPHNlY3VyaXR5QGZ5 +cmFsYWJzLmNvbT7CvwQTFggAcQWCaRt2uQMLCQcJkJ0f42kgrVlWNRQAAAAAABwA +EHNhbHRAbm90YXRpb25zLm9wZW5wZ3Bqcy5vcmcJNLnp+ovNxYNDUqsGO0cTAhUI +AxYAAgIZAQKbAwIeARYhBBcXlah0SbmscT5q450f42kgrVlWAADwFAD/YHL2vzVe ++KaftA/vK6pkqMHecL5z/msdayB3/Fo7mSgA/0ONEi/K6E+TSaUCdLSX6aXgH+Gs +azI54t45sPIL3/YJzjgEaRt2uRIKKwYBBAGXVQEFAQEHQIv2FHLqNguilmAbo9l/ +3UJKl7rwxNZbbcWi1YUsDkNkAwEKCcKuBBgWCABgBYJpG3a5CZCdH+NpIK1ZVjUU +AAAAAAAcABBzYWx0QG5vdGF0aW9ucy5vcGVucGdwanMub3Jn1mdt1Bg/5RO3HA/c +WOl2XAKbDBYhBBcXlah0SbmscT5q450f42kgrVlWAAAv8QEA31GY56DmnlA2lnLq +NR52AV70ooxGO/D7y27zTEhrBc0A/01YnP/Eade/pzg4rA8kgHXZ8Zdbxul5yrRt +cNgwWdsP +=CSCO +-----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/anda/terra/gpg-keys/RPM-GPG-KEY-terra42-nvidia b/anda/terra/gpg-keys/RPM-GPG-KEY-terra42-nvidia new file mode 100644 index 0000000000..07e9a560b1 --- /dev/null +++ b/anda/terra/gpg-keys/RPM-GPG-KEY-terra42-nvidia @@ -0,0 +1,17 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GopenPGP 2.8.1 +Comment: https://gopenpgp.org + +xjMEZ63XPxYJKwYBBAHaRw8BAQdAGmlo34ZwNchn9Yn7dOvUyy+ZLOaq18i6njFD +PAobSK3NKVRlcnJhIDQyIC0gTlZJRElBIDxzZWN1cml0eUBmeXJhbGFicy5jb20+ +wr8EExYIAHEFgmet1z8DCwkHCZDMSjkwcfwU1TUUAAAAAAAcABBzYWx0QG5vdGF0 +aW9ucy5vcGVucGdwanMub3Jnrqkj4i+VzxAMdOTllXrGDQIVCAMWAAICGQECmwMC +HgEWIQSm48G+AzqWactGh37MSjkwcfwU1QAATHwBALsUatZQQWIf3I61Qit1PA/7 +PIoaNyWifivcfqYdK/f9AP9X99JHBJVs5xFjvEFmqAWJo2dd7hD2RJlY2UiOHuUV +D844BGet1z8SCisGAQQBl1UBBQEBB0DOpJF2X6kEOko4Hm3g9A2pxyoSWlW1PRxh +KjeMzUO4cAMBCgnCrgQYFggAYAWCZ63XPwmQzEo5MHH8FNU1FAAAAAAAHAAQc2Fs +dEBub3RhdGlvbnMub3BlbnBncGpzLm9yZ5P7qAX7/0LAkM14cot7elgCmwwWIQSm +48G+AzqWactGh37MSjkwcfwU1QAAex0A/0sFOvL0qLqPmogrqnZwV03NJd+CucoR +Kiv1H6uG9ugrAQC1nowzOUHx3DygSkS6J/buwxWnRBS7Pr0bFXra4SxHDg== +=Je4u +-----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/anda/terra/gpg-keys/RPM-GPG-KEY-terra42-nvidia-source b/anda/terra/gpg-keys/RPM-GPG-KEY-terra42-nvidia-source new file mode 100644 index 0000000000..f5a0a61914 --- /dev/null +++ b/anda/terra/gpg-keys/RPM-GPG-KEY-terra42-nvidia-source @@ -0,0 +1,18 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GopenPGP 2.8.1 +Comment: https://gopenpgp.org + +xjMEZ63XKBYJKwYBBAHaRw8BAQdApw35PKnUK3x4XobOeUqxnCF/Vqg1YgjUH8S+ +Jjw+jIrNMlRlcnJhIDQyIC0gTlZJRElBIC0gU291cmNlIDxzZWN1cml0eUBmeXJh +bGFicy5jb20+wr8EExYIAHEFgmet1ygDCwkHCZBQakDIjcUseDUUAAAAAAAcABBz +YWx0QG5vdGF0aW9ucy5vcGVucGdwanMub3JnP0L7kI/+qCAy6NZIaYaz6AIVCAMW +AAICGQECmwMCHgEWIQS5ZIoALrYxgux/8oVQakDIjcUseAAAy2kA/27Pyofh25R+ +B4hl80BrTH7sPVqNPdn39xhhLUKYtp+0AQC3wM/00zx3C17ZuoZFsn19HguE4vP+ +AB4A7kpBJbfRBc44BGet1ygSCisGAQQBl1UBBQEBB0COAaQP+TnkYuRUMUCVOWCH +mwB6na2RIeiiUfzJ4wAfIgMBCgnCrgQYFggAYAWCZ63XKAmQUGpAyI3FLHg1FAAA +AAAAHAAQc2FsdEBub3RhdGlvbnMub3BlbnBncGpzLm9yZ64sHb5DY0Bp/YaX5d6g +NOcCmwwWIQS5ZIoALrYxgux/8oVQakDIjcUseAAAMuIBAPoxXaV3C7q+hp0XG/EK +ThAYckITMXMgnL9jou9Q0/VVAQD37AFdpcMdPPM0gj3jyOC/q69KmbA0xQ1EzGza +bpT1BA== +=U/Fo +-----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/anda/terra/gpg-keys/RPM-GPG-KEY-terra42-source b/anda/terra/gpg-keys/RPM-GPG-KEY-terra42-source new file mode 100644 index 0000000000..3cf1e4bf72 --- /dev/null +++ b/anda/terra/gpg-keys/RPM-GPG-KEY-terra42-source @@ -0,0 +1,17 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GopenPGP 2.8.1 +Comment: https://gopenpgp.org + +xjMEZ63W7BYJKwYBBAHaRw8BAQdAIyyqBBDtGDhEtVdBGsR7LYVVvzsAizlrbiSq +YXcyZeXNKVRlcnJhIDQyIC0gU291cmNlIDxzZWN1cml0eUBmeXJhbGFicy5jb20+ +wr8EExYIAHEFgmet1uwDCwkHCZCRQw4WmS/skDUUAAAAAAAcABBzYWx0QG5vdGF0 +aW9ucy5vcGVucGdwanMub3JnjsCjTVqxNmTzTahSHY0CNwIVCAMWAAICGQECmwMC +HgEWIQRigrgZdcyFZS9xeIiRQw4WmS/skAAAV38BAJCQw/nkNUAIIhNe2stwuMjT +gvJi56Rhnx0ZzjHNRHWkAQDStcKADCcGVDHHTVa776Hx5RB4+Irs6tNvZHiQq3+m +Dc44BGet1uwSCisGAQQBl1UBBQEBB0BpxIwrj2G/NhCgAPybqMF1UB69Wikw+w4J +/ODAl7w6UQMBCgnCrgQYFggAYAWCZ63W7AmQkUMOFpkv7JA1FAAAAAAAHAAQc2Fs +dEBub3RhdGlvbnMub3BlbnBncGpzLm9yZ4EOXMTm3PVUs1dsPAtbP6sCmwwWIQRi +grgZdcyFZS9xeIiRQw4WmS/skAAAyN0A+wSKWAJRMwP7Jqa9/TeQpBPWroYwOkL0 +m8zbB4gKzzgMAP9SJV4S7Wny71/XhuI7bLSMRwAvlZgMa9W+Leh/ZVO2Dg== +=q3NJ +-----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/anda/terra/gpg-keys/RPM-GPG-KEY-terra43 b/anda/terra/gpg-keys/RPM-GPG-KEY-terra43 new file mode 100644 index 0000000000..51e6d673ab --- /dev/null +++ b/anda/terra/gpg-keys/RPM-GPG-KEY-terra43 @@ -0,0 +1,17 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GopenPGP 2.8.1 +Comment: https://gopenpgp.org + +xjMEaKCQdBYJKwYBBAHaRw8BAQdAs1zgL1qlFH4VZSb//CBz8fhJgjQvFyNg1NVy +SIJ397LNIFRlcnJhIDQzIDxzZWN1cml0eUBmeXJhbGFicy5jb20+wr8EExYIAHEF +gmigkHQDCwkHCZDkPb/gXE+SozUUAAAAAAAcABBzYWx0QG5vdGF0aW9ucy5vcGVu +cGdwanMub3JnkmQxVVyOSQp9QoPDsNMF8wIVCAMWAAICGQECmwMCHgEWIQRH96UG +Djj8B/Z00RvkPb/gXE+SowAAqwgA/3wXrVHUpxbd/tAk+LkGWEjsyXJMabOjP41Q +b8+zogkiAP4/Nj9QFuy9TrMjQobp9/cUrdHbiLZucw6tjdIjHjOHAc44BGigkHQS +CisGAQQBl1UBBQEBB0COhP3bhGe/shwm4P7sP6C9sWoVJCYHQfsZilScN5qxEAMB +CgnCrgQYFggAYAWCaKCQdAmQ5D2/4FxPkqM1FAAAAAAAHAAQc2FsdEBub3RhdGlv +bnMub3BlbnBncGpzLm9yZ9o22rJedZyiUDtlpLa7MY8CmwwWIQRH96UGDjj8B/Z0 +0RvkPb/gXE+SowAAvm4A/0/XD4JUYLEpj4IQrym+xVUXq5g/Uif0eraipWSCJKj0 +AP0UXS1bkLeIIy+Kkm7fm6r4RBoyONkgW3iVo58M5jCqAQ== +=0psn +-----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/anda/terra/gpg-keys/RPM-GPG-KEY-terra43-extras b/anda/terra/gpg-keys/RPM-GPG-KEY-terra43-extras new file mode 100644 index 0000000000..c6530eafa6 --- /dev/null +++ b/anda/terra/gpg-keys/RPM-GPG-KEY-terra43-extras @@ -0,0 +1,17 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GopenPGP 2.8.1 +Comment: https://gopenpgp.org + +xjMEaKCRLBYJKwYBBAHaRw8BAQdALdD7P11YqRfjwPI7Qu6nlpRSK5ucVMG0Vz2Q +E0sKi3jNKVRlcnJhIDQzIC0gRXh0cmFzIDxzZWN1cml0eUBmeXJhbGFicy5jb20+ +wr8EExYIAHEFgmigkSwDCwkHCZClEn7cMiu5oDUUAAAAAAAcABBzYWx0QG5vdGF0 +aW9ucy5vcGVucGdwanMub3Jni6X4JhZQfASfBs+294mchwIVCAMWAAICGQECmwMC +HgEWIQRtnDFjloqXZ+4cpQulEn7cMiu5oAAArZ0A/0X7GdKlxArrDNtF7EF1ceuA +yez29djqtDsFZmSiTNF+AQCmjThaxGIH1Y+wgrf5OSvLmv8FgedgZbkWScq+eg9S +A844BGigkSwSCisGAQQBl1UBBQEBB0BQx8IicuGtPqKd6YNtQEHcBAjgy1pMPeU/ +ioqL6fMBRQMBCgnCrgQYFggAYAWCaKCRLAmQpRJ+3DIruaA1FAAAAAAAHAAQc2Fs +dEBub3RhdGlvbnMub3BlbnBncGpzLm9yZwlulGSKWDo9JyyNcLvxFlICmwwWIQRt +nDFjloqXZ+4cpQulEn7cMiu5oAAAVwwA/3qFVaN6Vvu0KUJQb+eRiBqw1l/B8L85 +K4eGOLTAgQeiAP0dtbsM4p1408nl0s84V0BL2ESlxcoViMM963SlzbkMAQ== +=fEWZ +-----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/anda/terra/gpg-keys/RPM-GPG-KEY-terra43-extras-source b/anda/terra/gpg-keys/RPM-GPG-KEY-terra43-extras-source new file mode 100644 index 0000000000..179c8c9dd0 --- /dev/null +++ b/anda/terra/gpg-keys/RPM-GPG-KEY-terra43-extras-source @@ -0,0 +1,18 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GopenPGP 2.8.1 +Comment: https://gopenpgp.org + +xjMEaKCQ5BYJKwYBBAHaRw8BAQdAz4N+iAGg/EPzkE1nJXrLLObDivkWGQwjllct +NRhT4//NMlRlcnJhIDQzIC0gRXh0cmFzIC0gU291cmNlIDxzZWN1cml0eUBmeXJh +bGFicy5jb20+wr8EExYIAHEFgmigkOQDCwkHCZA5LKQakNAXQzUUAAAAAAAcABBz +YWx0QG5vdGF0aW9ucy5vcGVucGdwanMub3JnTwOMDSzHoPgSi4EiIZj9TgIVCAMW +AAICGQECmwMCHgEWIQQhd8oeyTo0BFPU9NQ5LKQakNAXQwAA3h8A/RGgHs/5KZpo +wIiinadaBrdPh9AQFMDv3IQiMDfchZk+AP0dwl7uxHWlCPFpZQY+M6tMKDnBDEtw +2BzFgc8pEc2sBc44BGigkOQSCisGAQQBl1UBBQEBB0DJWIj3iQoWICS35ZF1lEMJ +E5PCguE7o6X2trMErY6+awMBCgnCrgQYFggAYAWCaKCQ5AmQOSykGpDQF0M1FAAA +AAAAHAAQc2FsdEBub3RhdGlvbnMub3BlbnBncGpzLm9yZz5ewBRLWA5FoNtN2fLG +9AkCmwwWIQQhd8oeyTo0BFPU9NQ5LKQakNAXQwAAqsYBANv9AH+uJj60xeR7nJ2l +dRo5bac01dYlSLsaiOyCzYYZAQCdH8VjTxabDhK+AB7khZ0L2ze5O0OGDH8OGTmv +24DkAQ== +=so35 +-----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/anda/terra/gpg-keys/RPM-GPG-KEY-terra43-mesa b/anda/terra/gpg-keys/RPM-GPG-KEY-terra43-mesa new file mode 100644 index 0000000000..2827711eda --- /dev/null +++ b/anda/terra/gpg-keys/RPM-GPG-KEY-terra43-mesa @@ -0,0 +1,17 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GopenPGP 2.8.1 +Comment: https://gopenpgp.org + +xjMEaKCRGBYJKwYBBAHaRw8BAQdA49V/I20uzXcubtcL7umBhSxg2DZhhr7Z6Wgx +BEzQmqPNJ1RlcnJhIDQzIC0gTWVzYSA8c2VjdXJpdHlAZnlyYWxhYnMuY29tPsK/ +BBMWCABxBYJooJEYAwsJBwmQOAvqfXggK3M1FAAAAAAAHAAQc2FsdEBub3RhdGlv +bnMub3BlbnBncGpzLm9yZ+QtILt69Cdog2Ki/nZwRUsCFQgDFgACAhkBApsDAh4B +FiEEWOoDjc3pwdLb/YxjOAvqfXggK3MAAAhHAP9aEfXKnUTTyD1Nrexo7cLFCo3i +3YcBQWK1CMyRBzT8EAEA0lJGvvc9vf285xeXD4I69ONzPrEmvzBdrfDHZ1NLSg/O +OARooJEYEgorBgEEAZdVAQUBAQdAlLqfRZE+4yCn+lsz7WSdGXpd1rh3XI8rirGH +8EwZoQUDAQoJwq4EGBYIAGAFgmigkRgJkDgL6n14ICtzNRQAAAAAABwAEHNhbHRA +bm90YXRpb25zLm9wZW5wZ3Bqcy5vcmfGRVTrM+1QtYGHVHeU63H2ApsMFiEEWOoD +jc3pwdLb/YxjOAvqfXggK3MAAGEEAQDZ7N82lf46kZN36jdfERsBdRIL5wr5qP/l +8JmfmX3AlAD9EFnvHC4ZBVJ+xa9vpnjHYcGuK5n8AaJNQqlYuVbrzg8= +=9qUF +-----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/anda/terra/gpg-keys/RPM-GPG-KEY-terra43-mesa-source b/anda/terra/gpg-keys/RPM-GPG-KEY-terra43-mesa-source new file mode 100644 index 0000000000..25ea451d7d --- /dev/null +++ b/anda/terra/gpg-keys/RPM-GPG-KEY-terra43-mesa-source @@ -0,0 +1,18 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GopenPGP 2.8.1 +Comment: https://gopenpgp.org + +xjMEaKCQ+hYJKwYBBAHaRw8BAQdAMrh1ywA+c4w0z7CKN0kW73vWJp+xsGM2T4jY +7bG9wI3NMFRlcnJhIDQzIC0gTWVzYSAtIFNvdXJjZSA8c2VjdXJpdHlAZnlyYWxh +YnMuY29tPsK/BBMWCABxBYJooJD6AwsJBwmQuNfsVNTe/8w1FAAAAAAAHAAQc2Fs +dEBub3RhdGlvbnMub3BlbnBncGpzLm9yZ3kWgtXElVqtt5OlEyG84isCFQgDFgAC +AhkBApsDAh4BFiEEUDMARAKNpzwoefghuNfsVNTe/8wAAJ38AP9iorPMEoaalu8x +EXusi8MdLrXMmIsHK/ioedE59QatRQEAovcecrkTa9wcdPcrcwpiY3GAsFFgtMtQ +E5SteYyqQQLOOARooJD6EgorBgEEAZdVAQUBAQdAivkLnhRwjdpsc9bNwxY1BL2C +wDRr+4SaEfQR/JqodCADAQoJwq4EGBYIAGAFgmigkPoJkLjX7FTU3v/MNRQAAAAA +ABwAEHNhbHRAbm90YXRpb25zLm9wZW5wZ3Bqcy5vcmfrQHbHHmkj5V1VzoIICFRg +ApsMFiEEUDMARAKNpzwoefghuNfsVNTe/8wAABQUAP4xIImEx4yxGLxttbj/LOgd +lDHAXvF1W7L9RXhkruQQmAD/SyumgFUABVYQEOCkc7R65Xc282+haMF1VjM7pFF9 +PQk= +=6Qvh +-----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/anda/terra/gpg-keys/RPM-GPG-KEY-terra43-multimedia b/anda/terra/gpg-keys/RPM-GPG-KEY-terra43-multimedia new file mode 100644 index 0000000000..8568f5959e --- /dev/null +++ b/anda/terra/gpg-keys/RPM-GPG-KEY-terra43-multimedia @@ -0,0 +1,17 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GopenPGP 2.8.1 +Comment: https://gopenpgp.org + +xjMEaRPTVRYJKwYBBAHaRw8BAQdA02b+DeZpOzUvtMJTmYZ/XVsmQustZWnQ2lAk +YzcV2BTNK1RlcnJhIDQzIE11bHRpbWVkaWEgPHNlY3VyaXR5QGZ5cmFsYWJzLmNv +bT7CvwQTFggAcQWCaRPTVQMLCQcJkH8VenemEjhvNRQAAAAAABwAEHNhbHRAbm90 +YXRpb25zLm9wZW5wZ3Bqcy5vcmck61qdCCumxNTartbemDFEAhUIAxYAAgIZAQKb +AwIeARYhBBMpkOiU77QZFdL9k38VenemEjhvAACvfwD+K5kK5Xcr9CGpAkGrU3FO +uDPKQpvHvlVEE1G4qg88C+sBANQCY5rFMsMpqpcIlr7j0Nw/g5I72Rds6AnE1qBB +D3QHzjgEaRPTVRIKKwYBBAGXVQEFAQEHQHoTwzPhMdnxLmalMkdTBTiiULhz4ilp +20Qo9FNoaF4oAwEKCcKuBBgWCABgBYJpE9NVCZB/FXp3phI4bzUUAAAAAAAcABBz +YWx0QG5vdGF0aW9ucy5vcGVucGdwanMub3Jnypc9E/awm4XjitMFmmmyDgKbDBYh +BBMpkOiU77QZFdL9k38VenemEjhvAAAYWAEAl5SNYGTdERo2IyULLA+TME1fMKga +NeTWF4kXEmOjHaoBAOqcfZ8DLbKEGGKBuIxOXU5XzkBGUEV1EhdOIvyuMUED +=YqJ4 +-----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/anda/terra/gpg-keys/RPM-GPG-KEY-terra43-multimedia-source b/anda/terra/gpg-keys/RPM-GPG-KEY-terra43-multimedia-source new file mode 100644 index 0000000000..228b61f511 --- /dev/null +++ b/anda/terra/gpg-keys/RPM-GPG-KEY-terra43-multimedia-source @@ -0,0 +1,18 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GopenPGP 2.8.1 +Comment: https://gopenpgp.org + +xjMEaRPTVhYJKwYBBAHaRw8BAQdAmxhfuYyPI/mBJmNAYbiU1AEclfw/NjOGXTvH +W8g3FrLNNFRlcnJhIDQzIE11bHRpbWVkaWEgLSBTb3VyY2UgPHNlY3VyaXR5QGZ5 +cmFsYWJzLmNvbT7CvwQTFggAcQWCaRPTVgMLCQcJkGRPeB2TE5q8NRQAAAAAABwA +EHNhbHRAbm90YXRpb25zLm9wZW5wZ3Bqcy5vcmcm8JwRukPbtcFZTy4BmtqWAhUI +AxYAAgIZAQKbAwIeARYhBBhiYA8Oi+T9nZDkiWRPeB2TE5q8AACLTAEA0dy5yQ6y +LTSkVJzreB9+Zj8XQKG0nKlW+4EggAyrvxMA/iN5lG5nN+3GuzY2IUCyPUJSJ2Qc +wgOwGpW2Ee/YxRoIzjgEaRPTVhIKKwYBBAGXVQEFAQEHQI7Ah2D/Y/yy7HgGMnAH +otvZ68Jbqu6ZNDllyiAdcudEAwEKCcKuBBgWCABgBYJpE9NWCZBkT3gdkxOavDUU +AAAAAAAcABBzYWx0QG5vdGF0aW9ucy5vcGVucGdwanMub3Jn0E3cDSZlal8gaEYc +bQukuAKbDBYhBBhiYA8Oi+T9nZDkiWRPeB2TE5q8AAAqxQD/eLsluX13+mQJLWD/ +O4bFb6XH1pddCp6U3CjAVMzfz6UA/jtVl1s+OeSJ1wueDu48bGmDV9XfPTCD1Y23 +GzOENyUK +=43UV +-----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/anda/terra/gpg-keys/RPM-GPG-KEY-terra43-nvidia b/anda/terra/gpg-keys/RPM-GPG-KEY-terra43-nvidia new file mode 100644 index 0000000000..61607390df --- /dev/null +++ b/anda/terra/gpg-keys/RPM-GPG-KEY-terra43-nvidia @@ -0,0 +1,17 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GopenPGP 2.8.1 +Comment: https://gopenpgp.org + +xjMEaKCRIBYJKwYBBAHaRw8BAQdAEI9XX5YOJse7OEV6mbI0Rgz2xqD9Ki0qqfeQ +bQhr6TDNKVRlcnJhIDQzIC0gTlZJRElBIDxzZWN1cml0eUBmeXJhbGFicy5jb20+ +wr8EExYIAHEFgmigkSADCwkHCZDVPAisjBietDUUAAAAAAAcABBzYWx0QG5vdGF0 +aW9ucy5vcGVucGdwanMub3JneSPpcdgZhVW81TmAfShd4wIVCAMWAAICGQECmwMC +HgEWIQS2mUjuQFITx/hS42bVPAisjBietAAAf+AA/1USzc3M5e8ZOI6+drPMnYAZ +OTPv2G5mkf1xIJP5OoRLAQCHJk9q6DnXr3Z4V2zqWrCdgdFwRcqhQ2+2Ef80tnU4 +D844BGigkSASCisGAQQBl1UBBQEBB0ArmoaClrRxi68vqeaZ5qmjdGA3Ln82/s8G +7HP9wlMrMgMBCgnCrgQYFggAYAWCaKCRIAmQ1TwIrIwYnrQ1FAAAAAAAHAAQc2Fs +dEBub3RhdGlvbnMub3BlbnBncGpzLm9yZwWJzuNvI9U8AYsuZFrYTOgCmwwWIQS2 +mUjuQFITx/hS42bVPAisjBietAAATMYBAL9p3vdla6uy56kvYhvD05pYs++ngG3Q +VO1THLAyHa1sAQDWieBNTJuxvzP9efUAZP1O1qiNVV8ZNkd+JYb9nwOaAw== +=3/wf +-----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/anda/terra/gpg-keys/RPM-GPG-KEY-terra43-nvidia-source b/anda/terra/gpg-keys/RPM-GPG-KEY-terra43-nvidia-source new file mode 100644 index 0000000000..e1f3fa154a --- /dev/null +++ b/anda/terra/gpg-keys/RPM-GPG-KEY-terra43-nvidia-source @@ -0,0 +1,18 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GopenPGP 2.8.1 +Comment: https://gopenpgp.org + +xjMEaKCRAxYJKwYBBAHaRw8BAQdAyCgucNpGwqgbfgObhSbPC8HRJklnA0vKhPxm +MtYNePfNMlRlcnJhIDQzIC0gTlZJRElBIC0gU291cmNlIDxzZWN1cml0eUBmeXJh +bGFicy5jb20+wr8EExYIAHEFgmigkQMDCwkHCZB8qIRiRPheLTUUAAAAAAAcABBz +YWx0QG5vdGF0aW9ucy5vcGVucGdwanMub3Jn8bDutbp2nz3RCxWMmJvRlgIVCAMW +AAICGQECmwMCHgEWIQS85c0+xB9E8SX2qLh8qIRiRPheLQAAL7oBAM2cUJyL6Iop +KU+7SWMxtcTija2kikYuveT9MdZtcGBYAP9j4HMgry653IPowlJIl1ULCc5YLblA +Svl6XVV4U6HRAM44BGigkQMSCisGAQQBl1UBBQEBB0Bs/4uEzwWlwj9fBrQIrpK/ +l9EKgcXKp2jq9M/iuNJcdwMBCgnCrgQYFggAYAWCaKCRAwmQfKiEYkT4Xi01FAAA +AAAAHAAQc2FsdEBub3RhdGlvbnMub3BlbnBncGpzLm9yZ1VHHQp9aFO1fRZcJz5c +2U0CmwwWIQS85c0+xB9E8SX2qLh8qIRiRPheLQAAHKsA/2atjOhB8EWBMs6wkTaT +mNEx/6KSe9JkarKG9zz1DBgCAQDBwiFHyZv9vNflTB3UtWj5l6QywtaAJiu14N3/ +4gNFBw== +=ZFRz +-----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/anda/terra/gpg-keys/RPM-GPG-KEY-terra43-source b/anda/terra/gpg-keys/RPM-GPG-KEY-terra43-source new file mode 100644 index 0000000000..34903072b2 --- /dev/null +++ b/anda/terra/gpg-keys/RPM-GPG-KEY-terra43-source @@ -0,0 +1,17 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Comment: https://gopenpgp.org +Version: GopenPGP 2.8.1 + +xjMEaKCQhxYJKwYBBAHaRw8BAQdAuahm/51wL6bYJzknjti1q487qXg8Q+zk/8fv +7ENxBAHNKVRlcnJhIDQzIC0gU291cmNlIDxzZWN1cml0eUBmeXJhbGFicy5jb20+ +wr8EExYIAHEFgmigkIcDCwkHCZChQ6sLN1k2mDUUAAAAAAAcABBzYWx0QG5vdGF0 +aW9ucy5vcGVucGdwanMub3JnStML7sYV0uqxZlRbk5Mc5gIVCAMWAAICGQECmwMC +HgEWIQTX4cp2U9jkjb6uVP6hQ6sLN1k2mAAAO9YBAIyybtP0R62vYxqApg2eB9sH +T2A5vZic8x0978jKd6IJAQDJ73gWr5HWRcY8xSmXcnFRdCWjGhkOwUq+TdxJ0s9Z +Bs44BGigkIcSCisGAQQBl1UBBQEBB0AkiIYQEgUD0706RKpcjc+oVoVg8V1SVNct +e09RFuuxHwMBCgnCrgQYFggAYAWCaKCQhwmQoUOrCzdZNpg1FAAAAAAAHAAQc2Fs +dEBub3RhdGlvbnMub3BlbnBncGpzLm9yZ/A0H9j0oAxtuo/c4/ETa7kCmwwWIQTX +4cp2U9jkjb6uVP6hQ6sLN1k2mAAAiOcBAIyu4CX5lOJxrGbj1OuedfNmXm9a3Ulj +AfhICzKV779IAQCjC/qosWMgfL+CYTKUKz2L5+4MJxO9F7zoPoEhKznMDw== +=NMUM +-----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/anda/terra/gpg-keys/RPM-GPG-KEY-terra44 b/anda/terra/gpg-keys/RPM-GPG-KEY-terra44 new file mode 100644 index 0000000000..5e6de513de --- /dev/null +++ b/anda/terra/gpg-keys/RPM-GPG-KEY-terra44 @@ -0,0 +1,17 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GopenPGP 2.8.1 +Comment: https://gopenpgp.org + +xjMEaYpzVxYJKwYBBAHaRw8BAQdAb3DsTkfuyHxBUTJh9KY5K9Zmd3HHNlr3nr7j +DqIfJHbNIFRlcnJhIDQ0IDxzZWN1cml0eUBmeXJhbGFicy5jb20+wr8EExYIAHEF +gmmKc1cDCwkHCZAAzatD3iJtbzUUAAAAAAAcABBzYWx0QG5vdGF0aW9ucy5vcGVu +cGdwanMub3Jn6H9BnkxjSlvFTWI4j1lWagIVCAMWAAICGQECmwMCHgEWIQSuCRV6 +TeiLSX6h1dMAzatD3iJtbwAAkxUA/AhjnPTnXX4U50jtWrE8/33CXkR/kMvp8y2m +jR9jrEzPAQCEA1Jx8eBbBo7RySbF1D8AoYGGvdy5Igmsz7/FCq4DAM44BGmKc1cS +CisGAQQBl1UBBQEBB0BKc0gRkEY9/IuABq32DNPxZN0AQo41geDGywcbV47JSQMB +CgnCrgQYFggAYAWCaYpzVwmQAM2rQ94ibW81FAAAAAAAHAAQc2FsdEBub3RhdGlv +bnMub3BlbnBncGpzLm9yZ8nm3oDFHJ/SnE3gwb0ZR04CmwwWIQSuCRV6TeiLSX6h +1dMAzatD3iJtbwAAjYoA/2P25j8wdGP/TdF4mhNiN/6cBNL08/wmqDTJooYy2GP+ +AQCJp+Vj5nfTYUO7+6WvES4cFaaZJhY8CsjJwx6k8xhsCA== +=KXwo +-----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/anda/terra/gpg-keys/RPM-GPG-KEY-terra44-extras b/anda/terra/gpg-keys/RPM-GPG-KEY-terra44-extras new file mode 100644 index 0000000000..f0c25fef1e --- /dev/null +++ b/anda/terra/gpg-keys/RPM-GPG-KEY-terra44-extras @@ -0,0 +1,17 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GopenPGP 2.8.1 +Comment: https://gopenpgp.org + +xjMEaYpzWBYJKwYBBAHaRw8BAQdAIzdUq01dXkOIYGoFAa7/mRGeGEr1wUcY/pam +pmJ4mNjNKVRlcnJhIDQ0IC0gRXh0cmFzIDxzZWN1cml0eUBmeXJhbGFicy5jb20+ +wr8EExYIAHEFgmmKc1gDCwkHCZBgCNCnmiP5gjUUAAAAAAAcABBzYWx0QG5vdGF0 +aW9ucy5vcGVucGdwanMub3JnOCdKgJrl62SYBRsg6kNz2gIVCAMWAAICGQECmwMC +HgEWIQSIWqSyA1VEtFC/DVlgCNCnmiP5ggAAFQoBAObMv2serV7KtDyflGPyb8dL +tMaibMvkswHEbqukTG93AP9a1EPaHwtD5tZXxxUynli8UhGqHlvBQ3fL8Q6bqSCM +CM44BGmKc1gSCisGAQQBl1UBBQEBB0Aw+7djS+yUI2MvGQPrakwKGrIC8J+qQZmc +HuBshCzjCwMBCgnCrgQYFggAYAWCaYpzWAmQYAjQp5oj+YI1FAAAAAAAHAAQc2Fs +dEBub3RhdGlvbnMub3BlbnBncGpzLm9yZzYfacTCU+Oed9RIlb2EZdwCmwwWIQSI +WqSyA1VEtFC/DVlgCNCnmiP5ggAAzZ4A/3plxYks6NIEZIGCLFk5pg0XNQ0ThvCi +R+zehKfHi6UFAP9GYJPck4WUb8BVfN6C7owh0SdhQ0rjXHoUwK1RHniwBw== +=X09n +-----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/anda/terra/gpg-keys/RPM-GPG-KEY-terra44-extras-source b/anda/terra/gpg-keys/RPM-GPG-KEY-terra44-extras-source new file mode 100644 index 0000000000..dfbb936665 --- /dev/null +++ b/anda/terra/gpg-keys/RPM-GPG-KEY-terra44-extras-source @@ -0,0 +1,18 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GopenPGP 2.8.1 +Comment: https://gopenpgp.org + +xjMEaYpzWRYJKwYBBAHaRw8BAQdAF3LIndu3tcRaDnqqthGgFqSZWya0I7/Pl7rs +0NeeGHzNMlRlcnJhIDQ0IC0gRXh0cmFzIC0gU291cmNlIDxzZWN1cml0eUBmeXJh +bGFicy5jb20+wr8EExYIAHEFgmmKc1kDCwkHCZDXVlwUOcXHhTUUAAAAAAAcABBz +YWx0QG5vdGF0aW9ucy5vcGVucGdwanMub3Jn112aEYQl6OP78t5s0TcwEQIVCAMW +AAICGQECmwMCHgEWIQS8ujogHdK6v+JJsmLXVlwUOcXHhQAADkcA/A03jRGR1kkJ +2x1IrfE737P/KUYm+cOSShas6G+4Ttb6AP9D3Om1miIkCmQPVPW3yKOCNntxcCRM +hVl7jfO4I1C9D844BGmKc1kSCisGAQQBl1UBBQEBB0AT0R7nxrCqYh0rW7KQIVkU +hNjH5aukMG01ZP0eGXGOHwMBCgnCrgQYFggAYAWCaYpzWQmQ11ZcFDnFx4U1FAAA +AAAAHAAQc2FsdEBub3RhdGlvbnMub3BlbnBncGpzLm9yZ+FMQCtesuQvwglEbIGe +8ToCmwwWIQS8ujogHdK6v+JJsmLXVlwUOcXHhQAAhPgA/RpZLeiDUOGydUEb9wTI +NgbvZ4Yf3lphSlzyllg7rR5KAP0Tqr1CeO9PLB85g87qsLQTBTpksuAAeHVleJak +Kt7jCQ== +=nLc0 +-----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/anda/terra/gpg-keys/RPM-GPG-KEY-terra44-mesa b/anda/terra/gpg-keys/RPM-GPG-KEY-terra44-mesa new file mode 100644 index 0000000000..b983582a61 --- /dev/null +++ b/anda/terra/gpg-keys/RPM-GPG-KEY-terra44-mesa @@ -0,0 +1,17 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GopenPGP 2.8.1 +Comment: https://gopenpgp.org + +xjMEaYpzWRYJKwYBBAHaRw8BAQdA9nvqX6Rc5zoXOB5Oyi6zRZryyx7lxsQBYV9C +LDI7+MvNJ1RlcnJhIDQ0IC0gTWVzYSA8c2VjdXJpdHlAZnlyYWxhYnMuY29tPsK/ +BBMWCABxBYJpinNZAwsJBwmQej3D4C/+tlA1FAAAAAAAHAAQc2FsdEBub3RhdGlv +bnMub3BlbnBncGpzLm9yZ0IKV181NXbbjY/ClKZ/qWoCFQgDFgACAhkBApsDAh4B +FiEEvtc+fUAZYMWQ5F2Vej3D4C/+tlAAACeoAQDZiyuO7wbwX1rgTRMuxURLnbbe +NyYcm4/CYiMzAScvhAD/dJXriy/rLODPAbfMsp0+r0rsOtsyzFQkJtRBlYgn/gvO +OARpinNZEgorBgEEAZdVAQUBAQdAYmYguyB5/29fAtrO5iLNuamQuJr9aUJ5dbFl +0GyVHyMDAQoJwq4EGBYIAGAFgmmKc1kJkHo9w+Av/rZQNRQAAAAAABwAEHNhbHRA +bm90YXRpb25zLm9wZW5wZ3Bqcy5vcmftTZ7t0+k8C2f+7pD5daW2ApsMFiEEvtc+ +fUAZYMWQ5F2Vej3D4C/+tlAAAMmRAP44BAL8+96Rwl6Xw2gHzHbR6+vRHfF+zgV4 +RSWvjl7xOwEA25wHOq5RNAfEnFsTFVAn99C9mcJISdB1YMnip2deZAQ= +=F1z6 +-----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/anda/terra/gpg-keys/RPM-GPG-KEY-terra44-mesa-source b/anda/terra/gpg-keys/RPM-GPG-KEY-terra44-mesa-source new file mode 100644 index 0000000000..b66c47e517 --- /dev/null +++ b/anda/terra/gpg-keys/RPM-GPG-KEY-terra44-mesa-source @@ -0,0 +1,18 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GopenPGP 2.8.1 +Comment: https://gopenpgp.org + +xjMEaYpzWhYJKwYBBAHaRw8BAQdAXnpFECHNb3ryiIB27S92KhSMrQintJtioYJ7 +qBYgW9XNMFRlcnJhIDQ0IC0gTWVzYSAtIFNvdXJjZSA8c2VjdXJpdHlAZnlyYWxh +YnMuY29tPsK/BBMWCABxBYJpinNaAwsJBwmQxija3/ZHYn01FAAAAAAAHAAQc2Fs +dEBub3RhdGlvbnMub3BlbnBncGpzLm9yZ3aX8z3Yh1dyP7AAUMSEvgECFQgDFgAC +AhkBApsDAh4BFiEEabP6XRkmLg0Aixopxija3/ZHYn0AAFDlAP9F7z7x2sg6KUFM +i4FVnPmgwH97MakbBlRPPFr6k1eZ1AEA60HTpLLfCPcTbA+FzwmzeRFwrsW7uJwD +J8T4+r4p8wLOOARpinNaEgorBgEEAZdVAQUBAQdAGrAlL/5dsSuOeYGyqAB1R6qk +FVD6A/pdDlrtpU2cZQkDAQoJwq4EGBYIAGAFgmmKc1oJkMYo2t/2R2J9NRQAAAAA +ABwAEHNhbHRAbm90YXRpb25zLm9wZW5wZ3Bqcy5vcmclFKmCzLWkm/i0CLhvw1gm +ApsMFiEEabP6XRkmLg0Aixopxija3/ZHYn0AAK6xAPwPSCQ7p7Sv6Iknm2PsD46b +W28irf9ZtZGQtjLvbICTEQD/UnU/c0sWfyKGGtNbnfWWCWRPQ7RiYA1W8FV825zg +yAE= +=RpzP +-----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/anda/terra/gpg-keys/RPM-GPG-KEY-terra44-multimedia b/anda/terra/gpg-keys/RPM-GPG-KEY-terra44-multimedia new file mode 100644 index 0000000000..88e9b8ab03 --- /dev/null +++ b/anda/terra/gpg-keys/RPM-GPG-KEY-terra44-multimedia @@ -0,0 +1,17 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Comment: https://gopenpgp.org +Version: GopenPGP 2.8.1 + +xjMEaYpzdhYJKwYBBAHaRw8BAQdAS+7xt/wuYX6vC8MAVX+hCyydE9ze7s9RrqkO +V955PevNLVRlcnJhIDQ0IC0gTXVsdGltZWRpYSA8c2VjdXJpdHlAZnlyYWxhYnMu +Y29tPsK/BBMWCABxBYJpinN2AwsJBwmQY/yBc/Z8Q3A1FAAAAAAAHAAQc2FsdEBu +b3RhdGlvbnMub3BlbnBncGpzLm9yZ8n3QviVcmQM9aBc+5ADHMECFQgDFgACAhkB +ApsDAh4BFiEE6RDn+xxDvXTztTEZY/yBc/Z8Q3AAAAfAAQCKEHz1upm1IdX0W5o7 +CdOie7Tx3Z5B0nc+QXejaUnksgEA5DhXt/12BBLV9U9Zt/Xeu9In9voWe3OrPwth +qV1WDwfOOARpinN2EgorBgEEAZdVAQUBAQdAVKIBAhiNXVLhBOwAPs0bBpK6GReM +64cI8gDa+17shgYDAQoJwq4EGBYIAGAFgmmKc3YJkGP8gXP2fENwNRQAAAAAABwA +EHNhbHRAbm90YXRpb25zLm9wZW5wZ3Bqcy5vcmefkLWxmr5AIaDXC5cHxIZCApsM +FiEE6RDn+xxDvXTztTEZY/yBc/Z8Q3AAAJcQAPsHa+QALApqpzFNBP9EI048XCHL +lDmB5GJ2anYy+PzcSAEAz9Gh+62BXvy0ODXuMpHLCleay5JkDnV6r6izkoD7dQc= +=8V1K +-----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/anda/terra/gpg-keys/RPM-GPG-KEY-terra44-multimedia-source b/anda/terra/gpg-keys/RPM-GPG-KEY-terra44-multimedia-source new file mode 100644 index 0000000000..f70d0949dc --- /dev/null +++ b/anda/terra/gpg-keys/RPM-GPG-KEY-terra44-multimedia-source @@ -0,0 +1,18 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GopenPGP 2.8.1 +Comment: https://gopenpgp.org + +xjMEaYpzWhYJKwYBBAHaRw8BAQdAEeOfLop+GoMPjhOZLZka+O85PiAxBleUfWxz +LAN+pFnNNlRlcnJhIDQ0IC0gTXVsdGltZWRpYSAtIFNvdXJjZSA8c2VjdXJpdHlA +ZnlyYWxhYnMuY29tPsK/BBMWCABxBYJpinNaAwsJBwmQS4SqIbLB5Z81FAAAAAAA +HAAQc2FsdEBub3RhdGlvbnMub3BlbnBncGpzLm9yZ76kBtyWy/EBTdMn8rrwILQC +FQgDFgACAhkBApsDAh4BFiEEk6CyGxoPRHmOX3fWS4SqIbLB5Z8AAFFqAP4w7GRV +LDujzNkxGT+UpgGEAl6p+CH7BlGPOyjPNye0HgD+MRwFJjH4oMgLOQl4Ab+KmvYA ++gcTpjOWGgwT0JxEIwDOOARpinNaEgorBgEEAZdVAQUBAQdAj8GItTADl2iBDTXT +dAhZ5uYdTKwe/unw6RVkhbYwTAcDAQoJwq4EGBYIAGAFgmmKc1oJkEuEqiGyweWf +NRQAAAAAABwAEHNhbHRAbm90YXRpb25zLm9wZW5wZ3Bqcy5vcmc+fPpvt69yEuAI +5zDxY7AmApsMFiEEk6CyGxoPRHmOX3fWS4SqIbLB5Z8AAIZNAP40C5vz8NpmHh8V +Y5vME6iRrFdn9LzIp3rIANZc7dn4SgEAnBZ+RczAC2CikUeuJ+84A8p86KeU1eXL +8YSQ90OKxQE= +=Vprg +-----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/anda/terra/gpg-keys/RPM-GPG-KEY-terra44-nvidia b/anda/terra/gpg-keys/RPM-GPG-KEY-terra44-nvidia new file mode 100644 index 0000000000..6e8bf3c45b --- /dev/null +++ b/anda/terra/gpg-keys/RPM-GPG-KEY-terra44-nvidia @@ -0,0 +1,17 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GopenPGP 2.8.1 +Comment: https://gopenpgp.org + +xjMEaYpzdxYJKwYBBAHaRw8BAQdAyUrDJOJErpiXaSZ+iwWfOjUQYb7Ww7L4FoYa +5gv4U1TNKVRlcnJhIDQ0IC0gTnZpZGlhIDxzZWN1cml0eUBmeXJhbGFicy5jb20+ +wr8EExYIAHEFgmmKc3cDCwkHCZB5f/UW4V7dvDUUAAAAAAAcABBzYWx0QG5vdGF0 +aW9ucy5vcGVucGdwanMub3JnHKVenZwrKZ6XEjvbYIpJ+wIVCAMWAAICGQECmwMC +HgEWIQQmaWGFrmznmx6FVr15f/UW4V7dvAAAnusBAL5dhLe9JkfezIOkSSQ6x33/ +PEqR6+iid1K/cQpSUmoPAP9r4L5uW9khMgzhQNQdmCO0mYBjBcfXZMxOdAJKOeY3 +AM44BGmKc3cSCisGAQQBl1UBBQEBB0BY/WFtVq5ATp7giDLciNtAqfZE1O3OVQXs +idxzNjxELQMBCgnCrgQYFggAYAWCaYpzdwmQeX/1FuFe3bw1FAAAAAAAHAAQc2Fs +dEBub3RhdGlvbnMub3BlbnBncGpzLm9yZ+N7q6u3i2dvae06Yf0pr2MCmwwWIQQm +aWGFrmznmx6FVr15f/UW4V7dvAAA0t0BAIro/sCMgwg3TwlPGNT0Ier5lcz21J9H +Q51nACsA3SR2APwLG6OZzJIudludtBrTgrV79LRv9DEX58KmrhtBv02gCg== +=ftIl +-----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/anda/terra/gpg-keys/RPM-GPG-KEY-terra44-nvidia-source b/anda/terra/gpg-keys/RPM-GPG-KEY-terra44-nvidia-source new file mode 100644 index 0000000000..ee44775762 --- /dev/null +++ b/anda/terra/gpg-keys/RPM-GPG-KEY-terra44-nvidia-source @@ -0,0 +1,18 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GopenPGP 2.8.1 +Comment: https://gopenpgp.org + +xjMEaYpzdxYJKwYBBAHaRw8BAQdAW2ZSuJks+NCbX1m1S+/2YHrkdvV085vPkyLp +9lfoWoLNMlRlcnJhIDQ0IC0gTnZpZGlhIC0gU291cmNlIDxzZWN1cml0eUBmeXJh +bGFicy5jb20+wr8EExYIAHEFgmmKc3cDCwkHCZCSwkAZvngqITUUAAAAAAAcABBz +YWx0QG5vdGF0aW9ucy5vcGVucGdwanMub3JnHkmRJm6DdmTUcvQxXtw25gIVCAMW +AAICGQECmwMCHgEWIQQLE3kbMhz7vUregauSwkAZvngqIQAAUIkA/jXu41c/5OHX +8K9qT1EHCFYkBsF53a/QNcvg8cn5bhdqAQCM+FCTHXdn/qBfzKaAOgZdUAXASACN +jb/Gygg9e5nmDc44BGmKc3cSCisGAQQBl1UBBQEBB0CJWWfDF7xCIlUlw7d+hEiK +S6wh6UY7KGfpO3qOA8V2RAMBCgnCrgQYFggAYAWCaYpzdwmQksJAGb54KiE1FAAA +AAAAHAAQc2FsdEBub3RhdGlvbnMub3BlbnBncGpzLm9yZ90YnsscRilE7JRUm6td +v/oCmwwWIQQLE3kbMhz7vUregauSwkAZvngqIQAAp8AA/jV/mubRFTHVT5GyO93C +48vwZc4BJBC30x5dU3yfFQrmAP9SOlhcs2D8aZuBRL1TSXpkBq6NKJxNdtEr0pv7 +/ds1Ag== +=uldH +-----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/anda/terra/gpg-keys/RPM-GPG-KEY-terra44-source b/anda/terra/gpg-keys/RPM-GPG-KEY-terra44-source new file mode 100644 index 0000000000..ea6e6659ab --- /dev/null +++ b/anda/terra/gpg-keys/RPM-GPG-KEY-terra44-source @@ -0,0 +1,17 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GopenPGP 2.8.1 +Comment: https://gopenpgp.org + +xjMEaYpzWxYJKwYBBAHaRw8BAQdA7UMAtNQ1lu/zeq7f6ak1ZRDb09GI5nKRTGPb +z5/P9DLNKVRlcnJhIDQ0IC0gU291cmNlIDxzZWN1cml0eUBmeXJhbGFicy5jb20+ +wr8EExYIAHEFgmmKc1sDCwkHCZD5EsiV2QOikTUUAAAAAAAcABBzYWx0QG5vdGF0 +aW9ucy5vcGVucGdwanMub3JnKnNq119JCv79xo34cTtU+AIVCAMWAAICGQECmwMC +HgEWIQSo/fET0Zg0/vaHhXf5EsiV2QOikQAAZvIBAOBgURJ0bpsl9UQt+oty/9g6 +QJwE7x2KvTfw9CIjzd2yAQCqE6mBtL4Wd0T8FFXzg2KYgMPvNlkof24kas5Y79ID +DM44BGmKc1sSCisGAQQBl1UBBQEBB0C1EBr2yVcLBryHfBsJ8HffYUYmQxdOytvC +4sEKnn+UcAMBCgnCrgQYFggAYAWCaYpzWwmQ+RLIldkDopE1FAAAAAAAHAAQc2Fs +dEBub3RhdGlvbnMub3BlbnBncGpzLm9yZ7hCyKk6CNKWKKt60jpyuYACmwwWIQSo +/fET0Zg0/vaHhXf5EsiV2QOikQAAKLABAJSkznaUgXt2HisPv9rJGBjobx3dx9Ns +SZs4qLEwaBzAAQCGD5cZBVo4sVzskOhFAG3U2wMMGyTXP4+hvsFB09HNCg== +=F2xn +-----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/anda/terra/gpg-keys/RPM-GPG-KEY-terrael10 b/anda/terra/gpg-keys/RPM-GPG-KEY-terrael10 new file mode 100644 index 0000000000..77f0353623 --- /dev/null +++ b/anda/terra/gpg-keys/RPM-GPG-KEY-terrael10 @@ -0,0 +1,15 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GopenPGP 2.7.5 +Comment: https://gopenpgp.org + +xjMEZtOBJBYJKwYBBAHaRw8BAQdAbFtNyuwanyaccj+vCep/pJM3yPKTDmY4WDXb +eV5Xh/XNMFRlcnJhIEVMIDEwIERpc3RyaWJ1dGlvbiA8c2VjdXJpdHlAZnlyYWxh +YnMuY29tPsKPBBMWCABBBQJm04EkCRA2Lv1O4rvdKRYhBJzJlpVms1xAcgJxtDYu +/U7iu90pAhsDAh4BAhkBAwsJBwIVCAMWAAIFJwkCBwIAAPDuAP9ZnbExbCZ1gBDv +dm2PP6j4zL1mVHySYvHfHYwPrRA5+wEAxw2BDz4nzUqB5dv0R7ovJzPFzf6M4LE2 +5lLr8ZETJQbOOARm04EkEgorBgEEAZdVAQUBAQdAlkCYihZ65Yqb/+gHSmaJqUxd +QHBC/EbtJD9zfPROnyMDAQoJwngEGBYIACoFAmbTgSQJEDYu/U7iu90pFiEEnMmW +lWazXEByAnG0Ni79TuK73SkCGwwAAN3+AQC9I8dOxF4Gg/jN4iN5WPO3mp4NKOKv +b0+6qfUXB8x0JwEAt82DEny6MRsfuxWd4Dpq/7mT5FJFTyVxg5mV3kjjGgQ= +=epXy +-----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/anda/terra/gpg-keys/RPM-GPG-KEY-terrael10-source b/anda/terra/gpg-keys/RPM-GPG-KEY-terrael10-source new file mode 100644 index 0000000000..b20230030a --- /dev/null +++ b/anda/terra/gpg-keys/RPM-GPG-KEY-terrael10-source @@ -0,0 +1,16 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Comment: https://gopenpgp.org +Version: GopenPGP 2.7.5 + +xjMEZtOBJRYJKwYBBAHaRw8BAQdAuVaWfI6MmQpF5E0uD2xGvMbGM8PWzlDR2ksi +Y2z+hz3NOVRlcnJhIEVMIDEwIERpc3RyaWJ1dGlvbiAtIFNvdXJjZSA8c2VjdXJp +dHlAZnlyYWxhYnMuY29tPsKPBBMWCABBBQJm04ElCRD3mpbWFutdgRYhBDGbLlKU +mQWhGKuHUvealtYW612BAhsDAh4BAhkBAwsJBwIVCAMWAAIFJwkCBwIAAGE9AP9r +uE7zerra8waEAcJuf/CDxNJLO0iFqUwyc9c+N5CV+QD/XC3JJW4GgPphTGXsZau4 +O8jp/O33E/dPMMLwOmNCvQPOOARm04ElEgorBgEEAZdVAQUBAQdAYKZJzhz2pV/w +VAnVwuddY8j9fBzyKRJIvZ99ykZNoD8DAQoJwngEGBYIACoFAmbTgSUJEPealtYW +612BFiEEMZsuUpSZBaEYq4dS95qW1hbrXYECGwwAADBaAP4hwtUAzlWPWcdjpk6A +tbU8M2Z9yxg3BfQqP2GpGQ/6ogEA1hColwMf3ofhpVMzDaL968QRb06j0gd2ie0q +8vSJNAY= +=+FKW +-----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/anda/terra/gpg-keys/RPM-GPG-KEY-terrarawhide b/anda/terra/gpg-keys/RPM-GPG-KEY-terrarawhide new file mode 100644 index 0000000000..a759b4f3ef --- /dev/null +++ b/anda/terra/gpg-keys/RPM-GPG-KEY-terrarawhide @@ -0,0 +1,15 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GopenPGP 2.7.4 +Comment: https://gopenpgp.org + +xjMEZaSKMRYJKwYBBAHaRw8BAQdAVI6mkcjWP/sHCc9oWW9R7k3A5tuhD+UQQH0U +jVWJUmLNMlRlcnJhIFJhd2hpZGUgRGlzdHJpYnV0aW9uIDxzZWN1cml0eUBmeXJh +bGFicy5jb20+wo8EExYIAEEFAmWkijEJEA4sOUJo9DfKFiEEarJRbVWYaNFB+OBg +Diw5Qmj0N8oCGwMCHgECGQEDCwkHAhUIAxYAAgUnCQIHAgAAcb8A/2Uh5OWId6e8 +jOcZKhPFpZwhAqhipaCypm1LTNuQYygTAQC9cT7eCTfIaAAygndmLPTA90/Q/sOU +zb3bcQu+mji0D844BGWkijESCisGAQQBl1UBBQEBB0CaxCB1277azir4K3wxlGry +k24D6Et4BYme2vBNf2/rFgMBCgnCeAQYFggAKgUCZaSKMQkQDiw5Qmj0N8oWIQRq +slFtVZho0UH44GAOLDlCaPQ3ygIbDAAA53cBAO0DH/Mj7ZDKG7YmAeGOjFOz4gcB +uzGgT0D4SMd82lBRAP9OB/PH9yZezt4AMgp3nXaoAqpgqJr+64eJTKjMxd21CQ== +=uK80 +-----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/anda/terra/gpg-keys/RPM-GPG-KEY-terrarawhide-extras b/anda/terra/gpg-keys/RPM-GPG-KEY-terrarawhide-extras new file mode 100644 index 0000000000..99cf6e496b --- /dev/null +++ b/anda/terra/gpg-keys/RPM-GPG-KEY-terrarawhide-extras @@ -0,0 +1,16 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GopenPGP 2.7.5 +Comment: https://gopenpgp.org + +xjMEZtISRBYJKwYBBAHaRw8BAQdA0yu8brnLrHJs/x3ElmUZ1EFQIx5WlXkrwxD4 +Ib2BsL7NOVRlcnJhIFJhd2hpZGUgRXh0cmFzIERpc3RyaWJ1dGlvbiA8c2VjdXJp +dHlAZnlyYWxhYnMuY29tPsKPBBMWCABBBQJm0hJECRACLZ6bPNmTOBYhBMBaklz8 +98WDSC/4zAItnps82ZM4AhsDAh4BAhkBAwsJBwIVCAMWAAIFJwkCBwIAAFTLAP4s +SVgQ9242o++lkmQUy5YxRk9nTh+r3WV/LyfBjp7csQEAuO2mcza26ToP0KFZhFkq +GDAWFE7i/Sg9xFMl+S8o5w7OOARm0hJEEgorBgEEAZdVAQUBAQdAdhm5929W3MQn +sfDe5M0PoIzFBJZKY++Qv/g9VmiCLnYDAQoJwngEGBYIACoFAmbSEkQJEAItnps8 +2ZM4FiEEwFqSXPz3xYNIL/jMAi2emzzZkzgCGwwAANegAQDft06rca+ov7yC9QaS +mGSOnRSOg01QrSgYDmEG50gRgwEAqR3qsOQ+OWNBcn9nNyozMnarbyhlpHpfer9Y +vFZXYwY= +=bOBq +-----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/anda/terra/gpg-keys/RPM-GPG-KEY-terrarawhide-extras-source b/anda/terra/gpg-keys/RPM-GPG-KEY-terrarawhide-extras-source new file mode 100644 index 0000000000..6bfd51b7ce --- /dev/null +++ b/anda/terra/gpg-keys/RPM-GPG-KEY-terrarawhide-extras-source @@ -0,0 +1,16 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GopenPGP 2.7.5 +Comment: https://gopenpgp.org + +xjMEZtISRRYJKwYBBAHaRw8BAQdAodGl2tIIreasxtsKunHljpoR1Q1vOLff/lle +9rIgHfvNQlRlcnJhIFJhd2hpZGUgRXh0cmFzIERpc3RyaWJ1dGlvbiAtIFNvdXJj +ZSA8c2VjdXJpdHlAZnlyYWxhYnMuY29tPsKPBBMWCABBBQJm0hJFCRDVEgy/p7tO +LBYhBB+VBtvd3CD2tjG5vtUSDL+nu04sAhsDAh4BAhkBAwsJBwIVCAMWAAIFJwkC +BwIAADc0AP9mrnM37Rlb267bnY7WbzEBN8gXlTfNKi5GfIWZXr2UmAD9FZObRGfP +Og1xALMTx20rb9MyyXO8NOvTPpkoDFE+ZwvOOARm0hJFEgorBgEEAZdVAQUBAQdA +myq7CDZ1x/whekA7usmoTKMD+sCAmN4CiQfb/ldW6HIDAQoJwngEGBYIACoFAmbS +EkUJENUSDL+nu04sFiEEH5UG293cIPa2Mbm+1RIMv6e7TiwCGwwAAI2VAP9KGzk1 +IF742fZW7dIVSun4n3KN844H2uQ00AAY+fAslAEAhsSoadrYLxLnx2CkIlz8IoxL +yGy9fI3ES95xf1J0MwM= +=HbfR +-----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/anda/terra/gpg-keys/RPM-GPG-KEY-terrarawhide-mesa b/anda/terra/gpg-keys/RPM-GPG-KEY-terrarawhide-mesa new file mode 100644 index 0000000000..54fa1164e6 --- /dev/null +++ b/anda/terra/gpg-keys/RPM-GPG-KEY-terrarawhide-mesa @@ -0,0 +1,17 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GopenPGP 2.8.1 +Comment: https://gopenpgp.org + +xjMEZ4OLsxYJKwYBBAHaRw8BAQdAQqZjEJyEnl40tNIVKcZ21iT7iH5v4ffaBGg4 +sCmh8nvNLFRlcnJhIFJhd2hpZGUgLSBNZXNhIDxzZWN1cml0eUBmeXJhbGFicy5j +b20+wr8EExYIAHEFgmeDi7MDCwkHCZCd3SzsYP6OUzUUAAAAAAAcABBzYWx0QG5v +dGF0aW9ucy5vcGVucGdwanMub3JnSKyWmOackZR/4OhVheiYpAIVCAMWAAICGQEC +mwMCHgEWIQSbkJ81WXLRBzesVXad3SzsYP6OUwAA0ZQA/3NBNm3keFV96xKb9mq1 +JPz0xjFtfkfIUEMMMHfwcEwwAP0bkYlPFDeY3mRpSNBdnpuQ+buzesXbfs9Z4XlB +jjGnAc44BGeDi7MSCisGAQQBl1UBBQEBB0CJmh790Wc9UMo66rgoHY4lUC3EDbEv +tpiPMdVzLHuSOgMBCgnCrgQYFggAYAWCZ4OLswmQnd0s7GD+jlM1FAAAAAAAHAAQ +c2FsdEBub3RhdGlvbnMub3BlbnBncGpzLm9yZwMIYOG3B+4OUMObbuJJ2boCmwwW +IQSbkJ81WXLRBzesVXad3SzsYP6OUwAAQFsBAPykUNVPgOfPucsHsbwPXRdr/PZZ +cuqbin1LWFA2MhuJAP4lSHMJsPAS7f7pbCQ9VVqCym20K2Lrk2wvpe8CI/bFCA== +=Dff+ +-----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/anda/terra/gpg-keys/RPM-GPG-KEY-terrarawhide-mesa-source b/anda/terra/gpg-keys/RPM-GPG-KEY-terrarawhide-mesa-source new file mode 100644 index 0000000000..3581f063e2 --- /dev/null +++ b/anda/terra/gpg-keys/RPM-GPG-KEY-terrarawhide-mesa-source @@ -0,0 +1,18 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GopenPGP 2.8.1 +Comment: https://gopenpgp.org + +xjMEZ4OLhxYJKwYBBAHaRw8BAQdANQdhk7OqBjoztUqX9LONOOZ4pHru5aCTN0oZ +83Kg+F3NNVRlcnJhIFJhd2hpZGUgLSBNZXNhIC0gU291cmNlIDxzZWN1cml0eUBm +eXJhbGFicy5jb20+wr8EExYIAHEFgmeDi4cDCwkHCZC5DZJWhLWtnjUUAAAAAAAc +ABBzYWx0QG5vdGF0aW9ucy5vcGVucGdwanMub3JnRljT7v0UcQOMyXRsPkfP/QIV +CAMWAAICGQECmwMCHgEWIQQqLUSUC05GUHR8JgC5DZJWhLWtngAA1zYA/0pprtN3 +c0MBnppWBiN5VX5sKN9MDtaczCY5eGAl3BUoAQD1LiRqwXZnbbIIKXz8b/j4VeIg +rF57QuRliKEBdZSaAs44BGeDi4cSCisGAQQBl1UBBQEBB0AghzI+eYQTIn1/uAs1 +T8At26q+qgUFHC43yBA3kkvEPAMBCgnCrgQYFggAYAWCZ4OLhwmQuQ2SVoS1rZ41 +FAAAAAAAHAAQc2FsdEBub3RhdGlvbnMub3BlbnBncGpzLm9yZx7sKCB0GK0aQIdR +eL3zMB8CmwwWIQQqLUSUC05GUHR8JgC5DZJWhLWtngAAUuQBAOwRuMcMwKNHj2kq +O9mmn9pa19joZehzCftD7PHteVosAP9jqA3rTw7cx4SaQPVc7T7vpEpHpbDNAQBK +99HY2io8Bw== +=uHoF +-----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/anda/terra/gpg-keys/RPM-GPG-KEY-terrarawhide-multimedia b/anda/terra/gpg-keys/RPM-GPG-KEY-terrarawhide-multimedia new file mode 100644 index 0000000000..97b8ce2de4 --- /dev/null +++ b/anda/terra/gpg-keys/RPM-GPG-KEY-terrarawhide-multimedia @@ -0,0 +1,18 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Comment: https://gopenpgp.org +Version: GopenPGP 2.8.1 + +xjMEaRPTKxYJKwYBBAHaRw8BAQdA4zC5C56wJ6Ve2fEp/y+rgXsjr0gO6kXUZNWZ +fn65i+bNMFRlcnJhIFJhd2hpZGUgTXVsdGltZWRpYSA8c2VjdXJpdHlAZnlyYWxh +YnMuY29tPsK/BBMWCABxBYJpE9MrAwsJBwmQqhHv7PmX4nM1FAAAAAAAHAAQc2Fs +dEBub3RhdGlvbnMub3BlbnBncGpzLm9yZw6BgBQ9l/BW7xB2xcx8aqsCFQgDFgAC +AhkBApsDAh4BFiEEg5V9B5WYs2Nw5VwTqhHv7PmX4nMAANVUAP0VmQcXj3LUV2cJ +BfAXT5mXC+P9MBa/dxZuOzj1Hhb3wgEA8KmuI/G7q/SOqbPmjzGsg3MoY0h3kizu +eGOZhGqOfQbOOARpE9MrEgorBgEEAZdVAQUBAQdAd6z31yIZcX1yprXXcX1JPCN3 +X56nKAB3Wlcoi//h8l4DAQoJwq4EGBYIAGAFgmkT0ysJkKoR7+z5l+JzNRQAAAAA +ABwAEHNhbHRAbm90YXRpb25zLm9wZW5wZ3Bqcy5vcmfu/fW+IhttsSWRJKpMBNM9 +ApsMFiEEg5V9B5WYs2Nw5VwTqhHv7PmX4nMAAB12AQClvjCHet4qHW11Z1GredXX +XZXuNNkGn4HgwiHuBpUdjgEAoTDeL8z4YyCPeMthUvQl+W7O8FJS5NS1HZJxIX9p +FQ8= +=U+5y +-----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/anda/terra/gpg-keys/RPM-GPG-KEY-terrarawhide-multimedia-source b/anda/terra/gpg-keys/RPM-GPG-KEY-terrarawhide-multimedia-source new file mode 100644 index 0000000000..3cf3f941c0 --- /dev/null +++ b/anda/terra/gpg-keys/RPM-GPG-KEY-terrarawhide-multimedia-source @@ -0,0 +1,18 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GopenPGP 2.8.1 +Comment: https://gopenpgp.org + +xjMEaRPTVBYJKwYBBAHaRw8BAQdA1v9uMeISpWwtF5o8ba88du9mCumVlCAJDlTM +HqWpN0vNOVRlcnJhIFJhd2hpZGUgTXVsdGltZWRpYSAtIFNvdXJjZSA8c2VjdXJp +dHlAZnlyYWxhYnMuY29tPsK/BBMWCABxBYJpE9NUAwsJBwmQp83Ww4PXm/I1FAAA +AAAAHAAQc2FsdEBub3RhdGlvbnMub3BlbnBncGpzLm9yZ4OxwYT2zVarc4rYFygo +QAQCFQgDFgACAhkBApsDAh4BFiEEcVnvN4Ftf7H6A2BMp83Ww4PXm/IAAPeOAPwK +HIGcHEeQPkAQcSlVQHL6OQ4tTYaAEhTASmLoHhv7uwEA2pz13mID9fsKNiUpyCFt +zDE+j8B/F1XTTyZy4zWvnQ7OOARpE9NUEgorBgEEAZdVAQUBAQdA0cFoL5ePIJk+ +t0dEuz18DVCiTh7YL6ItC2eYU76GN1sDAQoJwq4EGBYIAGAFgmkT01QJkKfN1sOD +15vyNRQAAAAAABwAEHNhbHRAbm90YXRpb25zLm9wZW5wZ3Bqcy5vcmeM/1oI+qTl +Mho0evGck7bNApsMFiEEcVnvN4Ftf7H6A2BMp83Ww4PXm/IAAPucAQCZv2KijuOa +pNmqEOMlfN3tHsckD6ffhbQN22AQobPpbwEAoLHWTbcNZk5s81mw6PbYRhlKoqdl +GD5qudX+KngrzQc= +=5JnN +-----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/anda/terra/gpg-keys/RPM-GPG-KEY-terrarawhide-nvidia b/anda/terra/gpg-keys/RPM-GPG-KEY-terrarawhide-nvidia new file mode 100644 index 0000000000..4eb8abbd07 --- /dev/null +++ b/anda/terra/gpg-keys/RPM-GPG-KEY-terrarawhide-nvidia @@ -0,0 +1,17 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GopenPGP 2.8.1 +Comment: https://gopenpgp.org + +xjMEZ4OLpRYJKwYBBAHaRw8BAQdAXKwH2qWYI+jESZIuj1bBSN6D8j3653NT5iVH +vM1Y8FjNLlRlcnJhIFJhd2hpZGUgLSBOVklESUEgPHNlY3VyaXR5QGZ5cmFsYWJz +LmNvbT7CvwQTFggAcQWCZ4OLpQMLCQcJkGllfdSRfAeuNRQAAAAAABwAEHNhbHRA +bm90YXRpb25zLm9wZW5wZ3Bqcy5vcmeIhcM7PUX33QwkwjKA4zhWAhUIAxYAAgIZ +AQKbAwIeARYhBDoxH0unj9ykroooY2llfdSRfAeuAAApiAEAg6Yc43K+Rjvgd3IN +ASGblKjjd4lSKhkt1fz+JtR7+cgA/irpIufulbATX+RhcidcjL/uKb4njsYQXnbm +G9tk69sAzjgEZ4OLpRIKKwYBBAGXVQEFAQEHQFbKRtnqd9OAaJ0Claf3EkfLV38o +auvsY/pPMYTuC244AwEKCcKuBBgWCABgBYJng4ulCZBpZX3UkXwHrjUUAAAAAAAc +ABBzYWx0QG5vdGF0aW9ucy5vcGVucGdwanMub3Jnfzk94Ae33YcNy3J21gVvrAKb +DBYhBDoxH0unj9ykroooY2llfdSRfAeuAAA7BwEA8TNahbMd4+EevFHsBB/qepW/ +D+o6vw5lfvkQz6zc2OgA/3pYEMsZtCS4Vo3HiF05ePRs9KFEkvyI1V6FkmfOphgC +=NvGX +-----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/anda/terra/gpg-keys/RPM-GPG-KEY-terrarawhide-nvidia-source b/anda/terra/gpg-keys/RPM-GPG-KEY-terrarawhide-nvidia-source new file mode 100644 index 0000000000..811c7f132c --- /dev/null +++ b/anda/terra/gpg-keys/RPM-GPG-KEY-terrarawhide-nvidia-source @@ -0,0 +1,18 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GopenPGP 2.8.1 +Comment: https://gopenpgp.org + +xjMEZ4OLkxYJKwYBBAHaRw8BAQdAf7VKSDrY6iS4jNnZZCtD5gdeSLeAPvmXW9Od +WpLoFfjNN1RlcnJhIFJhd2hpZGUgLSBOVklESUEgLSBTb3VyY2UgPHNlY3VyaXR5 +QGZ5cmFsYWJzLmNvbT7CvwQTFggAcQWCZ4OLkwMLCQcJkDH7MpE7EwMHNRQAAAAA +ABwAEHNhbHRAbm90YXRpb25zLm9wZW5wZ3Bqcy5vcmcs4uIz3tjZ51iAaoBUx+IL +AhUIAxYAAgIZAQKbAwIeARYhBI/gxwyWcAwbSOwy5TH7MpE7EwMHAABtTwD/Y8cO +Flqu8iqO2ntn+s7aam9MjBG7/8PG+w8OFVEfM7sBAMUE6DRdmcZUN85eVIggCGEO +tWnWyYMpSMyUQhu3knoAzjgEZ4OLkxIKKwYBBAGXVQEFAQEHQE81HICNNhmy72nm +3hcnM2eVz1UweJPhWhbgIVLLOgJRAwEKCcKuBBgWCABgBYJng4uTCZAx+zKROxMD +BzUUAAAAAAAcABBzYWx0QG5vdGF0aW9ucy5vcGVucGdwanMub3Jn2GBr4XFnR9+w +mxzbeYyd8wKbDBYhBI/gxwyWcAwbSOwy5TH7MpE7EwMHAAAsJQD/RDcJw2NBcgOX +UYdXXF1WViJc1RydDES0F/iZuJuhZ4EA/j1Yw698UELTGI4KtUsAkJu7Gzoh7y1o +2knbyu2iwNIH +=Oo9y +-----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/anda/terra/gpg-keys/RPM-GPG-KEY-terrarawhide-source b/anda/terra/gpg-keys/RPM-GPG-KEY-terrarawhide-source new file mode 100644 index 0000000000..2ba1399f56 --- /dev/null +++ b/anda/terra/gpg-keys/RPM-GPG-KEY-terrarawhide-source @@ -0,0 +1,16 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GopenPGP 2.7.4 +Comment: https://gopenpgp.org + +xjMEZaSKJhYJKwYBBAHaRw8BAQdAKniCEUf0q8WMxB+TTdlI1bKG3g+UkhY3bsTe +kM6bD0TNO1RlcnJhIFJhd2hpZGUgRGlzdHJpYnV0aW9uIC0gU291cmNlIDxzZWN1 +cml0eUBmeXJhbGFicy5jb20+wo8EExYIAEEFAmWkiiYJEAoBKdXqIiTfFiEExRUo +WYsmkvd1KYHzCgEp1eoiJN8CGwMCHgECGQEDCwkHAhUIAxYAAgUnCQIHAgAA0hwB +AK/AoHO889o+jqmJUwhiMJtkfY/qNSmWYnbNCY9DdUZJAP4goJpor3EVRODxgmVF +534IGs9TgL4sJj9E15A49tiSBc44BGWkiiYSCisGAQQBl1UBBQEBB0D9vgkyhsah +UY9D8K1NcfMFBaWKpbt4vxoWPEiJR7jVJAMBCgnCeAQYFggAKgUCZaSKJgkQCgEp +1eoiJN8WIQTFFShZiyaS93UpgfMKASnV6iIk3wIbDAAA31cA/i/48R4JdhW1cuSJ +mXcge2PsndgYitk3npiNANLd3QVgAQDQThHf08TVtnY9tA7TB8GIyLzDgaDkkktK +nv9h738ACA== +=lWOt +-----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/anda/terra/gpg-keys/anda.hcl b/anda/terra/gpg-keys/anda.hcl new file mode 100644 index 0000000000..97f5a29b38 --- /dev/null +++ b/anda/terra/gpg-keys/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "terra-gpg-keys.spec" + } + labels { + updbranch = 1 + } +} diff --git a/anda/terra/gpg-keys/terra-gpg-keys.spec b/anda/terra/gpg-keys/terra-gpg-keys.spec new file mode 100644 index 0000000000..beb946d7d9 --- /dev/null +++ b/anda/terra/gpg-keys/terra-gpg-keys.spec @@ -0,0 +1,72 @@ +%undefine dist + +Name: terra-gpg-keys +Version: %{?fedora:%{fedora}}%{?rhel:%{rhel}} +Release: 6%{?dist} +Summary: GPG keys for Terra +Requires: filesystem >= 3.18-6 + +License: MIT +URL: https://terrapkg.com +# We aren't pulling keys from the origin URLs, since they shouldn't change and this is easier to audit. +Source0: RPM-GPG-KEY-terrarawhide +Source1: RPM-GPG-KEY-terrarawhide-extras +Source2: RPM-GPG-KEY-terrarawhide-extras-source +Source3: RPM-GPG-KEY-terrarawhide-mesa +Source4: RPM-GPG-KEY-terrarawhide-mesa-source +Source5: RPM-GPG-KEY-terrarawhide-multimedia +Source6: RPM-GPG-KEY-terrarawhide-multimedia-source +Source7: RPM-GPG-KEY-terrarawhide-nvidia +Source8: RPM-GPG-KEY-terrarawhide-nvidia-source +Source9: RPM-GPG-KEY-terrarawhide-source +Source10: RPM-GPG-KEY-terra42 +Source11: RPM-GPG-KEY-terra42-extras +Source12: RPM-GPG-KEY-terra42-extras-source +Source13: RPM-GPG-KEY-terra42-mesa +Source14: RPM-GPG-KEY-terra42-mesa-source +Source15: RPM-GPG-KEY-terra42-multimedia +Source16: RPM-GPG-KEY-terra42-multimedia-source +Source17: RPM-GPG-KEY-terra42-nvidia +Source18: RPM-GPG-KEY-terra42-nvidia-source +Source19: RPM-GPG-KEY-terra42-source +Source20: RPM-GPG-KEY-terra43 +Source21: RPM-GPG-KEY-terra43-extras +Source22: RPM-GPG-KEY-terra43-extras-source +Source23: RPM-GPG-KEY-terra43-mesa +Source24: RPM-GPG-KEY-terra43-mesa-source +Source25: RPM-GPG-KEY-terra43-multimedia +Source26: RPM-GPG-KEY-terra43-multimedia-source +Source27: RPM-GPG-KEY-terra43-nvidia +Source28: RPM-GPG-KEY-terra43-nvidia-source +Source29: RPM-GPG-KEY-terra43-source +Source30: RPM-GPG-KEY-terra44 +Source31: RPM-GPG-KEY-terra44-extras +Source32: RPM-GPG-KEY-terra44-extras-source +Source33: RPM-GPG-KEY-terra44-mesa +Source34: RPM-GPG-KEY-terra44-mesa-source +Source35: RPM-GPG-KEY-terra44-multimedia +Source36: RPM-GPG-KEY-terra44-multimedia-source +Source37: RPM-GPG-KEY-terra44-nvidia +Source38: RPM-GPG-KEY-terra44-nvidia-source +Source39: RPM-GPG-KEY-terra44-source +Source40: RPM-GPG-KEY-terrael10 +Source41: RPM-GPG-KEY-terrael10-source +BuildArch: noarch +Obsoletes: terra-mock-gpg-keys < %{version}-6 + +Packager: Terra Packaging Team + +%description +GPG keys for Terra, used for verifying RPM package signatures. + +%prep + +%build + +%install +install -d -m 755 $RPM_BUILD_ROOT/etc/pki/rpm-gpg +install -m 644 %{_sourcedir}/RPM-GPG-KEY* $RPM_BUILD_ROOT/etc/pki/rpm-gpg/ + +%files +%dir /etc/pki/rpm-gpg +/etc/pki/rpm-gpg/RPM-GPG-KEY-* diff --git a/anda/terra/gpg-keys/update.rhai b/anda/terra/gpg-keys/update.rhai new file mode 100644 index 0000000000..c8c7367174 --- /dev/null +++ b/anda/terra/gpg-keys/update.rhai @@ -0,0 +1,8 @@ +import "andax/bump_extras.rhai" as bump; + +open_file("anda/terra/gpg-keys/RELEASE.txt", "w").write(bump::as_bodhi_ver(labels.branch)); + +let dir = sub(`/[^/]+$`, "", __script_path); +if sh("[[ `git status " + dir + " --porcelain` ]] && exit 1 || exit 0", #{}).ctx.rc == 1 { + rpm.release(); +} diff --git a/anda/terra/mock-configs/terra-mock-configs.spec b/anda/terra/mock-configs/terra-mock-configs.spec index fec7562f0d..9f6d3ec8b6 100644 --- a/anda/terra/mock-configs/terra-mock-configs.spec +++ b/anda/terra/mock-configs/terra-mock-configs.spec @@ -1,6 +1,6 @@ Name: terra-mock-configs -Version: 2.1.1 -Release: 2%?dist +Version: 2.4.0 +Release: 3%{?dist} Epoch: 1 Summary: Mock configs for Terra repos @@ -15,6 +15,8 @@ BuildArch: noarch Provides: anda-mock-configs = %{epoch}:%{version}-%{release} Obsoletes: anda-mock-configs < 3-2%{?dist} +Packager: Terra Packaging Team + %description %{summary} @@ -31,9 +33,13 @@ install -Dpm644 *.cfg -t %{buildroot}%{_sysconfdir}/mock/ %config %{_sysconfdir}/mock/templates/terra-rawhide.tpl %config %{_sysconfdir}/mock/terra-*-x86_64.cfg %config %{_sysconfdir}/mock/terra-*-aarch64.cfg +%config %{_sysconfdir}/mock/terra-*-riscv64.cfg %config %{_sysconfdir}/mock/terra-*-i386.cfg %changelog +* Sat Mar 07 2026 Owen Zimmerman - 2.2.5-1 +- Add riscv64 configs + * Fri Jul 26 2024 madonuko - 1:1.1.0-1 - Include mock files for Terra 41 diff --git a/anda/terra/obsolete/RELEASE.txt b/anda/terra/obsolete/RELEASE.txt new file mode 100644 index 0000000000..d00099938a --- /dev/null +++ b/anda/terra/obsolete/RELEASE.txt @@ -0,0 +1 @@ +F45 \ No newline at end of file diff --git a/anda/terra/obsolete/anda.hcl b/anda/terra/obsolete/anda.hcl index b8007c60e4..9bd63cdece 100644 --- a/anda/terra/obsolete/anda.hcl +++ b/anda/terra/obsolete/anda.hcl @@ -3,4 +3,7 @@ project pkg { rpm { spec = "terra-obsolete.spec" } + labels { + updbranch = 1 + } } diff --git a/anda/terra/obsolete/terra-obsolete.spec b/anda/terra/obsolete/terra-obsolete.spec index 614b3269b6..5a59d63791 100644 --- a/anda/terra/obsolete/terra-obsolete.spec +++ b/anda/terra/obsolete/terra-obsolete.spec @@ -1,15 +1,17 @@ Name: terra-obsolete # Please keep the version equal to the targeted Terra release -Version: 42 +Version: %{?fedora:%{fedora}}%{?rhel:%{rhel}} # The dist number is the version here, it is intentionally not repeated in the release %global dist %nil -Release: 1 +Release: 2%?dist Summary: A package to obsolete retired packages, based on Fedora's equivalent package License: LicenseRef-Fedora-Public-Domain BuildArch: noarch +Packager: Terra Packaging Team + # =============================================================================== # Skip down below these convenience macros %define obsolete_ticket() %{lua: @@ -146,6 +148,20 @@ BuildArch: noarch %obsolete switchboard-plug-useraccounts 8.0.0-2 %obsolete switchboard-plug-wacom 8.0.0-2 +%obsolete_ticket https://github.com/terrapkg/packages/pull/7098 +%obsolete terra-surface-dtx-daemon v0.3.10~1-5 + +%obsolete_ticket https://github.com/terrapkg/packages/pull/7521 +%obsolete x264-bash-completion 0.165-18.20250609gitb35605ac + +%obsolete_ticket https://github.com/terrapkg/packages/pull/7659 +%obsolete x264-bootstrap 0.0.165-18.20250609gitb35605ac_bootstrap +%obsolete x264-bootstrap-libs 0.0.165-18.20250609gitb35605ac_bootstrap +%obsolete x264-bootstrap-devel 0.0.165-18.20250609gitb35605ac_bootstrap + +%obsolete_ticket https://github.com/terrapkg/packages/pull/7503 +%obsolete zig-master-bootstrap 0.16.0~dev.1484+d0ba6642b-3 + %description Currently obsoleted packages: @@ -157,4 +173,3 @@ Currently obsoleted packages: %changelog %autochangelog - diff --git a/anda/terra/obsolete/update.rhai b/anda/terra/obsolete/update.rhai new file mode 100644 index 0000000000..94619d4fe3 --- /dev/null +++ b/anda/terra/obsolete/update.rhai @@ -0,0 +1,8 @@ +import "andax/bump_extras.rhai" as bump; + +open_file("anda/terra/obsolete/RELEASE.txt", "w").write(bump::as_bodhi_ver(labels.branch)); + +let dir = sub(`/[^/]+$`, "", __script_path); +if sh("[[ `git status " + dir + " --porcelain` ]] && exit 1 || exit 0", #{}).ctx.rc == 1 { + rpm.release(); +} diff --git a/anda/terra/release/RELEASE.txt b/anda/terra/release/RELEASE.txt new file mode 100644 index 0000000000..d00099938a --- /dev/null +++ b/anda/terra/release/RELEASE.txt @@ -0,0 +1 @@ +F45 \ No newline at end of file diff --git a/anda/terra/release/anda.hcl b/anda/terra/release/anda.hcl index e89768d1b7..8b05c6b1e9 100644 --- a/anda/terra/release/anda.hcl +++ b/anda/terra/release/anda.hcl @@ -3,4 +3,7 @@ project pkg { rpm { spec = "terra-release.spec" } + labels { + updbranch = 1 + } } diff --git a/anda/terra/release/terra-extras.repo b/anda/terra/release/terra-extras.repo index 0251d65403..03cc54a8bc 100644 --- a/anda/terra/release/terra-extras.repo +++ b/anda/terra/release/terra-extras.repo @@ -5,7 +5,7 @@ metalink=https://tetsudou.fyralabs.com/metalink?repo=terra$releasever-extras&arc metadata_expire=6h type=rpm gpgcheck=1 -gpgkey=https://repos.fyralabs.com/terra$releasever-extras/key.asc +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-terra$releasever-extras repo_gpgcheck=1 enabled=1 enabled_metadata=1 @@ -19,7 +19,7 @@ metalink=https://tetsudou.fyralabs.com/metalink?repo=terra$releasever-extras-sou metadata_expire=6h type=rpm gpgcheck=1 -gpgkey=https://repos.fyralabs.com/terra$releasever-extras-source/key.asc +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-terra$releasever-extras-source repo_gpgcheck=1 enabled=0 enabled_metadata=0 diff --git a/anda/terra/release/terra-mesa.repo b/anda/terra/release/terra-mesa.repo index 3df7c1d15b..b7494b1195 100644 --- a/anda/terra/release/terra-mesa.repo +++ b/anda/terra/release/terra-mesa.repo @@ -5,9 +5,9 @@ metalink=https://tetsudou.fyralabs.com/metalink?repo=terra$releasever-mesa&arch= metadata_expire=6h type=rpm gpgcheck=1 -gpgkey=https://repos.fyralabs.com/terra$releasever-mesa/key.asc +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-terra$releasever-mesa repo_gpgcheck=1 -enabled=0 +enabled=1 enabled_metadata=1 countme=1 priority=80 @@ -19,7 +19,7 @@ metalink=https://tetsudou.fyralabs.com/metalink?repo=terra$releasever-mesa-sourc metadata_expire=6h type=rpm gpgcheck=1 -gpgkey=https://repos.fyralabs.com/terra$releasever-mesa-source/key.asc +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-terra$releasever-mesa-source repo_gpgcheck=1 enabled=0 enabled_metadata=0 diff --git a/anda/terra/release/terra-multimedia.repo b/anda/terra/release/terra-multimedia.repo new file mode 100644 index 0000000000..7121987296 --- /dev/null +++ b/anda/terra/release/terra-multimedia.repo @@ -0,0 +1,26 @@ +[terra-multimedia] +name=Terra $releasever (Multimedia) +#baseurl=https://repos.fyralabs.com/terra$releasever-multimedia +metalink=https://tetsudou.fyralabs.com/metalink?repo=terra$releasever-multimedia&arch=$basearch +metadata_expire=6h +type=rpm +gpgcheck=1 +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-terra$releasever-multimedia +repo_gpgcheck=1 +enabled=1 +enabled_metadata=1 +countme=1 +priority=80 + +[terra-multimedia-source] +name=Terra $releasever (Multimedia) - Source +#baseurl=https://repos.fyralabs.com/terra$releasever-multimedia-source +metalink=https://tetsudou.fyralabs.com/metalink?repo=terra$releasever-multimedia-source&arch=$basearch +metadata_expire=6h +type=rpm +gpgcheck=1 +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-terra$releasever-multimedia-source +repo_gpgcheck=1 +enabled=0 +enabled_metadata=0 +priority=80 diff --git a/anda/terra/release/terra-nvidia.repo b/anda/terra/release/terra-nvidia.repo index b87e80a2bb..aee3217cef 100644 --- a/anda/terra/release/terra-nvidia.repo +++ b/anda/terra/release/terra-nvidia.repo @@ -5,9 +5,9 @@ metalink=https://tetsudou.fyralabs.com/metalink?repo=terra$releasever-nvidia&arc metadata_expire=6h type=rpm gpgcheck=1 -gpgkey=https://repos.fyralabs.com/terra$releasever-nvidia/key.asc +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-terra$releasever-nvidia repo_gpgcheck=1 -enabled=0 +enabled=1 enabled_metadata=1 countme=1 priority=80 @@ -19,7 +19,7 @@ metalink=https://tetsudou.fyralabs.com/metalink?repo=terra$releasever-nvidia-sou metadata_expire=6h type=rpm gpgcheck=1 -gpgkey=https://repos.fyralabs.com/terra$releasever-nvidia-source/key.asc +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-terra$releasever-nvidia-source repo_gpgcheck=1 enabled=0 enabled_metadata=0 diff --git a/anda/terra/release/terra-release.spec b/anda/terra/release/terra-release.spec index 6a5fe09a44..f7cc32f49f 100644 --- a/anda/terra/release/terra-release.spec +++ b/anda/terra/release/terra-release.spec @@ -1,31 +1,64 @@ +%global dist %{nil} + Name: terra-release -Version: 42 -Release: 4 +Version: %{?fedora:%{fedora}}%{?rhel:%{rhel}} +Release: 4%{?dist} Summary: Release package for Terra License: MIT -URL: https://terra.fyralabs.com +URL: https://terrapkg.com Source0: terra.repo Source1: terra-extras.repo Source2: terra-nvidia.repo Source3: terra-mesa.repo +Source4: terra-multimedia.repo BuildArch: noarch %dnl We probably shouldn't do this in Rawhide! %dnl Requires: system-release(%{version}) +Requires: terra-gpg-keys + +Packager: Terra Packaging Team + %description Release package for Terra, containing the Terra repository configuration. %package extras -Summary: Release package for Terra Extra +Summary: Release package for Terra Extras Obsoletes: terra-release-extra < 42-3 Provides: terra-release-extra = %version-%release +Requires: terra-gpg-keys + %description extras -Release package for Terra Extra, which is a repository with packages that might cause +Release package for Terra Extras, which is a repository with packages that might cause conflict with Fedora. +%package nvidia +Summary: Release package for the nvidia subrepo of Terra Extras + +Requires: terra-gpg-keys + +%description nvidia +Release package for the Terra Extras nvidia subrepo, which provides nvidia drivers that might cause a conflict with Fedora. + +%package mesa +Summary: Release package for the mesa subrepo of Terra Extras + +Requires: terra-gpg-keys + +%description mesa +Release package for the Terra Extras mesa subrepo, which provides a patched and updated version of mesa that might cause a conflict with Fedora. + +%package multimedia +Summary: Release package for the multimedia subrepo of Terra Extras + +Requires: terra-gpg-keys + +%description multimedia +Release package for the Terra Extras multimedia subrepo, which provides codecs that might cause a conflict with Fedora. + %prep %build @@ -35,16 +68,27 @@ install -D -p -m 0644 -t %{buildroot}%{_sysconfdir}/yum.repos.d %{SOURCE0} install -Dpm644 -t %buildroot%_sysconfdir/yum.repos.d %SOURCE1 install -Dpm644 -t %buildroot%_sysconfdir/yum.repos.d %SOURCE2 install -Dpm644 -t %buildroot%_sysconfdir/yum.repos.d %SOURCE3 +install -Dpm644 -t %buildroot%_sysconfdir/yum.repos.d %SOURCE4 %files %config(noreplace) %{_sysconfdir}/yum.repos.d/terra.repo %files extras %config(noreplace) %{_sysconfdir}/yum.repos.d/terra-extras.repo + +%files nvidia %config(noreplace) %{_sysconfdir}/yum.repos.d/terra-nvidia.repo + +%files mesa %config(noreplace) %{_sysconfdir}/yum.repos.d/terra-mesa.repo +%files multimedia +%config(noreplace) %{_sysconfdir}/yum.repos.d/terra-multimedia.repo + %changelog +* Thu Nov 13 2025 madonuko - 44-1 +- Add terra-multimedia + * Sun Jan 12 2025 Cappy Ishihara - 42-4 - Add NVIDIA and Mesa repository streams diff --git a/anda/terra/release/terra.repo b/anda/terra/release/terra.repo index 084f8e4b06..ad4576714c 100644 --- a/anda/terra/release/terra.repo +++ b/anda/terra/release/terra.repo @@ -5,7 +5,7 @@ metalink=https://tetsudou.fyralabs.com/metalink?repo=terra$releasever&arch=$base metadata_expire=6h type=rpm gpgcheck=1 -gpgkey=https://repos.fyralabs.com/terra$releasever/key.asc +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-terra$releasever repo_gpgcheck=1 enabled=1 enabled_metadata=1 @@ -18,7 +18,7 @@ metalink=https://tetsudou.fyralabs.com/metalink?repo=terra$releasever-source&arc metadata_expire=6h type=rpm gpgcheck=1 -gpgkey=https://repos.fyralabs.com/terra$releasever-source/key.asc +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-terra$releasever-source repo_gpgcheck=1 enabled=0 enabled_metadata=0 diff --git a/anda/terra/release/update.rhai b/anda/terra/release/update.rhai new file mode 100644 index 0000000000..b1c2421354 --- /dev/null +++ b/anda/terra/release/update.rhai @@ -0,0 +1,8 @@ +import "andax/bump_extras.rhai" as bump; + +open_file("anda/terra/release/RELEASE.txt", "w").write(bump::as_bodhi_ver(labels.branch)); + +let dir = sub(`/[^/]+$`, "", __script_path); +if sh("[[ `git status " + dir + " --porcelain` ]] && exit 1 || exit 0", #{}).ctx.rc == 1 { + rpm.release(); +} diff --git a/anda/terra/sccache/anda.hcl b/anda/terra/sccache/anda.hcl new file mode 100644 index 0000000000..dd37752162 --- /dev/null +++ b/anda/terra/sccache/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "terra-sccache.spec" + } + labels { + extras = 1 + } +} diff --git a/anda/terra/sccache/terra-sccache.spec b/anda/terra/sccache/terra-sccache.spec new file mode 100644 index 0000000000..c2217f2bf5 --- /dev/null +++ b/anda/terra/sccache/terra-sccache.spec @@ -0,0 +1,60 @@ +%global crate sccache +%global _description %{expand: +Sccache is a ccache-like tool. It is used as a compiler wrapper and +avoids compilation when possible. Sccache has the capability to utilize +caching in remote storage environments, including various cloud storage +options, or alternatively, in local storage. +This build actually enables caching to remote storage.} +%bcond dist %["%{_target_cpu}" == "x86_64"] + +Name: terra-sccache +Version: 0.15.0 +Release: 1%{?dist} +Summary: Remote caching enabled builds of sccache +SourceLicense: Apache-2.0 AND (Apache-2.0 OR MIT) +License: ((Apache-2.0 OR MIT) AND BSD-3-Clause) AND (MIT OR Apache-2.0) AND Unicode-DFS-2016) AND (0BSD OR MIT OR Apache-2.0) AND Apache-2.0 AND (Apache-2.0 AND ISC) 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 AND BSD-3-Clause AND (CC0-1.0 OR Apache-2.0 OR Apache-2.0 WITH LLVM-exception) 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 (Unlicense OR MIT) AND Zlib AND (Zlib OR Apache-2.0 OR MIT) +URL: https://crates.io/crates/sccache +Source0: %{crates_source} +BuildRequires: anda-srpm-macros +BuildRequires: cargo +BuildRequires: cargo-rpm-macros +BuildRequires: mold +%if %{with dist} +BuildRequires: perl +%endif +BuildRequires: rust +BuildRequires: rust-srpm-macros +BuildRequires: pkgconfig(openssl) +Provides: %{crate} = %{evr} +Packager: Gilver E. + +%description %_description + +%prep +%autosetup -n %{crate}-%{version} +%cargo_prep_online + +%build +%cargo_build -f all%{?with_dist:,dist-server} + +%install +find target/rpm \ + -maxdepth 1 -type f -executable ! -name '*.so' \ + -exec install -Dm755 -t %{buildroot}%{_bindir} {} + + +%cargo_license_summary_online -f all%{?with_dist:,dist-server} +%{cargo_license_online -f all%{?with_dist:,dist-server}} > LICENSE.dependencies + +%files +%license LICENSE +%license LICENSE.dependencies +%doc CODE_OF_CONDUCT.md +%doc README.md +%{_bindir}/sccache +%if %{with dist} +%{_bindir}/sccache-dist +%endif + +%changelog +* Fri Feb 20 2026 Gilver E. - 0.14.0-1 +- Initial package diff --git a/anda/terra/sccache/update.rhai b/anda/terra/sccache/update.rhai new file mode 100644 index 0000000000..eb645c69f5 --- /dev/null +++ b/anda/terra/sccache/update.rhai @@ -0,0 +1 @@ +rpm.version(crates("sccache")); diff --git a/anda/terra/srpm-macros/anda-srpm-macros.spec b/anda/terra/srpm-macros/anda-srpm-macros.spec index 930da63762..7447cb577e 100644 --- a/anda/terra/srpm-macros/anda-srpm-macros.spec +++ b/anda/terra/srpm-macros/anda-srpm-macros.spec @@ -1,9 +1,9 @@ Name: anda-srpm-macros -Version: 0.2.21 -Release: 1%?dist +Version: 0.3.7 +Release: 2%{?dist} Summary: SRPM macros for extra Fedora packages -License: MIT +License: GPL-3.0-or-later URL: https://github.com/terrapkg/srpm-macros Source0: %url/archive/refs/tags/v%{version}.tar.gz @@ -13,6 +13,8 @@ Obsoletes: fyra-srpm-macros < 0.1.1-1 Provides: fyra-srpm-macros = %{version}-%{release} BuildArch: noarch +Packager: Terra Packaging Team + %description %{summary} @@ -36,9 +38,9 @@ install -Dpm755 *.sh -t %buildroot%_libexecdir/%name/ %{_rpmmacrodir}/macros.go_extra %{_rpmmacrodir}/macros.nim_extra %{_rpmmacrodir}/macros.nodejs_extra -%{_rpmmacrodir}/macros.web-assets_extra %{_rpmmacrodir}/macros.zig_extra - +%{_rpmmacrodir}/macros.tauri +%{_rpmmacrodir}/macros.webapps %changelog * Wed Aug 14 2024 madonuko - 0.1.7-2 diff --git a/anda/themes/adwaita++-icons/adwaita++-icons.spec b/anda/themes/adwaita++-icons/adwaita++-icons.spec index 8e3ed22575..5b6a4c1cee 100644 --- a/anda/themes/adwaita++-icons/adwaita++-icons.spec +++ b/anda/themes/adwaita++-icons/adwaita++-icons.spec @@ -3,10 +3,10 @@ Name: adwaita++-icons Version: 6.1 -Release: 1%{?dist} +Release: 2%{?dist} Summary: GNOME++, a third-party icons theme, based on new GNOME 3.32's Adwaita -License: GPL-3.0 and LGPL-3.0 and CC-BY-SA +License: GPL-3.0-or-later AND LGPL-3.0-or-later AND CC-BY-SA URL: https://github.com/Bonandry/adwaita-plus Source0: %{url}/archive/refs/tags/v%{version}.tar.gz BuildArch: noarch diff --git a/anda/themes/bibata-cursor-theme/bibata-cursor-theme.spec b/anda/themes/bibata-cursor-theme/bibata-cursor-theme.spec index 8a21b4a597..f100d25649 100644 --- a/anda/themes/bibata-cursor-theme/bibata-cursor-theme.spec +++ b/anda/themes/bibata-cursor-theme/bibata-cursor-theme.spec @@ -1,11 +1,10 @@ Name: bibata-cursor-theme Version: 2.0.7 -Release: 1%?dist +Release: 2%?dist URL: https://github.com/ful1e5/Bibata_Cursor Source0: %{url}/releases/download/v%{version}/Bibata.tar.xz Source1: https://raw.githubusercontent.com/ful1e5/Bibata_Cursor/v%{version}/README.md -Source2: https://raw.githubusercontent.com/ful1e5/Bibata_Cursor/v%{version}/LICENSE -License: GPL-3.0 +License: GPL-3.0-or-later Summary: Open source, compact, and material designed cursor set BuildArch: noarch BuildRequires: rpm_macro(fdupes) @@ -25,9 +24,8 @@ tar xf %{SOURCE0} %install mkdir -p %{buildroot}/%{_datadir}/icons/ mv Bibata-* %{buildroot}/%{_datadir}/icons/ -mkdir -p %{buildroot}/%{_datadir}/{doc,licenses}/%{name}/ +mkdir -p %{buildroot}/%{_datadir}/doc/%{name}/ cp %{SOURCE1} %{buildroot}/%{_datadir}/doc/%{name}/README.md -cp %{SOURCE2} %{buildroot}/%{_datadir}/licenses/%{name}/LICENSE %fdupes %buildroot%_datadir/icons/ %files @@ -36,5 +34,5 @@ cp %{SOURCE2} %{buildroot}/%{_datadir}/licenses/%{name}/LICENSE %{_datadir}/icons/Bibata-* %changelog -* Wed Jan 4 2023 windowsboy111 - 2.0.3-1 +* Wed Jan 4 2023 madonuko - 2.0.3-1 - Initial package diff --git a/anda/themes/breeze-plus-icon-theme/anda.hcl b/anda/themes/breeze-plus-icon-theme/anda.hcl new file mode 100644 index 0000000000..343aec0611 --- /dev/null +++ b/anda/themes/breeze-plus-icon-theme/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "breeze-plus-icon-theme.spec" + } +} diff --git a/anda/themes/breeze-plus-icon-theme/breeze-plus-icon-theme.spec b/anda/themes/breeze-plus-icon-theme/breeze-plus-icon-theme.spec new file mode 100644 index 0000000000..46997847ee --- /dev/null +++ b/anda/themes/breeze-plus-icon-theme/breeze-plus-icon-theme.spec @@ -0,0 +1,30 @@ +Name: breeze-plus-icon-theme +Version: 6.19.0 +Release: 2%{?dist} +Summary: Breeze icon theme with additional icons +Packager: Amy King + +License: LGPL-2.1-or-later +URL: https://github.com/mjkim0727/breeze-plus +Source0: %{url}/archive/refs/tags/%{version}.tar.gz +BuildArch: noarch +%description +%summary. + +%prep +%autosetup -n breeze-plus-%{version} +%build + +%install +mkdir -p %{buildroot}%{_datadir}/icons/ +cp -r src/* %{buildroot}%{_datadir}/icons/ + + +%files +%license LICENSE +%doc README.md +%{_datadir}/icons/* + +%changelog +* Wed Feb 25 2026 Amy King - 6.19.0 +- Initial package diff --git a/anda/themes/breeze-plus-icon-theme/update.rhai b/anda/themes/breeze-plus-icon-theme/update.rhai new file mode 100644 index 0000000000..d3bcb8269e --- /dev/null +++ b/anda/themes/breeze-plus-icon-theme/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("mjkim0727/breeze-plus")); diff --git a/anda/themes/fluent-icon-theme/fluent-icon-theme.spec b/anda/themes/fluent-icon-theme/fluent-icon-theme.spec index 67f001d78a..a972b7b875 100644 --- a/anda/themes/fluent-icon-theme/fluent-icon-theme.spec +++ b/anda/themes/fluent-icon-theme/fluent-icon-theme.spec @@ -2,10 +2,10 @@ Name: fluent-icon-theme Version: 20250821 -Release: 3%?dist +Release: 4%?dist Summary: Fluent icon theme for linux desktops -License: GPL-3.0 +License: GPL-3.0-or-later URL: https://github.com/vinceliuice/Fluent-icon-theme/ Source0: %url/archive/refs/tags/%tag.tar.gz diff --git a/anda/themes/fluent-kde-theme/fluent-kde-theme.spec b/anda/themes/fluent-kde-theme/fluent-kde-theme.spec index b35d46a3f0..b0014961a5 100644 --- a/anda/themes/fluent-kde-theme/fluent-kde-theme.spec +++ b/anda/themes/fluent-kde-theme/fluent-kde-theme.spec @@ -1,5 +1,5 @@ -%global commit 315251f3e0099fc7afa7ab183880141a478f584e -%global commit_date 20250428 +%global commit 44794f29c89de994b0179aebabd2f5776c90d236 +%global commit_date 20251110 %global shortcommit %(c=%{commit}; echo ${c:0:7}) Name: fluent-kde-theme diff --git a/anda/themes/fluent-theme/fluent-theme.spec b/anda/themes/fluent-theme/fluent-theme.spec index e42cd8bf72..dde09baa54 100644 --- a/anda/themes/fluent-theme/fluent-theme.spec +++ b/anda/themes/fluent-theme/fluent-theme.spec @@ -2,10 +2,10 @@ Name: fluent-theme Version: 20250417 -Release: 1%?dist +Release: 2%?dist Summary: Fluent design theme for GNOME/GTK based desktop environments -License: GPL-3.0 +License: GPL-3.0-or-later URL: https://github.com/vinceliuice/Fluent-gtk-theme Source0: https://github.com/vinceliuice/Fluent-gtk-theme/archive/refs/tags/%{tag}.tar.gz diff --git a/anda/themes/google-black-cursor-theme/google-black-cursor-theme.spec b/anda/themes/google-black-cursor-theme/google-black-cursor-theme.spec index b295bf9866..f7586f04c7 100644 --- a/anda/themes/google-black-cursor-theme/google-black-cursor-theme.spec +++ b/anda/themes/google-black-cursor-theme/google-black-cursor-theme.spec @@ -1,12 +1,12 @@ Name: google-black-cursor-theme Version: 2.0.0 -Release: 1%{?dist} +Release: 2%{?dist} URL: https://github.com/ful1e5/Google_Cursor Source0: %{url}/releases/download/v%{version}/GoogleDot-Black.tar.gz Source1: https://raw.githubusercontent.com/ful1e5/Google_Cursor/v%{version}/README.md Source2: https://raw.githubusercontent.com/ful1e5/Google_Cursor/v%{version}/LICENSE -License: GPL-3.0 -Summary: An opensource cursor theme inspired by Google. +License: GPL-3.0-or-later +Summary: An opensource cursor theme inspired by Google. BuildArch: noarch BuildRequires: rpm_macro(fdupes) diff --git a/anda/themes/helium-gtk-theme/helium-gtk-theme.spec b/anda/themes/helium-gtk-theme/helium-gtk-theme.spec index e48872988f..3894bf81d6 100644 --- a/anda/themes/helium-gtk-theme/helium-gtk-theme.spec +++ b/anda/themes/helium-gtk-theme/helium-gtk-theme.spec @@ -1,10 +1,10 @@ -%global ver 1.8.71 +%global ver 1.8.72 Summary: tauOS GTK/GNOME Shell Themes Name: helium-gtk-theme Version: %(echo %ver | sed 's/-/./g') -Release: 2%{?dist} -License: GPL-3.0 +Release: 3%{?dist} +License: GPL-3.0-or-later URL: https://github.com/tau-OS/tau-helium Source0: https://github.com/tau-OS/tau-helium/archive/refs/tags/%{ver}.tar.gz BuildArch: noarch diff --git a/anda/themes/hydrogen-icon-theme/hydrogen-icon-theme.spec b/anda/themes/hydrogen-icon-theme/hydrogen-icon-theme.spec index f7ba7faa06..744f30b98e 100644 --- a/anda/themes/hydrogen-icon-theme/hydrogen-icon-theme.spec +++ b/anda/themes/hydrogen-icon-theme/hydrogen-icon-theme.spec @@ -1,8 +1,8 @@ Summary: tauOS Icon Theme Name: hydrogen-icon-theme Version: 1.0.16 -Release: 2%?dist -License: GPL-3.0 +Release: 3%?dist +License: GPL-3.0-or-later URL: https://github.com/tau-OS/tau-hydrogen Source0: https://github.com/tau-OS/tau-hydrogen/archive/refs/tags/%{version}.tar.gz BuildArch: noarch diff --git a/anda/themes/kde-material-you-colors/VERSION_qt6-qtbase.txt b/anda/themes/kde-material-you-colors/VERSION_qt6-qtbase.txt new file mode 100644 index 0000000000..1de66e5ff8 --- /dev/null +++ b/anda/themes/kde-material-you-colors/VERSION_qt6-qtbase.txt @@ -0,0 +1 @@ +6.11.0 diff --git a/anda/themes/kde-material-you-colors/anda.hcl b/anda/themes/kde-material-you-colors/anda.hcl index d5adf4955b..7fb932a0ad 100644 --- a/anda/themes/kde-material-you-colors/anda.hcl +++ b/anda/themes/kde-material-you-colors/anda.hcl @@ -2,4 +2,7 @@ project pkg { rpm { spec = "kde-material-you-colors.spec" } + labels { + updbranch = 1 + } } diff --git a/anda/themes/kde-material-you-colors/kde-material-you-colors.spec b/anda/themes/kde-material-you-colors/kde-material-you-colors.spec index 5de39bcb08..6a2e27e5d1 100644 --- a/anda/themes/kde-material-you-colors/kde-material-you-colors.spec +++ b/anda/themes/kde-material-you-colors/kde-material-you-colors.spec @@ -1,79 +1,84 @@ +%global appid luisbocanegra.kdematerialyou.colors +%global developer "Luis Bocanegra" +%global org "com.github.luisbocanegra" +%global pypi_name kde_material_you_colors + Name: kde-material-you-colors -Version: 1.10.1 -Release: 1%?dist +Version: 2.2.0 +Release: 4%{?dist} Summary: Automatic Material You Colors Generator from your wallpaper for the Plasma Desktop License: GPL-3.0-only URL: https://github.com/luisbocanegra/%{name} # The PyPi source is a more generic install and lacks the Plasmoid config Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz +BuildRequires: anda-srpm-macros BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: cmake >= 3.16 BuildRequires: extra-cmake-modules >= 6.0.0 -BuildRequires: fdupes BuildRequires: generic-logos -BuildRequires: libplasma-devel -BuildRequires: plasma5support-devel BuildRequires: pyproject-rpm-macros BuildRequires: python3-devel BuildRequires: python-rpm-macros BuildRequires: python3dist(pip) BuildRequires: python3dist(setuptools) >= 61.0 BuildRequires: python3dist(wheel) >= 0.37.1 -BuildRequires: qt5-qtbase-devel +BuildRequires: cmake(KF6CoreAddons) +BuildRequires: cmake(KF6Service) +BuildRequires: cmake(KF6KirigamiPlatform) +BuildRequires: cmake(Plasma) +BuildRequires: cmake(Plasma5Support) +BuildRequires: cmake(Qt5Core) +BuildRequires: pkgconfig(ocl-icd) Requires: qt5-qtbase Requires: kf6-filesystem >= 6.0.0 -Requires: python3-%{name} = %{version}-%{release} -Packager: Gilver E. +Requires: python3-%{name} = %{evr} +Packager: Gilver E. %description Automatic Material You Colors Generator from your wallpaper for the Plasma Desktop %package -n python3-%{name} Summary: Python files for %{name} -Requires: %{name} = %{version}-%{release} -Requires: python3-dbus -Requires: python3dist(numpy) >= 1.20 -Requires: python3dist(materialyoucolor) >= 2.0.9 -Requires: python3dist(pywal16) -Requires: python3dist(pillow) +Requires: %{name} = %{evr} +Requires: python%{python3_version}dist(file-magic) +Requires: python%{python3_version}dist(pywal16) BuildArch: noarch %description -n python3-%{name} Python files for KDE Material You Colors. %prep -%autosetup -p1 -n %{name}-%{version} +%autosetup -n %{name}-%{version} +%pyproject_patch_dependency python-magic:ignore + +%conf +%cmake \ + -DCMAKE_INSTALL_PREFIX="%{_prefix}" \ + -DINSTALL_PLASMOID="ON" %build %pyproject_wheel -%cmake \ - -DCMAKE_INSTALL_PREFIX=%{_prefix} \ - -DINSTALL_PLASMOID=ON %cmake_build %install %pyproject_install -DESTDIR="%{buildroot}" %cmake_install - -sed -i "1{/^#!\/usr\/bin\/env python3/d}" %{buildroot}%{python3_sitelib}/kde_material_you_colors/main.py -%fdupes %{buildroot}%{python3_sitelib}/%{name}/ - +%pyproject_save_files %{pypi_name} +%cmake_install %files %doc CHANGELOG.md %doc README.md %license LICENSE %{_bindir}/%{name}-screenshot-helper -%{_datadir}/applications/%{name}-screenshot-helper.desktop -%{_datadir}/metainfo/luisbocanegra.kdematerialyou.colors.appdata.xml -%{_datadir}/plasma/plasmoids/luisbocanegra.kdematerialyou.colors/ +%{_appsdir}/%{name}-screenshot-helper.desktop +%{_datadir}/plasma/plasmoids/%{appid}/ -%files -n python3-%{name} +%files -n python3-%{name} -f %{pyproject_files} %{_bindir}/%{name} -%{python3_sitelib}/kde_material_you_colors/ -%{python3_sitelib}/kde_material_you_colors-%{version}.dist-info/ %changelog +* Tue May 5 2026 Gilver E. - 2.2.0-4 +- Refactor build around new RPM macros * Wed May 28 2025 Gilver E. - Initial package diff --git a/anda/themes/kde-material-you-colors/update.rhai b/anda/themes/kde-material-you-colors/update.rhai index 7d94a6b1d0..117be52924 100644 --- a/anda/themes/kde-material-you-colors/update.rhai +++ b/anda/themes/kde-material-you-colors/update.rhai @@ -1 +1,12 @@ -rpm.version(pypi("kde-material-you-colors")); +import "andax/bump_extras.rhai" as bump; +import "andax/spec.rhai" as spec; + +rpm.version(find(`version = \"([\d.]+)\"`, gh_rawfile("luisbocanegra/kde-material-you-colors", "main", "pyproject.toml"), 1)); + +open_file("anda/themes/kde-material-you-colors/VERSION_qt6-qtbase.txt", "w").write(bump::bodhi("qt6-qtbase", bump::as_bodhi_ver(labels.branch))); + +let dir = sub(`/[^/]+$`, "", __script_path); +if sh("[[ `git status " + dir + " --porcelain` ]] && exit 1 || exit 0", #{}).ctx.rc == 1 { + let rel = spec::get_release(rpm).parse_int(); + rpm.release(rel + 1); +} diff --git a/anda/themes/klassy/klassy.spec b/anda/themes/klassy/klassy.spec index 79663ec613..64d5ebc191 100644 --- a/anda/themes/klassy/klassy.spec +++ b/anda/themes/klassy/klassy.spec @@ -1,8 +1,8 @@ Name: klassy %global forgeurl https://github.com/paulmcauley/%{name} -%global tag 6.4.breeze6.4.0 -%global date 20250617 +%global tag v6.5.3 +%global date 20260221 %forgemeta Version: %{tag} @@ -12,13 +12,13 @@ License: GPL-2.0-or-later Group: System/GUI/KDE URL: %{forgeurl} Source: %{forgesource} -Patch0: https://github.com/paulmcauley/klassy/pull/178.patch Obsoletes: classikstyles <= %{version} Obsoletes: classik <= %{version} BuildRequires: cmake >= 3.16 BuildRequires: extra-cmake-modules >= 5.102.0 +BuildRequires: gettext BuildRequires: kf5-rpm-macros BuildRequires: kf5-filesystem @@ -80,13 +80,29 @@ Klassy (formerly ClassiK/ClassikStyles) is a highly customizable binary Window D %forgeautosetup -p1 %build -%cmake +mkdir -p qt6-build +pushd qt6-build +%cmake_kf6 -S .. -DBUILD_QT6=ON -DBUILD_QT5=OFF %cmake_build +popd +mkdir -p qt5-build +pushd qt5-build +%cmake_kf5 -S .. -DBUILD_QT6=OFF -DBUILD_QT5=ON +%cmake_build +popd %install +pushd qt5-build %cmake_install +popd +pushd qt6-build +%cmake_install +popd -%files +%find_lang %{name}_style_config +%find_lang %{name}_kwin_deco + +%files -f %{name}_style_config.lang -f %{name}_kwin_deco.lang %license LICENSES/*.txt %{_bindir}/%{name}-settings @@ -102,18 +118,19 @@ Klassy (formerly ClassiK/ClassikStyles) is a highly customizable binary Window D %{_kf6_qtplugindir}/kstyle_config/klassystyleconfig.so %{_kf6_qtplugindir}/org.kde.kdecoration3/org.kde.klassy.so %{_kf6_qtplugindir}/org.kde.kdecoration3.kcm/kcm_klassydecoration.so -%{_kf6_qtplugindir}/org.kde.kdecoration2.kcm/klassydecoration/presets/* +%{_kf6_qtplugindir}/org.kde.kdecoration3.kcm/klassydecoration/presets/* %{_kf6_datadir}/applications/kcm_klassydecoration.desktop %{_kf6_datadir}/applications/klassystyleconfig.desktop %{_kf6_datadir}/applications/klassy-settings.desktop %{_kf6_datadir}/color-schemes/Klassy*.colors +%{_kf6_datadir}/color-schemes/OpalFruits*.colors %{_datadir}/icons/hicolor/ %{_datadir}/icons/%{name}/ %{_datadir}/icons/%{name}-dark/ -%{_datadir}/plasma/desktoptheme/%{name}/ +%{_datadir}/plasma/desktoptheme/kite-*/ %{_kf6_datadir}/kstyle/themes/%{name}.themerc @@ -122,4 +139,3 @@ Klassy (formerly ClassiK/ClassikStyles) is a highly customizable binary Window D %changelog %autochangelog - diff --git a/anda/themes/lightly-qt5/VER5.txt b/anda/themes/lightly-qt5/VER5.txt index 60d3b2f4a4..7273c0fa8c 100644 --- a/anda/themes/lightly-qt5/VER5.txt +++ b/anda/themes/lightly-qt5/VER5.txt @@ -1 +1 @@ -15 +25 diff --git a/anda/themes/lightly-qt6/VER6.txt b/anda/themes/lightly-qt6/VER6.txt index ec635144f6..9d607966b7 100644 --- a/anda/themes/lightly-qt6/VER6.txt +++ b/anda/themes/lightly-qt6/VER6.txt @@ -1 +1 @@ -9 +11 \ No newline at end of file diff --git a/anda/themes/orchis-theme/anda.hcl b/anda/themes/orchis-theme/anda.hcl new file mode 100644 index 0000000000..df3915c677 --- /dev/null +++ b/anda/themes/orchis-theme/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "orchis-theme.spec" + } +} diff --git a/anda/themes/orchis-theme/orchis-theme.spec b/anda/themes/orchis-theme/orchis-theme.spec new file mode 100644 index 0000000000..166b336629 --- /dev/null +++ b/anda/themes/orchis-theme/orchis-theme.spec @@ -0,0 +1,148 @@ +%define theme_name orchis +%define original_theme_name Orchis + +%global ver 2025-04-25 +%global sanitized_ver %(echo %{ver} | sed 's/-//g') + +Name: gtk-theme-%theme_name +Version: %{sanitized_ver} +Release: 3%{?dist} +Summary: Orchis is a Material Design theme for GNOME/GTK based desktop environments +License: GPL-3.0-only +Url: https://github.com/vinceliuice/Orchis-theme/ +Source0: %{url}/archive/refs/tags/%{ver}.tar.gz + +BuildRequires: sassc + +Requires: cinnamon-theme-%theme_name +Requires: gtk2-theme-%theme_name +Requires: gtk3-theme-%theme_name +Requires: gtk4-theme-%theme_name +Requires: metacity-theme-%theme_name +Requires: plank-theme-%theme_name +Requires: xfwm4-theme-%theme_name +Requires: sassc + +BuildArch: noarch + +Packager: Owen Zimmerman + +%description +Orchis is a Material Design theme for GNOME/GTK based desktop environments. +Based on nana-4 -- materia-theme (https://github.com/nana-4/materia-theme). + +%package common +Summary: Common files for %original_theme_name theme +Group: Graphical desktop/GNOME + +%description common +%summary. + +%package -n cinnamon-theme-%theme_name +Summary: %original_theme_name Cinnamon theme +Group: Graphical desktop/GNOME + +Requires: %name-common + +%description -n cinnamon-theme-%theme_name +%summary. + +%package -n gtk2-theme-%theme_name +Summary: %original_theme_name GTK2 theme +Group: Graphical desktop/GNOME + +Requires: %name-common +Requires: gtk2-themes-murrine + +%description -n gtk2-theme-%theme_name +%summary. + +%package -n gtk3-theme-%theme_name +Summary: %original_theme_name GTK3 theme +Group: Graphical desktop/GNOME + +Requires: %name-common + +%description -n gtk3-theme-%theme_name +%summary. + +%package -n gtk4-theme-%theme_name +Summary: %original_theme_name GTK4 theme +Group: Graphical desktop/GNOME + +Requires: %name-common + +%description -n gtk4-theme-%theme_name +%summary. + +%package -n metacity-theme-%theme_name +Summary: %original_theme_name Metacity theme +Group: Graphical desktop/GNOME + +Requires: %name-common + +%description -n metacity-theme-%theme_name +%summary. + +%package -n plank-theme-%theme_name +Summary: %original_theme_name Plank theme +Group: Graphical desktop/GNOME + +Requires: %name-common + +%description -n plank-theme-%theme_name +%summary. + +%package -n xfwm4-theme-%theme_name +Summary: %original_theme_name Xfwm theme +Group: Graphical desktop/XFce + +Requires: %name-common + +%description -n xfwm4-theme-%theme_name +%summary. + +%prep +%autosetup -n Orchis-theme-%{ver} + +%install +mkdir -p %buildroot%_datadir/themes +./install.sh \ + --tweaks submenu \ + --tweaks dock \ + --theme all \ + --dest %buildroot%_datadir/themes + +%files common +%_datadir/themes/%{original_theme_name}*/index.theme +%_datadir/themes/%{original_theme_name}*/COPYING +%doc README.md + +%files -n cinnamon-theme-%theme_name +%_datadir/themes/%{original_theme_name}*/cinnamon + +%files -n gtk2-theme-%theme_name +%_datadir/themes/%{original_theme_name}*/gtk-2.0 + +%files -n gtk3-theme-%theme_name +%_datadir/themes/%{original_theme_name}*/gnome-shell +%_datadir/themes/%{original_theme_name}*/gtk-3.0 + +%files -n gtk4-theme-%theme_name +%_datadir/themes/%{original_theme_name}*/gtk-4.0 + +%files -n metacity-theme-%theme_name +%_datadir/themes/%{original_theme_name}*/metacity-1 + +%files -n plank-theme-%theme_name +%_datadir/themes/%{original_theme_name}*/plank + +%files -n xfwm4-theme-%theme_name +%_datadir/themes/%{original_theme_name}*/xfwm4 + +%changelog +* Sun Nov 23 2025 Owen Zimmerman +- Port to Terra + +* Tue Jul 08 2025 David Sultaniiazov 20250405-alt1 +- Initial build diff --git a/anda/themes/orchis-theme/update.rhai b/anda/themes/orchis-theme/update.rhai new file mode 100644 index 0000000000..1de7c83e4c --- /dev/null +++ b/anda/themes/orchis-theme/update.rhai @@ -0,0 +1 @@ +rpm.global("ver", gh("vinceliuice/Orchis-theme")); diff --git a/anda/themes/tela-icon-theme/tela-icon-theme.spec b/anda/themes/tela-icon-theme/tela-icon-theme.spec index df3aea1a85..56cf2eb0dc 100644 --- a/anda/themes/tela-icon-theme/tela-icon-theme.spec +++ b/anda/themes/tela-icon-theme/tela-icon-theme.spec @@ -1,5 +1,5 @@ -%global commit 03cf34575b7806fcb69553c41ba88f75d0fe839e -%global commit_date 20251025 +%global commit 340333cfd0ebdab7ea9d25cd66a5142c440d2f48 +%global commit_date 20251205 %global shortcommit %(c=%{commit}; echo ${c:0:7}) Name: tela-icon-theme diff --git a/anda/themes/unity-asset-pool/unity-asset-pool.spec b/anda/themes/unity-asset-pool/unity-asset-pool.spec index 068c52a4fc..4555a7684f 100644 --- a/anda/themes/unity-asset-pool/unity-asset-pool.spec +++ b/anda/themes/unity-asset-pool/unity-asset-pool.spec @@ -3,7 +3,7 @@ Name: unity-asset-pool Summary: Assets and icons for Unity Version: 0.8.24 -Release: %autorelease +Release: 1%?dist License: CC-BY-SA URL: https://launchpad.net/unity-asset-pool diff --git a/anda/tools/HeadsetControl-nightly/HeadsetControl-nightly.spec b/anda/tools/HeadsetControl-nightly/HeadsetControl-nightly.spec new file mode 100644 index 0000000000..9e9bba3207 --- /dev/null +++ b/anda/tools/HeadsetControl-nightly/HeadsetControl-nightly.spec @@ -0,0 +1,42 @@ +%global _udevrulesdir /usr/lib/udev/rules.d + +%global commit 694b8576da70938b02c2de4664a51b5cb0a335fb +%global commitdate 20251121 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) + +Name: HeadsetControl-nightly +Version: 0^%{commitdate}.%{shortcommit} +Release: 1%{?dist} +Summary: A tool to control certain aspects of USB-connected headsets on Linux +URL: https://github.com/Sapd/HeadsetControl +Source: %{url}/archive/%{commit}.tar.gz +License: GPL-3.0 +Provides: headsetcontrol-nightly +Conflicts: headsetcontrol + +BuildRequires: cmake gcc hidapi-devel + +%description +A tool to control certain aspects of USB-connected headsets on Linux. +Currently, support is provided for adjusting sidetone, getting battery +state, controlling LEDs, and setting the inactive time. + +%prep +%autosetup -n HeadsetControl-%{commit} + +%build +%cmake +%cmake_build + +%install +%cmake_install + +%files +%doc README.md +%license license +%{_bindir}/headsetcontrol +%{_udevrulesdir}/70-headsets.rules + +%changelog +* Wed Nov 26 2025 metcya +- package HeadsetControl diff --git a/anda/tools/HeadsetControl-nightly/anda.hcl b/anda/tools/HeadsetControl-nightly/anda.hcl new file mode 100644 index 0000000000..df4eed92b7 --- /dev/null +++ b/anda/tools/HeadsetControl-nightly/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "HeadsetControl-nightly.spec" + } + labels { + nightly = 1 + } +} diff --git a/anda/tools/HeadsetControl-nightly/update.rhai b/anda/tools/HeadsetControl-nightly/update.rhai new file mode 100644 index 0000000000..2baf4b01e6 --- /dev/null +++ b/anda/tools/HeadsetControl-nightly/update.rhai @@ -0,0 +1,5 @@ +rpm.global("commit", gh_commit("Sapd/HeadsetControl")); +if rpm.changed() { + rpm.release(); + rpm.global("commit_date", date()); +} diff --git a/anda/tools/MareTF/MareTF.spec b/anda/tools/MareTF/MareTF.spec new file mode 100644 index 0000000000..123d95bee3 --- /dev/null +++ b/anda/tools/MareTF/MareTF.spec @@ -0,0 +1,58 @@ +%define debug_package %{nil} + +Name: MareTF +Version: 0.11.0 +Release: 1%{?dist} +License: MIT +Summary: A utility to create, edit, and display every type of VTF file ever made +URL: https://github.com/craftablescience/MareTF +Source: %{url}/archive/refs/tags/v%{version}.tar.gz +Packager: Owen Zimmerman +Provides: maretf + +BuildRequires: gcc-c++ +BuildRequires: cmake +BuildRequires: pkgconfig(freetype2) +BuildRequires: pkgconfig(flac) +BuildRequires: pkgconfig(gtk+-3.0) +BuildRequires: pkgconfig(vorbis) +BuildRequires: pkgconfig(zlib) +BuildRequires: cmake(Qt6LinguistTools) +BuildRequires: ninja-build +BuildRequires: vulkan-headers + +%description +%{summary}. + +%prep +%git_clone + +%conf +%cmake \ + -DCMAKE_BUILD_TYPE=Release \ + -DMARETF_BUILD_INSTALLER=ON \ + -DCPACK_GENERATOR=RPM \ + -DMARETF_BUILD_INSTALLER=ON + +%build +%cmake_build + +%install +%cmake_install + +%files +%doc README.md +%license LICENSE +%{_bindir}/maretf +%{_bindir}/maretf_gui +%{_appsdir}/maretf.desktop +%{_hicolordir}/512x512/apps/maretf.png +%{_defaultlicensedir}/maretf/LICENSE +%{_datadir}/mime/packages/maretf.xml + +%changelog +* Sun Mar 15 2026 Owen Zimmerman +- Build release build + +* Sat Mar 14 2026 Owen Zimmerman +- Initial commit diff --git a/anda/tools/MareTF/anda.hcl b/anda/tools/MareTF/anda.hcl new file mode 100644 index 0000000000..ff6f663d92 --- /dev/null +++ b/anda/tools/MareTF/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "MareTF.spec" + } +} diff --git a/anda/tools/MareTF/update.rhai b/anda/tools/MareTF/update.rhai new file mode 100644 index 0000000000..207c029245 --- /dev/null +++ b/anda/tools/MareTF/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("craftablescience/MareTF")); diff --git a/anda/tools/alipad/alipad.spec b/anda/tools/alipad/alipad.spec new file mode 100644 index 0000000000..d4a6376255 --- /dev/null +++ b/anda/tools/alipad/alipad.spec @@ -0,0 +1,41 @@ +%global commit 4413a0225966c2f9d19f0bcbcd754e2d62d56941 +%global commit_date 20260213 +%global shortcommit %{sub %{commit} 0 7} + +%undefine __brp_mangle_shebangs + +Name: alipad +Version: 0~%{commit_date}git.%{shortcommit} +Release: 1%?dist +Summary: Robust event check-in system +URL: https://git.sr.ht/~malicean/alipad +Source0: https://git.sr.ht/~malicean/alipad/archive/%{commit}.tar.gz +License: BSD-3-Clause +BuildRequires: cargo-rpm-macros cargo gcc rust-udev-devel + +Packager: Owen Zimmerman + +%description +A low-budget and robust event check-in system built atop a Proxmark3 and +set of ISO/IEC 14443-3 compliant smartcards which your attendees bring +(NTAG, Mifare, Ventra, generic NFC, and more), in order to simplify and +speed-up the check-in process. To the attendees, it's faster, easier, and has a charm! + +%prep +%autosetup -n %{name}-%{commit} +%cargo_prep_online + +%build +%cargo_build + +%install +install -Dm755 target/rpm/alipad %{buildroot}%{_bindir}/alipad + +%files +%doc README.md CHANGELOG.md +%license LICENSE +%{_bindir}/alipad + +%changelog +* Sat Feb 14 2026 Owen Zimmerman +- Initial commit diff --git a/anda/tools/alipad/anda.hcl b/anda/tools/alipad/anda.hcl new file mode 100644 index 0000000000..315dde1198 --- /dev/null +++ b/anda/tools/alipad/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "alipad.spec" + } +} diff --git a/anda/tools/alipad/update.rhai b/anda/tools/alipad/update.rhai new file mode 100644 index 0000000000..abf1bfb8ee --- /dev/null +++ b/anda/tools/alipad/update.rhai @@ -0,0 +1 @@ +// Empty until sourcehut update script diff --git a/anda/tools/appimagelauncher/appimagelauncher.spec b/anda/tools/appimagelauncher/appimagelauncher.spec index 76893874d2..12be75e48b 100644 --- a/anda/tools/appimagelauncher/appimagelauncher.spec +++ b/anda/tools/appimagelauncher/appimagelauncher.spec @@ -2,7 +2,7 @@ %global git_shortcommit %(c=%{git_commit}; echo ${c:0:7}) Name: appimagelauncher -Version: 3.0.0.beta.2 +Version: 3.0.0.beta.3 Release: 1%?dist Summary: Helper application for Linux distributions serving as a kind of "entry point" for running and integrating AppImages diff --git a/anda/tools/arduino-app-bricks-py/anda.hcl b/anda/tools/arduino-app-bricks-py/anda.hcl new file mode 100644 index 0000000000..890f5d2400 --- /dev/null +++ b/anda/tools/arduino-app-bricks-py/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "arduino-app-bricks-py.spec" + } +} diff --git a/anda/tools/arduino-app-bricks-py/arduino-app-bricks-py.spec b/anda/tools/arduino-app-bricks-py/arduino-app-bricks-py.spec new file mode 100644 index 0000000000..ca35393c58 --- /dev/null +++ b/anda/tools/arduino-app-bricks-py/arduino-app-bricks-py.spec @@ -0,0 +1,70 @@ +%global pypi_name app-bricks-py +%global _desc The code of the Arduino App Lab Bricks + +%global ver release/0.9.2 +%global sanitized_ver %(echo %{ver} | sed 's|release/||') + +Name: %{pypi_name} +Version: %sanitized_ver +Release: 1%?dist +Summary: The code of the Arduino App Lab Bricks +License: MPL-2.0 +URL: https://github.com/arduino/app-bricks-py +Source0: %url/archive/refs/tags/release/%version.tar.gz +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-wheel +BuildRequires: python3-setuptools +BuildRequires: python3-setuptools_scm +BuildRequires: python3-build +BuildRequires: python3-pip +BuildRequires: python3-docstring-parser +BuildRequires: python3-watchdog +BuildRequires: python3-pillow +BuildRequires: python3-requests +BuildRequires: python3-numpy + +Provides: arduino-app-bricks-py +Provides: arduino-app-bricks + +Requires: python3-watchdog +Requires: python3-%{pypi_name} = %evr + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +Python libaries for Arduino App Lab Bricks + +%prep +%autosetup -n %{pypi_name}-release-%{version} + +%build +export SETUPTOOLS_SCM_PRETEND_VERSION=%{version} +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files arduino + +%files +%doc README.md +%license LICENSE.txt +%{_bindir}/arduino-bricks-list-modules +%{_bindir}/arduino-bricks-release +%{_bindir}/arduino-bricks-update-ai-container-ref + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md +%license LICENSE.txt + +%changelog +* Mon Dec 08 2025 Owen Zimmerman +- Initial commit diff --git a/anda/tools/arduino-app-bricks-py/update.rhai b/anda/tools/arduino-app-bricks-py/update.rhai new file mode 100644 index 0000000000..4d5b351b5d --- /dev/null +++ b/anda/tools/arduino-app-bricks-py/update.rhai @@ -0,0 +1 @@ +rpm.global("ver", gh("arduino/app-bricks-py")); diff --git a/anda/tools/arduino-app-cli/anda.hcl b/anda/tools/arduino-app-cli/anda.hcl new file mode 100644 index 0000000000..d50e98f129 --- /dev/null +++ b/anda/tools/arduino-app-cli/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "arduino-app-cli.spec" + } +} diff --git a/anda/tools/arduino-app-cli/arduino-app-cli.spec b/anda/tools/arduino-app-cli/arduino-app-cli.spec new file mode 100644 index 0000000000..2c241f9d82 --- /dev/null +++ b/anda/tools/arduino-app-cli/arduino-app-cli.spec @@ -0,0 +1,41 @@ +%global goipath github.com/arduino/arduino-app-cli +Version: 0.9.0 + +%gometa -f + +Name: arduino-app-cli +Release: 1%{?dist} +Summary: The CLI and service that manages and runs Arduino Apps on UNO Q +License: GPL-3.0-only + +URL: https://github.com/arduino/arduino-app-cli +Source: %{gosource} +BuildRequires: anda-srpm-macros +BuildRequires: go-rpm-macros +BuildRequires: go-task + +Packager: Owen Zimmerman + +%description +%{summary}. + +%gopkg + +%prep +%goprep -A + +%build +%define gomodulesmode GO111MODULE=on +%gobuild -o %{gobuilddir}/cmd/arduino-app-cli %{goipath}/cmd/arduino-app-cli + +%install +install -Dm755 %{gobuilddir}/cmd/arduino-app-cli %{buildroot}%{_bindir}/arduino-app-cli + +%files +%license LICENSE +%doc README.md +%{_bindir}/arduino-app-cli + +%changelog +* Thu Dec 04 2025 Owen Zimmerman +- Initial commit diff --git a/anda/tools/arduino-app-cli/update.rhai b/anda/tools/arduino-app-cli/update.rhai new file mode 100644 index 0000000000..414252de42 --- /dev/null +++ b/anda/tools/arduino-app-cli/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("arduino/arduino-app-cli")); diff --git a/anda/tools/arduino-app-lab-bin/anda.hcl b/anda/tools/arduino-app-lab-bin/anda.hcl new file mode 100644 index 0000000000..de334de753 --- /dev/null +++ b/anda/tools/arduino-app-lab-bin/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "arduino-app-lab-bin.spec" + } +} \ No newline at end of file diff --git a/anda/tools/arduino-app-lab-bin/arduino-app-lab-bin.spec b/anda/tools/arduino-app-lab-bin/arduino-app-lab-bin.spec new file mode 100644 index 0000000000..8f389ec95f --- /dev/null +++ b/anda/tools/arduino-app-lab-bin/arduino-app-lab-bin.spec @@ -0,0 +1,64 @@ +%global appid cc.arduino.AppLab + +Name: arduino-app-lab-bin +Version: 0.5.0 +Release: 1%?dist +Summary: A powerful visual environment for managing the Arduino UNO Q + +Provides: arduino-app-lab +URL: https://www.arduino.cc/en/software +License: GPL-3.0 + +Source0: https://downloads.arduino.cc/AppLab/Stable/ArduinoAppLab_%{version}_Linux_x86-64.tar.gz +Source1: https://downloads.arduino.cc/AppLab/Stable/source-app-lab-%{version}.zip +Source2: cc.arduino.AppLab.desktop +Source3: cc.arduino.AppLab.metainfo.xml + +ExclusiveArch: x86_64 + +Requires: android-tools + +BuildRequires: terra-appstream-helper desktop-file-utils + +Suggests: arduino-flasher-cli arduino-app-cli + +Packager: Jaiden Riordan + +%description +%summary. + +%prep +tar -xvf %{_sourcedir}/ArduinoAppLab_%{version}_Linux_x86-64.tar.gz +unzip %{_sourcedir}/source-app-lab-%{version}.zip + +%install +install -dm755 %{buildroot}%{_bindir} +install -p -m755 ArduinoAppLab_%{version}_Linux_x86-64/arduino-app-lab %{buildroot}%{_bindir}/%{name} + +install -dm755 %{buildroot}%{_scalableiconsdir}/ +install -p -m644 source-app-lab/ui-packages/images/assets/round-arduino-logo.svg %{buildroot}%{_scalableiconsdir}/cc.arduino.AppLab.svg + +install -dm755 %{buildroot}%{_appsdir}/ +install -p -m644 %{SOURCE2} %{buildroot}%{_appsdir}/%{appid}.desktop + +cp source-app-lab/LICENSE -t . +cp source-app-lab/dependency_licenses -t . + +%terra_appstream -o %{SOURCE3} + +%check +desktop-file-validate %{buildroot}%{_appsdir}/%{appid}.desktop + +%files +%license LICENSE +%license dependency_licenses +%{_bindir}/%{name} +%{_scalableiconsdir}/%{appid}.svg +%{_appsdir}/%{appid}.desktop +%{_metainfodir}/%{appid}.metainfo.xml + +%changelog +* Thu Dec 25 2025 Owen Zimmerman +- Add %check, update macros +* Thu Dec 4 2025 Jaiden Riordan +- Package arduino-app-lab-bin diff --git a/anda/tools/arduino-app-lab-bin/cc.arduino.AppLab.desktop b/anda/tools/arduino-app-lab-bin/cc.arduino.AppLab.desktop new file mode 100644 index 0000000000..0f3d196354 --- /dev/null +++ b/anda/tools/arduino-app-lab-bin/cc.arduino.AppLab.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Name=Arduino App Lab +Comment=A powerful visual environment for managing the Arduino UNO Q +Exec=arduino-app-lab-bin +Icon=cc.arduino.AppLab +Terminal=false +Type=Application +Categories=Development +StartupNotify=true +Keywords=arduino;applab;lab +StartupWMClass=arduino-app-lab-bin \ No newline at end of file diff --git a/anda/tools/arduino-app-lab-bin/cc.arduino.AppLab.metainfo.xml b/anda/tools/arduino-app-lab-bin/cc.arduino.AppLab.metainfo.xml new file mode 100644 index 0000000000..9d703d791a --- /dev/null +++ b/anda/tools/arduino-app-lab-bin/cc.arduino.AppLab.metainfo.xml @@ -0,0 +1,25 @@ + + + cc.arduino.AppLab + CC0-1.0 + GPL-3.0 + + Arduino App Lab + A powerful visual environment for managing the Arduino UNO Q + + + /usr/share/icons/hicolor/scalable/apps/cc.arduino.AppLab.svg + + +

+ A powerful visual environment for managing your UNO Q board — combine prebuilt modules, called Bricks, with AI models to define your board’s behavior with ease. + App Lab supports both classic C++ sketches via the Arduino IDE and Python, giving you full flexibility to develop the way you prefer. +

+
+ https://arduino.cc + + + + +
diff --git a/anda/tools/arduino-app-lab-bin/update.rhai b/anda/tools/arduino-app-lab-bin/update.rhai new file mode 100644 index 0000000000..49158f5883 --- /dev/null +++ b/anda/tools/arduino-app-lab-bin/update.rhai @@ -0,0 +1,3 @@ +let v = gh("arduino/arduino-app-lab"); +v.crop(3); +print(v); diff --git a/anda/tools/arduino-cli/arduino-cli.spec b/anda/tools/arduino-cli/arduino-cli.spec index 2f583cd7e8..d9c69ae445 100644 --- a/anda/tools/arduino-cli/arduino-cli.spec +++ b/anda/tools/arduino-cli/arduino-cli.spec @@ -1,6 +1,6 @@ # https://github.com/arduino/arduino-cli %global goipath github.com/arduino/arduino-cli -Version: 1.3.1 +Version: 1.4.1 %gometa -f @@ -12,7 +12,7 @@ Arduino CLI is an all-in-one solution that provides Boards/Library Managers, ske %global godocs README.md Name: arduino-cli -Release: 2%?dist +Release: 1%?dist Summary: Arduino command line tool License: GPL-3.0 Packager: Owen Zimmerman diff --git a/anda/tools/arduino-flasher-cli/anda.hcl b/anda/tools/arduino-flasher-cli/anda.hcl new file mode 100644 index 0000000000..d962f7530e --- /dev/null +++ b/anda/tools/arduino-flasher-cli/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "arduino-flasher-cli.spec" + } +} diff --git a/anda/tools/arduino-flasher-cli/arduino-flasher-cli.spec b/anda/tools/arduino-flasher-cli/arduino-flasher-cli.spec new file mode 100644 index 0000000000..fef8ecedff --- /dev/null +++ b/anda/tools/arduino-flasher-cli/arduino-flasher-cli.spec @@ -0,0 +1,46 @@ +%global goipath github.com/arduino/arduino-flasher-cli +Version: 0.5.1 + +%gometa -f + +%global common_description %{expand: +CLI tool to flash UNO Q boards with the latest Arduino Linux image.} + +%global golicenses LICENSE license_header.tpl +%global godocs README.md + +Name: arduino-flasher-cli +Release: 1%{?dist} +Summary: CLI tool to flash UNO Q boards with the latest Arduino Linux image +License: GPL-3.0-only +URL: %{gourl} +Source0: %{gosource} +Source1: https://raw.githubusercontent.com/arduino/arduino-flasher-cli/refs/heads/main/README.md +BuildRequires: anda-srpm-macros qdl +ExclusiveArch: x86_64 + +%description %{common_description} + +%gopkg + +%prep +%goprep + +%build +mkdir -p updater/artifacts/resources_linux_amd64 +cp %{_bindir}/qdl updater/artifacts/resources_linux_amd64/qdl +%define gomodulesmode GO111MODULE=on +%gobuild -o %{gobuilddir}/bin/arduino-cli %{goipath} + +%install +cp %{S:1} README.md +install -Dm755 %{gobuilddir}/bin/arduino-cli -t %buildroot%{_bindir} + +%files +%license LICENSE +%doc README.md +%{_bindir}/arduino-cli + +%changelog +* Fri Nov 14 2025 Jaiden Riordan +- Package Arduino Flasher :3 diff --git a/anda/tools/arduino-flasher-cli/update.rhai b/anda/tools/arduino-flasher-cli/update.rhai new file mode 100644 index 0000000000..fe0c430914 --- /dev/null +++ b/anda/tools/arduino-flasher-cli/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("arduino/arduino-flasher-cli")); \ No newline at end of file diff --git a/anda/tools/arduino-lab-micropython-installer/anda.hcl b/anda/tools/arduino-lab-micropython-installer/anda.hcl new file mode 100644 index 0000000000..f88bba19e8 --- /dev/null +++ b/anda/tools/arduino-lab-micropython-installer/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "arduino-lab-micropython-installer.spec" + } +} diff --git a/anda/tools/arduino-lab-micropython-installer/arduino-lab-micropython-installer.spec b/anda/tools/arduino-lab-micropython-installer/arduino-lab-micropython-installer.spec new file mode 100644 index 0000000000..a0b498dd86 --- /dev/null +++ b/anda/tools/arduino-lab-micropython-installer/arduino-lab-micropython-installer.spec @@ -0,0 +1,46 @@ + +Name: lab-micropython-installer +%electronmeta +Version: 1.4.0 +Release: 1%?dist +License: AGPL-3.0 AND %electron_license +Summary: This repository hosts the entire code of the Arduino MicroPython Installer tool +URL: https://github.com/arduino/lab-micropython-installer +Source0: %url/archive/refs/tags/v%version.tar.gz +Source1: micropython-installer.desktop +Packager: Owen Zimmerman +Requires: libdrm libxcb +BuildRequires: anda-srpm-macros +BuildRequires: desktop-file-utils +BuildRequires: pnpm +Provides: arduino-lab-micropython-installer + +%description +MicroPython Installer for Arduino is a cross-platform tool that streamlines the process of downloading +and installing MicroPython firmware on compatible Arduino boards. It is compatible with macOS, Linux, +and Windows and is built using the Electron framework. + +%prep +%autosetup -n %{name}-%{version} + +%build +%npm_build -r package + +%install +%electron_install -i micropython-installer -s micropython-installer -d micropython-installer -b micropython-installer +install -Dm644 %{SOURCE1} %{buildroot}%{_appsdir}/micropython-installer.desktop + +%check +desktop-file-validate %{buildroot}%{_datadir}/applications/micropython-installer.desktop + +%files +%doc README.md +%license LICENSE +%{_bindir}/micropython-installer +%{_libdir}/micropython-installer/ +%{_hicolordir}/512x512/apps/micropython-installer.png +%{_appsdir}/micropython-installer.desktop + +%changelog +* Sat Dec 06 2025 Owen Zimmerman +- Initial commit diff --git a/anda/tools/arduino-lab-micropython-installer/micropython-installer.desktop b/anda/tools/arduino-lab-micropython-installer/micropython-installer.desktop new file mode 100644 index 0000000000..72463a6176 --- /dev/null +++ b/anda/tools/arduino-lab-micropython-installer/micropython-installer.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Name=micropython-installer +Comment=A tool to flash MicroPython onto supported Arduino boards. +GenericName=micropython-installer +Exec=micropython-installer %U +Icon=micropython-installer +Type=Application +StartupNotify=true +Categories=GNOME;GTK;Utility; + diff --git a/anda/tools/arduino-lab-micropython-installer/update.rhai b/anda/tools/arduino-lab-micropython-installer/update.rhai new file mode 100644 index 0000000000..d1ab8023f2 --- /dev/null +++ b/anda/tools/arduino-lab-micropython-installer/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("arduino/lab-micropython-installer")); diff --git a/anda/tools/arduino-remoteocd/anda.hcl b/anda/tools/arduino-remoteocd/anda.hcl new file mode 100644 index 0000000000..39346fd159 --- /dev/null +++ b/anda/tools/arduino-remoteocd/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "arduino-remoteocd.spec" + } +} diff --git a/anda/tools/arduino-remoteocd/arduino-remoteocd.spec b/anda/tools/arduino-remoteocd/arduino-remoteocd.spec new file mode 100644 index 0000000000..d2cfeda08c --- /dev/null +++ b/anda/tools/arduino-remoteocd/arduino-remoteocd.spec @@ -0,0 +1,56 @@ +%global goipath github.com/arduino/remoteocd + +%global commit ada87dad6fb195d57c4e2abbe2e6c99092c12d33 +%global commit_date 20260505 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) + +Version: 0^%commit_date.%shortcommit + +%gometa -f + +Name: remoteocd +Release: 1%{?dist} +Summary: Flexible firmware flashing for the Arduino UNO Q Microcontroller +License: GPL-3.0-only + +URL: https://github.com/arduino/remoteocd +Source: %{gosource} +BuildRequires: anda-srpm-macros +BuildRequires: go-rpm-macros +BuildRequires: go-task + +Provides: arduino-remoteocd + +Recommends: arduino-cli + +Packager: Owen Zimmerman + +%description +remoteocd is a specialized utility designed to manage firmware deployment for the Arduino UNO Q board. This tool acts as a versatile wrapper for OpenOCD (Open On-Chip Debugger), allowing you to flash a binary onto the MCU using one of three transparently handled modes: + + Local, by flashing from the UNO Q's MPU (Linux) environment. + ADB over USB. + SSH over a remote pc. + +remoteocd is part of the arduino:zephyr:unoq platform. + +%gopkg + +%prep +%goprep -A + +%build +%define gomodulesmode GO111MODULE=on +%gobuild + +%install +install -Dm755 remoteocd %{buildroot}%{_bindir}/remoteocd + +%files +%license LICENSE +%doc README.md +%{_bindir}/remoteocd + +%changelog +* Mon Dec 08 2025 Owen Zimmerman +- Initial commit diff --git a/anda/tools/arduino-remoteocd/update.rhai b/anda/tools/arduino-remoteocd/update.rhai new file mode 100644 index 0000000000..750cba9c53 --- /dev/null +++ b/anda/tools/arduino-remoteocd/update.rhai @@ -0,0 +1,5 @@ +rpm.global("commit", gh_commit("arduino/remoteocd")); +if rpm.changed() { + rpm.release(); + rpm.global("commit_date", date()); +} diff --git a/anda/tools/bdf2sfd/bdf2sfd.spec b/anda/tools/bdf2sfd/bdf2sfd.spec index 40b48b09a2..c904daa897 100644 --- a/anda/tools/bdf2sfd/bdf2sfd.spec +++ b/anda/tools/bdf2sfd/bdf2sfd.spec @@ -1,10 +1,10 @@ Name: bdf2sfd -Version: 1.1.9 +Version: 1.2.0 Release: 1%?dist Summary: BDF to SFD converter, allowing to vectorize bitmap fonts License: BSD-2-Clause URL: https://github.com/fcambus/bdf2sfd -Source0: %url/archive/refs/tags/1.1.9.tar.gz +Source0: %url/archive/refs/tags/%version.tar.gz BuildRequires: cmake gcc %description diff --git a/anda/tools/bdf2sfd/update.rhai b/anda/tools/bdf2sfd/update.rhai index e69de29bb2..9d7ea455c1 100644 --- a/anda/tools/bdf2sfd/update.rhai +++ b/anda/tools/bdf2sfd/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("fcambus/bdf2sfd")); diff --git a/anda/tools/binsider/anda.hcl b/anda/tools/binsider/anda.hcl new file mode 100644 index 0000000000..985bbd2619 --- /dev/null +++ b/anda/tools/binsider/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "binsider.spec" + } +} diff --git a/anda/tools/binsider/binsider.spec b/anda/tools/binsider/binsider.spec new file mode 100644 index 0000000000..dfc1db29e8 --- /dev/null +++ b/anda/tools/binsider/binsider.spec @@ -0,0 +1,41 @@ +Name: binsider +Version: 0.3.2 +Release: 1%?dist +Summary: Analyze ELF binaries like a boss 😼🕵️‍♂️ +License: Apache-2.0 AND MIT +URL: https://github.com/orhun/binsider +Source0: %url/archive/refs/tags/v%{version}.tar.gz + +BuildRequires: anda-srpm-macros +BuildRequires: cargo-rpm-macros +BuildRequires: gcc +BuildRequires: cargo +BuildRequires: mold + +Packager: Owen Zimmerman + +%description +Binsider can perform static and dynamic analysis, inspect strings, examine +linked libraries, and perform hexdumps, within a terminal user interface. + +%prep +%autosetup -n %{name}-%{version} +%cargo_prep_online + +%build +%cargo_build + +%install +install -Dm 755 target/rpm/binsider %{buildroot}%{_bindir}/binsider +%cargo_license_summary_online +%{cargo_license_online -a} > LICENSE.dependencies + +%files +%doc README.md CONTRIBUTING.md CHANGELOG.md CODE_OF_CONDUCT.md RELEASE.md SECURITY.md +%license LICENSE-APACHE LICENSE-MIT +%license LICENSE.dependencies +%{_bindir}/binsider + +%changelog +* Thu Nov 13 2025 Owen Zimmerman +- Initial commit diff --git a/anda/tools/binsider/update.rhai b/anda/tools/binsider/update.rhai new file mode 100644 index 0000000000..668c74c991 --- /dev/null +++ b/anda/tools/binsider/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("orhun/binsider")); diff --git a/anda/tools/bmpblk_utility/bmpblk_utility.spec b/anda/tools/bmpblk_utility/bmpblk_utility.spec index d9793c05db..f827585c1e 100644 --- a/anda/tools/bmpblk_utility/bmpblk_utility.spec +++ b/anda/tools/bmpblk_utility/bmpblk_utility.spec @@ -6,7 +6,7 @@ Name: bmpblk_utility Version: 0~%{commit_date}git.%{shortcommit} -Release: 1%{?dist} +Release: 2%{?dist} Summary: A utility to create/modify the bmpfv in the GBB of chromebooks running old stock firmware License: BSD-3-Clause @@ -22,7 +22,7 @@ BuildRequires: xz-devel BuildRequires: libyaml BuildRequires: libyaml-devel -packager: Owen Zimmerman +Packager: Owen Zimmerman %description %summary. diff --git a/anda/tools/buildsys/anda/rust-anda.spec b/anda/tools/buildsys/anda/rust-anda.spec deleted file mode 100644 index ded06bd27a..0000000000 --- a/anda/tools/buildsys/anda/rust-anda.spec +++ /dev/null @@ -1,89 +0,0 @@ -# Generated by rust2rpm 22 -%bcond_without check -%define debug_package %{nil} - -%global crate anda - -Name: rust-anda -Version: 0.4.13 -Release: 1%?dist -Summary: Andaman Build toolchain - -License: MIT -URL: https://crates.io/crates/anda -Source: https://github.com/FyraLabs/anda/archive/refs/tags/%{version}.tar.gz - -ExclusiveArch: %{rust_arches} - -BuildRequires: rust-packaging >= 21 -BuildRequires: anda-srpm-macros -BuildRequires: openssl-devel -%if 0%{?fedora} -BuildRequires: openssl-devel-engine -%endif -BuildRequires: git-core -BuildRequires: libgit2-devel -BuildRequires: libssh2-devel -BuildRequires: mold - -%global _description %{expand: -Andaman Build toolchain.} - -%description %{_description} - -%package -n %{crate} -Summary: %{summary} -Requires: mock -Requires: rpm-build -Requires: createrepo_c -Requires: git-core -Requires: libgit2 -%if 0%{?fedora} >= 42 -Requires: mock-filesystem -Requires: util-linux-script -%endif - -%description -n %{crate} %{_description} - -%files -n %{crate} -%license LICENSE.dependencies LICENSE.md -%{_bindir}/anda -%{_mandir}/man1/anda*.1* -%config %{_sysconfdir}/bash_completion.d/anda.bash -%{_datadir}/zsh/site-functions/_anda -%{_datadir}/fish/completions/anda.fish - -%prep -%autosetup -n %{crate}-%{version_no_tilde} -p1 -%cargo_prep_online - -%build -%cargo_build -%{cargo_license_online} > LICENSE.dependencies -cargo run --release -p xtask -- manpage -cargo run --release -p xtask -- completion - -%install -install -Dpm755 target/rpm/anda -t %buildroot%_bindir/ - -mkdir -p %{buildroot}%{_mandir}/man1/ - -# Install shell completions - -COMPDIR="target/assets/completion" - -mkdir -p %{buildroot}%{_sysconfdir}/bash_completion.d/ -cp -v $COMPDIR/bash/anda.bash %{buildroot}%{_sysconfdir}/bash_completion.d/anda.bash -mkdir -p %{buildroot}%{_datadir}/zsh/site-functions/ -cp -v $COMPDIR/zsh/_anda %{buildroot}%{_datadir}/zsh/site-functions/_anda -mkdir -p %{buildroot}%{_datadir}/fish/completions/ -cp -v $COMPDIR/fish/anda.fish %{buildroot}%{_datadir}/fish/completions/anda.fish - -# install man pages -cp -v target/assets/man_pages/* %{buildroot}%{_mandir}/man1/ - - -rm -rf %{buildroot}%{cargo_registry} - -%changelog -%autochangelog diff --git a/anda/tools/buildsys/gradle/gradle.spec b/anda/tools/buildsys/gradle/gradle.spec deleted file mode 100644 index c0040d7b71..0000000000 --- a/anda/tools/buildsys/gradle/gradle.spec +++ /dev/null @@ -1,126 +0,0 @@ -Name: gradle -Version: 9.1.0 -Release: 1%?dist -Summary: Powerful build system for the JVM -URL: https://gradle.org/ -Source0: https://services.gradle.org/distributions/%{name}-%{version}-src.zip -Source1: https://services.gradle.org/distributions/%{name}-%{version}-all.zip -License: Apache-2.0 -Requires: java-latest-openjdk coreutils findutils sed which bash -BuildRequires: java-11-openjdk-devel asciidoc xmlto groovy unzip git -BuildArch: noarch -Recommends: gradle-doc gradle-src - -%description -Gradle is a build tool with a focus on build automation and support for multi-language development. If you are building, testing, publishing, and deploying software on any platform, Gradle offers a flexible model that can support the entire development lifecycle from compiling and packaging code to publishing web sites. Gradle has been designed to support build automation across multiple languages and platforms including Java, Scala, Android, Kotlin, C/C++, and Groovy, and is closely integrated with development tools and continuous integration servers including Eclipse, IntelliJ, and Jenkins. - - -%package doc -Summary: Gradle documentation -%description doc -Documentation for gradle, a powerful build system for the JVM. - -%package src -Summary: Gradle sources -%description src -Sources for gradle, a powerful build system for the JVM. - - -# See PKGBUILD on Arch Linux - -%prep -unzip %{SOURCE1} %{name}-%{version}/{README,LICENSE} -mv %{name}-%{version}/README . -mv %{name}-%{version}/LICENSE . -rmdir %{name}-%{version} -unzip %{SOURCE0} -cd %{name}-%{version} - -cat < dist/gradle.sh -#!/bin/sh -export GRADLE_HOME=/usr/share/java/gradle -EOF - -# remove ADOPTIUM contraint from all build related files -sed -i '/JvmVendorSpec.ADOPTIUM/d' \ - build-logic/jvm/src/main/kotlin/gradlebuild.unittest-and-compile.gradle.kts \ - subprojects/docs/src/snippets/java/toolchain-filters/groovy/build.gradle \ - subprojects/docs/src/snippets/java/toolchain-filters/kotlin/build.gradle.kts \ - build-logic-commons/gradle-plugin/src/main/kotlin/common.kt -# inhibit automatic download of binary gradle -sed -i "s#distributionUrl=.*#distributionUrl=file\:%{SOURCE1}#" \ - gradle/wrapper/gradle-wrapper.properties - - -%build -cd %{name}-%{version} -export PATH="/usr/lib/jvm/java-11-openjdk/bin:${PATH}" -./gradlew installAll \ - -Porg.gradle.java.installations.auto-download=false \ - -PfinalRelease=true \ - -Pgradle_installPath="$(pwd)/dist" \ - --no-configuration-cache - - -%install -cd %{name}-%{version}/dist - -# install profile.d script -install -Dm755 gradle.sh %{buildroot}/etc/profile.d/ - -# create the necessary directory structure -install -d "%{buildroot}/usr/share/java/%{name}/bin" -install -d "%{buildroot}/usr/share/java/%{name}/lib/plugins" -install -d "%{buildroot}/usr/share/java/%{name}/init.d" - -# copy across jar files -install -Dm644 lib/*.jar "%{buildroot}/usr/share/java/%{name}/lib" -install -Dm644 lib/plugins/*.jar "%{buildroot}/usr/share/java/%{name}/lib/plugins" - -# copy across supporting text documentation and scripts -install -m644 NOTICE "%{buildroot}/usr/share/java/%{name}" -install -m755 bin/gradle "%{buildroot}/usr/share/java/%{name}/bin" -install -m644 init.d/*.* "%{buildroot}/usr/share/java/%{name}/init.d" - -# link gradle script to /usr/bin -ln -s /usr/share/java/%{name}/bin/%{name} "%{buildroot}/usr/bin" - - -install -d %{buildroot}/usr/share/java/gradle/docs -cp -r docs/* %{buildroot}/usr/share/java/gradle/docs - - -install -d %{buildroot}/usr/share/java/gradle/src -cp -r src/* %{buildroot}/usr/share/java/gradle/src - - -install -Dm644 %{SOURCE2} %{buildroot}/%{_datadir}/licenses/%{name}/ -install -Dm644 %{SOURCE2} %{buildroot}/%{_datadir}/licenses/%{name}-doc/ -install -Dm644 %{SOURCE2} %{buildroot}/%{_datadir}/licenses/%{name}-src/ -install -Dm644 %{SOURCE3} %{buildroot}/%{_datadir}/doc/%{name}/ -install -Dm644 %{SOURCE3} %{buildroot}/%{_datadir}/doc/%{name}-doc/ -install -Dm644 %{SOURCE3} %{buildroot}/%{_datadir}/doc/%{name}-src/ - - -%files -%doc README -%license LICENSE -/etc/profile.d/gradle.sh -/usr/share/java/%{name}/ -/usr/bin/%{name} - -%files doc -%doc README -%license LICENSE -/usr/share/java/gradle/docs - -%files src -%doc README -%license LICENSE -/usr/share/java/gradle/src - - -%changelog -* Tue Feb 7 2023 windowsboy111 -- Initial package - diff --git a/anda/tools/buildsys/muon/muon.spec b/anda/tools/buildsys/muon/muon.spec deleted file mode 100644 index 383d29ca4f..0000000000 --- a/anda/tools/buildsys/muon/muon.spec +++ /dev/null @@ -1,39 +0,0 @@ -Name: muon -Version: 0.5.0 -Release: 1%?dist -Summary: A meson-compatible build system - -# muon is licensed under the GPL version 3 (see LICENSE). Tests under tests/project were copied from the meson project tests and are licensed under Apache 2.0. -License: GPL-3.0 AND Apache-2.0 -URL: https://muon.build/ -Source: https://git.sr.ht/~lattis/muon/archive/%{version}.tar.gz - -BuildRequires: meson -BuildRequires: gcc -BuildRequires: cmake -BuildRequires: libcurl-devel -BuildRequires: libarchive-devel -BuildRequires: libpkgconf-devel -BuildRequires: scdoc -BuildRequires: git-core - -%description -An implementation of the meson build system in c99 with minimal dependencies. - -%prep -%autosetup - -%build -%meson -Dtracy=disabled -%meson_build - -%install -%meson_install - -%files -/usr/bin/muon -%{_mandir}/man1/muon* -%{_mandir}/man5/meson* - -%changelog -%autochangelog diff --git a/anda/tools/buildsys/ops2deb/ops2deb.spec b/anda/tools/buildsys/ops2deb/ops2deb.spec deleted file mode 100644 index 8cd46dabe8..0000000000 --- a/anda/tools/buildsys/ops2deb/ops2deb.spec +++ /dev/null @@ -1,43 +0,0 @@ -%global debug_package %nil -%define _python_dist_allow_version_zero # upstream issue? - -Name: python3-ops2deb -Version: 2.7.0 -Release: 1%?dist -Summary: Generate Debian packages for common devops tools -License: MIT -URL: https://github.com/upciti/ops2deb -Source0: %url/archive/refs/tags/%version.tar.gz -BuildRequires: python3-devel poetry python3.10 -BuildRequires: python3dist(setuptools) -BuildArch: noarch - -%description -ops2deb is designed to generate Debian packages for common devops tools, but -can be used to package any portable application. It consumes a configuration -file and outputs .deb packages. ops2deb can also track new releases of upstream -applications and automatically bump application versions in its configuration -file. - - -%prep -%autosetup -n ops2deb-%version - -%build -poetry build - -%install -python3.10 -m ensurepip -python3.10 -m pip install installer -python3.10 -m installer --destdir=%buildroot dist/*.whl -rm -rf %buildroot/%python3_sitelib/*/__pycache__ - -%files -%license LICENSE -%doc README.md -/usr/bin/ops2deb -/usr/lib/python3*/site-packages/ops2deb* - -%changelog -* Fri Apr 28 2023 windowsboy111 - 2.4.1-1 -- Initial package. diff --git a/anda/tools/butler-bin/anda.hcl b/anda/tools/butler-bin/anda.hcl new file mode 100644 index 0000000000..9752e9348a --- /dev/null +++ b/anda/tools/butler-bin/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "butler-bin.spec" + } +} diff --git a/anda/tools/butler-bin/butler-bin.spec b/anda/tools/butler-bin/butler-bin.spec new file mode 100644 index 0000000000..a39d0f3b2d --- /dev/null +++ b/anda/tools/butler-bin/butler-bin.spec @@ -0,0 +1,37 @@ +Name: butler-bin +Version: 15.26.1 +Release: 1%?dist +Summary: Command-line itch.io helper. +URL: https://itch.io/docs/butler +Source0: https://broth.itch.ovh/butler/linux-amd64/LATEST/archive/default +Source1: https://raw.githubusercontent.com/itchio/butler/refs/heads/master/LICENSE +Source2: https://raw.githubusercontent.com/itchio/butler/refs/heads/master/README.md +License: MIT +Provides: itchio-butler-bin +Provides: itch-butler-bin +ExclusiveArch: x86_64 + +Packager: arbormoss + +%description +%summary. + +%prep +curl -L -o butler.zip https://broth.itch.ovh/butler/linux-amd64/LATEST/archive/default +unzip butler.zip + +%build + +%install +install -Dm755 butler %{buildroot}%{_bindir}/butler +install -Dm644 %{S:1} %{buildroot}%{_defaultlicensedir}/butler-bin/LICENSE +install -Dm644 %{S:2} %{buildroot}%{_docdir}/butler-bin/README.md + +%files +%doc README.md +%license LICENSE +%{_bindir}/butler + +%changelog +* Sat Nov 22 2025 arbormoss +- Intial Commit diff --git a/anda/tools/butler-bin/update.rhai b/anda/tools/butler-bin/update.rhai new file mode 100644 index 0000000000..17ab893adf --- /dev/null +++ b/anda/tools/butler-bin/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("itchio/butler")); diff --git a/anda/tools/carapace/anda.hcl b/anda/tools/carapace/anda.hcl new file mode 100644 index 0000000000..fb3498abe1 --- /dev/null +++ b/anda/tools/carapace/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "carapace.spec" + } +} diff --git a/anda/tools/carapace/carapace.spec b/anda/tools/carapace/carapace.spec new file mode 100644 index 0000000000..de0efb3be4 --- /dev/null +++ b/anda/tools/carapace/carapace.spec @@ -0,0 +1,49 @@ +%define debug_package %{nil} + +%global goipath github.com/carapace-sh/carapace-bin +Version: 1.6.5 + +%gometa -f + +Name: carapace +Release: 1%{?dist} +Summary: A multi-shell completion binary + +License: MIT +URL: https://carapace.sh/ +Source0: https://github.com/carapace-sh/carapace-bin/archive/refs/tags/v%{version}.tar.gz + +Packager: Owen Zimmerman + +BuildRequires: golang gcc go-rpm-macros +Requires: glibc + +%description +%{summary}. + +%gopkg + +%prep +%autosetup -n %{name}-bin-%{version} + +%build +%define gomodulesmode GO111MODULE=on +export CGO_CPPFLAGS="${CPPFLAGS}" +export CGO_CFLAGS="${CFLAGS}" +export CGO_CXXFLAGS="${CXXFLAGS}" +export CGO_LDFLAGS="${LDFLAGS}" +export GOFLAGS="-buildmode=pie -trimpath -ldflags=-linkmode=external -mod=readonly -modcacherw" +go generate ./cmd/... +%gobuild -o %{gobuilddir}/cmd/carapace %{goipath}/cmd/carapace + +%install +install -Dm 0755 %{gobuilddir}/cmd/carapace %{buildroot}%{_bindir}/carapace + +%files +%license LICENSE +%doc README.md +%{_bindir}/carapace + +%changelog +* Fri Dec 05 2025 Owen Zimmerman +- Initial commit diff --git a/anda/tools/carapace/update.rhai b/anda/tools/carapace/update.rhai new file mode 100644 index 0000000000..2351508732 --- /dev/null +++ b/anda/tools/carapace/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("carapace-sh/carapace-bin")); diff --git a/anda/tools/chafa/anda.hcl b/anda/tools/chafa/anda.hcl new file mode 100644 index 0000000000..5955930ce3 --- /dev/null +++ b/anda/tools/chafa/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "chafa.spec" + } + labels { + subrepo = "extras" + } +} diff --git a/anda/tools/chafa/chafa.spec b/anda/tools/chafa/chafa.spec new file mode 100644 index 0000000000..b69d1b21f4 --- /dev/null +++ b/anda/tools/chafa/chafa.spec @@ -0,0 +1,69 @@ +Name: terra-chafa +Version: 1.18.2 +Release: 1%{?dist} +Summary: Terminal graphics for the 21st century +License: LGPL-3.0-or-later AND GPL-3.0-or-later +URL: https://hpjansson.org/chafa/ +Source0: https://github.com/hpjansson/chafa/archive/refs/tags/%version.tar.gz + +BuildRequires: gcc +BuildRequires: gtk-doc +BuildRequires: libtool +BuildRequires: make +BuildRequires: libjpeg-turbo-devel +BuildRequires: libavif-devel +BuildRequires: librsvg2-devel +BuildRequires: libtiff-devel +BuildRequires: libwebp-devel +BuildRequires: libpng-devel +BuildRequires: anda-srpm-macros +Requires: %{name}-libs%{?_isa} = %{evr} +Provides: chafa = %{evr} + +Packager: Owen Zimmerman + +%description +Chafa is a command-line utility that converts all kinds of images, including +animated image formats like GIFs, into ANSI/Unicode character output that can +be displayed in a terminal. + +It is highly configurable, with support for alpha transparency and multiple +color modes and color spaces, combining a range of Unicode characters for +optimal output. + +%package libs +%pkg_libs_files + +%package devel +Requires: %{name}-libs%{?_isa} = %{evr} +%pkg_devel_files +%{_libdir}/chafa/include/chafaconfig.h + +%package static +%pkg_static_files + +%prep +%autosetup -n chafa-%{version} + +%conf +autoreconf -ivf +%configure --disable-rpath + +%build +%make_build + +%install +%make_install +%if 0%{?rhel} +find %{buildroot} -name "*.la" -delete +%endif + +%files +%doc AUTHORS COPYING.LESSER README* NEWS +%license COPYING.LESSER COPYING +%{_bindir}/chafa +%{_mandir}/man1/chafa.1* + +%changelog +* Fri Feb 20 2026 Owen Zimmerman +- Initial commit diff --git a/anda/tools/chafa/update.rhai b/anda/tools/chafa/update.rhai new file mode 100644 index 0000000000..eb610d596d --- /dev/null +++ b/anda/tools/chafa/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("hpjansson/chafa")); diff --git a/anda/tools/cloudflare-speed-cli/anda.hcl b/anda/tools/cloudflare-speed-cli/anda.hcl new file mode 100644 index 0000000000..fa73666802 --- /dev/null +++ b/anda/tools/cloudflare-speed-cli/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "cloudflare-speed-cli.spec" + } +} diff --git a/anda/tools/cloudflare-speed-cli/cloudflare-speed-cli.spec b/anda/tools/cloudflare-speed-cli/cloudflare-speed-cli.spec new file mode 100644 index 0000000000..90acba5fe3 --- /dev/null +++ b/anda/tools/cloudflare-speed-cli/cloudflare-speed-cli.spec @@ -0,0 +1,36 @@ +%define debug_package %{nil} + +Name: cloudflare-speed-cli +Version: 0.6.8 +Release: 1%{?dist} +Summary: CLI for internet speed test via cloudflare + +License: GPL-3.0-or-later AND (MIT OR Apache-2.0) AND Unicode-3.0 AND (0BSD OR MIT OR Apache-2.0) AND Apache-2.0 AND ISC AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 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 MIT) AND (BSD-3-Clause OR Apache-2.0) AND (BSD-3-Clause OR MIT) AND BSD-3-Clause AND BSL-1.0 AND CDLA-Permissive-2.0 AND (MIT OR Apache-2.0 OR Zlib) AND (MIT OR BSD-3-Clause) AND (MIT OR Zlib OR Apache-2.0) AND MIT AND MPL-2.0 AND (Unlicense OR MIT) AND (Zlib OR Apache-2.0 OR MIT) AND Zlib +URL: https://github.com/kavehtehrani/cloudflare-speed-cli +Source0: %url/archive/refs/tags/v%version.tar.gz + +BuildRequires: cargo-rpm-macros +BuildRequires: mold + +%description +%summary. + +%prep +%autosetup -n %{name}-%{version} +%cargo_prep_online + +%build +%cargo_build +%{cargo_license_online} > LICENSE.dependencies + +%install +install -Dm 755 target/rpm/%{name} -t %{buildroot}%{_bindir} + +%files +%license LICENSE LICENSE.dependencies +%doc README.md +%{_bindir}/%{name} + +%changelog +* Tue Jan 13 2026 Owen Zimmerman +- Initial commit diff --git a/anda/tools/cloudflare-speed-cli/update.rhai b/anda/tools/cloudflare-speed-cli/update.rhai new file mode 100644 index 0000000000..5a8c6ac1c1 --- /dev/null +++ b/anda/tools/cloudflare-speed-cli/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("kavehtehrani/cloudflare-speed-cli")); diff --git a/anda/tools/copyparty/copyparty.spec b/anda/tools/copyparty/copyparty.spec index 44b193b633..1e9c8124f6 100644 --- a/anda/tools/copyparty/copyparty.spec +++ b/anda/tools/copyparty/copyparty.spec @@ -1,8 +1,8 @@ %global pypi_name copyparty Name: %{pypi_name} -Version: 1.19.19 -Release: 1%?dist +Version: 1.20.14 +Release: 1%{?dist} Summary: Portable, featureful, and fast file server URL: https://github.com/9001/copyparty Source0: %{pypi_source} @@ -13,7 +13,7 @@ BuildRequires: python3-devel python3-pip pyproject-rpm-macros BuildRequires: python3dist(wheel) python3dist(build) python3dist(jinja2) BuildRequires: python3dist(setuptools) python3dist(installer) Requires: python3-%{name} = %{evr} -Suggests: ffmpeg python3dist(fuse) +Suggests: ffmpeg python3dist(fuse) golang-github-cloudflare-cfssl BuildArch: noarch Packager: Riley Loo diff --git a/anda/tools/coreboot-utils/coreboot-utils.spec b/anda/tools/coreboot-utils/coreboot-utils.spec index c6937557e2..083f66b658 100644 --- a/anda/tools/coreboot-utils/coreboot-utils.spec +++ b/anda/tools/coreboot-utils/coreboot-utils.spec @@ -1,8 +1,8 @@ %define debug_package %nil Name: coreboot-utils -Version: 25.09 -Release: 1%?dist +Version: 26.03 +Release: 1%{?dist} Summary: Various coreboot utilities URL: https://doc.coreboot.org License: BSD-3-Clause AND Apache-2.0 AND CC-BY-SA-3.0 AND GPL-2.0-only AND GPL-3.0-or-later AND ISC AND BSD-2-Clause-Patent AND BSD-4-Clause-UC AND CC-PDDC AND GPL-2.0-or-later AND HPND-sell-varient AND LGPL-2.1-or-later AND BSD-2-Clause AND CC-BY-4.0 AND GPL-3.0-only AND HPND AND X11 AND MIT @@ -123,7 +123,7 @@ Requires: %{name}-xcompile %package abuild Summary: coreboot autobuild script builds coreboot images for all available targets -Requires: coreboot-utils = %{version} +Requires: coreboot-utils = %{evr} Conflicts: abuild <= 25.06 Obsoletes: abuild <= 25.06 %description abuild @@ -131,14 +131,14 @@ Obsoletes: abuild <= 25.06 %package amdfwtool Summary: Create AMD Firmware combination -Requires: coreboot-utils = %{version} +Requires: coreboot-utils = %{evr} Requires: glibc %description amdfwtool %summary. %package amdtools Summary: Various tools for AMD processors -Requires: coreboot-utils = %{version} +Requires: coreboot-utils = %{evr} Requires: perl Requires: bash %description amdtools @@ -146,7 +146,7 @@ Requires: bash %package apcb Summary: AMD PSP Control Block tools -Requires: coreboot-utils = %{version} +Requires: coreboot-utils = %{evr} Requires: python3 %description apcb The necessary tools for building APCBs are not available for use by coreboot. @@ -157,7 +157,7 @@ apcb_edit - This tool allows patching an existing APCB binary with specific SPDs apcb_v3_edit - This tool allows patching an existing APCB v3 binary with up to 16 specific SPDs. %dnl %package archive - ### Currently bugged and does not compile ### -%dnl Requires: coreboot-utils = %{version} +%dnl Requires: coreboot-utils = %{evr} %dnl Summary: Concatenate files and create an archive %dnl %description archive %dnl %summary. @@ -165,7 +165,7 @@ apcb_v3_edit - This tool allows patching an existing APCB v3 binary with up to %package autoport Summary: Porting coreboot using autoport -Requires: coreboot-utils = %{version} +Requires: coreboot-utils = %{evr} Requires: acpica-tools Requires: dmidecode Requires: %{name}-ectool @@ -179,13 +179,13 @@ Automated porting coreboot to Sandy Bridge/Ivy Bridge/Haswell platforms. %package bincfg Summary: Compiler/Decompiler for data blobs with specs -Requires: coreboot-utils = %{version} +Requires: coreboot-utils = %{evr} %description bincfg %summary. %package board_status Summary: Tools to collect logs and upload them to the board status repository -Requires: coreboot-utils = %{version} +Requires: coreboot-utils = %{evr} Requires: bash %description board_status %summary. @@ -193,14 +193,14 @@ Requires: bash %ifarch x86_64 %package bucts Summary: A tool to manipulate the BUC.TS bit on Intel targets -Requires: coreboot-utils = %{version} +Requires: coreboot-utils = %{evr} %description bucts %summary. %endif %package cbfstool Summary: Management utility for CBFS formatted ROM images -Requires: coreboot-utils = %{version} +Requires: coreboot-utils = %{evr} Conflicts: cbfstool <= 25.06 Obsoletes: cbfstool <= 25.06 %description cbfstool @@ -208,7 +208,7 @@ Obsoletes: cbfstool <= 25.06 %package cbfstool-tests Summary: CBFSTool tests -Requires: coreboot-utils = %{version} +Requires: coreboot-utils = %{evr} Requires: %{name}-cbfstool Requires: python3 Requires: python3-pytest @@ -217,7 +217,7 @@ Requires: python3-pytest %package cbmem Summary: Prints out coreboot mem table information -Requires: coreboot-utils = %{version} +Requires: coreboot-utils = %{evr} Requires: glibc Conflicts: cbmem <= 25.06 Obsoletes: cbmem <= 25.06 @@ -225,7 +225,7 @@ Obsoletes: cbmem <= 25.06 Prints out coreboot mem table information in JSON by default, and also implements the basic cbmem -list and -console commands. %package chromeos-coreboot-utilities -Requires: coreboot-utils = %{version} +Requires: coreboot-utils = %{evr} Requires: bash Summary: access or generate ChromeOS resources %description chromeos-coreboot-utilities @@ -236,7 +236,7 @@ VGA option roms) from a ChromeOS recovery image. %package coreboot-configurator Summary: A simple GUI to change settings in coreboot's CBFS, via the nvramtool utility -Requires: coreboot-utils = %{version} +Requires: coreboot-utils = %{evr} Requires: %{name}-nvramtool Requires: qt5-qtbase Requires: qt5-qtsvg @@ -247,14 +247,14 @@ Requires: yaml-cpp %package doc Summary: Coreboot utility documentation -Requires: coreboot-utils = %{version} +Requires: coreboot-utils = %{evr} %description doc %summary. %ifarch x86_64 %package ectool Summary: Dumps the RAM of a laptop's Embedded/Environmental Controller (EC) -Requires: coreboot-utils = %{version} +Requires: coreboot-utils = %{evr} Requires: glibc Conflicts: chromium-ectool %description ectool @@ -263,41 +263,41 @@ Conflicts: chromium-ectool %package exynos Summary: Computes and fills Exynos ROM checksum (for BL1 or BL2) -Requires: coreboot-utils = %{version} +Requires: coreboot-utils = %{evr} Requires: python3 %description exynos %summary. %package find_usbdebug Summary: Help find USB debug ports -Requires: coreboot-utils = %{version} +Requires: coreboot-utils = %{evr} Requires: bash %description find_usbdebug %summary. %package futility Summary: Firmware utility for signing ChromeOS images -Requires: coreboot-utils = %{version} +Requires: coreboot-utils = %{evr} %description futility %summary. %package genbuild_h Summary: Generate build system definitions -Requires: coreboot-utils = %{version} +Requires: coreboot-utils = %{evr} Requires: bash %description genbuild_h %summary. %package hda-decoder Summary: Dumps decoded HDA default configuration registers into a format which can be used in coreboot's verb table -Requires: coreboot-utils = %{version} +Requires: coreboot-utils = %{evr} %description hda-decoder %summary. %package ifdtool Summary: Extract and dump Intel Firmware Descriptor information -Requires: coreboot-utils = %{version} +Requires: coreboot-utils = %{evr} Requires: glibc Requires: pciutils Requires: zlib-ng @@ -309,7 +309,7 @@ Requires: zlib-ng %package intelmetool Summary: Dump interesting things about Management Engine even if hidden -Requires: coreboot-utils = %{version} +Requires: coreboot-utils = %{evr} Requires: glibc Requires: pciutils Requires: zlib-ng @@ -321,7 +321,7 @@ Requires: zlib-ng %ifarch x86_64 %package intelp2m Summary: convert the configuration DW0/1 registers value from an inteltool dump to coreboot macros -Requires: coreboot-utils = %{version} +Requires: coreboot-utils = %{evr} %description intelp2m %summary. %endif @@ -330,7 +330,7 @@ Requires: coreboot-utils = %{version} %package inteltool Summary: Provides information about the Intel CPU/chipset hardware configuration -Requires: coreboot-utils = %{version} +Requires: coreboot-utils = %{evr} Requires: glibc Requires: pciutils Requires: zlib-ng @@ -341,14 +341,14 @@ Requires: zlib-ng %package intelvbttool Summary: Parse VBT from VGA BIOS -Requires: coreboot-utils = %{version} +Requires: coreboot-utils = %{evr} Requires: glibc %description intelvbttool %summary. %package kbc1126 Summary: dump the two blobs from the factory firmware of some HP laptops -Requires: coreboot-utils = %{version} +Requires: coreboot-utils = %{evr} %description kbc1126 Tools used to dump the two blobs from the factory firmware of many HP laptops with 8051-based SMSC KBC1098/KBC1126 embedded controller and @@ -356,7 +356,7 @@ insert them to the firmware image. %package mediatek-coreboot-utilities Summary: Generate MediaTek bootload header -Requires: coreboot-utils = %{version} +Requires: coreboot-utils = %{evr} Requires: python3 %description mediatek-coreboot-utilities check-pi-img.py - Check `PI_IMG` firmware. @@ -364,21 +364,21 @@ gen-bl-img.py - Generate MediaTek bootloader header. %package mma Summary: Memory Margin Analysis automation tests -Requires: coreboot-utils = %{version} +Requires: coreboot-utils = %{evr} Requires: bash %description mma %summary. %package msrtool Summary: Dumps chipset-specific MSR registers -Requires: coreboot-utils = %{version} +Requires: coreboot-utils = %{evr} %description msrtool %summary. %ifarch x86_64 %package nvramtool Summary: Reads and writes coreboot parameters and displaying information from the coreboot table in CMOS/NVRAM -Requires: coreboot-utils = %{version} +Requires: coreboot-utils = %{evr} %description nvramtool %summary. %endif @@ -386,7 +386,7 @@ Requires: coreboot-utils = %{version} %ifarch x86_64 %package pmh7tool Summary: Dumps, reads and writes PMH7 registers on Lenovo ThinkPads. PMH7 is used for switching on and off the power of some devices on the board such as dGPU -Requires: coreboot-utils = %{version} +Requires: coreboot-utils = %{evr} %description pmh7tool %summary. %endif @@ -394,14 +394,14 @@ Requires: coreboot-utils = %{version} %ifarch x86_64 %package post Summary: Userspace utility that can be used to test POST cards -Requires: coreboot-utils = %{version} +Requires: coreboot-utils = %{evr} %description post %summary. %endif %package qualcomm-coreboot-utilities Summary: CMM script to debug Qualcomm coreboot environments -Requires: coreboot-utils = %{version} +Requires: coreboot-utils = %{evr} Requires: python3 %description qualcomm-coreboot-utilities CMM script to debug Qualcomm coreboot environments. @@ -413,7 +413,7 @@ mbn_tools - Contains all MBN Utilities for image generation %package riscv-coreboot-utilities Summary: riscv coreboot utilities -Requires: coreboot-utils = %{version} +Requires: coreboot-utils = %{evr} Requires: bash Requires: python3 %description riscv-coreboot-utilities @@ -421,7 +421,7 @@ Requires: python3 %package rockchip-coreboot-utilities Summary: Generate Rockchip idblock bootloader -Requires: coreboot-utils = %{version} +Requires: coreboot-utils = %{evr} Requires: python3 %description rockchip-coreboot-utilities %summary. @@ -429,7 +429,7 @@ Requires: python3 %package scripts Summary: Various coreboot utility scripts -Requires: coreboot-utils = %{version} +Requires: coreboot-utils = %{evr} Requires: perl Requires: bash @@ -454,14 +454,14 @@ Requires: bash %ifarch x86_64 %package smmstoretool Summary: Offline SMMSTORE variable modification tool -Requires: coreboot-utils = %{version} +Requires: coreboot-utils = %{evr} %description smmstoretool %summary. %endif %package spdtool Summary: Dumps SPD ROMs from a given blob to separate files using known patterns and reserved bits -Requires: coreboot-utils = %{version} +Requires: coreboot-utils = %{evr} Requires: python3 %description spdtool Dumps SPD ROMs from a given blob to separate files using known patterns @@ -470,27 +470,27 @@ that have soldered down DRAM. %package spd_tools Summary: A set of tools to generate SPD files for platforms with memory down configurations -Requires: coreboot-utils = %{version} +Requires: coreboot-utils = %{evr} %description spd_tools %summary. %package spkmodem_recv Summary: Decode spkmodem signals -Requires: coreboot-utils = %{version} +Requires: coreboot-utils = %{evr} %description spkmodem_recv %summary. %ifarch x86_64 %package superiotool Summary: A user-space utility to detect Super I/O of a mainboard and provide detailed information about the register contents of the Super I/O -Requires: coreboot-utils = %{version} +Requires: coreboot-utils = %{evr} %description superiotool %summary. %endif %package xcompile Summary: Cross compile setup -Requires: coreboot-utils = %{version} +Requires: coreboot-utils = %{evr} %description xcompile %summary. @@ -499,6 +499,13 @@ Requires: coreboot-utils = %{version} %patch -P0 -p1 %patch -P1 -p1 +%conf +%ifarch x86_64 +pushd msrtool +%configure +popd +%endif + %build %if 0%{?fedora} >= 42 export CC=gcc-14 @@ -534,6 +541,9 @@ pushd util %endif %make_build -C kbc1126 %ifarch x86_64 +%make_build -C msrtool +%endif +%ifarch x86_64 %make_build -C nvramtool LDFLAGS="-fPIE" %endif %ifarch x86_64 @@ -557,13 +567,6 @@ export GOFLAGS="-buildmode=pie -trimpath -ldflags=-linkmode=external -mod=readon %gobuild -o %{_builddir}/autoport popd -%ifarch x86_64 -pushd msrtool -./configure -%make_build -popd -%endif - pushd coreboot-configurator %meson %meson_build @@ -582,9 +585,9 @@ install -Dm 755 util/amdtools/k8-read-mem-settings.sh %{buildroot}%{_bindir}/k8- install -Dm 755 util/amdtools/parse-bkdg.pl %{buildroot}%{_bindir}/parse-bkdg install -Dm 755 util/amdtools/update_efs_spi_speed %{buildroot}%{_bindir}/update_efs_spi_speed -install -Dm 755 util/apcb/apcb_edit.py %{buildroot}%{_bindir}/apcb_edit -install -Dm 755 util/apcb/apcb_v3a_edit.py %{buildroot}%{_bindir}/apcb_v3a_edit -install -Dm 755 util/apcb/apcb_v3_edit.py %{buildroot}%{_bindir}/apcb_v3_edit +install -Dm 755 util/apcb/apcb_edit.py %{buildroot}%{_bindir}/apcb_edit.py +install -Dm 755 util/apcb/apcb_v3a_edit.py %{buildroot}%{_bindir}/apcb_v3a_edit.py +install -Dm 755 util/apcb/apcb_v3_edit.py %{buildroot}%{_bindir}/apcb_v3_edit.py %dnl install -Dm 777 util/archive/archive %{buildroot}%{_bindir}/archive @@ -602,8 +605,8 @@ install -Dm 755 util/bucts/bucts %{buildroot}%{_bindir}/bucts install -Dm 755 util/cbfstool/cbfstool %{buildroot}%{_bindir}/cbfstool -install -Dm 755 util/cbfstool/tests/conftest.py %{buildroot}%{_bindir}/conftest -install -Dm 755 util/cbfstool/tests/elogtool_test.py %{buildroot}%{_bindir}/elogtool_test +install -Dm 755 util/cbfstool/tests/conftest.py %{buildroot}%{_bindir}/conftest.py +install -Dm 755 util/cbfstool/tests/elogtool_test.py %{buildroot}%{_bindir}/elogtool_test.py install -Dm 755 util/cbmem/cbmem %{buildroot}%{_bindir}/cbmem @@ -615,23 +618,23 @@ install -Dm 755 util/chromeos/update_ec_headers.sh %{buildroot}%{_bindir}/update install -Dm 755 util/coreboot-configurator/redhat-linux-build/src/application/coreboot-configurator %{buildroot}%{_bindir}/coreboot-configurator install -Dm 644 util/coreboot-configurator/src/resources/org.coreboot.nvramtool.policy %{buildroot}%{_datadir}/polkit-1/actions/org.coreboot.nvramtool.policy install -Dm 644 util/coreboot-configurator/src/resources/org.coreboot.reboot.policy %{buildroot}%{_datadir}/polkit-1/actions/org.coreboot.reboot.policy -install -Dm 644 util/coreboot-configurator/src/resources/coreboot-configurator.desktop %{buildroot}%{_datadir}/applications/coreboot-configurator.desktop -install -Dm 644 util/coreboot-configurator/redhat-linux-build/src/resources/24.png %{buildroot}%{_datadir}/icons/hicolor/24x24/apps/coreboot-configurator.png -install -Dm 644 util/coreboot-configurator/redhat-linux-build/src/resources/48.png %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/coreboot-configurator.png -install -Dm 644 util/coreboot-configurator/redhat-linux-build/src/resources/96.png %{buildroot}%{_datadir}/icons/hicolor/96x96/apps/coreboot-configurator.png -install -Dm 644 util/coreboot-configurator/redhat-linux-build/src/resources/16.png %{buildroot}%{_datadir}/icons/hicolor/16x16/apps/coreboot-configurator.png -install -Dm 644 util/coreboot-configurator/redhat-linux-build/src/resources/32.png %{buildroot}%{_datadir}/icons/hicolor/32x32/apps/coreboot-configurator.png -install -Dm 644 util/coreboot-configurator/redhat-linux-build/src/resources/64.png %{buildroot}%{_datadir}/icons/hicolor/64x64/apps/coreboot-configurator.png -install -Dm 644 util/coreboot-configurator/redhat-linux-build/src/resources/128.png %{buildroot}%{_datadir}/icons/hicolor/128x128/apps/coreboot-configurator.png -install -Dm 644 util/coreboot-configurator/redhat-linux-build/src/resources/256.png %{buildroot}%{_datadir}/icons/hicolor/256x256/apps/coreboot-configurator.png -install -Dm 644 util/coreboot-configurator/redhat-linux-build/src/resources/512.png %{buildroot}%{_datadir}/icons/hicolor/512x512/apps/coreboot-configurator.png +install -Dm 644 util/coreboot-configurator/src/resources/coreboot-configurator.desktop %{buildroot}%{_appsdir}/coreboot-configurator.desktop +install -Dm 644 util/coreboot-configurator/redhat-linux-build/src/resources/24.png %{buildroot}%{_hicolordir}/24x24/apps/coreboot-configurator.png +install -Dm 644 util/coreboot-configurator/redhat-linux-build/src/resources/48.png %{buildroot}%{_hicolordir}/48x48/apps/coreboot-configurator.png +install -Dm 644 util/coreboot-configurator/redhat-linux-build/src/resources/96.png %{buildroot}%{_hicolordir}/96x96/apps/coreboot-configurator.png +install -Dm 644 util/coreboot-configurator/redhat-linux-build/src/resources/16.png %{buildroot}%{_hicolordir}/16x16/apps/coreboot-configurator.png +install -Dm 644 util/coreboot-configurator/redhat-linux-build/src/resources/32.png %{buildroot}%{_hicolordir}/32x32/apps/coreboot-configurator.png +install -Dm 644 util/coreboot-configurator/redhat-linux-build/src/resources/64.png %{buildroot}%{_hicolordir}/64x64/apps/coreboot-configurator.png +install -Dm 644 util/coreboot-configurator/redhat-linux-build/src/resources/128.png %{buildroot}%{_hicolordir}/128x128/apps/coreboot-configurator.png +install -Dm 644 util/coreboot-configurator/redhat-linux-build/src/resources/256.png %{buildroot}%{_hicolordir}/256x256/apps/coreboot-configurator.png +install -Dm 644 util/coreboot-configurator/redhat-linux-build/src/resources/512.png %{buildroot}%{_hicolordir}/512x512/apps/coreboot-configurator.png %ifarch x86_64 install -Dm 755 util/ectool/ectool %{buildroot}%{_bindir}/ectool %endif -install -Dm 755 util/exynos/fixed_cksum.py %{buildroot}%{_bindir}/fixed_cksum -install -Dm 755 util/exynos/variable_cksum.py %{buildroot}%{_bindir}/variable_cksum +install -Dm 755 util/exynos/fixed_cksum.py %{buildroot}%{_bindir}/fixed_cksum.py +install -Dm 755 util/exynos/variable_cksum.py %{buildroot}%{_bindir}/variable_cksum.py install -Dm 755 util/find_usbdebug/find_usbdebug.sh %{buildroot}%{_bindir}/find_usbdebug @@ -662,8 +665,8 @@ install -Dm 755 util/intelvbttool/intelvbttool %{buildroot}%{_bindir}/intelvbtto install -Dm 755 util/kbc1126/kbc1126_ec_dump %{buildroot}%{_bindir}/kbc1126_ec_dump install -Dm 755 util/kbc1126/kbc1126_ec_insert %{buildroot}%{_bindir}/kbc1126_ec_insert -install -Dm 755 util/mediatek/check-pi-img.py %{buildroot}%{_bindir}/check-pi-img -install -Dm 755 util/mediatek/gen-bl-img.py %{buildroot}%{_bindir}/gen-bl-img +install -Dm 755 util/mediatek/check-pi-img.py %{buildroot}%{_bindir}/check-pi-img.py +install -Dm 755 util/mediatek/gen-bl-img.py %{buildroot}%{_bindir}/gen-bl-img.py install -Dm 755 util/mma/mma_automated_test.sh %{buildroot}%{_bindir}/mma_automated_test install -Dm 755 util/mma/mma_get_result.sh %{buildroot}%{_bindir}/mma_get_result @@ -685,19 +688,19 @@ install -Dm 755 util/pmh7tool/pmh7tool %{buildroot}%{_bindir}/pmh7tool install -Dm 755 util/post/post %{buildroot}%{_bindir}/post %endif -install -Dm 755 util/qualcomm/createxbl.py %{buildroot}%{_bindir}/createxbl -install -Dm 755 util/qualcomm/create_multielf.py %{buildroot}%{_bindir}/create_multielf -install -Dm 755 util/qualcomm/ipqheader.py %{buildroot}%{_bindir}/ipqheader -install -Dm 755 util/qualcomm/mbncat.py %{buildroot}%{_bindir}/mbncat -install -Dm 755 util/qualcomm/mbn_tools.py %{buildroot}%{_bindir}/mbn_tools -install -Dm 755 util/qualcomm/qgpt.py %{buildroot}%{_bindir}/qgpt -install -Dm 755 util/qualcomm/elf_segment_extractor.py %{buildroot}%{_bindir}/elf_segment_extractor +install -Dm 755 util/qualcomm/createxbl.py %{buildroot}%{_bindir}/createxbl.py +install -Dm 755 util/qualcomm/create_multielf.py %{buildroot}%{_bindir}/create_multielf.py +install -Dm 755 util/qualcomm/ipqheader.py %{buildroot}%{_bindir}/ipqheader.py +install -Dm 755 util/qualcomm/mbncat.py %{buildroot}%{_bindir}/mbncat.py +install -Dm 755 util/qualcomm/mbn_tools.py %{buildroot}%{_bindir}/mbn_tools.py +install -Dm 755 util/qualcomm/qgpt.py %{buildroot}%{_bindir}/qgpt.py +install -Dm 755 util/qualcomm/elf_segment_extractor.py %{buildroot}%{_bindir}/elf_segment_extractor.py install -Dm 755 util/riscv/make-spike-elf.sh %{buildroot}%{_bindir}/make-spike-elf -install -Dm 755 util/riscv/sifive-gpt.py %{buildroot}%{_bindir}/sifive-gpt +install -Dm 755 util/riscv/sifive-gpt.py %{buildroot}%{_bindir}/sifive-gpt.py install -Dm 755 util/riscv/starfive-jh7110-spl-tool/spl_tool %{buildroot}%{_bindir}/spl_tool -install -Dm 755 util/rockchip/make_idb.py %{buildroot}%{_bindir}/make_idb +install -Dm 755 util/rockchip/make_idb.py %{buildroot}%{_bindir}/make_idb.py install -Dm 755 util/scripts/capture_commands.sh %{buildroot}%{_bindir}/capture_commands install -Dm 755 util/scripts/config %{buildroot}%{_bindir}/config @@ -721,11 +724,9 @@ install -Dm 755 util/scripts/update_submodules %{buildroot}%{_bindir}/update_sub install -Dm 755 util/smmstoretool/smmstoretool %{buildroot}%{_bindir}/smmstoretool %endif -install -Dm 755 util/spdtool/spdtool.py %{buildroot}%{_bindir}/spdtool - +install -Dm 755 util/spdtool/spdtool.py %{buildroot}%{_bindir}/spdtool.py install -Dm 755 util/spd_tools/bin/part_id_gen %{buildroot}%{_bindir}/part_id_gen install -Dm 755 util/spd_tools/bin/spd_gen %{buildroot}%{_bindir}/spd_gen - install -Dm 755 util/spkmodem_recv/spkmodem-recv %{buildroot}%{_bindir}/spkmodem-recv %ifarch x86_64 @@ -734,23 +735,84 @@ install -Dm 755 util/superiotool/superiotool %{buildroot}%{_bindir}/superiotool install -Dm 755 util/xcompile/xcompile %{buildroot}%{_libdir}/xcompile -# Install documentation files to appropriate subdirectries within docdir to prevent multiple files of the same name -mkdir -p %{buildroot}%{_docdir}/coreboot-utils/abuild -mkdir -p %{buildroot}%{_docdir}/coreboot-utils/cbfstool -mkdir -p %{buildroot}%{_docdir}/coreboot-utils/ifdtool -mkdir -p %{buildroot}%{_docdir}/coreboot-utils/intelp2m -mkdir -p %{buildroot}%{_docdir}/coreboot-utils/smmstoretool +# Install documentation files to appropriate subdirectries within pkgdocdir to prevent multiple files of the same name +mkdir -p %{buildroot}%{_pkgdocdir}/abuild +mkdir -p %{buildroot}%{_pkgdocdir}/cbfstool +mkdir -p %{buildroot}%{_pkgdocdir}/ifdtool +mkdir -p %{buildroot}%{_pkgdocdir}/intelp2m +mkdir -p %{buildroot}%{_pkgdocdir}/smmstoretool -cp Documentation/util.md %{buildroot}%{_docdir}/coreboot-utils/util.md -cp Documentation/cbfs.txt %{buildroot}%{_docdir}/coreboot-utils/cbfs.txt -cp Documentation/util/abuild/index.md %{buildroot}%{_docdir}/coreboot-utils/abuild/index.md -cp Documentation/util/cbfstool/index.md %{buildroot}%{_docdir}/coreboot-utils/cbfstool/index.md -cp Documentation/util/cbfstool/mmap_windows.md %{buildroot}%{_docdir}/coreboot-utils/cbfstool/mmap_windows.md -cp Documentation/util/ifdtool/binary_extraction.md %{buildroot}%{_docdir}/coreboot-utils/ifdtool/binary_extraction.md -cp Documentation/util/ifdtool/index.md %{buildroot}%{_docdir}/coreboot-utils/ifdtool/index.md -cp Documentation/util/ifdtool/layout.md %{buildroot}%{_docdir}/coreboot-utils/ifdtool/layout.md -cp Documentation/util/intelp2m/index.md %{buildroot}%{_docdir}/coreboot-utils/intelp2m/index.md -cp Documentation/util/smmstoretool/index.md %{buildroot}%{_docdir}/coreboot-utils/smmstoretool/index.md +cp Documentation/util.md %{buildroot}%{_pkgdocdir}/util.md +cp Documentation/cbfs.txt %{buildroot}%{_pkgdocdir}/cbfs.txt +cp Documentation/util/abuild/index.md %{buildroot}%{_pkgdocdir}/abuild/index.md +cp Documentation/util/cbfstool/index.md %{buildroot}%{_pkgdocdir}/cbfstool/index.md +cp Documentation/util/cbfstool/mmap_windows.md %{buildroot}%{_pkgdocdir}/cbfstool/mmap_windows.md +cp Documentation/util/ifdtool/binary_extraction.md %{buildroot}%{_pkgdocdir}/ifdtool/binary_extraction.md +cp Documentation/util/ifdtool/index.md %{buildroot}%{_pkgdocdir}/ifdtool/index.md +cp Documentation/util/ifdtool/layout.md %{buildroot}%{_pkgdocdir}/ifdtool/layout.md +cp Documentation/util/intelp2m/index.md %{buildroot}%{_pkgdocdir}/intelp2m/index.md +cp Documentation/util/smmstoretool/index.md %{buildroot}%{_pkgdocdir}/smmstoretool/index.md + +%{__ln_s} -f %{_bindir}/k8-compare-pci-space %{buildroot}%{_bindir}/k8-compare-pci-space.pl +%{__ln_s} -f %{_bindir}/k8-interpret-extended-memory-settings %{buildroot}%{_bindir}/k8-interpret-extended-memory-settings.pl +%{__ln_s} -f %{_bindir}/k8-read-mem-settings %{buildroot}%{_bindir}/k8-read-mem-settings.sh +%{__ln_s} -f %{_bindir}/parse-bkdg %{buildroot}%{_bindir}/parse-bkdg.pl + +%{__ln_s} -f %{_bindir}/apcb_edit.py %{buildroot}%{_bindir}/apcb_edit +%{__ln_s} -f %{_bindir}/apcb_v3a_edit.py %{buildroot}%{_bindir}/apcb_v3a_edit +%{__ln_s} -f %{_bindir}/apcb_v3_edit.py %{buildroot}%{_bindir}/apcb_v3_edit + +%{__ln_s} -f %{_bindir}/board_status %{buildroot}%{_bindir}/board_status.sh +%{__ln_s} -f %{_bindir}/getrevision %{buildroot}%{_bindir}/getrevision.sh +%{__ln_s} -f %{_bindir}/set_up_live_image %{buildroot}%{_bindir}/set_up_live_image.sh + +%{__ln_s} -f %{_bindir}/conftest.py %{buildroot}%{_bindir}/conftest +%{__ln_s} -f %{_bindir}/elogtool_test.py %{buildroot}%{_bindir}/elogtool_test + +%{__ln_s} -f %{_bindir}/crosfirmware %{buildroot}%{_bindir}/crosfirmware.sh +%{__ln_s} -f %{_bindir}/extract_blobs %{buildroot}%{_bindir}/extract_blobs.sh +%{__ln_s} -f %{_bindir}/gen_test_hwid %{buildroot}%{_bindir}/gen_test_hwid.sh +%{__ln_s} -f %{_bindir}/update_ec_headers %{buildroot}%{_bindir}/update_ec_headers.sh + +%{__ln_s} -f %{_bindir}/fixed_cksum.py %{buildroot}%{_bindir}/fixed_cksum +%{__ln_s} -f %{_bindir}/variable_cksum.py %{buildroot}%{_bindir}/variable_cksum + +%{__ln_s} -f %{_bindir}/find_usbdebug %{buildroot}%{_bindir}/find_usbdebug.sh + +%{__ln_s} -f %{_bindir}/genbuild_h %{buildroot}%{_bindir}/genbuild_h.sh + +%{__ln_s} -f %{_bindir}/check-pi-img.py %{buildroot}%{_bindir}/check-pi-img +%{__ln_s} -f %{_bindir}/gen-bl-img.py %{buildroot}%{_bindir}/gen-bl-img + +%{__ln_s} -f %{_bindir}/mma_automated_test %{buildroot}%{_bindir}/mma_automated_test.sh +%{__ln_s} -f %{_bindir}/mma_get_result %{buildroot}%{_bindir}/mma_get_result.sh +%{__ln_s} -f %{_bindir}/mma_setup_test %{buildroot}%{_bindir}/mma_setup_test.sh + +%{__ln_s} -f %{_bindir}/createxbl.py %{buildroot}%{_bindir}/createxbl +%{__ln_s} -f %{_bindir}/create_multielf.py %{buildroot}%{_bindir}/create_multielf +%{__ln_s} -f %{_bindir}/ipqheader.py %{buildroot}%{_bindir}/ipqheader +%{__ln_s} -f %{_bindir}/mbncat.py %{buildroot}%{_bindir}/mbncat +%{__ln_s} -f %{_bindir}/mbn_tools.py %{buildroot}%{_bindir}/mbn_tools +%{__ln_s} -f %{_bindir}/qgpt.py %{buildroot}%{_bindir}/qgpt +%{__ln_s} -f %{_bindir}/elf_segment_extractor.py %{buildroot}%{_bindir}/elf_segment_extractor + +%{__ln_s} -f %{_bindir}/make-spike-elf %{buildroot}%{_bindir}/make-spike-elf.sh +%{__ln_s} -f %{_bindir}/sifive-gpt.py %{buildroot}%{_bindir}/sifive-gpt + +%{__ln_s} -f %{_bindir}/make_idb.py %{buildroot}%{_bindir}/make_idb + +%{__ln_s} -f %{_bindir}/capture_commands %{buildroot}%{_bindir}/capture_commands.sh +%{__ln_s} -f %{_bindir}/decode_spd %{buildroot}%{_bindir}/decode_spd.sh +%{__ln_s} -f %{_bindir}/dts-to-fmd %{buildroot}%{_bindir}/dts-to-fmd.sh +%{__ln_s} -f %{_bindir}/find_new_user_commits %{buildroot}%{_bindir}/find_new_user_commits.sh +%{__ln_s} -f %{_bindir}/find-unused-kconfig-symbols %{buildroot}%{_bindir}/find-unused-kconfig-symbols.sh +%{__ln_s} -f %{_bindir}/get_maintainer %{buildroot}%{_bindir}/get_maintainer.pl +%{__ln_s} -f %{_bindir}/no-fsf-addresses %{buildroot}%{_bindir}/no-fsf-addresses.sh +%{__ln_s} -f %{_bindir}/parse-maintainers %{buildroot}%{_bindir}/parse-maintainers.pl +%{__ln_s} -f %{_bindir}/show_platforms %{buildroot}%{_bindir}/show_platforms.sh +%{__ln_s} -f %{_bindir}/ucode_h_to_bin %{buildroot}%{_bindir}/ucode_h_to_bin.sh + +%{__ln_s} -f %{_bindir}/spdtool.py %{buildroot}%{_bindir}/spdtool %files %doc util/README.md AUTHORS MAINTAINERS @@ -768,23 +830,26 @@ cp Documentation/util/smmstoretool/index.md %{buildroot}%{_docdir}/coreboot-util %files amdtools %{_bindir}/k8-compare-pci-space +%{_bindir}/k8-compare-pci-space.pl %{_bindir}/k8-interpret-extended-memory-settings +%{_bindir}/k8-interpret-extended-memory-settings.pl %{_bindir}/k8-read-mem-settings +%{_bindir}/k8-read-mem-settings.sh %{_bindir}/parse-bkdg +%{_bindir}/parse-bkdg.pl %{_bindir}/update_efs_spi_speed %doc util/amdtools/*.md %files apcb %{_bindir}/apcb_edit +%{_bindir}/apcb_edit.py %{_bindir}/apcb_v3a_edit +%{_bindir}/apcb_v3a_edit.py %{_bindir}/apcb_v3_edit +%{_bindir}/apcb_v3_edit.py %doc util/apcb/README %doc util/apcb/description.md -%dnl %files archive -%dnl %{_bindir}/archive -%dnl %doc util/archive/description.md - %files autoport %{_bindir}/autoport %doc util/autoport/*.md @@ -795,8 +860,11 @@ cp Documentation/util/smmstoretool/index.md %{buildroot}%{_docdir}/coreboot-util %files board_status %{_bindir}/board_status +%{_bindir}/board_status.sh %{_bindir}/getrevision +%{_bindir}/getrevision.sh %{_bindir}/set_up_live_image +%{_bindir}/set_up_live_image.sh %doc util/board_status/*.md %ifarch x86_64 @@ -811,7 +879,9 @@ cp Documentation/util/smmstoretool/index.md %{buildroot}%{_docdir}/coreboot-util %files cbfstool-tests %{_bindir}/conftest +%{_bindir}/conftest.py %{_bindir}/elogtool_test +%{_bindir}/elogtool_test.py %doc util/cbfstool/tests/README.md %files cbmem @@ -820,38 +890,42 @@ cp Documentation/util/smmstoretool/index.md %{buildroot}%{_docdir}/coreboot-util %files chromeos-coreboot-utilities %{_bindir}/crosfirmware +%{_bindir}/crosfirmware.sh %{_bindir}/extract_blobs +%{_bindir}/extract_blobs.sh %{_bindir}/gen_test_hwid +%{_bindir}/gen_test_hwid.sh %{_bindir}/update_ec_headers +%{_bindir}/update_ec_headers.sh %doc util/chromeos/*.md %files coreboot-configurator %{_bindir}/coreboot-configurator %{_datadir}/polkit-1/actions/org.coreboot.nvramtool.policy %{_datadir}/polkit-1/actions/org.coreboot.reboot.policy -%{_datadir}/applications/coreboot-configurator.desktop -%{_datadir}/icons/hicolor/24x24/apps/coreboot-configurator.png -%{_datadir}/icons/hicolor/48x48/apps/coreboot-configurator.png -%{_datadir}/icons/hicolor/96x96/apps/coreboot-configurator.png -%{_datadir}/icons/hicolor/16x16/apps/coreboot-configurator.png -%{_datadir}/icons/hicolor/32x32/apps/coreboot-configurator.png -%{_datadir}/icons/hicolor/64x64/apps/coreboot-configurator.png -%{_datadir}/icons/hicolor/128x128/apps/coreboot-configurator.png -%{_datadir}/icons/hicolor/256x256/apps/coreboot-configurator.png -%{_datadir}/icons/hicolor/512x512/apps/coreboot-configurator.png +%{_appsdir}/coreboot-configurator.desktop +%{_hicolordir}/24x24/apps/coreboot-configurator.png +%{_hicolordir}/48x48/apps/coreboot-configurator.png +%{_hicolordir}/96x96/apps/coreboot-configurator.png +%{_hicolordir}/16x16/apps/coreboot-configurator.png +%{_hicolordir}/32x32/apps/coreboot-configurator.png +%{_hicolordir}/64x64/apps/coreboot-configurator.png +%{_hicolordir}/128x128/apps/coreboot-configurator.png +%{_hicolordir}/256x256/apps/coreboot-configurator.png +%{_hicolordir}/512x512/apps/coreboot-configurator.png %doc util/coreboot-configurator/README.md %files doc -%{_docdir}/coreboot-utils/util.md -%{_docdir}/coreboot-utils/cbfs.txt -%{_docdir}/coreboot-utils/abuild/index.md -%{_docdir}/coreboot-utils/cbfstool/index.md -%{_docdir}/coreboot-utils/cbfstool/mmap_windows.md -%{_docdir}/coreboot-utils/ifdtool/binary_extraction.md -%{_docdir}/coreboot-utils/ifdtool/index.md -%{_docdir}/coreboot-utils/ifdtool/layout.md -%{_docdir}/coreboot-utils/intelp2m/index.md -%{_docdir}/coreboot-utils/smmstoretool/index.md +%{_pkgdocdir}/util.md +%{_pkgdocdir}/cbfs.txt +%{_pkgdocdir}/abuild/index.md +%{_pkgdocdir}/cbfstool/index.md +%{_pkgdocdir}/cbfstool/mmap_windows.md +%{_pkgdocdir}/ifdtool/binary_extraction.md +%{_pkgdocdir}/ifdtool/index.md +%{_pkgdocdir}/ifdtool/layout.md +%{_pkgdocdir}/intelp2m/index.md +%{_pkgdocdir}/smmstoretool/index.md %license Documentation/COPYING %ifarch x86_64 @@ -862,11 +936,14 @@ cp Documentation/util/smmstoretool/index.md %{buildroot}%{_docdir}/coreboot-util %files exynos %{_bindir}/fixed_cksum +%{_bindir}/fixed_cksum.py %{_bindir}/variable_cksum +%{_bindir}/variable_cksum.py %doc util/exynos/description.md %files find_usbdebug %{_bindir}/find_usbdebug +%{_bindir}/find_usbdebug.sh %doc util/find_usbdebug/description.md %files futility @@ -875,6 +952,7 @@ cp Documentation/util/smmstoretool/index.md %{buildroot}%{_docdir}/coreboot-util %files genbuild_h %{_bindir}/genbuild_h +%{_bindir}/genbuild_h.sh %doc util/genbuild_h/description.md %files hda-decoder @@ -915,14 +993,19 @@ cp Documentation/util/smmstoretool/index.md %{buildroot}%{_docdir}/coreboot-util %doc util/kbc1126/*.md %files mediatek-coreboot-utilities -%{_bindir}/gen-bl-img %{_bindir}/check-pi-img +%{_bindir}/check-pi-img.py +%{_bindir}/gen-bl-img +%{_bindir}/gen-bl-img.py %doc util/mediatek/description.md %files mma %{_bindir}/mma_automated_test +%{_bindir}/mma_automated_test.sh %{_bindir}/mma_get_result +%{_bindir}/mma_get_result.sh %{_bindir}/mma_setup_test +%{_bindir}/mma_setup_test.sh %doc util/mma/description.md %ifarch x86_64 @@ -955,43 +1038,63 @@ cp Documentation/util/smmstoretool/index.md %{buildroot}%{_docdir}/coreboot-util %files qualcomm-coreboot-utilities %{_bindir}/createxbl +%{_bindir}/createxbl.py %{_bindir}/create_multielf +%{_bindir}/create_multielf.py %{_bindir}/ipqheader +%{_bindir}/ipqheader.py %{_bindir}/mbncat +%{_bindir}/mbncat.py %{_bindir}/mbn_tools +%{_bindir}/mbn_tools.py %{_bindir}/qgpt +%{_bindir}/qgpt.py %{_bindir}/elf_segment_extractor +%{_bindir}/elf_segment_extractor.py %doc util/qualcomm/description.md %files riscv-coreboot-utilities %{_bindir}/make-spike-elf +%{_bindir}/make-spike-elf.sh %{_bindir}/sifive-gpt +%{_bindir}/sifive-gpt.py %{_bindir}/spl_tool %doc util/riscv/description.md %doc util/riscv/starfive-jh7110-spl-tool/README.md %files rockchip-coreboot-utilities %{_bindir}/make_idb +%{_bindir}/make_idb.py %license util/rockchip/LICENSE %doc util/rockchip/description.md %files scripts %{_bindir}/capture_commands +%{_bindir}/capture_commands.sh %{_bindir}/config %{_bindir}/cross-repo-cherrypick %{_bindir}/decode_spd +%{_bindir}/decode_spd.sh %{_bindir}/dts-to-fmd +%{_bindir}/dts-to-fmd.sh %{_bindir}/find_new_user_commits +%{_bindir}/find_new_user_commits.sh %{_bindir}/find-unused-kconfig-symbols +%{_bindir}/find-unused-kconfig-symbols.sh %{_bindir}/gerrit-rebase %{_bindir}/get_maintainer +%{_bindir}/get_maintainer.pl %{_bindir}/no-fsf-addresses +%{_bindir}/no-fsf-addresses.sh %{_bindir}/parse-maintainers +%{_bindir}/parse-maintainers.pl %{_bindir}/prepare-commit-msg.clang-format %{_bindir}/rm_unused_code %{_bindir}/show_platforms +%{_bindir}/show_platforms.sh %{_bindir}/testsoc %{_bindir}/ucode_h_to_bin +%{_bindir}/ucode_h_to_bin.sh %{_bindir}/update_submodules %doc util/scripts/description.md @@ -1003,6 +1106,7 @@ cp Documentation/util/smmstoretool/index.md %{buildroot}%{_docdir}/coreboot-util %files spdtool %{_bindir}/spdtool +%{_bindir}/spdtool.py %doc util/spdtool/description.md %files spd_tools @@ -1026,5 +1130,8 @@ cp Documentation/util/smmstoretool/index.md %{buildroot}%{_docdir}/coreboot-util %doc util/xcompile/description.md %changelog +* Sun Dec 28 2025 Owen Zimmerman +- Update macros, add %post symlinks + * Wed Jul 30 2025 Owen Zimmerman - Initial Package diff --git a/anda/tools/coreboot-utils/update.rhai b/anda/tools/coreboot-utils/update.rhai index 95fe2d2cf6..7e27695ddc 100644 --- a/anda/tools/coreboot-utils/update.rhai +++ b/anda/tools/coreboot-utils/update.rhai @@ -1 +1 @@ -rpm.version(gh("coreboot/coreboot")); +rpm.version(gh_tag("coreboot/coreboot")); diff --git a/anda/tools/crossystem/crossystem.spec b/anda/tools/crossystem/crossystem.spec index bd97468053..f3928c6c1a 100644 --- a/anda/tools/crossystem/crossystem.spec +++ b/anda/tools/crossystem/crossystem.spec @@ -1,5 +1,5 @@ -%global commit_date 20221215 -%global commit c4102fe4eef8c0539c03d60c7256fd4bc599bf4a +%global commit_date 20260105 +%global commit 0ee734db27fe06a92b92e0bdc58c8b7f35dfaf16 %global shortcommit %(c=%{commit}; echo ${c:0:7}) Name: crossystem @@ -7,14 +7,15 @@ Summary: Manage ChromeOS firmware License: BSD-3-Clause URL: https://chromium.googlesource.com/chromiumos/platform/vboot_reference -Version: %shortcommit +Version: 0~%{commit_date}git.%{shortcommit} Release: 1%?dist -Source0: %url/+archive/refs/heads/release-R110-15278.B.tar.gz +Epoch: 1 +Source0: %url/+archive/refs/heads/firmware-R145-16552.2.B.tar.gz Patch0: use-flashrom-cros.patch Patch1: disable-werror.patch Requires: flashrom-cros -BuildRequires: make gcc openssl-devel flashrom-devel libuuid-devel +BuildRequires: make gcc openssl-devel flashrom-cros-devel libuuid-devel Packager: WeirdTreeThing @@ -28,6 +29,7 @@ info from a ChromeOS system %patch -P1 -p1 %build +export CFLAGS="$CFLAGS -Wno-implicit-function-declaration" %make_build %install @@ -38,5 +40,8 @@ install -Dm755 build/utility/crossystem %{buildroot}%{_bindir}/crossystem %{_bindir}/crossystem %changelog +* Sun Jan 18 2026 Owen Zimmerman +- Bump, use proper versioning name, update patches and source link + * Fri Oct 25 2024 WeirdTreeThing - initial release diff --git a/anda/tools/crossystem/use-flashrom-cros.patch b/anda/tools/crossystem/use-flashrom-cros.patch index 1721a9fee3..554eecd46e 100644 --- a/anda/tools/crossystem/use-flashrom-cros.patch +++ b/anda/tools/crossystem/use-flashrom-cros.patch @@ -11,16 +11,3 @@ index 6a80201..c67a99d 100644 /** * Helper to create a temporary file, and optionally write some data -diff --git a/host/lib/include/flashrom.h b/host/lib/include/flashrom.h -index 81d6ba9..6b760d6 100644 ---- a/host/lib/include/flashrom.h -+++ b/host/lib/include/flashrom.h -@@ -10,7 +10,7 @@ - #include "2return_codes.h" - #include "fmap.h" - --#define FLASHROM_PROGRAMMER_INTERNAL_AP "host" -+#define FLASHROM_PROGRAMMER_INTERNAL_AP "internal" - #define FLASHROM_PROGRAMMER_INTERNAL_EC "ec" - - /* Utilities for firmware images and (FMAP) sections */ diff --git a/anda/tools/curl-impersonate/curl-impersonate-chrome.spec b/anda/tools/curl-impersonate/curl-impersonate-chrome.spec index 981d34621b..4416f46074 100644 --- a/anda/tools/curl-impersonate/curl-impersonate-chrome.spec +++ b/anda/tools/curl-impersonate/curl-impersonate-chrome.spec @@ -50,8 +50,10 @@ This package contains the object files necessary to develop %{name}. %prep %autosetup -n curl-impersonate-%{version} -p1 -%build +%conf %configure + +%build %{__make} chrome-build %check diff --git a/anda/tools/electron/electron.spec b/anda/tools/electron/electron.spec index fc4dfb2618..70d7341f49 100644 --- a/anda/tools/electron/electron.spec +++ b/anda/tools/electron/electron.spec @@ -1,27 +1,14 @@ -%define debug_package %{nil} -%global _build_id_links none - -%ifarch x86_64 -%global garch x64 -%elifarch aarch64 -%global garch arm64 -%endif - -# Exclude private libraries -%global __requires_exclude libffmpeg.so -%global __provides_exclude_from %{_libdir}/%{name}/.*\\.so - Name: electron -Version: 38.4.0 -Release: 1%?dist +%electronmeta +Version: 42.0.0 +Release: 1%{?dist} Summary: Build cross platform desktop apps with web technologies -License: MIT +License: %{electron_license} URL: https://electronjs.org/ -Source0: https://github.com/electron/electron/releases/download/v%{version}/chromedriver-v%{version}-linux-%{garch}.zip -Source1: https://github.com/electron/electron/releases/download/v%{version}/electron-v%{version}-linux-%{garch}.zip +Source0: https://github.com/electron/electron/releases/download/v%{version}/chromedriver-v%{version}-linux-%{_electron_cpu}.zip +Source1: https://github.com/electron/electron/releases/download/v%{version}/electron-v%{version}-linux-%{_electron_cpu}.zip Source2: https://raw.githubusercontent.com/electron/electron/v%version/README.md -Requires: c-ares gtk3 minizip nss re2 -BuildRequires: unzip +BuildRequires: anda-srpm-macros >= 0.2.26 %description The Electron framework lets you write cross-platform desktop applications using @@ -59,5 +46,5 @@ install -Dm644 %SOURCE2 %buildroot%_docdir/%name/ %changelog -* Fri Feb 10 2023 windowsboy111 - 20.3.12-1 +* Fri Feb 10 2023 madonuko - 20.3.12-1 - Initial package diff --git a/anda/tools/fasm/anda.hcl b/anda/tools/fasm/anda.hcl new file mode 100644 index 0000000000..0d60b5aa8c --- /dev/null +++ b/anda/tools/fasm/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64", "i686"] + rpm { + spec = "fasm.spec" + } +} diff --git a/anda/tools/fasm/fasm.spec b/anda/tools/fasm/fasm.spec new file mode 100644 index 0000000000..7a8953c821 --- /dev/null +++ b/anda/tools/fasm/fasm.spec @@ -0,0 +1,36 @@ +%global debug_package %{nil} + +Name: fasm +Release: 1%?dist +Version: 1.73.35 +Summary: Fast assembler for the x86 and x86-64 architectures +License: BSD-2-Clause +URL: https://flatassembler.net +Source: %{url}/%{name}-%{version}.tgz +Packager: metcya +ExclusiveArch: x86_64 i686 + +%description +%summary. + +%prep +%autosetup -n %{name} + +%build +%ifarch i686 +./fasm source/Linux/fasm.asm %{name}.out +%elifarch x86_64 +./fasm.x64 source/Linux/x64/fasm.asm %{name}.out +%endif + +%install +install -Dm 755 %{name}.out %{buildroot}%{_bindir}/%{name} + +%files +%doc fasm.txt whatsnew.txt +%license license.txt +%{_bindir}/%{name} + +%changelog +* Sun Nov 23 2025 metcya +- Package fasm diff --git a/anda/tools/fasm/update.rhai b/anda/tools/fasm/update.rhai new file mode 100644 index 0000000000..5006e7f35a --- /dev/null +++ b/anda/tools/fasm/update.rhai @@ -0,0 +1,3 @@ +let content = get("https://raw.githubusercontent.com/tgrysztar/fasm/master/SOURCE/VERSION.INC"); +let version = find("VERSION_STRING equ \"(\\d+\\.\\d+\\.\\d+)\"", content, 1); +rpm.version(version); diff --git a/anda/tools/flashrom-cros/flashrom-cros.spec b/anda/tools/flashrom-cros/flashrom-cros.spec index 485de48893..b586e520db 100644 --- a/anda/tools/flashrom-cros/flashrom-cros.spec +++ b/anda/tools/flashrom-cros/flashrom-cros.spec @@ -1,14 +1,15 @@ -%global commit_date 20240911 -%global commit c1ab7468d28d164a30d598eb3e42a5febaf73bbc +%global commit_date 20251208 +%global commit 1c70ca25cdb62f9448e7e650be1faf32ab8f7f0c %global shortcommit %(c=%{commit}; echo ${c:0:7}) Name: flashrom-cros -Version: %shortcommit -Release: 1%{?dist} +Version: 0~%{commit_date}git.%{shortcommit} +Release: 2%{?dist} +Epoch: 1 Summary: Simple program for reading/writing flash chips content (ChromiumOS fork) License: GPL-2.0-only URL: https://chromium.googlesource.com/chromiumos/third_party/flashrom -Source0: %url/+archive/refs/heads/release-R130-16033.B.tar.gz +Source0: %url/+archive/%commit.tar.gz BuildRequires: gcc gnupg2 libusb1-devel meson pciutils-devel python3-sphinx systemd zlib-devel dmidecode Requires: dmidecode udev Conflicts: flashrom @@ -22,7 +23,7 @@ other programmer devices. %package devel Summary: Development package for %{name} -Requires: %{name} = %{version}-%{release} +Requires: %{name} = %{evr} Conflicts: flashrom-devel %description devel @@ -48,15 +49,17 @@ install -Dm755 %{_vpath_builddir}/libflashrom.so.1.0.0 %{buildroot}%{_libdir}/li %{_bindir}/%{name} %license COPYING %doc README.rst README.chromiumos doc/ +%{_libdir}/libflashrom.so.* %files devel %{_includedir}/libflashrom.h %{_libdir}/libflashrom.so -%{_libdir}/libflashrom.so.1 -%{_libdir}/libflashrom.so.1.0.0 %{_libdir}/pkgconfig/flashrom.pc %changelog +* Sun Jan 18 2026 Owen Zimmerman +- Bump, install .so files correctly, use proper versioning name + * Fri Jul 04 2025 Owen Zimmerman - Add back to terra, conflict with flashrom, add devel package, include other needed files diff --git a/anda/tools/framework-system/anda.hcl b/anda/tools/framework-system/anda.hcl new file mode 100644 index 0000000000..be765aca17 --- /dev/null +++ b/anda/tools/framework-system/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "framework-system.spec" + } +} diff --git a/anda/tools/framework-system/framework-system.spec b/anda/tools/framework-system/framework-system.spec new file mode 100644 index 0000000000..c5c2a0da03 --- /dev/null +++ b/anda/tools/framework-system/framework-system.spec @@ -0,0 +1,46 @@ +Name: framework-system +Version: 0.6.3 +Release: 1%{?dist} +Summary: Rust libraries and tools to interact with the Framework Computer systems +URL: https://github.com/FrameworkComputer/framework-system +Source0: %{url}/archive/refs/tags/v%{version}.tar.gz +License: BSD-3-Clause AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND BSD-2-Clause AND MIT AND MPL-2.0 AND (Unlicense OR MIT) +BuildRequires: anda-srpm-macros +BuildRequires: cargo-rpm-macros +BuildRequires: mold +BuildRequires: rust-udev-devel +BuildRequires: rust +BuildRequires: systemd-devel +BuildRequires: hidapi-devel +Provides: framework_tool +ExclusiveArch: x86_64 + +Packager: Owen Zimmerman + +%description +%{summary}. + +%pkg_completion -bz framework_tool + +%prep +%autosetup -n framework-system-%{version} +%cargo_prep_online + +%build +%cargo_build + +%install +install -Dm755 target/rpm/framework_tool %{buildroot}%{_bindir}/framework_tool +install -Dm 644 framework_tool/completions/bash/framework_tool %{buildroot}%{bash_completions_dir}/framework_tool.bash +install -Dm 644 framework_tool/completions/zsh/_framework_tool %{buildroot}%{zsh_completions_dir}/_framework_tool +%{cargo_license_online} > LICENSE.dependencies + +%files +%doc EXAMPLES.md EXAMPLES_ADVANCED.md README.md support-matrices.md +%license LICENSE.md +%license LICENSE.dependencies +%{_bindir}/framework_tool + +%changelog +* Tue Dec 23 2025 Owen Zimmerman +- Initial commit diff --git a/anda/tools/framework-system/update.rhai b/anda/tools/framework-system/update.rhai new file mode 100644 index 0000000000..8cee817f46 --- /dev/null +++ b/anda/tools/framework-system/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("FrameworkComputer/framework-system")); diff --git a/anda/tools/fzy/anda.hcl b/anda/tools/fzy/anda.hcl new file mode 100644 index 0000000000..05c623bca8 --- /dev/null +++ b/anda/tools/fzy/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "fzy.spec" + } +} diff --git a/anda/tools/fzy/fzy.spec b/anda/tools/fzy/fzy.spec new file mode 100644 index 0000000000..4a58ee8dde --- /dev/null +++ b/anda/tools/fzy/fzy.spec @@ -0,0 +1,39 @@ +%global forgeurl https://github.com/jhawthorn/fzy +Version: 1.1 +%forgemeta + +Name: fzy +Release: 1%{?dist} +Summary: A fast, simple fuzzy text selector for the terminal + +License: MIT +URL: %{forgeurl} +Source0: %{forgesource} + +Packager: metcya + +BuildRequires: gcc +BuildRequires: make + +%description +fzy is a fast, simple fuzzy text selector for the terminal with an advanced +scoring algorithm. + +%prep +%forgeautosetup + +%build +%make_build + +%install +%make_install BINDIR="%{_bindir}" MANDIR="%{_mandir}" + +%files +%license LICENSE +%doc README.md ALGORITHM.md +%{_bindir}/%{name} +%{_mandir}/man1/%{name}.1.* + +%changelog +* Mon Mar 23 2026 metcya +- Initial package diff --git a/anda/tools/fzy/update.rhai b/anda/tools/fzy/update.rhai new file mode 100644 index 0000000000..d1f92a1a15 --- /dev/null +++ b/anda/tools/fzy/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("jhawthorn/fzy")); diff --git a/anda/tools/gcm-core/gcm-core.spec b/anda/tools/gcm-core/gcm-core.spec index 0f6863423a..cd4f0a9ee4 100644 --- a/anda/tools/gcm-core/gcm-core.spec +++ b/anda/tools/gcm-core/gcm-core.spec @@ -6,9 +6,9 @@ %global forgeurl https://github.com/git-ecosystem/git-credential-manager Name: gcm-core -Version: 2.6.1 +Version: 2.7.3 -Release: 1%?dist +Release: 1%{?dist} Summary: Secure, cross-platform Git credential storage %forgemeta diff --git a/anda/tools/geteltorito/geteltorito.spec b/anda/tools/geteltorito/geteltorito.spec index b6e4ccd06d..5c647748a6 100644 --- a/anda/tools/geteltorito/geteltorito.spec +++ b/anda/tools/geteltorito/geteltorito.spec @@ -4,9 +4,9 @@ Name: geteltorito Version: %{commit_date}.%{shortcommit} -Release: 1%?dist +Release: 2%?dist Summary: An El Torito boot image extractor -License: GPLv3 +License: GPL-3.0-only Packager: Owen Zimmerman Url: https://github.com/rainer042/geteltorito Source0: %{url}/archive/%{commit}.tar.gz @@ -14,7 +14,7 @@ BuildArch: noarch Requires: perl %description -%summary +%summary. %prep %autosetup -n geteltorito-%commit diff --git a/anda/tools/gf/01-fix-designated-initializers.patch b/anda/tools/gf/01-fix-designated-initializers.patch new file mode 100644 index 0000000000..aed98551b0 --- /dev/null +++ b/anda/tools/gf/01-fix-designated-initializers.patch @@ -0,0 +1,104 @@ +diff --git a/gf2.cpp b/gf2.cpp +index 116f1d0..2d21a07 100644 +--- a/gf2.cpp ++++ b/gf2.cpp +@@ -1528,68 +1528,68 @@ void InterfaceAddBuiltinWindowsAndCommands() { + interfaceDataViewers.Add({ "Add bitmap...", BitmapAddDialog }); + + interfaceCommands.Add({ .label = "Run\tShift+F5", +- { .code = UI_KEYCODE_FKEY(5), .shift = true, .invoke = CommandSendToGDB, .cp = (void *) "r" } }); ++ .shortcut = { .code = UI_KEYCODE_FKEY(5), .shift = true, .invoke = CommandSendToGDB, .cp = (void *) "r" } }); + interfaceCommands.Add({ .label = "Run paused\tCtrl+F5", +- { .code = UI_KEYCODE_FKEY(5), .ctrl = true, .invoke = CommandSendToGDB, .cp = (void *) "start" } }); ++ .shortcut = { .code = UI_KEYCODE_FKEY(5), .ctrl = true, .invoke = CommandSendToGDB, .cp = (void *) "start" } }); + interfaceCommands.Add({ .label = "Kill\tF3", +- { .code = UI_KEYCODE_FKEY(3), .invoke = CommandSendToGDB, .cp = (void *) "kill" } }); ++ .shortcut = { .code = UI_KEYCODE_FKEY(3), .invoke = CommandSendToGDB, .cp = (void *) "kill" } }); + interfaceCommands.Add({ .label = "Restart GDB\tCtrl+R", +- { .code = UI_KEYCODE_LETTER('R'), .ctrl = true, .invoke = CommandSendToGDB, .cp = (void *) "gf-restart-gdb" } }); ++ .shortcut = { .code = UI_KEYCODE_LETTER('R'), .ctrl = true, .invoke = CommandSendToGDB, .cp = (void *) "gf-restart-gdb" } }); + interfaceCommands.Add({ .label = "Load Last Coredump\tCtrl+Shift+R", +- { .code = UI_KEYCODE_LETTER('R'), .ctrl = true, .shift = true, .invoke = CommandSendToGDB, .cp = (void *) "gf-load-last-coredump" } }); ++ .shortcut = { .code = UI_KEYCODE_LETTER('R'), .ctrl = true, .shift = true, .invoke = CommandSendToGDB, .cp = (void *) "gf-load-last-coredump" } }); + interfaceCommands.Add({ .label = "Connect\tF4", +- { .code = UI_KEYCODE_FKEY(4), .invoke = CommandSendToGDB, .cp = (void *) "target remote :1234" } }); ++ .shortcut = { .code = UI_KEYCODE_FKEY(4), .invoke = CommandSendToGDB, .cp = (void *) "target remote :1234" } }); + interfaceCommands.Add({ .label = "Continue\tF5", +- { .code = UI_KEYCODE_FKEY(5), .invoke = CommandSendToGDB, .cp = (void *) "c" } }); ++ .shortcut = { .code = UI_KEYCODE_FKEY(5), .invoke = CommandSendToGDB, .cp = (void *) "c" } }); + interfaceCommands.Add({ .label = "Step over\tF10", +- { .code = UI_KEYCODE_FKEY(10), .invoke = CommandSendToGDB, .cp = (void *) "gf-next" } }); ++ .shortcut = { .code = UI_KEYCODE_FKEY(10), .invoke = CommandSendToGDB, .cp = (void *) "gf-next" } }); + interfaceCommands.Add({ .label = "Step out of block\tShift+F10", +- { .code = UI_KEYCODE_FKEY(10), .shift = true, .invoke = CommandSendToGDB, .cp = (void *) "gf-step-out-of-block" } }); ++ .shortcut = { .code = UI_KEYCODE_FKEY(10), .shift = true, .invoke = CommandSendToGDB, .cp = (void *) "gf-step-out-of-block" } }); + interfaceCommands.Add({ .label = "Step in\tF11", +- { .code = UI_KEYCODE_FKEY(11), .invoke = CommandSendToGDB, .cp = (void *) "gf-step" } }); ++ .shortcut = { .code = UI_KEYCODE_FKEY(11), .invoke = CommandSendToGDB, .cp = (void *) "gf-step" } }); + interfaceCommands.Add({ .label = "Step into outer\tShift+F8", +- { .code = UI_KEYCODE_FKEY(8), .shift = true, .invoke = CommandSendToGDB, .cp = (void *) "gf-step-into-outer" } }); ++ .shortcut = { .code = UI_KEYCODE_FKEY(8), .shift = true, .invoke = CommandSendToGDB, .cp = (void *) "gf-step-into-outer" } }); + interfaceCommands.Add({ .label = "Step out\tShift+F11", +- { .code = UI_KEYCODE_FKEY(11), .shift = true, .invoke = CommandSendToGDB, .cp = (void *) "finish" } }); ++ .shortcut = { .code = UI_KEYCODE_FKEY(11), .shift = true, .invoke = CommandSendToGDB, .cp = (void *) "finish" } }); + interfaceCommands.Add({ .label = "Reverse continue\tCtrl+Shift+F5", +- { .code = UI_KEYCODE_FKEY(5), .ctrl = true, .shift = true, .invoke = CommandSendToGDB, .cp = (void *) "reverse-continue" } }); ++ .shortcut = { .code = UI_KEYCODE_FKEY(5), .ctrl = true, .shift = true, .invoke = CommandSendToGDB, .cp = (void *) "reverse-continue" } }); + interfaceCommands.Add({ .label = "Reverse step over\tCtrl+Shift+F10", +- { .code = UI_KEYCODE_FKEY(10), .ctrl = true, .shift = true, .invoke = CommandSendToGDB, .cp = (void *) "reverse-next" } }); ++ .shortcut = { .code = UI_KEYCODE_FKEY(10), .ctrl = true, .shift = true, .invoke = CommandSendToGDB, .cp = (void *) "reverse-next" } }); + interfaceCommands.Add({ .label = "Reverse step in\tCtrl+Shift+F11", +- { .code = UI_KEYCODE_FKEY(11), .ctrl = true, .shift = true, .invoke = CommandSendToGDB, .cp = (void *) "reverse-step" } }); ++ .shortcut = { .code = UI_KEYCODE_FKEY(11), .ctrl = true, .shift = true, .invoke = CommandSendToGDB, .cp = (void *) "reverse-step" } }); + interfaceCommands.Add({ .label = "Pause\tF8", +- { .code = UI_KEYCODE_FKEY(8), .invoke = CommandPause } }); ++ .shortcut = { .code = UI_KEYCODE_FKEY(8), .invoke = CommandPause } }); + interfaceCommands.Add({ .label = "Toggle breakpoint\tF9", +- { .code = UI_KEYCODE_FKEY(9), .invoke = CommandToggleBreakpoint } }); ++ .shortcut = { .code = UI_KEYCODE_FKEY(9), .invoke = CommandToggleBreakpoint } }); + if (vimServerEnabled) { + interfaceCommands.Add({ .label = "Sync with gvim\tF2", +- { .code = UI_KEYCODE_FKEY(2), .invoke = CommandSyncWithGvim } }); ++ .shortcut = { .code = UI_KEYCODE_FKEY(2), .invoke = CommandSyncWithGvim } }); + } + interfaceCommands.Add({ .label = "Ask GDB for PWD\tCtrl+Shift+P", +- { .code = UI_KEYCODE_LETTER('P'), .ctrl = true, .shift = true, .invoke = CommandSendToGDB, .cp = (void *) "gf-get-pwd" } }); ++ .shortcut = { .code = UI_KEYCODE_LETTER('P'), .ctrl = true, .shift = true, .invoke = CommandSendToGDB, .cp = (void *) "gf-get-pwd" } }); + interfaceCommands.Add({ .label = "Toggle disassembly\tCtrl+D", +- { .code = UI_KEYCODE_LETTER('D'), .ctrl = true, .invoke = CommandToggleDisassembly } }); ++ .shortcut = { .code = UI_KEYCODE_LETTER('D'), .ctrl = true, .invoke = CommandToggleDisassembly } }); + interfaceCommands.Add({ .label = "Set disassembly mode\tCtrl+M", +- { .code = UI_KEYCODE_LETTER('M'), .ctrl = true, .invoke = CommandSetDisassemblyMode } }); ++ .shortcut = { .code = UI_KEYCODE_LETTER('M'), .ctrl = true, .invoke = CommandSetDisassemblyMode } }); + interfaceCommands.Add({ .label = "Add watch", +- { .invoke = CommandAddWatch } }); ++ .shortcut = { .invoke = CommandAddWatch } }); + interfaceCommands.Add({ .label = "Inspect line", +- { .code = UI_KEYCODE_BACKTICK, .invoke = CommandInspectLine } }); +- interfaceCommands.Add({ .label = "Copy Layout to Clipboard", { .invoke = CopyLayoutToClipboard } }); ++ .shortcut = { .code = UI_KEYCODE_BACKTICK, .invoke = CommandInspectLine } }); ++ interfaceCommands.Add({ .label = "Copy Layout to Clipboard", .shortcut = { .invoke = CopyLayoutToClipboard } }); + interfaceCommands.Add({ .label = nullptr, +- { .code = UI_KEYCODE_LETTER('E'), .ctrl = true, .invoke = CommandWatchAddEntryForAddress } }); ++ .shortcut = { .code = UI_KEYCODE_LETTER('E'), .ctrl = true, .invoke = CommandWatchAddEntryForAddress } }); + interfaceCommands.Add({ .label = nullptr, +- { .code = UI_KEYCODE_LETTER('G'), .ctrl = true, .invoke = CommandWatchViewSourceAtAddress } }); ++ .shortcut = { .code = UI_KEYCODE_LETTER('G'), .ctrl = true, .invoke = CommandWatchViewSourceAtAddress } }); + interfaceCommands.Add({ .label = nullptr, +- { .code = UI_KEYCODE_LETTER('B'), .ctrl = true, .invoke = CommandToggleFillDataTab } }); ++ .shortcut = { .code = UI_KEYCODE_LETTER('B'), .ctrl = true, .invoke = CommandToggleFillDataTab } }); + interfaceCommands.Add({ .label = nullptr, +- { .code = UI_KEYCODE_LETTER('P'), .ctrl = true, .shift = false, .invoke = CommandPreviousCommand } }); ++ .shortcut = { .code = UI_KEYCODE_LETTER('P'), .ctrl = true, .shift = false, .invoke = CommandPreviousCommand } }); + interfaceCommands.Add({ .label = nullptr, +- { .code = UI_KEYCODE_LETTER('N'), .ctrl = true, .shift = false, .invoke = CommandNextCommand } }); ++ .shortcut = { .code = UI_KEYCODE_LETTER('N'), .ctrl = true, .shift = false, .invoke = CommandNextCommand } }); + interfaceCommands.Add({ .label = nullptr, +- { .code = UI_KEYCODE_LETTER('L'), .ctrl = true, .shift = false, .invoke = CommandClearOutput } }); ++ .shortcut = { .code = UI_KEYCODE_LETTER('L'), .ctrl = true, .shift = false, .invoke = CommandClearOutput } }); + interfaceCommands.Add({ .label = nullptr, +- { .code = UI_KEYCODE_LETTER('U'), .ctrl = true, .shift = false, .invoke = [](void*){ UITextboxClear(textboxInput, false); } } }); ++ .shortcut = { .code = UI_KEYCODE_LETTER('U'), .ctrl = true, .shift = false, .invoke = [](void*){ UITextboxClear(textboxInput, false); } } }); + + msgReceivedData = ReceiveMessageRegister(MsgReceivedData); + msgReceivedControl = ReceiveMessageRegister(MsgReceivedControl); diff --git a/anda/tools/gf/anda.hcl b/anda/tools/gf/anda.hcl new file mode 100644 index 0000000000..63ed8ed4f9 --- /dev/null +++ b/anda/tools/gf/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "gf.spec" + } + labels { + nightly = 1 + } +} diff --git a/anda/tools/gf/gf.spec b/anda/tools/gf/gf.spec new file mode 100644 index 0000000000..c51777c5d8 --- /dev/null +++ b/anda/tools/gf/gf.spec @@ -0,0 +1,48 @@ +%global forgeurl https://github.com/nakst/gf + +%global commit 46174e9b25850c9898ca0c2de90af31ad83122d7 +%global shortcommit %{sub %{commit} 0 7} +%global commitdate 20251231 + +%forgemeta + +Name: gf +Version: 0^%{commitdate}.git%{shortcommit} +Release: 1%{?dist} +Summary: A GDB frontend for Linux + +License: MIT +URL: %{forgeurl} +Source0: %{forgesource} +Patch0: 01-fix-designated-initializers.patch + +BuildRequires: gcc-c++ +BuildRequires: freetype-devel +BuildRequires: libX11-devel +# the build script wants gdb to be installed when it's executed +BuildRequires: gdb +Requires: gdb + +Packager: metcya + +%description +%{summary}. + +%prep +%forgeautosetup -p1 + +%build +export extra_flags="%optflags" +./build.sh + +%install +install -Dm 755 gf2 %{buildroot}%{_bindir}/gf2 + +%files +%license LICENSE +%doc README.md +%{_bindir}/gf2 + +%changelog +* Thu Feb 19 2026 metcya +- Initial package diff --git a/anda/tools/gf/update.rhai b/anda/tools/gf/update.rhai new file mode 100644 index 0000000000..a9819eeb92 --- /dev/null +++ b/anda/tools/gf/update.rhai @@ -0,0 +1 @@ +rpm.global("commit", gh_commit("nakst/gf")); diff --git a/anda/tools/glasgow/glasgow.spec b/anda/tools/glasgow/glasgow.spec index 48987c23d4..38493d8f46 100644 --- a/anda/tools/glasgow/glasgow.spec +++ b/anda/tools/glasgow/glasgow.spec @@ -1,5 +1,5 @@ -%global commit e2b1ad48e2b73b476ec93654472c14ea46c4c821 -%global commit_date 20251020 +%global commit 355715ce94c8fd9982d4a2c1e47f267503a5a769 +%global commit_date 20260426 %global shortcommit %(c=%{commit}; echo ${c:0:7}) %global pypi_name glasgow @@ -9,8 +9,8 @@ %global _udevrulesdir /usr/lib/udev/rules.d Name: python-%{pypi_name} -Version: %commit_date.%shortcommit -Release: 1%?dist +Version: 0~%{commit_date}git.%{shortcommit} +Release: 1%{?dist} Summary: Scots Army Knife for electronics License: 0BSD AND Apache-2.0 URL: https://github.com/GlasgowEmbedded/glasgow @@ -62,9 +62,6 @@ install -Dm644 config/70-glasgow.rules %{buildroot}%{_udevrulesdir}/70-glasgow.r %license LICENSE-0BSD.txt LICENSE-Apache-2.0.txt %{_bindir}/glasgow %{_udevrulesdir}/70-glasgow.rules -%ghost %python3_sitelib/__pycache__/*.cpython-*.pyc -%ghost %python3_sitelib/%{name}/subcommands/__pycache__/*.cpython-*.pyc -%python3_sitelib/glasgow-*.dist-info/* %changelog * Mon Sep 29 2025 Owen Zimmerman diff --git a/anda/tools/glasgow/remove-dep-versions.patch b/anda/tools/glasgow/remove-dep-versions.patch index dfcad74c02..720699c607 100644 --- a/anda/tools/glasgow/remove-dep-versions.patch +++ b/anda/tools/glasgow/remove-dep-versions.patch @@ -1,15 +1,15 @@ diff --git a/software/pyproject.toml b/software/pyproject.toml -index c1151748..c3302e60 100644 +index 3ecbad5f..06ea059e 100644 --- a/software/pyproject.toml +++ b/software/pyproject.toml -@@ -29,30 +29,30 @@ requires-python = ">=3.11, <4" +@@ -29,34 +29,34 @@ requires-python = ">=3.13, <4" dependencies = [ # We use `typing` features not available in the lowest Python version we support. The library # `typing_extensions` provides shims for such features. It uses SemVer. - "typing_extensions>=4.8,<5", + "typing_extensions", # Amaranth is the core of the Glasgow software/gateware interoperability layer. It uses SemVer. -- "amaranth>=0.5.7,<0.6", +- "amaranth>=0.5.8,<0.6", + "amaranth", # `packaging` is used in the plugin system, `support.plugin`. It uses CalVer: the major version # is the two last digits of the year and the minor version is the release within that year. @@ -32,10 +32,16 @@ index c1151748..c3302e60 100644 # system. - "cobs>=1.2.1", + "cobs", + # `tqdm` is used to compute and render progress indicatrs. It uses SemVer. +- "tqdm>=4.67.3", ++ "tqdm", # `pyvcd` is used in the applet analyzer to dump waveform files. It is also a dependency of # Amaranth, and the version range here must be compatible with Amaranth's. - "pyvcd>=0.4.1,<0.5", + "pyvcd", + # `enum-tools` is used for documenting enums. It is unclear which versioning scheme it uses. +- "enum-tools==0.13.0", ++ "enum-tools", # `importlib_resources` is used to shim over Python API incompatibilities. It uses SemVer. - "importlib_resources~=6.5.2", + "importlib_resources", diff --git a/anda/tools/graalvm/graalvm.spec b/anda/tools/graalvm/graalvm.spec index c9f46a6bf5..f546adefc9 100644 --- a/anda/tools/graalvm/graalvm.spec +++ b/anda/tools/graalvm/graalvm.spec @@ -95,11 +95,11 @@ chmod +x %buildroot/usr/lib/jvm/java-*-graalvm/lib/*.so /usr/lib/jvm/java-17-graalvm/lib/polyglot/polyglot_types.h %changelog -* Sat Jun 17 2023 windowsboy111 - 22.3.2-2 +* Sat Jun 17 2023 madonuko - 22.3.2-2 - Add devel packages. -* Thu May 11 2023 windowsboy111 - 22.3.2-1 +* Thu May 11 2023 madonuko - 22.3.2-1 - Remove jdk19 -* Thu Feb 9 2023 windowsboy111 - 22.3.1-1 +* Thu Feb 9 2023 madonuko - 22.3.1-1 - Initial package diff --git a/anda/tools/graftcp/nightly/graftcp-nightly.spec b/anda/tools/graftcp/nightly/graftcp-nightly.spec index 1d62737758..8b6668a565 100644 --- a/anda/tools/graftcp/nightly/graftcp-nightly.spec +++ b/anda/tools/graftcp/nightly/graftcp-nightly.spec @@ -1,10 +1,10 @@ -%global commit ebb5ad865f673ecbde1a628b75c5505bbd2bfd04 -%global commit_date 20250817 +%global commit 6b8e7e659fa39b9396a54f8bf94e9c51c2f58564 +%global commit_date 20260403 %global shortcommit %(c=%{commit}; echo ${c:0:7}) Name: graftcp-nightly Version: 0~%{commit_date}git.%{shortcommit} -Release: 1%?dist +Release: 1%{?dist} Summary: A flexible tool for redirecting a given program's TCP traffic to SOCKS5 or HTTP proxy URL: https://github.com/hmgle/graftcp License: GPL-3.0 diff --git a/anda/tools/gsctool/gsctool.spec b/anda/tools/gsctool/gsctool.spec index 11ddd09c38..42a472d3c0 100644 --- a/anda/tools/gsctool/gsctool.spec +++ b/anda/tools/gsctool/gsctool.spec @@ -2,7 +2,7 @@ %define shortcommit %(c=%{commit}; echo ${c:0:12}) Name: gsctool Version: git+%{shortcommit} -Release: 2%{?dist} +Release: 3%{?dist} Summary: Chromium OS EC utilities License: BSD-3-Clause @@ -15,6 +15,8 @@ BuildRequires: pkgconfig(libusb-1.0) BuildRequires: pkgconfig(openssl) BuildRequires: gcc +Packager: Owen Zimmerman + %description Chromium OS EC utilities diff --git a/anda/tools/java-binfmt/java-binfmt.spec b/anda/tools/java-binfmt/java-binfmt.spec index 0ae12959e1..66731a815d 100644 --- a/anda/tools/java-binfmt/java-binfmt.spec +++ b/anda/tools/java-binfmt/java-binfmt.spec @@ -1,11 +1,11 @@ -%global commit 9b3c3202435720ad5d76928c94c8f1c6e22693b7 +%global commit e12372ea5776a0e0a8acee3ea1e56f0f81c56fca %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commit_date 20250131 +%global commit_date 20260330 %global _binfmtdir %{_exec_prefix}/lib/binfmt.d Name: java-binfmt Version: 1.0.0^%{commit_date}git%{shortcommit} -Release: 2%{?dist} +Release: 1%{?dist} Summary: Binfmt wrappers and utilities for Java and Jar files. ### License for the C file used in the binary. License: GPL-2.0-or-later @@ -18,7 +18,7 @@ Source5: https://raw.githubusercontent.com/terrapkg/pkg-java-binfmt/%{com Source6: https://raw.githubusercontent.com/terrapkg/pkg-java-binfmt/%{commit}/Applet-lib64.conf BuildRequires: gcc BuildRequires: systemd-rpm-macros -Packager: Gilver E. +Packager: Gilver E. %description This package installs binfmt files for use with Java wrappers. diff --git a/anda/tools/jujutsu/anda.hcl b/anda/tools/jujutsu/anda.hcl new file mode 100644 index 0000000000..b5f928b767 --- /dev/null +++ b/anda/tools/jujutsu/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "jujutsu.spec" + } +} diff --git a/anda/tools/jujutsu/jujutsu.spec b/anda/tools/jujutsu/jujutsu.spec new file mode 100644 index 0000000000..29af35fe1f --- /dev/null +++ b/anda/tools/jujutsu/jujutsu.spec @@ -0,0 +1,117 @@ +%define binary_name jj +%define nushell_completions_dir %_datadir/nushell/vendor/autoload + +%global __brp_mangle_shebangs %{nil} + +Name: jujutsu +Version: 0.40.0 +Release: 1%{?dist} +Summary: Git-compatible DVCS that is both simple and powerful +License: Apache-2.0 AND CC-BY-4.0 +URL: https://www.jj-vcs.dev/latest/ +Source0: https://github.com/jj-vcs/jj/archive/refs/tags/v%version.tar.gz +BuildRequires: cargo >= 1.89 +BuildRequires: git-core cargo-rpm-macros binutils gcc mold +BuildRequires: gnupg +BuildRequires: gpgme +BuildRequires: openssh +Requires: glibc +Requires: libgit2 +Requires: libssh2 + +Packager: Owen Zimmerman + +%description +Jujutsu is a Git-compatible DVCS. It combines features from Git (data model, +speed), Mercurial (anonymous branching, simple CLI free from "the index", +revsets, powerful history-rewriting), and Pijul/Darcs (first-class conflicts), +with features not found in most of them (working-copy-as-a-commit, undo +functionality, automatic rebase, safe replication via rsync, Dropbox, or +distributed file system). + +The command-line tool is called jj for now because it's easy to type and easy +to replace (rare in English). The project is called "Jujutsu" because it +matches "jj". + +Important +Jujutsu is an experimental version control system. While Git compatibility is +stable, and most developers use it daily for all their needs, there may still +be work-in-progress features, suboptimal UX, and workflow gaps that make it +unusable for your particular use. + +%package doc +Summary: Documentations for %{name} +BuildArch: noarch + +%description doc +Documentations for %{name}. + +%package nushell-completion +Summary: nushell completion for %name +Requires: %name = %evr + +%description nushell-completion +nushell command line completion support for %name. + +%prep +%autosetup -n jj-%version +%cargo_prep_online + +%pkg_completion -bezf %{binary_name} + +%build +%cargo_build + +%install + +# Install the binary +install -Dm 0755 target/rpm/%{binary_name} %{buildroot}%{_bindir}/%{binary_name} + +# Install the icons +install -Dm644 docs/images/jj-logo.svg %{buildroot}%{_scalableiconsdir}/jj-logo.svg +install -Dm644 docs/images/favicon-96x96.png %{buildroot}%{_hicolordir}/96x96/apps/jj-logo.png + +# Create and install the shell completions +mkdir -p %{buildroot}%{bash_completions_dir}/completions/ +%{buildroot}/%{_bindir}/%{binary_name} util completion bash > %{buildroot}%{bash_completions_dir}/%{binary_name}.bash + +mkdir -p %{buildroot}%{elvish_completions_dir}/ +%{buildroot}/%{_bindir}/%{binary_name} util completion elvish > %{buildroot}%{elvish_completions_dir}/%{binary_name}.elv + +mkdir -p %{buildroot}%{fish_completions_dir}/ +%{buildroot}/%{_bindir}/%{binary_name} util completion fish > %{buildroot}%{fish_completions_dir}/%{binary_name}.fish + +mkdir -p %{buildroot}%{nushell_completions_dir}/ +%{buildroot}/%{_bindir}/%{binary_name} util completion nushell > %{buildroot}%{nushell_completions_dir}/completions-%{binary_name}.nu + +mkdir -p %{buildroot}%{zsh_completions_dir}/ +%{buildroot}/%{_bindir}/%{binary_name} util completion zsh > %{buildroot}%{zsh_completions_dir}/_%{binary_name} + +# Install the documentation and properly handle the license file +mkdir -p %{buildroot}%{_pkgdocdir} +mv docs/images/LICENSE LICENSE.icons +cp -a docs/* %{buildroot}%{_pkgdocdir}/ +rm -rf %{buildroot}%{_pkgdocdir}/images + +# Create deps license +%{cargo_license_online} > LICENSE.dependencies + +%files +%doc README.md AUTHORS CHANGELOG.md GOVERNANCE.md SECURITY.md +%license LICENSE +%license LICENSE.dependencies +%license LICENSE.icons +%{_scalableiconsdir}/jj-logo.svg +%{_hicolordir}/96x96/apps/jj-logo.png +%{_bindir}/%{binary_name} + +%files nushell-completion +%{nushell_completions_dir}/completions-%{binary_name}.nu + +%files doc +%license LICENSE +%doc %{_pkgdocdir} + +%changelog +* Tue Dec 16 2025 Owen Zimmerman +- Initial commit diff --git a/anda/tools/jujutsu/update.rhai b/anda/tools/jujutsu/update.rhai new file mode 100644 index 0000000000..1da016551e --- /dev/null +++ b/anda/tools/jujutsu/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("jj-vcs/jj")); diff --git a/anda/tools/kanata/kanata-fix-metadata-auto.diff b/anda/tools/kanata/kanata-fix-metadata-auto.diff index acb539232a..9cd73985c5 100644 --- a/anda/tools/kanata/kanata-fix-metadata-auto.diff +++ b/anda/tools/kanata/kanata-fix-metadata-auto.diff @@ -1,12 +1,12 @@ ---- kanata-1.9.0/Cargo.toml 1970-01-01T00:00:01+00:00 -+++ kanata-1.9.0/Cargo.toml 2025-06-23T09:19:38.121344+00:00 -@@ -45,23 +45,9 @@ +--- kanata-1.11.0/Cargo.toml 1970-01-01T00:00:01+00:00 ++++ kanata-1.11.0/Cargo.toml 2026-02-12T16:56:59.169531+00:00 +@@ -47,23 +47,9 @@ "kanata-parser/gui", "win_sendinput_send_scancodes", "win_llhook_read_scancodes", -- "muldiv", -- "strip-ansi-escapes", - "open", +- "dep:muldiv", +- "dep:strip-ansi-escapes", + "dep:open", - "dep:windows-sys", - "winapi/processthreadsapi", - "native-windows-gui/tray-notification", @@ -20,29 +20,19 @@ - "native-windows-gui/animation-timer", ] interception_driver = [ -- "kanata-interception", +- "dep:kanata-interception", "kanata-parser/interception_driver", ] passthru_ahk = [ -@@ -75,9 +61,7 @@ - wasm = ["instant/wasm-bindgen"] - win_llhook_read_scancodes = ["kanata-parser/win_llhook_read_scancodes"] - win_manifest = [ -- "embed-resource", - "indoc", -- "regex", - ] - win_sendinput_send_scancodes = ["kanata-parser/win_sendinput_send_scancodes"] - zippychord = ["kanata-parser/zippychord"] -@@ -186,97 +170,9 @@ - [target.'cfg(target_os = "linux")'.dependencies.signal-hook] - version = "0.3.14" +@@ -202,88 +188,9 @@ + [target.'cfg(not(any(target_arch = "wasm32", target_os = "android")))'.dependencies.arboard] + version = "3.4" -[target.'cfg(target_os = "macos")'.dependencies.core-graphics] -version = "0.24.0" - -[target.'cfg(target_os = "macos")'.dependencies.karabiner-driverkit] --version = "0.1.5" +-version = "0.2.0" - -[target.'cfg(target_os = "macos")'.dependencies.libc] -version = "0.2" @@ -91,6 +81,9 @@ - "wincon", - "timeapi", - "mmsystem", +- "winuser", +- "windef", +- "minwindef", -] - -[target.'cfg(target_os = "windows")'.dependencies.windows-sys] @@ -114,18 +107,6 @@ - "Wdk_System_SystemServices", -] -optional = true -- --[target.'cfg(target_os = "windows")'.build-dependencies.embed-resource] --version = "2.4.2" --optional = true -- --[target.'cfg(target_os = "windows")'.build-dependencies.indoc] --version = "2.0.4" --optional = true -- --[target.'cfg(target_os = "windows")'.build-dependencies.regex] --version = "1.10.4" --optional = true - [profile.release] opt-level = "z" diff --git a/anda/tools/kanata/rust-kanata.spec b/anda/tools/kanata/rust-kanata.spec index f840461334..f503bc4d9e 100644 --- a/anda/tools/kanata/rust-kanata.spec +++ b/anda/tools/kanata/rust-kanata.spec @@ -1,10 +1,10 @@ -# Generated by rust2rpm 27 +# Generated by rust2rpm 28 %bcond check 1 %global crate kanata Name: rust-kanata -Version: 1.9.0 +Version: 1.11.0 Release: 1%?dist Summary: Multi-layer keyboard customization @@ -15,7 +15,7 @@ Source: %{crates_source} Patch: kanata-fix-metadata-auto.diff Packager: madonuko -BuildRequires: anda-srpm-macros cargo-rpm-macros >= 24 +BuildRequires: cargo-rpm-macros >= 24 %global _description %{expand: Multi-layer keyboard customization.} @@ -67,6 +67,18 @@ use the "default" feature of the "%{crate}" crate. %files -n %{name}+default-devel %ghost %{crate_instdir}/Cargo.toml +%package -n %{name}+cargo-clippy-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+cargo-clippy-devel %{_description} + +This package contains library source intended for building other packages which +use the "cargo-clippy" feature of the "%{crate}" crate. + +%files -n %{name}+cargo-clippy-devel +%ghost %{crate_instdir}/Cargo.toml + %package -n %{name}+cmd-devel Summary: %{summary} BuildArch: noarch @@ -91,18 +103,6 @@ use the "gui" feature of the "%{crate}" crate. %files -n %{name}+gui-devel %ghost %{crate_instdir}/Cargo.toml -%package -n %{name}+indoc-devel -Summary: %{summary} -BuildArch: noarch - -%description -n %{name}+indoc-devel %{_description} - -This package contains library source intended for building other packages which -use the "indoc" feature of the "%{crate}" crate. - -%files -n %{name}+indoc-devel -%ghost %{crate_instdir}/Cargo.toml - %package -n %{name}+interception_driver-devel Summary: %{summary} BuildArch: noarch @@ -115,18 +115,6 @@ use the "interception_driver" feature of the "%{crate}" crate. %files -n %{name}+interception_driver-devel %ghost %{crate_instdir}/Cargo.toml -%package -n %{name}+open-devel -Summary: %{summary} -BuildArch: noarch - -%description -n %{name}+open-devel %{_description} - -This package contains library source intended for building other packages which -use the "open" feature of the "%{crate}" crate. - -%files -n %{name}+open-devel -%ghost %{crate_instdir}/Cargo.toml - %package -n %{name}+passthru_ahk-devel Summary: %{summary} BuildArch: noarch @@ -151,18 +139,6 @@ use the "perf_logging" feature of the "%{crate}" crate. %files -n %{name}+perf_logging-devel %ghost %{crate_instdir}/Cargo.toml -%package -n %{name}+serde_json-devel -Summary: %{summary} -BuildArch: noarch - -%description -n %{name}+serde_json-devel %{_description} - -This package contains library source intended for building other packages which -use the "serde_json" feature of the "%{crate}" crate. - -%files -n %{name}+serde_json-devel -%ghost %{crate_instdir}/Cargo.toml - %package -n %{name}+simulated_input-devel Summary: %{summary} BuildArch: noarch @@ -199,18 +175,6 @@ use the "tcp_server" feature of the "%{crate}" crate. %files -n %{name}+tcp_server-devel %ghost %{crate_instdir}/Cargo.toml -%package -n %{name}+wasm-devel -Summary: %{summary} -BuildArch: noarch - -%description -n %{name}+wasm-devel %{_description} - -This package contains library source intended for building other packages which -use the "wasm" feature of the "%{crate}" crate. - -%files -n %{name}+wasm-devel -%ghost %{crate_instdir}/Cargo.toml - %package -n %{name}+win_llhook_read_scancodes-devel Summary: %{summary} BuildArch: noarch @@ -247,6 +211,18 @@ use the "win_sendinput_send_scancodes" feature of the "%{crate}" crate. %files -n %{name}+win_sendinput_send_scancodes-devel %ghost %{crate_instdir}/Cargo.toml +%package -n %{name}+winiov2-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+winiov2-devel %{_description} + +This package contains library source intended for building other packages which +use the "winiov2" feature of the "%{crate}" crate. + +%files -n %{name}+winiov2-devel +%ghost %{crate_instdir}/Cargo.toml + %package -n %{name}+zippychord-devel Summary: %{summary} BuildArch: noarch diff --git a/anda/tools/keyd/keyd.spec b/anda/tools/keyd/keyd.spec index fce4b28ea3..c310061561 100644 --- a/anda/tools/keyd/keyd.spec +++ b/anda/tools/keyd/keyd.spec @@ -1,6 +1,6 @@ Name: keyd -Version: 2.5.0 -Release: 3%?dist +Version: 2.6.0 +Release: 1%?dist Summary: Key remapping daemon for linux URL: https://github.com/rvaiya/keyd License: MIT diff --git a/anda/tools/kittyCAD-cli/anda.hcl b/anda/tools/kittyCAD-cli/anda.hcl new file mode 100644 index 0000000000..ffb9e0800d --- /dev/null +++ b/anda/tools/kittyCAD-cli/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "kittyCAD-cli.spec" + } +} diff --git a/anda/tools/kittyCAD-cli/kittyCAD-cli.spec b/anda/tools/kittyCAD-cli/kittyCAD-cli.spec new file mode 100644 index 0000000000..3804e38624 --- /dev/null +++ b/anda/tools/kittyCAD-cli/kittyCAD-cli.spec @@ -0,0 +1,37 @@ +%undefine __brp_mangle_shebangs + +Name: kittyCAD-cli +Version: 0.2.163 +Release: 1%{?dist} +Summary: The Zoo command line tool for KittyCAD +URL: https://github.com/KittyCAD/cli +Source0: %{url}/archive/refs/tags/v%{version}.tar.gz +License: MIT AND ((Apache-2.0 OR MIT) AND BSD-3-Clause) AND ((MIT OR Apache-2.0) AND NCSA) AND ((MIT OR Apache-2.0) AND Unicode-3.0) AND (0BSD OR MIT OR Apache-2.0) AND 0BSD AND Apache-2.0 AND ISC 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 AND MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND (Apache-2.0) AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND (BSD-2-Clause) AND (BSD-3-Clause AND MIT) AND (BSD-3-Clause OR Apache-2.0) AND (BSD-3-Clause OR MIT) AND BSD-3-Clause AND (CC0-1.0 OR Apache-2.0) AND CDLA-Permissive-2.0 AND EPL-2.0 AND ISC AND LGPL-3.0-or-later AND (MIT AND BSD-3-Clause) AND (MIT OR Apache-2.0 OR LGPL-2.1-or-later) AND (MIT OR Apache-2.0 OR Zlib) AND (MIT OR Apache-2.0) AND (MIT OR Zlib OR Apache-2.0) AND (MPL-2.0 OR MIT OR Apache-2.0) AND MPL-2.0 AND Unicode-3.0 AND (Unlicense OR MIT) AND (Zlib OR Apache-2.0 OR MIT) AND Zlib +BuildRequires: cargo-rpm-macros + +Provides: kittycad-cli +Packager: Its-J + +%description +%{summary}. + +%prep +%autosetup -n cli-%{version} +%cargo_prep_online + +%build +%cargo_build + +%install +install -Dm 755 target/release/zoo %{buildroot}%{_bindir}/zoo +%{cargo_license_online} > LICENSE.dependencies + +%files +%{_bindir}/zoo +%license LICENSE +%license LICENSE.dependencies +%doc README.md + +%changelog +* Thu Apr 30 2026 Its-J +- Package KittyCAD CLI diff --git a/anda/tools/kittyCAD-cli/update.rhai b/anda/tools/kittyCAD-cli/update.rhai new file mode 100644 index 0000000000..720ff7f810 --- /dev/null +++ b/anda/tools/kittyCAD-cli/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("KittyCAD/cli")); diff --git a/anda/tools/kmonad/kmonad.spec b/anda/tools/kmonad/kmonad.spec index d0e313bd63..915875c118 100644 --- a/anda/tools/kmonad/kmonad.spec +++ b/anda/tools/kmonad/kmonad.spec @@ -73,7 +73,7 @@ install -Dm644 startup/kmonad@.service -t %{buildroot}%{_unitdir} %doc doc/faq.md doc/quick-reference.md %{_bindir}/%{name} %{_unitdir}/%{name}@.service - +%doc %{_docdir}/ghc/html/libraries/kmonad-%{version}/ %files -n ghc-%{name} -f ghc-%{name}.files %license LICENSE diff --git a/anda/tools/kmonad/update.rhai b/anda/tools/kmonad/update.rhai index c13a4a9044..9676b53e55 100644 --- a/anda/tools/kmonad/update.rhai +++ b/anda/tools/kmonad/update.rhai @@ -1,4 +1 @@ -rpm.version(gh("kmonad/kmonad")); -if rpm.changed() { - rpm.release(); -} +print(hackage("kmonad")); diff --git a/anda/tools/license-checker/anda.hcl b/anda/tools/license-checker/anda.hcl new file mode 100644 index 0000000000..5b22891ed7 --- /dev/null +++ b/anda/tools/license-checker/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "nodejs-license-checker.spec" + } +} diff --git a/anda/tools/license-checker/nodejs-license-checker.spec b/anda/tools/license-checker/nodejs-license-checker.spec new file mode 100644 index 0000000000..d9000c9ced --- /dev/null +++ b/anda/tools/license-checker/nodejs-license-checker.spec @@ -0,0 +1,53 @@ +# The original is dead and has vulnerabilities due to it, this fork is maintainted +%global npm_name license-checker-rseidelsohn +# Disabled for now. Requires ESLint. +%bcond test 0 + +Name: nodejs-license-checker +Version: 4.4.2 +Release: 2%{?dist} +Summary: Check NPM package licenses +SourceLicense: BSD-3-Clause +License: Apache-2.0 AND BSD-2-Clause AND BSD-3-Clause AND CC0-1.0 AND CC-BY-3.0 AND ISC AND (MIT AND CC-BY-3.0) AND MIT +URL: https://github.com/RSeidelsohn/license-checker-rseidelsohn +BuildRequires: anda-srpm-macros >= 0.2.25 +BuildRequires: nodejs-devel +BuildRequires: nodejs-npm +BuildRequires: nodejs-packaging +ExclusiveArch: %{nodejs_arches} noarch +BuildArch: noarch +Packager: Gilver E. + +%description +Extract NPM package licenses. +Enhanced and updated fork of Dav Glass' original (but abandoned) license-checker. + +%prep +%npm_prep +%if %{with test} +%fetch_node_tests /tests .eslintrc.json .eslintignore +%endif + +%build + +%install +%npm_install -s license-checker + +# Bootstrap the license fetching +# Environment variable is one set during execution of %%npm_install +./bin/%{npm_name}$_js --limitAttributes licenses --out LICENSE.modules + +%if %{with test} +%check +%npm_audit +%npm_test +%endif + +%files +%license LICENSE +%license LICENSE.modules +%doc CHANGELOG.md +%doc README.md +%doc SECURITY.md +%{_bindir}/license-checker +%{nodejs_sitelib}/%{npm_name} diff --git a/anda/tools/license-checker/update.rhai b/anda/tools/license-checker/update.rhai new file mode 100644 index 0000000000..d4ee8eef8b --- /dev/null +++ b/anda/tools/license-checker/update.rhai @@ -0,0 +1 @@ +rpm.version(npm("license-checker-rseidelsohn")); diff --git a/anda/tools/ls-iommu/anda.hcl b/anda/tools/ls-iommu/anda.hcl new file mode 100644 index 0000000000..e7b7e2d8c4 --- /dev/null +++ b/anda/tools/ls-iommu/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "ls-iommu.spec" + } +} diff --git a/anda/tools/ls-iommu/ls-iommu.spec b/anda/tools/ls-iommu/ls-iommu.spec new file mode 100644 index 0000000000..4fed043fcc --- /dev/null +++ b/anda/tools/ls-iommu/ls-iommu.spec @@ -0,0 +1,40 @@ +%global goipath github.com/HikariKnight/ls-iommu +Version: 2.3.0 + +%gometa -f + +Name: ls-iommu +Release: 1%?dist +Summary: A tool to list devices in iommu groups, useful for setting up VFIO + +License: MIT +URL: https://github.com/HikariKnight/ls-iommu +Source0: %url/archive/refs/tags/%version.tar.gz + +Packager: Owen Zimmerman + +BuildRequires: golang gcc go-rpm-macros + +%description +%{summary}. + +%gopkg + +%prep +%goprep + +%build +%define gomodulesmode GO111MODULE=on +%gobuild -ldflags="-X github.com/HikariKnight/ls-iommu/internal/version.Version=%version" -o ls-iommu ./cmd + +%install +install -Dm 0755 ls-iommu %{buildroot}%{_bindir}/ls-iommu + +%files +%license LICENSE +%doc README.md +%{_bindir}/ls-iommu + +%changelog +* Sun Dec 21 2025 Owen Zimmerman +- Initial commit diff --git a/anda/tools/ls-iommu/update.rhai b/anda/tools/ls-iommu/update.rhai new file mode 100644 index 0000000000..1ed5e69bce --- /dev/null +++ b/anda/tools/ls-iommu/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("HikariKnight/ls-iommu")); diff --git a/anda/tools/mdbook/mdbook.spec b/anda/tools/mdbook/mdbook.spec index 1750623ab8..d87c3284ae 100644 --- a/anda/tools/mdbook/mdbook.spec +++ b/anda/tools/mdbook/mdbook.spec @@ -1,5 +1,5 @@ Name: mdBook -Version: 0.5.0.beta.1 +Version: 0.5.2 Release: 1%?dist Summary: Create a book from markdown files License: MPL-2.0 AND MIT AND (Apache-2.0 OR MIT) AND Apache-2.0 AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND CC0-1.0 AND ISC AND (MIT OR Zlib OR Apache-2.0) AND Unicode-3.0 AND (Apache-2.0 OR BSL-1.0) AND (MIT AND BSD-3-Clause) diff --git a/anda/tools/micro-default-editor/micro-default-editor.spec b/anda/tools/micro-default-editor/micro-default-editor.spec index 9056d94f8c..b199e6eeb0 100644 --- a/anda/tools/micro-default-editor/micro-default-editor.spec +++ b/anda/tools/micro-default-editor/micro-default-editor.spec @@ -2,8 +2,8 @@ Name: micro-default-editor # Version, release, and epoch are inherited from the editor package just like other default editors -Version: 2.0.11 -Release: 10%?dist +Version: 2.0.15 +Release: 2%{?dist} Epoch: 0 # Inherited from Micro itself License: MIT and ASL 2.0 @@ -19,7 +19,7 @@ Requires: micro # All default editor packages MUST provide this Provides: system-default-editor BuildArch: noarch -Packager: Gilver E. +Packager: Gilver E. %description This package ensures the EDITOR shell variable diff --git a/anda/tools/modern-colorthief/modern-colorthief.spec b/anda/tools/modern-colorthief/modern-colorthief.spec index c80198371e..888d214e96 100644 --- a/anda/tools/modern-colorthief/modern-colorthief.spec +++ b/anda/tools/modern-colorthief/modern-colorthief.spec @@ -1,33 +1,16 @@ %global pypi_name modern_colorthief %bcond bootstrap 0 %bcond docs %{without bootstrap} -%bcond test %{without bootstrap} # The srcrpm is not prefixed with Python because the source is mostly Rust Name: modern-colorthief -Version: 0.1.7 -Release: 2%{?dist} +Version: 0.2.0 +Release: 1%{?dist} Summary: ColorThief reimagined SourceLicense: MIT License: (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception) AND BSD-2-Clause AND (CC0-1.0 OR Apache-2.0) AND (MIT OR Apache-2.0 OR NCSA) AND (MIT OR Apache-2.0 OR Zlib) AND (MIT OR Apache-2.0) AND (MIT OR Zlib OR Apache-2.0) AND MIT AND (Unlicense OR MIT) AND (Zlib OR Apache-2.0 OR MIT) URL: https://modern-colorthief.readthedocs.io Source0: %{pypi_source} -%if 0%{?fedora} >= 43 -Patch0: https://github.com/baseplate-admin/modern_colorthief/commit/6b1f631af1e690741646d9432ed971cdf5b627e3.patch -Patch1: https://github.com/baseplate-admin/modern_colorthief/commit/c8beb56ff742fa43dc37ecc31f086f767406d3d1.patch -Patch2: https://github.com/baseplate-admin/modern_colorthief/commit/08ea71c82ff5b160e5f9aa0a38f58cf87a22861d.patch -Patch3: https://github.com/baseplate-admin/modern_colorthief/commit/0abc0147d574bb962e17a244fca413448848e7e0.patch -Patch4: https://github.com/baseplate-admin/modern_colorthief/commit/6b67d731414317a4cc58c67732bf3ddddf4dea68.patch -Patch5: https://github.com/baseplate-admin/modern_colorthief/commit/1192273984074c6cf17735ce677a6092bd223fa5.patch -Patch6: https://github.com/baseplate-admin/modern_colorthief/commit/9cc135bcb85f93645cf62328adda64e92acafacb.patch -Patch7: https://github.com/baseplate-admin/modern_colorthief/commit/07a62bbbc1ad389d1df19052db82f6bb7f63b5d5.patch -Patch8: https://github.com/baseplate-admin/modern_colorthief/commit/47c5d08576f98b06733d997d9f05e227b150858c.patch -Patch9: https://github.com/baseplate-admin/modern_colorthief/commit/5e1ae7a597d2fc2e56e1e4b1aae22257dd8b7624.patch -Patch10: https://github.com/baseplate-admin/modern_colorthief/commit/cbc10285ba3afe0c62636f3a39ce54226a139846.patch -Patch11: https://github.com/baseplate-admin/modern_colorthief/commit/4ce6437b9cf14002eb388bde7a49dc9c1448d7b3.patch -Patch12: https://github.com/baseplate-admin/modern_colorthief/commit/8c9a8ff0db2b1ed2fcc3465dba4e5848dbd5128e.patch -Patch13: https://github.com/baseplate-admin/modern_colorthief/commit/1ae82aa8e695820224721d18069ec75ad73543a0.patch -%endif BuildRequires: anda-srpm-macros BuildRequires: cargo BuildRequires: cargo-rpm-macros @@ -43,15 +26,6 @@ BuildRequires: python3dist(myst-parser) BuildRequires: python3dist(shibuya) BuildRequires: python3dist(sphinx) %endif -%if %{with test} -%if 0%{?fedora} > 40 -BuildRequires: poetry -BuildRequires: python3dist(poetry) -%endif -BuildRequires: python3dist(colorthief) -BuildRequires: python3dist(fast-colorthief) -BuildRequires: python3dist(pytest) -%endif %description Colorthief but with modern code. @@ -94,25 +68,13 @@ done %{cargo_license_online} > LICENSE.dependencies -%if %{with test} -%check -# Poetry doesn't exist on EL and is too old on 40 -%if 0%{?fedora} <= 40 || 0%{?rhel} -%pytest tests/*.py -%else -# This is in the wrong spot in pyproject.toml and Poetry hates it -# May seem like defeating the purpose of testing but the other tests can be useful -sed -iE 's/python = ">=3.9,<3.14"//' pyproject.toml -poetry run pytest -%endif -%endif - %files -n python3-%{name} %doc DIFFERENCES.md %doc PKG-INFO %doc README.md %license LICENSE %license LICENSE.dependencies +%{_bindir}/%{name} %{python3_sitearch}/%{pypi_name} %{python3_sitearch}/%{pypi_name}-%{version}.dist-info/ diff --git a/anda/tools/natscli/natscli.spec b/anda/tools/natscli/natscli.spec index b6e064695e..d3362d7f73 100644 --- a/anda/tools/natscli/natscli.spec +++ b/anda/tools/natscli/natscli.spec @@ -1,14 +1,14 @@ # https://github.com/nats-io/natscli %global goipath github.com/nats-io/natscli -%global commit c353a14f7e84e28c2e7e56641ceabb4bdcb09852 -%global commit_date 20251025 +%global commit a4f75f973158f1d6feac85ad207c4f48f84bf4e2 +%global commit_date 20260506 %global shortcommit %{sub %{commit} 1 7} %gometa -f Name: natscli Version: 0~%{commit_date}git.%shortcommit -Release: 1%?dist +Release: 1%{?dist} Summary: The NATS Command Line Interface License: Apache-2.0 @@ -38,7 +38,7 @@ install -m 0755 -vp %{gobuilddir}/bin/* %{buildroot}%{_bindir}/ %files %license LICENSE -%doc README.md AUTH.md LOCAL_DEVELOPMENT.md cli/cheats/* +%doc README.md AUTH.md CODE-OF-CONDUCT.md GOVERNANCE.md cli/cheats/* %{_bindir}/nats %changelog diff --git a/anda/tools/nemu/anda.hcl b/anda/tools/nemu/anda.hcl new file mode 100644 index 0000000000..66c1362292 --- /dev/null +++ b/anda/tools/nemu/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "nemu.spec" + } +} diff --git a/anda/tools/nemu/nemu.spec b/anda/tools/nemu/nemu.spec new file mode 100644 index 0000000000..a97317e939 --- /dev/null +++ b/anda/tools/nemu/nemu.spec @@ -0,0 +1,53 @@ +Name: nemu +Version: 3.4.0 +Release: 1%?dist +Summary: Ncurses UI for QEMU + +URL: https://github.com/nemuTUI/nemu +Source: %{url}/archive/v%{version}.tar.gz +License: BSD-2-Clause +Packager: metcya + +BuildRequires: cmake +BuildRequires: gcc +BuildRequires: gettext-devel +BuildRequires: pkgconfig(sqlite3) +BuildRequires: pkgconfig(json-c) +BuildRequires: pkgconfig(openssl) +BuildRequires: pkgconfig(libarchive) +BuildRequires: pkgconfig(ncurses) +BuildRequires: pkgconfig(libxml-2.0) +BuildRequires: pkgconfig(libgvc) +BuildRequires: pkgconfig(libcgraph) +BuildRequires: pkgconfig(dbus-1) +BuildRequires: pkgconfig(libusb) +Requires: qemu +Requires: tigervnc + +%description +%summary. + +%prep +%autosetup +%cmake -DNM_WITH_NETWORK_MAP=ON -DNM_WITH_DBUS=ON -DNM_WITH_REMOTE=ON -DNM_WITH_USB=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo + +%build +%cmake_build + +%install +%cmake_install + +%files +%doc README.md README_Build.md CONTRIBUTING.md +%license LICENSE +%{_bindir}/nemu +%{_bindir}/ntty +%{_datadir}/%{name}/scripts/* +%{_datadir}/%{name}/templates/config/%{name}.cfg.sample +%{_datadir}/locale/*/LC_MESSAGES/%{name}.mo +%{_mandir}/man1/nemu.1.* + +%pkg_completion -Bz nemu + +%changelog +%autochangelog diff --git a/anda/tools/nemu/update.rhai b/anda/tools/nemu/update.rhai new file mode 100644 index 0000000000..f559080e0c --- /dev/null +++ b/anda/tools/nemu/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("nemuTUI/nemu")); diff --git a/anda/tools/neovim-default-editor/neovim-default-editor.spec b/anda/tools/neovim-default-editor/neovim-default-editor.spec index 38070bb35d..abb964b6aa 100644 --- a/anda/tools/neovim-default-editor/neovim-default-editor.spec +++ b/anda/tools/neovim-default-editor/neovim-default-editor.spec @@ -2,8 +2,8 @@ Name: neovim-default-editor # Version, release, and epoch are inherited from the editor package just like other default editors -Version: 0.11.4 -Release: 2%?dist +Version: 0.11.6 +Release: 1%?dist Epoch: 0 # Inherited from Neovim itself License: Apache-2.0 AND Vim AND MIT @@ -19,7 +19,7 @@ Requires: neovim # All default editor packages MUST provide this Provides: system-default-editor BuildArch: noarch -Packager: Gilver E. +Packager: Gilver E. %description This package ensures the EDITOR shell variable diff --git a/anda/tools/nerdfetch/nerdfetch-tools.spec b/anda/tools/nerdfetch/nerdfetch-tools.spec index 677801eed0..8de5876815 100644 --- a/anda/tools/nerdfetch/nerdfetch-tools.spec +++ b/anda/tools/nerdfetch/nerdfetch-tools.spec @@ -1,6 +1,6 @@ Name: nerdfetch -Version: 8.4.2 -Release: 1%?dist +Version: 8.5.4 +Release: 1%{?dist} Summary: A POSIX *nix fetch script using Nerdfonts License: MIT diff --git a/anda/tools/nvidia/cuda-crt/cuda-crt.spec b/anda/tools/nvidia/cuda-crt/cuda-crt.spec index ed8079937b..4144c13685 100644 --- a/anda/tools/nvidia/cuda-crt/cuda-crt.spec +++ b/anda/tools/nvidia/cuda-crt/cuda-crt.spec @@ -8,8 +8,8 @@ Name: %(echo %real_name | tr '_' '-') Epoch: 1 -Version: 13.0.88 -Release: 1%?dist +Version: 13.2.78 +Release: 1%{?dist} Summary: CUDA crt License: CUDA Toolkit URL: https://developer.nvidia.com/cuda-toolkit diff --git a/anda/tools/nvidia/cuda-ctadvisor/cuda-ctadvisor.spec b/anda/tools/nvidia/cuda-ctadvisor/cuda-ctadvisor.spec index b31ea63c19..4ad9823399 100644 --- a/anda/tools/nvidia/cuda-ctadvisor/cuda-ctadvisor.spec +++ b/anda/tools/nvidia/cuda-ctadvisor/cuda-ctadvisor.spec @@ -8,8 +8,8 @@ Name: %(echo %real_name | tr '_' '-') Epoch: 1 -Version: 13.0.85 -Release: 1%?dist +Version: 13.2.78 +Release: 1%{?dist} Summary: CUDA ctadvisor License: CUDA Toolkit URL: https://developer.nvidia.com/cuda-toolkit diff --git a/anda/tools/nvidia/cuda-nvcc/cuda-nvcc.spec b/anda/tools/nvidia/cuda-nvcc/cuda-nvcc.spec index 6d104313b1..48b391c023 100644 --- a/anda/tools/nvidia/cuda-nvcc/cuda-nvcc.spec +++ b/anda/tools/nvidia/cuda-nvcc/cuda-nvcc.spec @@ -8,8 +8,8 @@ Name: %(echo %real_name | tr '_' '-') Epoch: 1 -Version: 13.0.88 -Release: 1%?dist +Version: 13.2.78 +Release: 1%{?dist} Summary: CUDA Compiler (NVCC) License: CUDA Toolkit URL: https://developer.nvidia.com/cuda-toolkit @@ -21,16 +21,17 @@ Source3: nvcc.profile Conflicts: %{name}-%{major_package_version} < %{?epoch:%{epoch}:}%{version}-%{release} -# CUDA 12.8 does not support GCC 15+: -%if 0%{?fedora} >= 42 +# CUDA 13.0 does not support GCC 16+: +%if 0%{?fedora} >= 44 Requires: cuda-gcc %else -# CUDA 12.8 supports GCC 14: +# But it supports GCC 14, so obsolete the wrapper in case of an upgrade: Obsoletes: cuda-gcc Provides: cuda-gcc %endif Requires: cuda-crt +Requires: cuda-cudart-devel Requires: libnvptxcompiler-devel Requires: libnvvm-devel @@ -44,12 +45,6 @@ the compilation process. All non-CUDA compilation steps are forwarded to a C++ host compiler that is supported by nvcc, and nvcc translates its options to appropriate host compiler command line options. -NVVM IR is a compiler IR (intermediate representation) based on the LLVM IR. -The NVVM IR is designed to represent GPU compute kernels (for example, CUDA -kernels). High-level language front-ends, like the CUDA C compiler front-end, -can generate NVVM IR. The NVVM compiler (which is based on LLVM) generates PTX -code from NVVM IR. - %prep %ifarch x86_64 %setup -q -n %{real_name}-linux-x86_64-%{version}-archive @@ -70,8 +65,10 @@ cp -f %{SOURCE3} %{buildroot}%{_bindir}/ # Set proper variables sed -i \ + -e 's|PREFIX|%{_prefix}|g' \ + -e 's|BINDIR|%{_bindir}|g' \ -e 's|LIBDIR|%{_libdir}|g' \ - -e 's|INCLUDE_DIR|%{_includedir}/cuda|g' \ + -e 's|INCLUDE_DIR|%{_includedir}|g' \ %{buildroot}/%{_bindir}/nvcc.profile %files diff --git a/anda/tools/nvidia/cuda-nvcc/nvcc.profile b/anda/tools/nvidia/cuda-nvcc/nvcc.profile index fe2654e168..b3ca6ade5d 100644 --- a/anda/tools/nvidia/cuda-nvcc/nvcc.profile +++ b/anda/tools/nvidia/cuda-nvcc/nvcc.profile @@ -1,6 +1,6 @@ -NVVMIR_LIBRARY_DIR = /usr/share/libdevice -PATH += /usr/libexec/cuda/open64/bin: -INCLUDES += "-IINCLUDE_DIR" +CICC_PATH = BINDIR +NVVMIR_LIBRARY_DIR = PREFIX/nvvm/libdevice +INCLUDES += "-IINCLUDE_DIR/cccl" LIBRARIES =+ "-LLIBDIR" CUDAFE_FLAGS += PTXAS_FLAGS += diff --git a/anda/tools/nvm/anda.hcl b/anda/tools/nvm/anda.hcl new file mode 100644 index 0000000000..0801883bd2 --- /dev/null +++ b/anda/tools/nvm/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "nvm.spec" + } +} diff --git a/anda/tools/nvm/binscript b/anda/tools/nvm/binscript new file mode 100755 index 0000000000..c9e19105b0 --- /dev/null +++ b/anda/tools/nvm/binscript @@ -0,0 +1,5 @@ +#!/usr/bin/bash + +\. /etc/profile.d/nvm.sh --no-use + +nvm $@ diff --git a/anda/tools/nvm/nvm-always-use-default-dir.patch b/anda/tools/nvm/nvm-always-use-default-dir.patch new file mode 100644 index 0000000000..63b0e505d5 --- /dev/null +++ b/anda/tools/nvm/nvm-always-use-default-dir.patch @@ -0,0 +1,11 @@ +--- a/nvm.sh 2025-04-23 18:34:31.000000000 -0500 ++++ b/nvm.sh 2025-12-01 07:26:54.550237797 -0600 +@@ -449,7 +449,7 @@ + NVM_SCRIPT_SOURCE="${BASH_SOURCE}" + fi + # shellcheck disable=SC2086 +- NVM_DIR="$(nvm_cd ${NVM_CD_FLAGS} "$(dirname "${NVM_SCRIPT_SOURCE:-$0}")" >/dev/null && \pwd)" ++ NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")" + export NVM_DIR + else + # https://unix.stackexchange.com/a/198289 diff --git a/anda/tools/nvm/nvm.spec b/anda/tools/nvm/nvm.spec new file mode 100644 index 0000000000..1a9c81c648 --- /dev/null +++ b/anda/tools/nvm/nvm.spec @@ -0,0 +1,51 @@ +Name: nvm +Version: 0.40.4 +Release: 1%?dist +Summary: Node Version Manager +License: MIT +URL: https://github.com/nvm-sh/nvm +Source0: %{url}/archive/refs/tags/v%{version}.tar.gz +Source1: binscript +# Make sure NVM always chooses "$HOME/.nvm" as the directory for local files unless explicitly set otherwise +Patch0: nvm-always-use-default-dir.patch +# Only works with POSIX compliant shells +Requires: bash +BuildArch: noarch +Packager: Gilver E. + +%description +POSIX-compliant script to manage multiple active Node.js versions. + +%pkg_completion -bz + +%prep +%autosetup -n %{name}-%{version} -p1 + +%build +# Anyone home? + +%install +install -Dm755 %{SOURCE1} %{buildroot}%{_bindir}/%{name} + +# Give nvm-exec the correct search directory +sed -i 's|DIR=.*|DIR="%{_sysconfdir}/profile.d"|g' nvm-exec +install -Dm755 nvm-exec -t %{buildroot}%{_bindir} + +install -Dm644 bash_completion %{buildroot}%{bash_completions_dir}/%{name}.bash +# Another cursed script that uses bashcompinit to use one file for Bash and Zsh completions +install -Dm644 bash_completion %{buildroot}%{zsh_completions_dir}/_%{name} + +# Make NVM expect nvm-exec in the bindir +sed -i 's|${NVM_DIR}/nvm-exec|%{_bindir}/nvm-exec|g' %{name}.sh +install -Dm644 %{name}.sh -t %{buildroot}%{_sysconfdir}/profile.d + +%files +%license LICENSE.md +%doc README.md +%{_bindir}/%{name} +%{_bindir}/%{name}-exec +%{_sysconfdir}/profile.d/%{name}.sh + +%changelog +* Sun Nov 30 2025 Gilver E. - 0.40.3-1 +- Initial package diff --git a/anda/tools/nvm/update.rhai b/anda/tools/nvm/update.rhai new file mode 100644 index 0000000000..916991d83c --- /dev/null +++ b/anda/tools/nvm/update.rhai @@ -0,0 +1 @@ +rpm.version(find(`nvm_echo \"v([\d.]+)\"`, gh_rawfile("nvm-sh/nvm", "master", "install.sh"), 1)); diff --git a/anda/tools/pdpmake/anda.hcl b/anda/tools/pdpmake/anda.hcl new file mode 100644 index 0000000000..8a37235f1d --- /dev/null +++ b/anda/tools/pdpmake/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "pdpmake.spec" + } +} diff --git a/anda/tools/pdpmake/pdpmake.spec b/anda/tools/pdpmake/pdpmake.spec new file mode 100644 index 0000000000..598ac36f55 --- /dev/null +++ b/anda/tools/pdpmake/pdpmake.spec @@ -0,0 +1,49 @@ +%bcond_without posix_2024 +%bcond_without make_extensions + +%global forgeurl https://github.com/rmyorston/pdpmake +%global tag 2.0.4 +%forgemeta + +Name: pdpmake +Version: %{tag} +Release: 1%{?dist} +Summary: Public domain POSIX make + +Packager: metcya + +License: Unlicense +URL: https://frippery.org/make +Source0: %{forgesource} + +BuildRequires: gcc + +%description +This is a public domain implementation of make which follows the POSIX +standard. + +%prep +%forgesetup + +%build + +%{__cc} -DENABLE_FEATURE_POSIX_2024=%{with_posix_2024} \ + -DENABLE_FEATURE_MAKE_EXTENSIONS=%{with_make_extensions} \ + $CFLAGS \ + $LDFLAGS \ + -o pdpmake \ + *.c + +%install +install -Dm 755 pdpmake %{buildroot}%{_bindir}/pdpmake +install -Dm 644 pdpmake.1 %{buildroot}%{_mandir}/man1/pdpmake.1 + +%files +%license LICENSE +%doc README.md +%{_bindir}/%{name} +%{_mandir}/man1/%{name}.1.* + +%changelog +* Sun Jan 25 2026 metcya +- Initial package diff --git a/anda/tools/pdpmake/update.rhai b/anda/tools/pdpmake/update.rhai new file mode 100644 index 0000000000..0ee8ea1da8 --- /dev/null +++ b/anda/tools/pdpmake/update.rhai @@ -0,0 +1 @@ +rpm.global("tag", gh_tag("rmyorston/pdpmake")); diff --git a/anda/tools/piclone/piclone.spec b/anda/tools/piclone/piclone.spec index e763bc3f97..95fb21cc20 100644 --- a/anda/tools/piclone/piclone.spec +++ b/anda/tools/piclone/piclone.spec @@ -4,7 +4,7 @@ Name: piclone Version: %commit_date.git~%shortcommit -Release: 1%?dist +Release: 2%?dist Summary: Utility to back up Pi to an SD card reader License: BSD-3-Clause URL: https://github.com/raspberrypi-ui/piclone @@ -21,6 +21,8 @@ BuildRequires: gcc Requires: parted dosfstools e2fsprogs coreutils util-linux-core uuid dbus-x11 gtk3 +Packager: Owen Zimmerman + %description SD Card backup program for Raspberry Pi. This is a GTK application to copy the contents of SD cards and other USB diff --git a/anda/tools/picotool/picotool.spec b/anda/tools/picotool/picotool.spec index f7ed572ff2..397f886bdc 100644 --- a/anda/tools/picotool/picotool.spec +++ b/anda/tools/picotool/picotool.spec @@ -1,19 +1,24 @@ %define sdk_version 2.2.0 +%global ver 2.2.0-a4 +%global sanitized_ver %(echo %{ver} | sed 's/-//g') + Name: picotool -Version: 2.2.0.a4 -Release: 1%?dist +Version: %sanitized_ver +Release: 3%?dist Summary: Tool to inspect RP2040 binaries License: BSD-3-Clause URL: https://github.com/raspberrypi/picotool -Source0: https://github.com/raspberrypi/picotool/archive/%version.tar.gz#/picotool-%version.tar.gz +Source0: https://github.com/raspberrypi/picotool/archive/refs/tags/%ver.tar.gz Source1: https://github.com/raspberrypi/pico-sdk/archive/%sdk_version.tar.gz#/pico-sdk-%sdk_version.tar.gz BuildRequires: cmake g++ libusb1-devel +Packager: Owen Zimmerman + %description Picotool is a tool for inspecting RP2040 binaries, and interacting with RP2040 devices when they are in BOOTSEL mode. %prep -%autosetup -a 1 +%autosetup -a 1 -n %name-%ver %build %cmake -DPICO_SDK_PATH="../pico-sdk-%sdk_version" @@ -28,8 +33,8 @@ mv %buildroot{%_prefix/lib,%_libdir} %doc README.md %license LICENSE.TXT %_bindir/picotool -%_libdir/cmake/picotool -%_datadir/picotool +%_libdir/cmake/picotool/* +%_datadir/picotool/* %changelog * Mon Nov 18 2024 Owen-sz diff --git a/anda/tools/picotool/update.rhai b/anda/tools/picotool/update.rhai index b9c19d6d80..be9f4dfd8d 100644 --- a/anda/tools/picotool/update.rhai +++ b/anda/tools/picotool/update.rhai @@ -1,2 +1,2 @@ -rpm.version(gh("raspberrypi/picotool")); +rpm.global("ver", gh("raspberrypi/picotool")); rpm.define("sdk_version", gh("raspberrypi/pico-sdk")); diff --git a/anda/tools/praat/anda.hcl b/anda/tools/praat/anda.hcl new file mode 100644 index 0000000000..41ebcbca21 --- /dev/null +++ b/anda/tools/praat/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + rpm { + spec = "praat.spec" + } +} + diff --git a/anda/tools/praat/org.praat.praat.metainfo.xml b/anda/tools/praat/org.praat.praat.metainfo.xml new file mode 100644 index 0000000000..1c139b444d --- /dev/null +++ b/anda/tools/praat/org.praat.praat.metainfo.xml @@ -0,0 +1,40 @@ + + + org.praat.praat + CC0-1.0 + GPL-3.0-or-later AND LGPL-2.1-or-later AND MIT AND GPL-2.0-or-later AND BSD-3-Clause AND Unicode-3.0 AND BSL-1.0 + https://github.com/praat/praat.github.io/blob/master/main/praat-480.svg + + Praat + Praat: Doing Phonetics By Computer + + +

+ A speech analysis tool used for doing phonetics by computer. Praat can analyse, + synthesize, and manipulate speech, and create high-quality pictures for your publications. + Praat was created by Paul Boersma and David Weenink of the Institute of Phonetics Sciences of the University of Amsterdam. +

+
+ + praat.desktop + + https://www.praat.org + + + + + + + audio + sound + speech + phonetics + + + + Paul Boersma and David Weenink + +
diff --git a/anda/tools/praat/praat.spec b/anda/tools/praat/praat.spec new file mode 100644 index 0000000000..2af981aab2 --- /dev/null +++ b/anda/tools/praat/praat.spec @@ -0,0 +1,76 @@ +%global appid org.praat.praat +%global name_pretty Praat +%global appstream_component desktop-application +%global org "org.praat" + +Name: praat +Version: 6.4.65 +Release: 1%{?dist} +URL: https://www.praat.org +Source0: https://github.com/praat/praat.github.io/archive/refs/tags/v%{version}.tar.gz +Source1: %appid.metainfo.xml +License: GPL-3.0-or-later AND LGPL-2.1-or-later AND MIT AND GPL-2.0-or-later AND BSD-3-Clause AND Unicode-3.0 AND BSL-1.0 + +Requires: gtk3 pulseaudio-libs alsa-lib pipewire-jack-audio-connection-kit +BuildRequires: gcc g++ gtk3-devel pulseaudio-libs-devel alsa-lib-devel pipewire-jack-audio-connection-kit-devel +# for lscpu check below +BuildRequires: util-linux +# to install desktop file +BuildRequires: desktop-file-utils +# to generate the icon files +BuildRequires: libicns-utils +# to generate the appstream metadata +BuildRequires: terra-appstream-helper + +Summary: Praat: Doing Phonetics By Computer + +Packager: june-fish + +%description +%{summary}. + +%prep +%autosetup -n praat.github.io-%{version} + +%build +# .LE makefile hardcodes little endian +if [[ "$(lscpu | grep Endian)" == *"Little Endian"* ]] +then + cp makefiles/makefile.defs.linux.pulse-gcc.LE ./makefile.defs +elif [[ "%{lscpu | grep Endian}" == *"Big Endian"* ]] +then + cp makefiles/makefile.defs.linux.pulse-gcc.BE ./makefile.defs +fi + +%make_build + +%install +install -pDm755 praat %{buildroot}%{_bindir}/praat +%__desktop_file_install main/praat.desktop + +# https://build.opensuse.org/projects/openSUSE:Factory/packages/praat/files/praat.spec?expand=1 +icns2png -x -d32 main/Praat.icns +for s in 16 32 48 128; do + if [ -f Praat_${s}x${s}x32.png ]; then + install -Dm0644 Praat_${s}x${s}x32.png %{buildroot}%{_hicolordir}/${s}x${s}/apps/%{name}.png + fi +done + +%terra_appstream -o %{SOURCE1} + +%files +%license docs/LICENSE.txt +%license external/*/LICENSE* +%license external/*/COPYING* +%doc README.md +%{_bindir}/praat +%{_datadir}/applications/praat.desktop +%{_hicolordir}/16x16/apps/%{name}.png +%{_hicolordir}/32x32/apps/%{name}.png +%{_hicolordir}/48x48/apps/%{name}.png +%{_hicolordir}/128x128/apps/%{name}.png +%{_metainfodir}/%appid.metainfo.xml + +%changelog +* Fri Feb 06 2026 june-fish - 6.4.59 +- Initial Package diff --git a/anda/tools/praat/update.rhai b/anda/tools/praat/update.rhai new file mode 100644 index 0000000000..35adc7dd28 --- /dev/null +++ b/anda/tools/praat/update.rhai @@ -0,0 +1 @@ +rpm.version(gh_tag("praat/praat.github.io")); diff --git a/anda/tools/proton-vpn-cli/anda.hcl b/anda/tools/proton-vpn-cli/anda.hcl new file mode 100644 index 0000000000..f631f43da7 --- /dev/null +++ b/anda/tools/proton-vpn-cli/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "proton-vpn-cli.spec" + } +} diff --git a/anda/tools/proton-vpn-cli/proton-vpn-cli.spec b/anda/tools/proton-vpn-cli/proton-vpn-cli.spec new file mode 100644 index 0000000000..0d509027bf --- /dev/null +++ b/anda/tools/proton-vpn-cli/proton-vpn-cli.spec @@ -0,0 +1,49 @@ +%global _desc Official ProtonVPN CLI Linux app. + +%global __requires_exclude ^python3\\.14dist\\(proton-vpn-local-agent\\)$ + +Name: python-proton-vpn-cli +Version: 1.0.1 +Release: 1%{?dist} +Summary: Official ProtonVPN CLI Linux app +License: GPL-3.0-only +URL: https://github.com/ProtonVPN/proton-vpn-cli +Source0: %url/archive/refs/tags/v%version.tar.gz + +BuildRequires: python3-devel +BuildRequires: python3-pip +BuildRequires: python3-setuptools +BuildArch: noarch + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-proton-vpn-cli +Summary: %{summary} +Provides: proton-vpn-cli +Requires: python3-proton-vpn-local-agent +%{?python_provide:%python_provide python3-proton-vpn-cli} + +%description -n python3-proton-vpn-cli +%_desc + +%prep +%autosetup -n proton-vpn-cli-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files proton + +%files -n python3-proton-vpn-cli -f %{pyproject_files} +%doc README.md COPYING.md CONTRIBUTING.md CODEOWNERS +%license LICENSE +%{_bindir}/protonvpn + +%changelog +* Fri Jan 30 2026 Owen Zimmerman +- Initial commit diff --git a/anda/tools/proton-vpn-cli/update.rhai b/anda/tools/proton-vpn-cli/update.rhai new file mode 100644 index 0000000000..bbacc962bc --- /dev/null +++ b/anda/tools/proton-vpn-cli/update.rhai @@ -0,0 +1 @@ +rpm.version(gh_tag("ProtonVPN/proton-vpn-cli")); diff --git a/anda/tools/qdl/anda.hcl b/anda/tools/qdl/anda.hcl new file mode 100644 index 0000000000..e1f206aa1a --- /dev/null +++ b/anda/tools/qdl/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "qdl.spec" + } +} diff --git a/anda/tools/qdl/qdl.spec b/anda/tools/qdl/qdl.spec new file mode 100644 index 0000000000..cc971a3cd1 --- /dev/null +++ b/anda/tools/qdl/qdl.spec @@ -0,0 +1,54 @@ +Name: qdl +Version: 2.6 +Release: 1%{?dist} +Summary: This tool communicates with USB devices of id 05c6:9008 to upload a flash loader and use this to flash images +URL: https://github.com/linux-msm/qdl +Source0: %url/archive/refs/tags/v%version.tar.gz +License: BSD-3-Clause +BuildRequires: make +BuildRequires: gcc +BuildRequires: help2man +BuildRequires: pkgconfig(libxml-2.0) +BuildRequires: pkgconfig(libusb-1.0) + +Packager: Owen Zimmerman + +%description +%{summary}. + +%prep +%autosetup -n qdl-%{version} + +%build +%make_build +make manpages + +%install +install -Dm755 qdl %{buildroot}%{_bindir}/qdl +install -Dm755 qdl %{buildroot}%{_bindir}/qdl-ramdump +install -Dm755 qdl %{buildroot}%{_bindir}/ks +mkdir -p %{buildroot}%{_mandir}/man1 +install -Dm644 qdl.1 %{buildroot}%{_mandir}/man1/qdl.1 +install -Dm644 qdl-ramdump.1 %{buildroot}%{_mandir}/man1/qdl-ramdump.1 +install -Dm644 ks.1 %{buildroot}%{_mandir}/man1/ks.1 + +%files +%{_bindir}/qdl +%{_bindir}/qdl-ramdump +%{_bindir}/ks +%{_mandir}/man1/qdl.1.* +%{_mandir}/man1/qdl-ramdump.1.* +%{_mandir}/man1/ks.1.* + +%license LICENSE +%doc README.md + +%changelog +* Mon Feb 02 2026 Owen Zimmerman +- Switch to tagged versions + +* Wed Nov 26 2025 metcya +- Package manpages + +* Sun Nov 23 2025 Owen Zimmerman +- Initial commit diff --git a/anda/tools/qdl/update.rhai b/anda/tools/qdl/update.rhai new file mode 100644 index 0000000000..635bdd7a96 --- /dev/null +++ b/anda/tools/qdl/update.rhai @@ -0,0 +1 @@ +rpm.version(gh_tag("linux-msm/qdl")); \ No newline at end of file diff --git a/anda/tools/qmk_cli/qmk_cli.spec b/anda/tools/qmk_cli/qmk_cli.spec index 17f906f309..e56db3e0c8 100644 --- a/anda/tools/qmk_cli/qmk_cli.spec +++ b/anda/tools/qmk_cli/qmk_cli.spec @@ -1,15 +1,15 @@ %define debug_package %nil -%global pypi_name qmk_cli +%global pypi_name qmk %global _desc The QMK CLI (command line interface) makes building and working with QMK keyboards easier. We have provided a number of commands to simplify and streamline tasks such as obtaining and compiling the QMK firmware, creating keymaps, and more. Name: python-%{pypi_name} -Version: 1.1.8 -Release: 3%?dist +Version: 1.2.0 +Release: 1%?dist Summary: A program to help users work with QMK License: MIT URL: https://github.com/qmk/qmk_cli -Source0: %url/archive/refs/tags/%version.tar.gz +Source0: %{pypi_source} BuildArch: noarch BuildRequires: python3-devel @@ -49,13 +49,14 @@ Summary: %{summary} Provides: qmk Provides: qmk_cli Provides: qmk-cli +Obsoletes: python3-qmk_cli <= 1.1.8 %{?python_provide:%python_provide python3-%{pypi_name}} %description -n python3-%{pypi_name} %_desc %prep -%autosetup -n qmk_cli-%version +%autosetup -n %{pypi_name}-%version %build %pyproject_wheel @@ -68,9 +69,6 @@ Provides: qmk-cli %doc README.md SECURITY.md %license LICENSE %{_bindir}/qmk -%ghost %python3_sitelib/__pycache__/*.cpython-*.pyc -%ghost %python3_sitelib/%{name}/subcommands/__pycache__/*.cpython-*.pyc -%python3_sitelib/qmk-%version.dist-info/* %changelog * Thu Sep 04 2025 Owen Zimmerman diff --git a/anda/tools/qmk_cli/update.rhai b/anda/tools/qmk_cli/update.rhai index 7a8aa73deb..175d7d9611 100644 --- a/anda/tools/qmk_cli/update.rhai +++ b/anda/tools/qmk_cli/update.rhai @@ -1 +1 @@ -rpm.version(gh("qmk/qmk_cli")); +rpm.version(pypi("qmk")); diff --git a/anda/tools/raindrop/desktop-file-call-pkexec.patch b/anda/tools/raindrop/desktop-file-call-pkexec.patch deleted file mode 100644 index 041f51802c..0000000000 --- a/anda/tools/raindrop/desktop-file-call-pkexec.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/data/raindrop.desktop.in b/data/raindrop.desktop.in -index 69e66f7..a042659 100644 ---- data/raindrop.desktop.in -+++ data/raindrop.desktop.in -@@ -3,7 +3,7 @@ Type=Application - Name=Screen Configuration - Comment=Configure monitor arrangement, scaling and orientation - Icon=computer --Exec=raindrop -+Exec=sh -c 'pkexec /usr/bin/raindrop' - Terminal=false - Categories=Settings; - StartupNotify=true diff --git a/anda/tools/raindrop/org.raspberrypi.raindrop.configure-display.policy b/anda/tools/raindrop/org.raspberrypi.raindrop.configure-display.policy deleted file mode 100644 index 6549a42a75..0000000000 --- a/anda/tools/raindrop/org.raspberrypi.raindrop.configure-display.policy +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - auth_admin - auth_admin - auth_admin - - GTK screen configuration tool for labwc and openbox environments. - Authentication is required to configure the system's display settings. - computer - /usr/bin/raindrop - true - - diff --git a/anda/tools/raindrop/raindrop.spec b/anda/tools/raindrop/raindrop.spec index c79ddb6d80..9feee366ac 100644 --- a/anda/tools/raindrop/raindrop.spec +++ b/anda/tools/raindrop/raindrop.spec @@ -1,5 +1,5 @@ -%global commit 3cd88fd51a64e48a34246e7698d52e210e5f9f62 -%global commit_date 20251014 +%global commit 9d5396972bb5557c427a79309ce5c00f91bc9211 +%global commit_date 20260130 %global shortcommit %(c=%{commit}; echo ${c:0:7}) Name: raindrop @@ -10,8 +10,6 @@ License: BSD-3-Clause URL: https://github.com/raspberrypi-ui/raindrop Packager: Owen Zimmerman Source0: %url/archive/%commit.tar.gz -Source1: org.raspberrypi.raindrop.configure-display.policy -Patch0: desktop-file-call-pkexec.patch BuildRequires: meson BuildRequires: ninja-build @@ -30,7 +28,7 @@ Screen configuration tool for Raspberry Pi Desktop, GTK screen configuration tool for labwc and openbox environments. %prep -%autosetup -n raindrop-%commit -p0 +%autosetup -n raindrop-%commit %build %meson @@ -38,15 +36,15 @@ GTK screen configuration tool for labwc and openbox environments. %install %meson_install -install -Dm644 %{SOURCE1} %{buildroot}/%{_datadir}/polkit-1/actions/org.raspberrypi.raindrop.configure-display.policy -%find_lang %{name} +%find_lang rpcc_%{name} -%files -f %{name}.lang +%files -f rpcc_%{name}.lang %license debian/copyright -%{_bindir}/raindrop -%{_datadir}/polkit-1/actions/org.raspberrypi.raindrop.configure-display.policy -%{_datadir}/applications/raindrop.desktop -%{_datadir}/raindrop/ui/raindrop.ui +%doc README +%{_libdir}/rpcc/librpcc_raindrop.so +%{_datadir}/rpcc/ui/minus.png +%{_datadir}/rpcc/ui/plus.png +%{_datadir}/rpcc/ui/raindrop.ui %changelog * Thu Aug 07 2025 Owen Zimmerman diff --git a/anda/tools/rpi-update/rpi-update.spec b/anda/tools/rpi-update/rpi-update.spec index 0a7eceaa60..7411209fb0 100644 --- a/anda/tools/rpi-update/rpi-update.spec +++ b/anda/tools/rpi-update/rpi-update.spec @@ -1,12 +1,12 @@ %define debug_package %nil -%global commit 0407f61fc32ca84598b2ed23cec32f07fce6ab08 -%global commit_date 20250805 +%global commit e30e6978b61abed7f6f665eff55dc74835c9de85 +%global commit_date 20251219 %global shortcommit %(c=%{commit}; echo ${c:0:7}) Name: rpi-update Version: %commit_date.git~%shortcommit -Release: 1%?dist +Release: 2%?dist Summary: An easier way to update the firmware of your Raspberry Pi. License: MIT URL: https://github.com/raspberrypi/rpi-update @@ -14,6 +14,8 @@ Source0: %url/archive/%commit.tar.gz Requires: bash ExclusiveArch: aarch64 +Packager: Owen Zimmerman + %description %summary diff --git a/anda/tools/rpi-utils/rpi-utils.spec b/anda/tools/rpi-utils/rpi-utils.spec index f5f28ca5fc..3564c15007 100644 --- a/anda/tools/rpi-utils/rpi-utils.spec +++ b/anda/tools/rpi-utils/rpi-utils.spec @@ -1,40 +1,48 @@ -%global commit f05444fa057e5cc3b700b43cdffc84fd18d1c4ec -%global commit_date 20251027 +%global commit ab0de6af57fbbbc47aed976425d0ed7b9d85e47a +%global commit_date 20260429 %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%define _unpackaged_files_terminate_build 0 - Name: rpi-utils Version: %{commit_date}.%{shortcommit} -Release: 1%?dist +Release: 1%{?dist} Summary: A collection of scripts and simple applications for Raspberry Pi devices License: BSD-3-Clause URL: https://github.com/raspberrypi/utils Source0: %{url}/archive/%{commit}.tar.gz Patch0: dtoverlay-manpage.patch -# BuildArch: noarch -BuildRequires: cmake dtc libfdt-devel gcc-c++ +BuildRequires: cmake dtc libfdt-devel gcc-c++ gnutls-devel -Requires: %{name}-dtmerge -Requires: %{name}-eeptools -Requires: %{name}-kdtc -Requires: %{name}-otpset -Requires: %{name}-overlaycheck -Requires: %{name}-ovmerge -Requires: %{name}-pinctrl -Requires: %{name}-piolib -Requires: %{name}-vcgencmd -Requires: %{name}-vclog -Requires: %{name}-vcmailbox +Requires: %{name}-dtmerge = %{evr} +Requires: %{name}-eeptools = %{evr} +Requires: %{name}-kdtc = %{evr} +Requires: %{name}-otpset = %{evr} +Requires: %{name}-overlaycheck = %{evr} +Requires: %{name}-ovmerge = %{evr} +Requires: %{name}-pinctrl = %{evr} +Requires: %{name}-piolib = %{evr} +Requires: %{name}-raspinfo = %{evr} +Requires: %{name}-rpifwcrypto = %{evr} +Requires: %{name}-vcgencmd = %{evr} +Requires: %{name}-vclog = %{evr} +Requires: %{name}-vcmailbox = %{evr} + +Packager: Owen Zimmerman %description -%{summary} +%{summary}. %package dtmerge Summary: A tool for applying compiled DT overlays (*.dtbo) to base Device Tree files (*.dtb) %description dtmerge %{summary}. Also includes the dtoverlay and dtparam utilities. +%package dtmerge-devel +Summary: Development files for %{name}-dtmerge-devel +Requires: %{name}-dtmerge = %{evr} + +%description dtmerge-devel +%{summary}. + %package eeptools Summary: Tools for creating and managing EEPROMs for HAT+ and HAT board %description eeptools @@ -71,11 +79,40 @@ Summary: A more powerful replacement for raspi-gpio, a tool for displayin %pkg_completion -Bn %name-pinctrl pinctrl +%package pinctrl-devel +Summary: Development files for %{name}-pinctrl-devel +Requires: %{name}-pinctrl = %{evr} + +%description pinctrl-devel +%{summary}. + %package piolib Summary: A library for accessing the Pi 5's PIO hardware %description piolib %{summary}. +%package piolib-devel +Summary: Development files for %{name}-piolib-devel +Requires: %{name}-piolib = %{evr} + +%description piolib-devel +%{summary}. + +%package raspinfo +Summary: A short script to dump information about the Pi. Intended for the submission of bug reports +%description raspinfo +%{summary}. + +%package rpifwcrypto +Summary: A command line application and shared library for the firmware cryptography service +%description rpifwcrypto +%{summary}. + +%package -n %{name}-rpifwcrypto-devel +Summary: Development files for %{name}-rpifwcrypto-devel +Requires: %{name}-rpifwcrypto = %{evr} +%description -n %{name}-rpifwcrypto-devel + %package vcgencmd Summary: Query the VideoCore for information %description vcgencmd @@ -116,8 +153,11 @@ Summary: A tool to get VideoCore 'assert' or 'msg' logs with optional -f %{_mandir}/man1/dtoverlay.1.gz %{_mandir}/man1/dtparam.1.gz %{_mandir}/man2/dtoverlay.2.gz -%{_exec_prefix}/%{_lib}/libdtovl.so -%{_exec_prefix}/%{_lib}/libdtovl.so.0 +%{_libdir}/libdtovl.so.0 + +%files dtmerge-devel +%{_includedir}/dtoverlay.h +%{_libdir}/libdtovl.so %files eeptools %doc eeptools/README.md @@ -138,6 +178,8 @@ Summary: A tool to get VideoCore 'assert' or 'msg' logs with optional -f %doc overlaycheck/README.md %license LICENCE %{_bindir}/overlaycheck +# idek but upstream cmake file puts this here +%{_bindir}/overlaycheck_exclusions.txt %files ovmerge %doc ovmerge/README.md @@ -148,8 +190,11 @@ Summary: A tool to get VideoCore 'assert' or 'msg' logs with optional -f %doc pinctrl/README.md %license LICENCE %{_bindir}/pinctrl -%{_exec_prefix}/%{_lib}/libgpiolib.so.0 -%{_exec_prefix}/%{_lib}/libgpiolib.so +%{_libdir}/libgpiolib.so.0 + +%files pinctrl-devel +%{_includedir}/gpiolib.h +%{_libdir}/libgpiolib.so %files piolib %doc piolib/README.md @@ -162,8 +207,26 @@ Summary: A tool to get VideoCore 'assert' or 'msg' logs with optional -f %{_bindir}/piows2812 %{_bindir}/quadenc %{_bindir}/rp1sm -%{_exec_prefix}/%{_lib}/libpio.so.0 -%{_exec_prefix}/%{_lib}/libpio.so +%{_libdir}/libpio.so.0 + +%files piolib-devel +%{_libdir}/libpio.so +%{_includedir}/piolib/hardware/*.h +%{_includedir}/piolib/pico/*.h +%{_includedir}/piolib/*.h + +%files raspinfo +%{_bindir}/raspinfo +%doc raspinfo/README.md + +%files rpifwcrypto +%{_bindir}/rpi-fw-crypto +%{_libdir}/librpifwcrypto.so.0 +%doc rpifwcrypto/README.md + +%files rpifwcrypto-devel +%{_libdir}/librpifwcrypto.so +%{_includedir}/rpifwcrypto.h %files vcgencmd %license LICENCE @@ -184,6 +247,9 @@ Summary: A tool to get VideoCore 'assert' or 'msg' logs with optional -f %{_mandir}/man7/raspirev.7.gz %changelog +* Tue Jan 13 2026 Owen Zimmerman +- Seperate needed files into -devel packages, add more packages/files, install all files. + * Mon May 19 2025 Owen-sz - Build shared libraries diff --git a/anda/tools/rustypaste/anda.hcl b/anda/tools/rustypaste/anda.hcl new file mode 100644 index 0000000000..bea61f3031 --- /dev/null +++ b/anda/tools/rustypaste/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "rustypaste.spec" + } +} diff --git a/anda/tools/rustypaste/rustypaste.spec b/anda/tools/rustypaste/rustypaste.spec new file mode 100644 index 0000000000..d8651fd5ae --- /dev/null +++ b/anda/tools/rustypaste/rustypaste.spec @@ -0,0 +1,64 @@ +%define __brp_mangle_shebangs %{nil} + +Name: rustypaste +Version: 0.16.1 +Release: 2%?dist +Summary: A minimal file upload/pastebin service +License: MIT AND Apache-2.0 AND (Apache-2.0 OR MIT) AND BSD-3-Clause AND (0BSD OR MIT OR Apache-2.0) AND Apache-2.0 AND ISC AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 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 OR MIT) AND (CC0-1.0 OR Artistic-2.0) AND CC0-1.0 AND ISC AND (MIT OR Zlib OR Apache-2.0) AND MPL-2.0 AND Unicode-3.0 AND (Unlicense OR MIT) AND Zlib +URL: https://github.com/orhun/rustypaste +Source0: %url/archive/refs/tags/v%{version}.tar.gz + +BuildRequires: anda-srpm-macros +BuildRequires: cargo-rpm-macros +BuildRequires: gcc +BuildRequires: cargo +BuildRequires: mold +BuildRequires: systemd-rpm-macros + +Packager: Owen Zimmerman + +%description +%{summary}. + +%prep +%autosetup -n %{name}-%{version} +%cargo_prep_online + +%build +%cargo_build + +%install +install -Dm755 target/rpm/rustypaste %{buildroot}%{_bindir}/rustypaste +install -Dm644 config.toml %{buildroot}%{_sysconfdir}/rustypaste/config.toml +install -Dm644 extra/systemd/rustypaste.env %{buildroot}%{_sysconfdir}/rustypaste/rustypaste.env +install -Dm644 extra/systemd/rustypaste.service %{buildroot}/usr/lib/systemd/system/rustypaste.service +install -Dm644 extra/systemd257+/rustypaste.sysusers %{buildroot}/usr/lib/sysusers.d/rustypaste.conf +install -Dm644 extra/systemd/rustypaste.tmpfiles %{buildroot}/usr/lib/tmpfiles.d/rustypaste.conf +%{cargo_license_online -a} > LICENSE.dependencies + +%post +%systemd_post swayosd-libinput-backend.service + +%preun +%systemd_preun swayosd-libinput-backend.service + +%postun +%systemd_postun_with_restart swayosd-libinput-backend.service + +%files +%doc README.md CHANGELOG.md RELEASE.md +%license LICENSE +%license LICENSE.dependencies +%{_bindir}/rustypaste +%{_sysconfdir}/rustypaste/config.toml +%{_sysconfdir}/rustypaste/rustypaste.env +%{_unitdir}/rustypaste.service +%{_sysusersdir}/rustypaste.conf +%{_tmpfilesdir}/rustypaste.conf + +%changelog +* Tue Jan 13 2026 Owen Zimmerman +- Add dependency licenses + +* Thu Nov 13 2025 Owen Zimmerman +- Initial commit diff --git a/anda/tools/rustypaste/update.rhai b/anda/tools/rustypaste/update.rhai new file mode 100644 index 0000000000..41404c1e74 --- /dev/null +++ b/anda/tools/rustypaste/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("orhun/rustypaste")); \ No newline at end of file diff --git a/anda/tools/sbctl/sbctl.spec b/anda/tools/sbctl/sbctl.spec index ffb32041c8..728c6472b0 100644 --- a/anda/tools/sbctl/sbctl.spec +++ b/anda/tools/sbctl/sbctl.spec @@ -1,11 +1,15 @@ +%global appid dev.linderud.sbctl +%global appstream_component console-application +%global patch_commit 14c4027270589b8d6f39cbca97569e6b13e40a05 Name: sbctl Version: 0.18 -Release: 1%?dist +Release: 4%?dist Summary: Secure Boot key manager License: MIT URL: https://github.com/Foxboron/sbctl Source0: https://github.com/Foxboron/sbctl/releases/download/%{version}/sbctl-%{version}.tar.gz +Patch1: https://github.com/Foxboron/sbctl/compare/master...%{patch_commit}.patch ## Based on CachyOS's batch sign script # https://github.com/CachyOS/CachyOS-Settings/blob/master/usr/bin/sbctl-batch-sign Source1: %{name}-batch-sign @@ -21,6 +25,7 @@ Recommends: systemd-udev BuildRequires: asciidoc BuildRequires: git BuildRequires: go-rpm-macros +BuildRequires: anda-srpm-macros BuildRequires: pkgconfig(libpcsclite) %description @@ -46,10 +51,9 @@ export GOPATH=%{_builddir}/go %make_install PREFIX=%{_prefix} install -Dm755 %{SOURCE1} -t %{buildroot}%{_bindir} -# This script is actually broken on Fedora, while new Debian installkernel hook works fine -# for kernel-install, thanks to Fedora's kernel-install hook adding support for -# postinst.d hooks. -rm -f %{buildroot}%{_prefix}/lib/kernel/install.d/91-sbctl.install +# We don't want the Debian script +rm -f %{buildroot}%{_prefix}/lib/kernel/postinst.d/91-sbctl.install +%terra_appstream %transfiletriggerin -P 1 -- /efi /usr/lib /usr/libexec if [[ ! -f /run/ostree-booted ]] && grep -q -m 1 -e '\.efi$' -e '/vmlinuz$'; then @@ -63,12 +67,13 @@ fi %doc README.md %{_bindir}/sbctl %{_bindir}/sbctl-batch-sign -%{_prefix}/lib/kernel/postinst.d/91-sbctl.install +%{_prefix}/lib/kernel/install.d/91-sbctl.install %{_mandir}/man8/sbctl.8* %{_mandir}/man5/sbctl.conf.5* %{_datadir}/bash-completion/completions/sbctl %{_datadir}/fish/vendor_completions.d/sbctl.fish %{_datadir}/zsh/site-functions/_sbctl +%{_metainfodir}/%{appid}.metainfo.xml %changelog diff --git a/anda/tools/shadowenv/anda.hcl b/anda/tools/shadowenv/anda.hcl new file mode 100644 index 0000000000..45a58668de --- /dev/null +++ b/anda/tools/shadowenv/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "shadowenv.spec" + } +} diff --git a/anda/tools/shadowenv/shadowenv.spec b/anda/tools/shadowenv/shadowenv.spec new file mode 100644 index 0000000000..8fa128d7c9 --- /dev/null +++ b/anda/tools/shadowenv/shadowenv.spec @@ -0,0 +1,40 @@ +Name: shadowenv +Version: 3.4.0 +Release: 1%?dist +License: MIT +Summary: Reversible directory-local environment variable manipulations +URL: https://shopify.github.io/shadowenv/ +Source0: https://github.com/Shopify/shadowenv/archive/refs/tags/%version.tar.gz +BuildRequires: cargo cargo-rpm-macros mold + +Packager: Owen Zimmerman + +%description +%summary. + +%prep +%autosetup +%cargo_prep_online + +%build +%cargo_build + +%install +mkdir -p %{buildroot}%{_mandir}/man1/ +mkdir -p %{buildroot}%{_mandir}/man5/ +install -Dm755 target/rpm/shadowenv %{buildroot}%{_bindir}/shadowenv +install -Dm644 man/man1/shadowenv.1 %{buildroot}%{_mandir}/man1/ +install -Dm644 man/man5/shadowlisp.5 %{buildroot}%{_mandir}/man5/ +%{cargo_license_online -a} > LICENSE.dependencies + +%files +%doc README.md CONTRIBUTING.md +%license LICENSE +%license LICENSE.dependencies +%{_bindir}/shadowenv +%{_mandir}/man1/shadowenv.*.* +%{_mandir}/man5/shadowlisp.*.* + +%changelog +* Thu Jan 01 2026 Owen Zimmerman +- Initial commit diff --git a/anda/tools/shadowenv/update.rhai b/anda/tools/shadowenv/update.rhai new file mode 100644 index 0000000000..cd9a74e384 --- /dev/null +++ b/anda/tools/shadowenv/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("Shopify/shadowenv")); diff --git a/anda/tools/sops/sops.spec b/anda/tools/sops/sops.spec index c251126aa3..41d0ac6df6 100644 --- a/anda/tools/sops/sops.spec +++ b/anda/tools/sops/sops.spec @@ -1,7 +1,7 @@ %define debug_package %nil Name: sops -Version: 3.11.0 -Release: 1%?dist +Version: 3.12.2 +Release: 1%{?dist} Summary: Simple and flexible tool for managing secrets License: MPL-2.0 URL: https://github.com/getsops/sops diff --git a/anda/tools/spotx-bash/anda.hcl b/anda/tools/spotx-bash/anda.hcl index 82bb67736e..eb6f874c8f 100644 --- a/anda/tools/spotx-bash/anda.hcl +++ b/anda/tools/spotx-bash/anda.hcl @@ -1,4 +1,5 @@ project pkg { + arches = ["x86_64"] rpm { spec = "spotx-bash.spec" } diff --git a/anda/tools/spotx-bash/spotx-bash.spec b/anda/tools/spotx-bash/spotx-bash.spec index a01b6a9549..e97321bf5f 100644 --- a/anda/tools/spotx-bash/spotx-bash.spec +++ b/anda/tools/spotx-bash/spotx-bash.spec @@ -1,10 +1,10 @@ -%global commit de9c99a1f2c74ee722b3216ca28c8f7f76ac206d -%global commit_date 20251023 +%global commit c9b506c7749f853c827b6d4bd1d57818f953f68d +%global commit_date 20260425 %global shortcommit %(c=%{commit}; echo ${c:0:7}) Name: spotx-bash Version: %commit_date.git~%shortcommit -Release: 1%?dist +Release: 1%{?dist} Summary: Adblock for the Spotify desktop client on Linux. License: MIT URL: https://github.com/SpotX-Official/SpotX-Bash @@ -12,6 +12,7 @@ Source0: %url/archive/%commit.tar.gz Requires: bash BuildArch: noarch Provides: spotx spotx-linux spot-x spotx.sh +Packager: Its-J %description %summary @@ -21,16 +22,18 @@ Provides: spotx spotx-linux spot-x spotx.sh %install mkdir -p %{buildroot}%{_bindir} -install -Dm 755 spotx.sh %buildroot%{_bindir}/spotx - -%post -%{__ln_s} -f %{_bindir}/spotx %{_bindir}/spotx.sh +install -Dm 755 spotx.sh %{buildroot}%{_bindir}/spotx +%{__ln_s} -f %{_bindir}/spotx %{buildroot}%{_bindir}/spotx.sh %files %doc README.md %license LICENSE -%_bindir/spotx +%{_bindir}/spotx.sh +%{_bindir}/spotx %changelog -* Sat Dec 14 2024 Its-J -- Package SpotX-Bash \ No newline at end of file +* Tue Apr 14 2026 Its-J +- Add email to my previous contributor attributions + +* Sat Dec 14 2024 Its-J +- Package SpotX-Bash diff --git a/anda/tools/stremio-service/anda.hcl b/anda/tools/stremio-service/anda.hcl new file mode 100644 index 0000000000..8e72622fce --- /dev/null +++ b/anda/tools/stremio-service/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "stremio-service.spec" + } +} diff --git a/anda/tools/stremio-service/stremio-service.spec b/anda/tools/stremio-service/stremio-service.spec new file mode 100644 index 0000000000..3a70d8bebe --- /dev/null +++ b/anda/tools/stremio-service/stremio-service.spec @@ -0,0 +1,74 @@ +Name: stremio-service +Version: 0.1.21 +Release: 1%{?dist} +Summary: Lets you run Stremio server in the background +License: GPL-2.0-only AND MPL-2.0 AND (Apache-2.0 OR MIT) AND (Zlib OR Apache-2.0 OR MIT) AND BSD-3-Clause AND (Unlicense OR MIT) AND Unicode-3.0 AND (0BSD OR MIT OR Apache-2.0) AND (MIT OR Zlib OR Apache-2.0) AND (MIT OR Apache-2.0 OR LGPL-2.1-or-later) AND CC0-1.0 AND ISC AND MIT AND (BSD-3-Clause OR MIT OR Apache-2.0) AND Apache-2.0 AND MIT AND (Apache-2.0 OR BSL-1.0) AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND (Apache-2.0 OR ISC OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) +URL: https://github.com/Stremio/stremio-service +Source0: %url/archive/refs/tags/v%{version}.tar.gz +BuildRequires: anda-srpm-macros +BuildRequires: cargo-rpm-macros +BuildRequires: gcc +BuildRequires: cargo +BuildRequires: pkgconfig(gdk-3.0) +BuildRequires: pkgconfig(atk) +BuildRequires: pkgconfig(pango) +BuildRequires: pkgconfig(cairo-gobject) +BuildRequires: pkgconfig(openssl) +BuildRequires: pkgconfig(ayatana-appindicator3-0.1) +BuildRequires: rust-gdk-pixbuf-devel +Requires: libayatana-appindicator-gtk3 +Requires: gdk-pixbuf2 +Requires: glibc +Requires: cairo +Requires: gtk3 +Requires: glib2 +# Build fails without this, all deps are listed above. +AutoReqProv: 0 + +Packager: Owen Zimmerman + +%description +%{summary}. + +%prep +%autosetup -n %{name}-%{version} +%cargo_prep_online + +%build +%cargo_build -f bundled + +%install +mkdir -p %{buildroot}%{_datadir}/stremio-service + +# This is weird but the file going into _bindir is a wrapper script for what is going into _datadir, upstream does this. +# Also, yes all of these file permissions are correct. +install -Dm755 resources/stremio-service %{buildroot}%{_bindir}/stremio-service +install -Dm755 target/release/stremio-service %{buildroot}%{_datadir}/stremio-service/stremio-service + +install -Dm755 resources/bin/linux/stremio-runtime %{buildroot}%{_datadir}/stremio-service/stremio-runtime +install -Dm755 resources/bin/linux/ffmpeg %{buildroot}%{_datadir}/stremio-service/ffmpeg +install -Dm755 resources/bin/linux/ffprobe %{buildroot}%{_datadir}/stremio-service/ffprobe +install -Dm755 resources/bin/linux/server.js %{buildroot}%{_datadir}/stremio-service/server.js + +install -Dm644 resources/com.stremio.service.desktop %{buildroot}%{_appsdir}/com.stremio.service.desktop +install -Dm644 resources/com.stremio.service.metainfo.xml %{buildroot}%{_metainfodir}/com.stremio.service.metainfo.xml +install -Dm644 resources/com.stremio.service.svg %{buildroot}%{_scalableiconsdir}/com.stremio.service.svg +%{cargo_license_summary_online} > LICENSE.dependencies + +%files +%doc README.md +%license LICENSE.md +%license LICENSE.dependencies +%{_bindir}/stremio-service +%{_datadir}/stremio-service/stremio-service +%{_datadir}/stremio-service/stremio-runtime +%{_datadir}/stremio-service/ffmpeg +%{_datadir}/stremio-service/ffprobe +%{_datadir}/stremio-service/server.js +%{_appsdir}/com.stremio.service.desktop +%{_scalableiconsdir}/com.stremio.service.svg +%{_metainfodir}/com.stremio.service.metainfo.xml + +%changelog +* Sun Feb 01 2026 Owen Zimmerman +- Initial commit diff --git a/anda/tools/stremio-service/update.rhai b/anda/tools/stremio-service/update.rhai new file mode 100644 index 0000000000..ea19e6e61f --- /dev/null +++ b/anda/tools/stremio-service/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("Stremio/stremio-service")); diff --git a/anda/tools/buildsys/subatomic/anda.hcl b/anda/tools/subatomic/anda.hcl similarity index 100% rename from anda/tools/buildsys/subatomic/anda.hcl rename to anda/tools/subatomic/anda.hcl diff --git a/anda/tools/buildsys/subatomic/subatomic.spec b/anda/tools/subatomic/subatomic.spec similarity index 98% rename from anda/tools/buildsys/subatomic/subatomic.spec rename to anda/tools/subatomic/subatomic.spec index e1d39c3306..87aac6e43e 100644 --- a/anda/tools/buildsys/subatomic/subatomic.spec +++ b/anda/tools/subatomic/subatomic.spec @@ -1,7 +1,7 @@ %define debug_package %{nil} Name: subatomic -Version: 0.11.4 +Version: 0.13.0 Release: 1%?dist Summary: A modern package delivery system diff --git a/anda/tools/buildsys/subatomic/update.rhai b/anda/tools/subatomic/update.rhai similarity index 100% rename from anda/tools/buildsys/subatomic/update.rhai rename to anda/tools/subatomic/update.rhai diff --git a/anda/tools/surge/anda.hcl b/anda/tools/surge/anda.hcl new file mode 100644 index 0000000000..be401dcc91 --- /dev/null +++ b/anda/tools/surge/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "surge.spec" + } +} diff --git a/anda/tools/surge/surge.spec b/anda/tools/surge/surge.spec new file mode 100644 index 0000000000..11f10e7b23 --- /dev/null +++ b/anda/tools/surge/surge.spec @@ -0,0 +1,41 @@ +%global goipath github.com/surge-downloader/surge +Version: 0.8.5 + +%gometa + +Name: surge +Release: 1%{?dist} +Summary: Blazing fast TUI download manager built in Go for power users + +License: MIT +URL: https://github.com/surge-downloader/Surge +Source0: %{url}/archive/refs/tags/v%{version}.tar.gz + +Packager: Owen Zimmerman + +BuildRequires: golang gcc go-rpm-macros +Requires: glibc + +%description +%{summary}. + +%gopkg + +%prep +%autosetup -n Surge-%{version} + +%build +%define gomodulesmode GO111MODULE=on +%gobuild -o %{gobuilddir}/bin/surge %{goipath} + +%install +install -Dm755 %{gobuilddir}/bin/surge %{buildroot}%{_bindir}/surge + +%files +%license LICENSE +%doc README.md +%{_bindir}/surge + +%changelog +* Tue Feb 24 2026 Owen Zimmerman +- Initial commit diff --git a/anda/tools/surge/update.rhai b/anda/tools/surge/update.rhai new file mode 100644 index 0000000000..301d54ee48 --- /dev/null +++ b/anda/tools/surge/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("surge-downloader/Surge")); diff --git a/anda/tools/tauri/anda.hcl b/anda/tools/tauri/anda.hcl new file mode 100644 index 0000000000..c9d5d4ca9b --- /dev/null +++ b/anda/tools/tauri/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "tauri.spec" + } +} diff --git a/anda/tools/tauri/tauri.spec b/anda/tools/tauri/tauri.spec new file mode 100644 index 0000000000..2667bbc8a3 --- /dev/null +++ b/anda/tools/tauri/tauri.spec @@ -0,0 +1,56 @@ +%global crate tauri-cli +%undefine __brp_mangle_shebangs + +Name: rust-tauri +Version: 2.11.1 +Release: 1%{?dist} +Summary: Command line interface for building Tauri apps +License: Apache-2.0 OR MIT +URL: https://crates.io/crates/create-tauri-app +Source: %{crates_source} +BuildRequires: anda-srpm-macros +BuildRequires: cargo-rpm-macros +BuildRequires: mold +Suggests: libayatana-appindicator-gtk3 +Packager: Gilver E. + +%description +Build smaller, faster, and more secure desktop and mobile applications with a web frontend. + +%package -n tauri +Summary: %{summary} +License: ((Apache-2.0 OR MIT) AND BSD-3-Clause) AND ((MIT OR Apache-2.0) AND Unicode-DFS-2016) AND (0BSD OR MIT OR Apache-2.0) AND Apache-2.0 AND (Apache-2.0 AND ISC) 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) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND BSD-2-Clause AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND BSD-3-Clause AND (BSD-3-Clause OR MIT OR Apache-2.0) AND BSL-1.0 AND BlueOak-1.0.0 AND CC0-1.0 AND (CC0-1.0 OR Apache-2.0) AND (CC0-1.0 OR MIT-0 OR Apache-2.0) AND ISC AND MIT AND (MIT AND (MIT OR Apache-2.0)) AND (MIT AND BSD-3-Clause) AND (MIT OR Apache-2.0) AND (MIT OR Apache-2.0 OR BSD-1-Clause) AND (MIT OR Apache-2.0 OR LGPL-2.1-or-later) AND (MIT OR Apache-2.0 OR NCSA) AND (MIT OR Apache-2.0 OR Zlib) AND (MIT OR Zlib OR Apache-2.0) AND MIT-0 AND MPL-2.0 AND Unicode-3.0 AND (Unlicense OR MIT) AND Zlib AND (Zlib OR Apache-2.0 OR MIT) + +%description -n tauri +Build smaller, faster, and more secure desktop and mobile applications with a web frontend. + +%pkg_completion -n tauri -fz + +%prep +%autosetup -n %{crate}-%{version} -p1 +%cargo_prep_online + +%build +%cargo_build + +%install +install -Dpm755 target/rpm/cargo-tauri %{buildroot}%{_bindir}/tauri +%{cargo_license_online} > LICENSE.dependencies +mkdir -p %{buildroot}{%{bash_completions_dir},%{fish_completions_dir},%{zsh_completions_dir}} + +#target/rpm/cargo-tauri completions --shell bash --output %{buildroot}%{bash_completions_dir}/tauri || : +target/rpm/cargo-tauri completions --shell fish --output %{buildroot}%{fish_completions_dir}/tauri.fish +target/rpm/cargo-tauri completions --shell zsh --output %{buildroot}%{zsh_completions_dir}/_tauri + +%files -n tauri +%license LICENSE_APACHE-2.0 +%license LICENSE_MIT +%license LICENSE.dependencies +%doc README.md +%{_bindir}/tauri + +%changelog +* Thu Jan 1 2026 - 4.6.2-3 +- Added shell completion subpackages +* Thu Dec 25 2025 Gilver E. - 4.6.2-1 +- Initial package diff --git a/anda/tools/tauri/update.rhai b/anda/tools/tauri/update.rhai new file mode 100644 index 0000000000..b1d8c62cbe --- /dev/null +++ b/anda/tools/tauri/update.rhai @@ -0,0 +1 @@ +rpm.version(crates("tauri-cli")); diff --git a/anda/tools/termflix/anda.hcl b/anda/tools/termflix/anda.hcl new file mode 100644 index 0000000000..54414b31bf --- /dev/null +++ b/anda/tools/termflix/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "termflix.spec" + } +} diff --git a/anda/tools/termflix/termflix.spec b/anda/tools/termflix/termflix.spec new file mode 100644 index 0000000000..7c75d40de7 --- /dev/null +++ b/anda/tools/termflix/termflix.spec @@ -0,0 +1,35 @@ +Name: termflix +Version: 0.4.2 +Release: 1%?dist +Summary: Terminal animation player with 43 procedurally generated animations, multiple render modes, and true color support + +License: MIT AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND (MIT OR Apache-2.0 OR LGPL-2.1-or-later) AND MPL-2.0 +URL: https://github.com/paulrobello/termflix +Source0: %{url}/archive/refs/tags/v%{version}.tar.gz + +BuildRequires: cargo-rpm-macros >= 24 + +Packager: Owen Zimmerman + +%description +%{summary}. + +%prep +%autosetup -n %{name}-%{version} +%cargo_prep_online + +%build +%cargo_build +%{cargo_license_online} > LICENSE.dependencies + +%install +install -Dm 755 target/rpm/%{name} -t %{buildroot}%{_bindir} + +%files +%doc README.md +%license LICENSE LICENSE.dependencies +%{_bindir}/%{name} + +%changelog +* Thu Feb 26 2026 Owen Zimmerman +- Initial commit diff --git a/anda/tools/termflix/update.rhai b/anda/tools/termflix/update.rhai new file mode 100644 index 0000000000..f4d53a76bc --- /dev/null +++ b/anda/tools/termflix/update.rhai @@ -0,0 +1 @@ +rpm.version(crates("termflix")); diff --git a/anda/tools/topgrade/anda.hcl b/anda/tools/topgrade/anda.hcl index 2113d9970e..f23cb53e8f 100644 --- a/anda/tools/topgrade/anda.hcl +++ b/anda/tools/topgrade/anda.hcl @@ -1,5 +1,5 @@ project pkg { rpm { - spec = "topgrade.spec" + spec = "rust-topgrade.spec" } } diff --git a/anda/tools/topgrade/rust-topgrade.spec b/anda/tools/topgrade/rust-topgrade.spec new file mode 100644 index 0000000000..f048f8163d --- /dev/null +++ b/anda/tools/topgrade/rust-topgrade.spec @@ -0,0 +1,61 @@ +%global __brp_mangle_shebangs %{nil} +%global crate topgrade + +Name: rust-topgrade +# renovate: datasource=github-releases depName=topgrade-rs/topgrade +Version: 17.4.0 +Release: 1%{?dist} +Summary: Upgrade all the things + +SourceLicense: GPL-3.0-or-later +License: ((MIT OR Apache-2.0) AND Unicode-3.0) AND (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND GPL-3.0 AND GPL-3.0-only AND MIT AND (MIT OR Apache-2.0) AND (MIT OR Zlib OR Apache-2.0) AND MPL-2.0 AND (Unlicense OR MIT) AND (Zlib OR Apache-2.0 OR MIT) +URL: https://crates.io/crates/topgrade +Source: %crates_source +# Automatically generated patch to strip dependencies and normalize metadata + +BuildRequires: cargo +BuildRequires: rust +BuildRequires: rpm_macro(cargo_install) +BuildRequires: anda-srpm-macros mold + +%global _description %{expand: +Keeping your system up to date usually involves invoking multiple package managers. +This results in big, non-portable shell one-liners saved in your shell. +To remedy this, Topgrade detects which tools you use and +runs the appropriate commands to update them.} + +%description %{_description} + +%package -n %{crate} +Summary: %{summary} + +%description -n %{crate} %{_description} + +%files -n %{crate} +%license LICENSE +%license LICENSE.dependencies +%doc CHANGELOG.md +%doc CODE_OF_CONDUCT.md +%doc CONTRIBUTING.md +%doc README.md +%doc RELEASE_PROCEDURE.md +%doc SECURITY.md +%{_bindir}/topgrade + +%prep +%autosetup -n %{crate}-%{version} +%cargo_prep_online + +%build +%cargo_license_summary_online +%{cargo_license_online} > LICENSE.dependencies + +%install +%cargo_install + +%changelog +* Tue Jul 02 2024 Andrey Brusnik - 15.0.0-1 +- chore(topgrade): Bump to 15.0.0 + +* Tue Jun 18 2024 Andrey Brusnik - 14.0.1-1 +- feat: Added topgrade package diff --git a/anda/tools/topgrade/topgrade-fix-metadata-auto.diff b/anda/tools/topgrade/topgrade-fix-metadata-auto.diff deleted file mode 100644 index 8c876d4f4b..0000000000 --- a/anda/tools/topgrade/topgrade-fix-metadata-auto.diff +++ /dev/null @@ -1,22 +0,0 @@ ---- topgrade-16.0.2/Cargo.toml 1970-01-01T00:00:01+00:00 -+++ topgrade-16.0.2/Cargo.toml 2025-01-03T04:51:04.571554+00:00 -@@ -204,19 +204,3 @@ - default-features = false - package = "self_update" - --[target."cfg(windows)".dependencies.parselnk] --version = "~0.1" -- --[target."cfg(windows)".dependencies.self_update_crate] --version = "~0.40" --features = [ -- "archive-zip", -- "compression-zip-deflate", -- "rustls", --] --optional = true --default-features = false --package = "self_update" -- --[target."cfg(windows)".dependencies.winapi] --version = "~0.3" diff --git a/anda/tools/topgrade/topgrade.spec b/anda/tools/topgrade/topgrade.spec deleted file mode 100644 index 28a1ae044c..0000000000 --- a/anda/tools/topgrade/topgrade.spec +++ /dev/null @@ -1,107 +0,0 @@ -%global __brp_mangle_shebangs %{nil} -%global crate topgrade - -Name: topgrade -# renovate: datasource=github-releases depName=topgrade-rs/topgrade -Version: 16.0.4 -Release: 1%?dist -Summary: Upgrade all the things - -SourceLicense: GPL-3.0-or-later -License: ((MIT OR Apache-2.0) AND Unicode-DFS-2016) AND (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND GPL-3.0 AND MIT AND (MIT OR Apache-2.0) AND (MIT OR Zlib OR Apache-2.0) AND MPL-2.0 AND (Unlicense OR MIT) -URL: https://github.com/topgrade-rs/%{name} -Source: %crates_source -# Automatically generated patch to strip dependencies and normalize metadata -Patch: topgrade-fix-metadata-auto.diff - -BuildRequires: cargo -BuildRequires: rust -BuildRequires: rpm_macro(cargo_install) -BuildRequires: anda-srpm-macros mold - -%description -Keeping your system up to date usually involves invoking multiple package managers. -This results in big, non-portable shell one-liners saved in your shell. -To remedy this, Topgrade detects which tools you use and -runs the appropriate commands to update them. - -%global _description %{expand: -Upgrade all the things.} - -%package -n rust-%name-devel -Summary: %{summary} -BuildArch: noarch - -%description -n rust-%name-devel %{_description} - -This package contains library source intended for building other packages which -use the "%{crate}" crate. - -%files -n rust-%name-devel -%dnl %license %{crate_instdir}/LICENSE -%dnl %doc %{crate_instdir}/BREAKINGCHANGES.md -%dnl %doc %{crate_instdir}/CODE_OF_CONDUCT.md -%dnl %doc %{crate_instdir}/CONTRIBUTING.md -%dnl %doc %{crate_instdir}/README.md -%dnl %doc %{crate_instdir}/RELEASE_PROCEDURE.md -%dnl %doc %{crate_instdir}/SECURITY.md -%{crate_instdir}/ - -%package -n rust-%{name}+default-devel -Summary: %{summary} -BuildArch: noarch - -%description -n rust-%{name}+default-devel %{_description} - -This package contains library source intended for building other packages which -use the "default" feature of the "%{crate}" crate. - -%files -n rust-%{name}+default-devel -%ghost %{crate_instdir}/Cargo.toml - -%package -n rust-%{name}+self-update-devel -Summary: %{summary} -BuildArch: noarch - -%description -n rust-%{name}+self-update-devel %{_description} - -This package contains library source intended for building other packages which -use the "self-update" feature of the "%{crate}" crate. - -%files -n rust-%{name}+self-update-devel -%ghost %{crate_instdir}/Cargo.toml - -%package -n rust-%{name}+self_update_crate-devel -Summary: %{summary} -BuildArch: noarch - -%description -n rust-%{name}+self_update_crate-devel %{_description} - -This package contains library source intended for building other packages which -use the "self_update_crate" feature of the "%{crate}" crate. - -%files -n rust-%{name}+self_update_crate-devel -%ghost %{crate_instdir}/Cargo.toml - -%prep -%autosetup -n %{name}-%{version} -p1 -%cargo_prep_online - -%build -%cargo_license_summary_online -%{cargo_license_online} > LICENSE.dependencies - -%install -%cargo_install - -%files -%license LICENSE LICENSE.dependencies -%doc BREAKINGCHANGES.md README.md -%{_bindir}/%{name} - -%changelog -* Tue Jul 02 2024 Andrey Brusnik - 15.0.0-1 -- chore(topgrade): Bump to 15.0.0 - -* Tue Jun 18 2024 Andrey Brusnik - 14.0.1-1 -- feat: Added topgrade package diff --git a/anda/tools/typos/anda.hcl b/anda/tools/typos/anda.hcl new file mode 100644 index 0000000000..0c76df5141 --- /dev/null +++ b/anda/tools/typos/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "typos.spec" + } +} diff --git a/anda/tools/typos/typos.spec b/anda/tools/typos/typos.spec new file mode 100644 index 0000000000..c6f89d19f6 --- /dev/null +++ b/anda/tools/typos/typos.spec @@ -0,0 +1,42 @@ +%global crate typos-cli +%define debug_package %{nil} + +Name: typos +Version: 1.46.0 +Release: 1%{?dist} +Summary: Source Code Spelling Correction + +License: MIT OR Apache-2.0 +URL: https://crates.io/crates/typos-cli +Source0: %{crates_source} +Source1: https://raw.githubusercontent.com/crate-ci/%{name}/refs/tags/v%{version}/LICENSE-MIT +Source2: https://raw.githubusercontent.com/crate-ci/%{name}/refs/tags/v%{version}/LICENSE-APACHE + +BuildRequires: cargo-rpm-macros >= 24 +BuildRequires: mold + +%description +Finds and corrects spelling mistakes among source code. + +%prep +%autosetup -n %{crate}-%{version} +cp %{S:1} . +cp %{S:2} . +%cargo_prep_online + +%build +%cargo_build +%cargo_license_summary_online +%{cargo_license_online} > LICENSE.dependencies + +%install +install -Dm 755 target/rpm/%{name} -t %{buildroot}%{_bindir} + +%files +%license LICENSE-MIT LICENSE-APACHE LICENSE.dependencies +%doc README.md +%{_bindir}/%{name} + +%changelog +* Sun Dec 28 2025 metcya - 1.40.0-1 +- Initial package diff --git a/anda/tools/typos/update.rhai b/anda/tools/typos/update.rhai new file mode 100644 index 0000000000..aa4d889714 --- /dev/null +++ b/anda/tools/typos/update.rhai @@ -0,0 +1 @@ +rpm.version(crates("typos-cli")); diff --git a/anda/tools/u-config/anda.hcl b/anda/tools/u-config/anda.hcl new file mode 100644 index 0000000000..bc13ecfa43 --- /dev/null +++ b/anda/tools/u-config/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "u-config.spec" + } +} diff --git a/anda/tools/u-config/u-config.spec b/anda/tools/u-config/u-config.spec new file mode 100644 index 0000000000..97651f07ce --- /dev/null +++ b/anda/tools/u-config/u-config.spec @@ -0,0 +1,45 @@ +%global forgeurl https://github.com/skeeto/u-config +Version: 0.34.0 +%forgemeta + +Name: u-config +Release: 1%{?dist} +Summary: A smaller, simpler, portable pkg-config clone + +License: Unlicense +URL: %{forgeurl} +Source0: %{forgesource} + +Packager: metcya + +BuildRequires: gcc + +%description +u-config ("micro-config") is a small, highly portable pkg-config and pkgconf +clone. It was written primarily for w64devkit and Windows, but can also serve +as a reliable drop-in replacement on other platforms. Notable features: + +%prep +%forgeautosetup + +%build +%__cc $CFLAGS \ + $CPPFLAGS \ + -DPKG_CONFIG_LIBDIR="\"%{_libdir}/pkgconfig\"" \ + $LDFLAGS \ + -o u-config \ + main_posix.c + +%install +install -Dm 755 u-config %{buildroot}%{_bindir}/u-config +install -Dm 655 u-config.1 %{buildroot}%{_mandir}/man1/u-config.1 + +%files +%license UNLICENSE +%doc README.md +%{_bindir}/u-config +%{_mandir}/man1/u-config.1.* + +%changelog +* Tue Mar 03 2026 metcya +- Initial package diff --git a/anda/tools/u-config/update.rhai b/anda/tools/u-config/update.rhai new file mode 100644 index 0000000000..175fe08da0 --- /dev/null +++ b/anda/tools/u-config/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("skeeto/u-config")); diff --git a/anda/tools/ueberzugpp/anda.hcl b/anda/tools/ueberzugpp/anda.hcl new file mode 100644 index 0000000000..55c968338f --- /dev/null +++ b/anda/tools/ueberzugpp/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "ueberzugpp.spec" + } +} diff --git a/anda/tools/ueberzugpp/ueberzugpp.spec b/anda/tools/ueberzugpp/ueberzugpp.spec new file mode 100644 index 0000000000..fb9e852d99 --- /dev/null +++ b/anda/tools/ueberzugpp/ueberzugpp.spec @@ -0,0 +1,57 @@ +Name: ueberzugpp +Version: 2.9.8 +Release: 1%?dist +License: GPL-3.0 +Summary: Drop in replacement for ueberzug written in C++ +URL: https://github.com/jstkdng/%{name} +Source: %{url}/archive/v%{version}.tar.gz +Packager: metcya + +BuildRequires: cmake +BuildRequires: gcc-c++ +BuildRequires: pkgconfig(vips) +BuildRequires: pkgconfig(libsixel) +BuildRequires: pkgconfig(chafa) +BuildRequires: pkgconfig(openssl) +BuildRequires: pkgconfig(tbb) +BuildRequires: pkgconfig(nlohmann_json) +BuildRequires: cli11-devel +BuildRequires: pkgconfig(spdlog) +BuildRequires: pkgconfig(fmt) +BuildRequires: range-v3-devel +BuildRequires: pkgconfig(opencv) +BuildRequires: xcb-util-image-devel +BuildRequires: wayland-devel +BuildRequires: wayland-protocols-devel +BuildRequires: extra-cmake-modules + +%description +Überzug++ is a command line utility written in C++ which allows to draw images +on terminals by using X11/wayland child windows, sixels, kitty and iterm2. + +%prep +%autosetup + +%build +%cmake . -DENABLE_WAYLAND=ON \ + -DENABLE_XCB_ERROR=ON +%cmake_build + +%install +%cmake_install + +%files +%doc README.md +%doc CODE_OF_CONDUCT.md +%license LICENSE +%{_bindir}/ueberzug +%{_bindir}/ueberzugpp +%{_mandir}/man1/ueberzug.1* +%{_mandir}/man1/ueberzugpp.1* + +%check +%ctest + +%changelog +* Tue Nov 11 2025 metcya +- Package ueberzugpp diff --git a/anda/tools/ueberzugpp/update.rhai b/anda/tools/ueberzugpp/update.rhai new file mode 100644 index 0000000000..d84bab31dc --- /dev/null +++ b/anda/tools/ueberzugpp/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("jstkdng/ueberzugpp")); diff --git a/anda/tools/virtualsmartcard/virtualsmartcard.spec b/anda/tools/virtualsmartcard/virtualsmartcard.spec index 284cf992ac..c41f91667b 100644 --- a/anda/tools/virtualsmartcard/virtualsmartcard.spec +++ b/anda/tools/virtualsmartcard/virtualsmartcard.spec @@ -7,7 +7,7 @@ Source0: https://github.com/frankmorgner/vsmartcard/releases/download/%na License: GPL-3.0-only BuildRequires: pcsc-lite-devel gcc libtool pkg-config qrencode-devel python3-devel help2man -Requires: qrencode-libs python3 +Requires: qrencode-libs Packager: june-fish %description @@ -15,6 +15,8 @@ Virtual Smart Card emulates a smart card and makes it accessible through PC/SC. %prep %autosetup + +%conf autoreconf --verbose --install %configure prefix=NONE pythondir=%{python3_sitelib} bindir=%{_bindir} diff --git a/anda/tools/warpd/warpd.spec b/anda/tools/warpd/warpd.spec index 8d2c34deb3..e63ce634b5 100644 --- a/anda/tools/warpd/warpd.spec +++ b/anda/tools/warpd/warpd.spec @@ -35,6 +35,6 @@ rm %buildroot/usr/local/bin/warpd %buildroot/usr/local/share/man/man1/warpd* %_mandir/man1/warpd* %changelog -* Thu Jun 15 2023 windowsboy111 - 1.3.5-1 +* Thu Jun 15 2023 madonuko - 1.3.5-1 - Initial package. diff --git a/anda/tools/xcur2png/anda.hcl b/anda/tools/xcur2png/anda.hcl new file mode 100644 index 0000000000..a357557434 --- /dev/null +++ b/anda/tools/xcur2png/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "xcur2png.spec" + } +} diff --git a/anda/tools/xcur2png/update.rhai b/anda/tools/xcur2png/update.rhai new file mode 100644 index 0000000000..c2a27a2089 --- /dev/null +++ b/anda/tools/xcur2png/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("eworm-de/xcur2png")); diff --git a/anda/tools/xcur2png/xcur2png.spec b/anda/tools/xcur2png/xcur2png.spec new file mode 100644 index 0000000000..40f5483acd --- /dev/null +++ b/anda/tools/xcur2png/xcur2png.spec @@ -0,0 +1,40 @@ +%global _distro_extra_cflags -Wno-parenthesis -Wno-implicit-int + +Name: xcur2png +Version: 0.7.1 +Release: 1%{?dist} +License: GPL-3.0-or-later +Summary: Convert X cursors to PNG images +URL: https://github.com/eworm-de/xcur2png +Source: %{url}/releases/download/%{version}/%{name}-%{version}.tar.gz +Packager: Metcya + +BuildRequires: gcc +BuildRequires: make +BuildRequires: pkgconfig(libpng) +BuildRequires: pkgconfig(xcursor) + +%description +xcur2png is a program which let you take PNG image from X cursor, and generate config-file which is reusable by xcursorgen. To put it simply, it is converter from X cursor to PNG image. + +%prep +%autosetup + +%conf +%configure + +%build +%make_build + +%install +%make_install + +%files +%license COPYING +%doc AUTHORS INSTALL NEWS README +%{_bindir}/%{name} +%{_mandir}/man1/%{name}.1.* + +%changelog +* Sat Dec 13 2025 Metcya - 0.7.1 +- package xcur2png diff --git a/anda/tools/yabs/anda.hcl b/anda/tools/yabs/anda.hcl new file mode 100644 index 0000000000..fe046e5f2f --- /dev/null +++ b/anda/tools/yabs/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "yabs.spec" + } +} diff --git a/anda/tools/yabs/update.rhai b/anda/tools/yabs/update.rhai new file mode 100644 index 0000000000..58101f4faa --- /dev/null +++ b/anda/tools/yabs/update.rhai @@ -0,0 +1,5 @@ +rpm.global("commit", gh_commit("masonr/yet-another-bench-script")); +if rpm.changed() { + rpm.release(); + rpm.global("commit_date", date()); +} diff --git a/anda/tools/yabs/yabs.spec b/anda/tools/yabs/yabs.spec new file mode 100644 index 0000000000..ace35373e7 --- /dev/null +++ b/anda/tools/yabs/yabs.spec @@ -0,0 +1,34 @@ +%global commit ba162efb87dd336c1c63853bb2856828b90c79b3 +%global commit_date 20260429 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) + +Name: yabs +Version: 0~%{commit_date}git.%{shortcommit} +Release: 1%{?dist} +Summary: Simple bash script to estimate Linux server performance using fio, iperf3, & Geekbench +URL: https://github.com/masonr/yet-another-bench-script +Source0: %{url}/archive/%{commit}/yet-another-bench-script-%commit.tar.gz +License: WTFPL +Provides: yet-another-bench-script +Packager: Owen Zimmerman +BuildArch: noarch + +%description +%{summary}. + +%prep +%autosetup -n yet-another-bench-script-%{commit} + +%build + +%install +install -Dm755 yabs.sh %{buildroot}%{_bindir}/yabs + +%files +%doc README.md +%license LICENSE +%{_bindir}/yabs + +%changelog +* Fri Apr 03 2026 Owen Zimmerman +- Initial commit diff --git a/anda/tools/yt-dlp-ejs/anda.hcl b/anda/tools/yt-dlp-ejs/anda.hcl new file mode 100644 index 0000000000..daa2763b52 --- /dev/null +++ b/anda/tools/yt-dlp-ejs/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "python-yt-dlp-ejs.spec" + } +} diff --git a/anda/tools/yt-dlp-ejs/python-yt-dlp-ejs.spec b/anda/tools/yt-dlp-ejs/python-yt-dlp-ejs.spec new file mode 100644 index 0000000000..9823c1afa9 --- /dev/null +++ b/anda/tools/yt-dlp-ejs/python-yt-dlp-ejs.spec @@ -0,0 +1,52 @@ +Name: python-yt-dlp-ejs +Version: 0.8.0 +Release: 1%{?dist} +Summary: External JavaScript for yt-dlp supporting many runtimes + +License: Unlicense AND MIT AND ISC +URL: https://github.com/yt-dlp/ejs +Source: %{pypi_source yt_dlp_ejs} +Packager: madonuko + +BuildArch: noarch +BuildRequires: python3-devel +BuildRequires: python3dist(pip) +BuildRequires: python3dist(hatch-vcs) +BuildRequires: (deno or bun or nodejs-npm) + + +%global _description %{expand: +%summary.} + +%description %_description + +%package -n python3-yt-dlp-ejs +Summary: %{summary} +Provides: yt-dlp-ejs = %evr +Requires: (deno or bun or nodejs-npm) + +%description -n python3-yt-dlp-ejs %_description + + +%prep +%autosetup -p1 -n yt_dlp_ejs-%{version} + + +#generate_buildrequires +#pyproject_buildrequires + + +%build +%pyproject_wheel + + +%install +%pyproject_install +%pyproject_save_files -l yt_dlp_ejs + + +%check +%pyproject_check_import + + +%files -n python3-yt-dlp-ejs -f %{pyproject_files} diff --git a/anda/tools/yt-dlp-ejs/update.rhai b/anda/tools/yt-dlp-ejs/update.rhai new file mode 100644 index 0000000000..b79a194753 --- /dev/null +++ b/anda/tools/yt-dlp-ejs/update.rhai @@ -0,0 +1 @@ +rpm.version(find("yt-dlp-ejs==([\\d.]+)", gh_rawfile("yt-dlp/yt-dlp", "master", "pyproject.toml"), 1)); diff --git a/anda/tools/yt-dlp/yt-dlp-git.spec b/anda/tools/yt-dlp/yt-dlp-git.spec index fabaf09a07..4305e879aa 100644 --- a/anda/tools/yt-dlp/yt-dlp-git.spec +++ b/anda/tools/yt-dlp/yt-dlp-git.spec @@ -2,16 +2,15 @@ %global oldpkgname yt-dlp-nightly Name: yt-dlp-git -Version: 2025.10.25.224824 -Release: 1%?dist +Version: 2026.05.05.225442 +Release: 1%{?dist} Summary: A command-line program to download videos from online video platforms License: Unlicense URL: https://github.com/yt-dlp/yt-dlp -# License of the specfile -Source: https://src.fedoraproject.org/rpms/yt-dlp/raw/rawhide/f/yt-dlp.spec.license - BuildArch: noarch +Packager: madonuko +Recommends: (deno or bun or nodejs-npm) BuildRequires: python3-devel BuildRequires: python3dist(hatchling) @@ -31,6 +30,7 @@ BuildRequires: anda-srpm-macros # ffmpeg-free is now available in Fedora. Recommends: /usr/bin/ffmpeg Recommends: /usr/bin/ffprobe +Recommends: yt-dlp-ejs Conflicts: yt-dlp diff --git a/anda/tools/yubikey-touch-detector/anda.hcl b/anda/tools/yubikey-touch-detector/anda.hcl new file mode 100644 index 0000000000..da4fb1c16c --- /dev/null +++ b/anda/tools/yubikey-touch-detector/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "yubikey-touch-detector.spec" + } +} diff --git a/anda/tools/yubikey-touch-detector/update.rhai b/anda/tools/yubikey-touch-detector/update.rhai new file mode 100644 index 0000000000..daea87d7dc --- /dev/null +++ b/anda/tools/yubikey-touch-detector/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("max-baz/yubikey-touch-detector")); diff --git a/anda/tools/yubikey-touch-detector/yubikey-touch-detector.spec b/anda/tools/yubikey-touch-detector/yubikey-touch-detector.spec new file mode 100644 index 0000000000..b887fc18de --- /dev/null +++ b/anda/tools/yubikey-touch-detector/yubikey-touch-detector.spec @@ -0,0 +1,66 @@ +%global goipath github.com/max-baz/yubikey-touch-detector +Version: 1.13.0 + +%gometa + +Name: yubikey-touch-detector +Release: 1%{?dist} +Summary: A tool to detect when your YubiKey is waiting for a touch + +License: ISC +URL: https://github.com/max-baz/yubikey-touch-detector +Source0: %{url}/archive/refs/tags/%{version}.tar.gz + +Packager: metcya + +BuildRequires: go-rpm-macros +BuildRequires: scdoc +BuildRequires: pkgconfig(gpgme) +BuildRequires: systemd-rpm-macros + +%description +This is a tool that can detect when YubiKey is waiting for your touch. It is +designed to be integrated with other UI components to display a visible +indicator. + +%prep +%goprep + +%build +%global gomodulesmode GO111MODULE=on +%gobuild -o %{name} +scdoc < %{name}.1.scd > %{name}.1 + +%install +install -Dm 755 %{name} %{buildroot}%{_bindir}/%{name} +install -Dm 644 %{name}.1 %{buildroot}%{_mandir}/man1/%{name}.1 +install -Dm 644 %{name}.png %{buildroot}%{_hicolordir}/128x128/apps/%{name}.png +install -Dm 644 %{name}.service %{buildroot}%{_userunitdir}/%{name}.service +install -Dm 644 %{name}.socket %{buildroot}%{_userunitdir}/%{name}.socket +install -Dm 644 service.conf.example %{buildroot}%{_sysconfdir}/%{name}/service.conf + +%preun +%systemd_user_preun %{name}.service +%systemd_user_preun %{name}.socket + +%post +%systemd_user_post %{name}.service +%systemd_user_post %{name}.socket + +%postun +%systemd_user_postun %{name}.service +%systemd_user_postun %{name}.socket + +%files +%license LICENSE +%doc README.md +%{_bindir}/%{name} +%{_mandir}/man1/%{name}.1.* +%{_hicolordir}/128x128/apps/%{name}.png +%{_userunitdir}/%{name}.service +%{_userunitdir}/%{name}.socket +%{_sysconfdir}/%{name}/service.conf + +%changelog +* Wed Mar 18 2026 metcya +- Initial package diff --git a/anda/tools/zola/anda.hcl b/anda/tools/zola/anda.hcl new file mode 100644 index 0000000000..0c51df00a0 --- /dev/null +++ b/anda/tools/zola/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "zola.spec" + } +} diff --git a/anda/tools/zola/update.rhai b/anda/tools/zola/update.rhai new file mode 100644 index 0000000000..ac9e75766f --- /dev/null +++ b/anda/tools/zola/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("getzola/zola")); diff --git a/anda/tools/zola/zola.spec b/anda/tools/zola/zola.spec new file mode 100644 index 0000000000..22f09e8f88 --- /dev/null +++ b/anda/tools/zola/zola.spec @@ -0,0 +1,48 @@ +Name: zola +Version: 0.22.1 +Release: 1%?dist +Summary: A fast static site generator in a single binary with everything built-in +URL: https://www.getzola.org +Source0: https://github.com/getzola/%{name}/archive/refs/tags/v%{version}.tar.gz +License: MIT +BuildRequires: cargo anda-srpm-macros cargo-rpm-macros mold glib2 libgcc clang + +Packager: arbormoss + +%description +%summary. + +%prep +%autosetup -n %name-%version +%cargo_prep_online + +%build +%cargo_build +mkdir -p completions +target/rpm/zola completion bash > completions/%{name} +target/rpm/zola completion elvish > completions/%{name}.elv +target/rpm/zola completion fish > completions/%{name}.fish +target/rpm/zola completion zsh > completions/_%{name} + +%install +install -Dm755 target/rpm/zola %{buildroot}%{_bindir}/zola +%cargo_license_summary_online +%{cargo_license_online -a} > LICENSE.dependencies +install -Dpm 0644 completions/%{name} -t %{buildroot}%{bash_completions_dir} +install -Dpm 0644 completions/%{name}.elv -t %{buildroot}%{elvish_completions_dir} +install -Dpm 0644 completions/%{name}.fish -t %{buildroot}%{fish_completions_dir} +install -Dpm 0644 completions/_%{name} -t %{buildroot}%{zsh_completions_dir} + +%files +%doc README.md CHANGELOG.md CONTRIBUTING.md EXAMPLES.md +%license LICENSE +%license LICENSE.dependencies +%{_bindir}/zola +%pkg_completion -Befz %{name} + +%changelog +* Thu Nov 20 2025 arbormoss +- Add Shell Completions + +* Wed Nov 19 2025 arbormoss +- Intial Commit diff --git a/andax/bump_extras.rhai b/andax/bump_extras.rhai index d994f39c3f..63417b27cb 100644 --- a/andax/bump_extras.rhai +++ b/andax/bump_extras.rhai @@ -1,20 +1,43 @@ -fn codeberg_commit(repo) { - return get(`https://codeberg.org/api/v1/repos/${repo}/commits?stat=false&verification=false&files=false&limit=1`).json_arr()[0].sha; +fn alma_vr(pkg, repo, branch) { + if branch.starts_with("el") { + branch.crop(2); + } else if branch.starts_with("f") { + print(`E: alma functions can only be used on el branches`); + terminate(); + } else { + print(`E: unsupported branch: ${labels.branch}`); + terminate(); + } + let majorminor = []; + for matches in find_all(`(${branch}\.[\d]+)/`, get("https://repo.almalinux.org/almalinux/")) { + majorminor += matches[1].parse_float(); + } + majorminor.dedup(); + majorminor.sort(); + let url = get(`https://repo.almalinux.org/almalinux/${majorminor[majorminor.len()-1]}/${repo}/x86_64/os/Packages/`); + let matches = find_all(`${pkg}-([\d.]+)-([\d.]+)\.el${branch}.*?\.rpm`, url); + // ──────── ───── .el?? + // version release + matches.dedup(); + if matches.len() != 0 { + return matches[0]; + } } -fn codeberg(repo) { - return get(`https://codeberg.org/api/v1/repos/${repo}/releases/latest`).json().tag_name; +fn alma(pkg, repo, branch) { + let vr = alma_vr(pkg, repo, branch); + return(vr[1]); } fn as_bodhi_ver(branch) { if branch.starts_with("el") { branch.crop(2); if branch == "10" { - return "EPEL-10.0"; + return "EPEL-10.1"; } return `EPEL-${release}`; } else if branch == "frawhide" { - return "F43"; + return "F45"; } else if branch.starts_with("f") { branch.crop(1); return `F${branch}`; diff --git a/andax/nvidia.rhai b/andax/nvidia.rhai index 03d82bea6a..613181faa3 100644 --- a/andax/nvidia.rhai +++ b/andax/nvidia.rhai @@ -16,3 +16,8 @@ fn nvidia_driver_version() { let driver = get("https://gfwsl.geforce.com/services_toolkit/services/com/nvidia/services/AjaxDriverService.php?func=DriverManualLookup&osID=12&languageCode=1033&numberOfResults=1&beta=0").json().IDS[0].downloadInfo.DisplayVersion; return(driver); } + +fn nvidia_legacy_version() { + let driver = get("https://gfwsl.geforce.com/services_toolkit/services/com/nvidia/services/AjaxDriverService.php?func=DriverManualLookup&osID=12&languageCode=1033&numberOfResults=1&beta=0&release=580").json().IDS[0].downloadInfo.DisplayVersion; + return(driver); +} diff --git a/andax/nvidia_driver_print.rhai b/andax/nvidia_driver_print.rhai index 4882ab2bc3..9cab449bdb 100644 --- a/andax/nvidia_driver_print.rhai +++ b/andax/nvidia_driver_print.rhai @@ -1,3 +1,4 @@ import "andax/nvidia.rhai" as nvidia; -print(nvidia::nvidia_driver_version()); \ No newline at end of file +print(nvidia::nvidia_driver_version()); +print(nvidia::nvidia_legacy_version()); diff --git a/comps.xml b/comps.xml index f342006245..441cd66c10 100644 --- a/comps.xml +++ b/comps.xml @@ -1,4 +1,4 @@ - + @@ -16,7 +16,8 @@ stardust-xr Stardust XR - All Stardust XR packages needed to run the Stardust server + All Stardust XR packages needed to run the Stardust server false true @@ -30,6 +31,7 @@ stardust-xr-non-spatial-input stardust-xr-protostar stardust-xr-server + stardust-xr-solar-sailer stardust-xr-telescope