Compare commits

..

2 Commits

Author SHA1 Message Date
Cappy Ishihara 486e28904c remove duplicate arches 2025-01-05 04:55:36 +07:00
Cappy Ishihara 15c850ff6b mesa: Obsolete freeworld drivers 2025-01-05 04:40:18 +07:00
3051 changed files with 21463 additions and 81365 deletions
+1 -1
View File
@@ -2,7 +2,7 @@
"repoOwner": "terrapkg",
"repoName": "packages",
"resetAuthor": true,
"targetBranchChoices": ["frawhide", "f44", "f43", "f42", "el10"],
"targetBranchChoices": ["f39", "f40", "frawhide"],
"branchLabelMapping": {
"^sync-(.+)$": "$1"
}
+9
View File
@@ -0,0 +1,9 @@
ARG VARIANT="rawhide"
FROM fedora:${VARIANT}
RUN useradd -m vscode
RUN groupadd mock
RUN usermod -aG mock vscode
RUN echo vscode ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/vscode
RUN curl -Lo /etc/yum.repos.d/terra.repo https://raw.githubusercontent.com/terrapkg/subatomic-repos/main/terra.repo
RUN dnf -y install git mock createrepo_c anda terra-mock-configs
+10 -12
View File
@@ -1,20 +1,18 @@
{
"name": "Terra Devcontainer",
"image": "ghcr.io/terrapkg/builder:frawhide",
"runArgs": ["--privileged"],
"features": {
"ghcr.io/devcontainers/features/common-utils:2": {}
"name": "Fedora",
"build": {
"dockerfile": "Dockerfile",
"args": { "VARIANT": "rawhide" }
},
"remoteUser": "vscode",
"runArgs": [
"--privileged"
],
"customizations": {
"vscode": {
"extensions": [
"rhaiscript.vscode-rhai",
"1dot75cm.rpmspec",
"hashicorp.hcl",
"redhat.vscode-xml"
"rhaiscript.vscode-rhai"
]
}
},
"remoteUser": "vscode",
"onCreateCommand": "sudo usermod -a -G mock vscode"
}
}
-67
View File
@@ -1,67 +0,0 @@
name: Package Bug Report
description: Report an issue with a package.
title: "[BUG] "
labels: ["bug", "triage"]
#projects: ["octo-org/1", "octo-org/44"]
assignees:
- hamachitan
#type: bug
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this bug report!
- type: input
id: pkg
attributes:
label: Full 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
@@ -1,14 +1,14 @@
---
name: Incident Report
about: Report an issue with Terra itself
title: '[INCIDENT] '
labels: incident
assignees: ['madonuko', 'korewaChino', 'lleyton']
name: Bug report
about: Report an issue with a package (or Terra itself)
title: '[BUG] '
labels: bug
assignees: ''
---
**Describe the Incident**
A clear and concise description of what is going on. **If you want to report a problem with a package, please use the Package Bug Report option instead.**
**Describe the bug**
A clear and concise description of what the bug is. Please only report issues with packaging or Terra itself, report upstream bugs to the respective project.
**To Reproduce**
Steps to reproduce the behavior:
@@ -23,7 +23,7 @@ If applicable, add screenshots to help explain your problem.
**Affected (please complete the following information):**
- Distro [e.g. Fedora]
- Other relevant environments
- Package [e.g. melody, srpm-macros]
**Additional context**
Add any other context about the problem here.
@@ -6,10 +6,3 @@ 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)).
-8
View File
@@ -1,8 +0,0 @@
version: 2
updates:
# Maintain GitHub Actions
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
open-pull-requests-limit: 5
-180
View File
@@ -1,180 +0,0 @@
// Configure sccache environment variables for GitHub Actions cache integration
//
// This script is still unused until we build terra-sccache with this supported,
// Turns out that Fedora's sccache build has the GHA feature support disabled.
//
// Note: ACTIONS_CACHE_SERVICE_V2 and SCCACHE_GHA_ENABLED are set at workflow level
module.exports = async ({ github, context, core, exec }) => {
// Find sccache path (try which command)
let sccachePath = "/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}`);
}
};
-121
View File
@@ -1,121 +0,0 @@
module.exports = async ({ github, context, core, exec }) => {
if (!exec) {
throw new Error("exec parameter is required but was not provided");
}
// Use SCCACHE_PATH if set, otherwise default to 'sccache' (will use PATH)
const sccachePath = process.env.SCCACHE_PATH || "sccache";
core.debug(`Using sccache path: ${sccachePath}`);
const percentage = (x, y) => Math.round((x / y) * 100 || 0);
const plural = (count, base, pluralForm = base + "s") =>
`${count} ${count === 1 ? base : pluralForm}`;
const sumStats = (stats) =>
Object.values(stats.counts).reduce((acc, val) => acc + val, 0);
const formatDuration = (duration) => {
const ms = duration.nanos / 1e6;
return `${duration.secs}s ${ms}ms`;
};
const formatJsonStats = (stats) => {
const cacheErrorCount = sumStats(stats.stats.cache_errors);
const cacheHitCount = sumStats(stats.stats.cache_hits);
const cacheMissCount = sumStats(stats.stats.cache_misses);
const totalHits = cacheHitCount + cacheMissCount + cacheErrorCount;
const ratio = percentage(cacheHitCount, totalHits);
const writeDuration = formatDuration(stats.stats.cache_write_duration);
const readDuration = formatDuration(stats.stats.cache_read_hit_duration);
const compilerDuration = formatDuration(
stats.stats.compiler_write_duration,
);
const noticeHit = plural(cacheHitCount, "hit");
const noticeMiss = plural(cacheMissCount, "miss", "misses");
const noticeError = plural(cacheErrorCount, "error");
const notice = `${ratio}% - ${noticeHit}, ${noticeMiss}, ${noticeError}`;
const table = [
[{ data: "Cache hit %", header: true }, { data: `${ratio}%` }],
[
{ data: "Cache hits", header: true },
{ data: cacheHitCount.toString() },
],
[
{ data: "Cache misses", header: true },
{ data: cacheMissCount.toString() },
],
[
{ data: "Cache errors", header: true },
{ data: cacheErrorCount.toString() },
],
[
{ data: "Compile requests", header: true },
{ data: stats.stats.compile_requests.toString() },
],
[
{ data: "Requests executed", header: true },
{ data: stats.stats.requests_executed.toString() },
],
[
{ data: "Cache writes", header: true },
{ data: stats.stats.cache_writes.toString() },
],
[
{ data: "Cache write errors", header: true },
{ data: stats.stats.cache_write_errors.toString() },
],
[{ data: "Cache write duration", header: true }, { data: writeDuration }],
[
{ data: "Cache read hit duration", header: true },
{ data: readDuration },
],
[
{ data: "Compiler write duration", header: true },
{ data: compilerDuration },
],
];
return { table, notice };
};
const getOutput = async (command, args = []) => {
core.debug(`get_output: ${command} ${args.join(" ")}`);
const output = await exec.getExecOutput(command, args, {
ignoreReturnCode: false,
silent: false,
});
if (!output.stdout.endsWith("\n")) {
process.stdout.write("\n");
}
return output.stdout.toString();
};
const humanStats = await core.group("Get human-readable stats", async () => {
return getOutput(sccachePath, ["--show-stats"]);
});
const jsonStats = await core.group("Get JSON stats", async () => {
return getOutput(sccachePath, ["--show-stats", "--stats-format=json"]);
});
const stats = JSON.parse(jsonStats);
const formattedStats = formatJsonStats(stats);
core.notice(formattedStats.notice, {
title: `sccache stats - ${context.job}`,
});
core.info("\nFull human-readable stats:");
core.info(humanStats);
core.summary.addHeading("sccache stats", 2);
core.summary.addTable(formattedStats.table);
core.summary.addDetails(
"Full human-readable stats",
"\n\n```\n" + humanStats + "\n```\n\n",
);
core.summary.addDetails(
"Full JSON Stats",
"\n\n```json\n" + JSON.stringify(stats, null, 2) + "\n```\n\n",
);
await core.summary.write();
};
+67 -94
View File
@@ -1,11 +1,6 @@
# for each folder in anda/
# generate a new workflow for each folder in anda/
name: Automatically build packages
permissions:
contents: read
attestations: write
artifact-metadata: write
id-token: write
on:
push:
paths:
@@ -23,7 +18,8 @@ on:
jobs:
manifest:
runs-on: ubuntu-24.04-arm
runs-on: ubuntu-latest
outputs:
build_matrix: ${{ steps.generate_build_matrix.outputs.build_matrix }}
container:
@@ -33,7 +29,7 @@ jobs:
- name: Set workspace as safe
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Generate build matrix
@@ -41,98 +37,75 @@ jobs:
run: anda ci >> $GITHUB_OUTPUT
build:
needs: manifest
uses: ./.github/workflows/json-build.yml
secrets: inherit
with:
packages: ${{ needs.manifest.outputs.build_matrix }}
publish: ${{ github.event_name == 'push' }}
appstream:
needs: build
runs-on: ubuntu-latest
strategy:
matrix:
pkg: ${{ fromJson(needs.manifest.outputs.build_matrix) }}
version: ["rawhide"]
fail-fast: false
runs-on: ${{ matrix.pkg.arch == 'aarch64' && 'ARM64' || matrix.pkg.labels['large'] && 'x86-64-lg' || 'ubuntu-latest' }}
container:
image: ghcr.io/terrapkg/appstream-generator:main
image: ghcr.io/terrapkg/builder:f${{ matrix.version }}
options: --cap-add=SYS_ADMIN --privileged
steps:
- name: Download artifacts
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
- name: Checkout
uses: actions/checkout@v4
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
fetch-depth: 0
- name: Run appstreamcli validate
if: steps.catalog.outcome == 'success'
- name: Set up git repository
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
- name: CI Setup Script
if: ${{ matrix.pkg.labels.mock != '1' }}
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."
dir=$(dirname ${{ matrix.pkg.pkg }})
if [ -f $dir/ci_setup.rhai ]; then
anda run $dir/ci_setup.rhai --labels script_path=$dir/ci_setup.rhai
fi
- name: Report Summary
id: report_summary
if: steps.export_logs.outcome == 'success'
- name: Install Build Dependencies
if: ${{ matrix.pkg.labels.mock != '1' }}
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
dir=$(dirname ${{ matrix.pkg.pkg }})
dnf5 builddep -y ${dir}/*.spec
- name: Build with Andaman
run: anda build ${{ matrix.pkg.pkg }} -c terra-${{ matrix.version }}-${{ matrix.pkg.arch }} ${{ !matrix.pkg.labels.mock == '1' && '-rrpmbuild' || '' }}
- name: Generating artifact name
id: art
run: |
NAME=${{ matrix.pkg.pkg }}-${{ matrix.pkg.arch }}-${{ matrix.version }}
x=${NAME//\//@}
echo "name=$x" >> $GITHUB_OUTPUT
- uses: actions/upload-artifact@v4
with:
name: ${{ steps.art.outputs.name }}
compression-level: 0 # The RPMs are already compressed :p
path: |
anda-build/rpm/rpms/*
anda-build/rpm/srpm/*
- name: Upload packages to subatomic
if: github.event_name == 'push'
run: |
subatomic-cli upload --prune \
--server https://subatomic.fyralabs.com \
--token ${{ secrets.SUBATOMIC_TOKEN }} \
terra${{ matrix.version }}${{ matrix.pkg.labels['extra'] && '-extras' }} anda-build/rpm/rpms/*
- name: Upload source packages to subatomic
if: github.event_name == 'push'
run: |
subatomic-cli upload --prune \
--server https://subatomic.fyralabs.com \
--token ${{ secrets.SUBATOMIC_TOKEN }} \
terra${{ matrix.version }}${{ matrix.pkg.labels['extra'] && '-extras' }}-source anda-build/rpm/srpm/*
- name: Notify Madoguchi (Success)
if: success() && github.event_name == 'push'
run: ./.github/workflows/mg.sh true ${{matrix.pkg.pkg}} ${{matrix.version}} ${{matrix.pkg.arch}} ${{github.run_id}} ${{secrets.MADOGUCHI_JWT}} $GITHUB_SHA
- name: Notify Madoguchi (Failure)
if: ( cancelled() || failure() ) && github.event_name == 'push'
run: ./.github/workflows/mg.sh false ${{matrix.pkg.pkg}} ${{matrix.version}} ${{matrix.pkg.arch}} ${{github.run_id}} ${{secrets.MADOGUCHI_JWT}} $GITHUB_SHA
+14 -42
View File
@@ -1,9 +1,5 @@
name: Bootstrap Andaman and Subatomic
permissions:
contents: read
attestations: write
artifact-metadata: write
id-token: write
on:
workflow_dispatch:
@@ -14,59 +10,42 @@ jobs:
version: ["rawhide"]
arch: ["x86_64", "aarch64"]
fail-fast: true
runs-on: ${{ matrix.arch == 'aarch64' && 'ubuntu-22.04-arm' || 'ubuntu-22.04' }}
runs-on: ${{ matrix.arch == 'aarch64' && 'ARM64' || 'ubuntu-latest' }}
container:
image: registry.fedoraproject.org/fedora-minimal:${{ matrix.version }}
options: --cap-add=SYS_ADMIN --privileged
steps:
- name: Install repositories
run: |
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
dnf5 install -y --setopt=install_weak_deps=False curl wget git-core openssl-devel cargo podman fuse-overlayfs
dnf5 builddep -y anda/terra/{mock-configs,srpm-macros}/*.spec anda/tools/buildsys/{anda,subatomic}/*.spec
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Install Anda
run: cargo install anda
- uses: actions/checkout@v4
with:
ref: f${{ matrix.version }}
fetch-depth: 1
- name: Build anda-srpm-macros
run: |
mkdir -p anda-build/rpm/rpms
rpmbuild -bb anda/terra/srpm-macros/*.spec --undefine=_disable_source_fetch -D "_sourcedir $(pwd)/anda/terra/srpm-macros/" -D "_rpmdir $(pwd)/anda-build/rpm/rpms/"
mv ./anda-build/rpm/rpms/*/anda-*.rpm ./anda-build/rpm/rpms/
dnf5 install -y ./anda-build/rpm/rpms/anda-*.rpm
- name: Install build dependencies
run: dnf5 builddep -y anda/terra/{mock-configs,srpm-macros}/*.spec anda/tools/buildsys/{anda,subatomic}/*.spec
- name: Install Anda
run: |
rpmbuild -bb anda/tools/buildsys/anda/*.spec --undefine=_disable_source_fetch -D "_sourcedir $(pwd)/anda/tools/buildsys/anda/" -D "_rpmdir $(pwd)/anda-build/rpm/rpms/"
mv ./anda-build/rpm/rpms/*/anda-*.rpm ./anda-build/rpm/rpms/
dnf5 install -y ./anda-build/rpm/rpms/anda-*.rpm
- name: Build terra-mock-configs
run: |
echo "PATH=$PATH:/github/home/.cargo/bin" >> $GITHUB_ENV
export PATH=$PATH:/github/home/.cargo/bin
git config --global --add safe.directory "$GITHUB_WORKSPACE"
anda build -D "vendor Terra" -rrpmbuild anda/terra/mock-configs/pkg
anda build -rrpmbuild anda/terra/mock-configs/pkg
- name: Install terra-mock-configs
run: dnf5 install -y anda-build/rpm/rpms/terra-mock-configs*.rpm
- 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 anda-srpm-macros
run: anda build -rrpmbuild anda/terra/srpm-macros/pkg
- name: Build Subatomic
run: anda build -D "vendor Terra" -rrpmbuild anda/tools/buildsys/subatomic/pkg
run: anda build -rrpmbuild anda/tools/buildsys/subatomic/pkg
- name: Install Subatomic
run: dnf5 install -y ./anda-build/rpm/rpms/subatomic-*.rpm
- name: Tidy up output directory
run: rmdir anda-build/rpm/rpms/{noarch,aarch64,x86_64} | true
- name: Build Andaman
run: anda build -rrpmbuild anda/tools/buildsys/anda/pkg
- name: Upload packages to subatomic
run: |
@@ -82,10 +61,3 @@ 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/*
+84 -43
View File
@@ -1,9 +1,4 @@
name: Manual Builds
permissions:
contents: read
attestations: write
artifact-metadata: write
id-token: write
on:
workflow_dispatch:
inputs:
@@ -15,53 +10,99 @@ on:
required: false
default: ""
architecture:
description: "Architectures"
description: "Architecture"
required: false
default: ""
default: all
type: string
run-name: ${{ inputs.packages }}
jobs:
manifest:
parse:
outputs:
build_matrix: ${{ steps.parsing.outputs.build_matrix }}
runs-on: ubuntu-24.04-arm
container:
image: ghcr.io/terrapkg/builder:frawhide
options: --cap-add=SYS_ADMIN --privileged
pkgs: ${{ steps.parsing.outputs.pkgs }}
builder: ${{ inputs.custom_builder }}
arch: ${{ steps.parsing.outputs.arch }}
runs-on: "ubuntu-latest"
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
fetch-depth: 0
- name: Setup Git
run: |
git config --global --add safe.directory "$GITHUB_WORKSPACE"
git config user.name "Raboneko"
git config user.email "raboneko@fyralabs.com"
- name: Parse Input
id: parsing
run: |
for pkg in ${{ inputs.packages }}; do
touch anda/$pkg/.build
done
git add --all
git commit -a -m "tmp"
b=$(anda ci | sed -E 's@^build_matrix=@@')
if [ "${{ inputs.architecture }}" != "" ]; then
# e.g.: [ unique_by(.pkg)[] | (.arch="x86_64", .arch="aarch64") ]
filter=`echo -n "${{ inputs.architecture }}" | tr '[:space:]' '\n' | sed -E '/^$/d; s@^.+$@.arch="\0"@' | tr '\n' ', '`
b=`echo $b | jq -c '[unique_by(.pkg)[] | ('"$filter"')]'`
elif [ "${{ inputs.custom_builder }}" != "" ]; then
b=`echo $b | jq -c 'unique_by(.pkg)'`
echo "${{ inputs.packages }}" | sed 's/ /\n/g' | sed 's/$/\//g' | jq -R . | jq -s . | jq -c . | sed 's/^/pkgs=/' >> $GITHUB_OUTPUT
echo "builder=${{ inputs.custom_builder }}" >> $GITHUB_OUTPUT
arch="${{ inputs.architecture }}"
# Convert to json array using jq
# if arch is not all, convert to array
if [ "$arch" != "all" ]; then
# jq, array with single element as string
arch=$(echo $arch | sed 's/,/\n/g')
echo "arch=$(echo $arch | jq -Rs 'split("\n")' | jq 'map(select(length > 0))' | jq -c .)" >> $GITHUB_OUTPUT
else
echo "arch=$(echo '["aarch64", "x86_64"]' | jq -c .)" >> $GITHUB_OUTPUT
fi
echo "build_matrix=$b" >> $GITHUB_OUTPUT
build:
needs: manifest
uses: ./.github/workflows/json-build.yml
secrets: inherit
with:
packages: ${{ needs.manifest.outputs.build_matrix }}
custom_builder: ${{ inputs.custom_builder }}
needs: parse
strategy:
matrix:
pkg: ${{ fromJson(needs.parse.outputs.pkgs) }}
version: ["rawhide"]
arch: ${{ fromJson(needs.parse.outputs.arch) }}
fail-fast: false
runs-on: ${{ matrix.arch == 'aarch64' && 'ARM64' || needs.parse.outputs.builder && needs.parse.outputs.builder || 'ubuntu-latest' }}
container:
image: ghcr.io/terrapkg/builder:f${{ matrix.version }}
options: --cap-add=SYS_ADMIN --privileged
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up git repository
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
- name: CI Setup Script
run: |
dir=${{ matrix.pkg }}
if [ -f $dir/ci_setup.rhai ]; then
anda run $dir/ci_setup.rhai --labels script_path=$dir/ci_setup.rhai
fi
- name: Build with Andaman
run: anda build -rrpmbuild anda/${{ matrix.pkg }}pkg
- name: Generating artifact name
id: art
run: |
NAME=${{ matrix.pkg }}-${{ matrix.arch }}-${{ matrix.version }}
x=${NAME//\//@}
echo "name=$x" >> $GITHUB_OUTPUT
echo "labels=$(anda run andax/get_proj_label.rhai -l project=anda/${{ matrix.pkg }}anda.hcl)" >> $GITHUB_OUTPUT
- uses: actions/upload-artifact@v4
with:
name: ${{ steps.art.outputs.name }}
compression-level: 0 # The RPMs are already compressed :p
path: |
anda-build/rpm/rpms/*
anda-build/rpm/srpm/*
- name: Upload packages to subatomic
run: |
subatomic-cli upload --prune \
--server https://subatomic.fyralabs.com \
--token ${{ secrets.SUBATOMIC_TOKEN }} \
terra${{ matrix.version }}${{ fromJson(steps.art.outputs.labels)['extra'] && '-extras' }} anda-build/rpm/rpms/*
- name: Upload source packages to subatomic
run: |
subatomic-cli upload --prune \
--server https://subatomic.fyralabs.com \
--token ${{ secrets.SUBATOMIC_TOKEN }} \
terra${{ matrix.version }}${{ fromJson(steps.art.outputs.labels)['extra'] && '-extras' }}-source anda-build/rpm/srpm/*
- name: Notify Madoguchi (Success)
if: success()
run: ./.github/workflows/mg.sh true ${{matrix.pkg}} ${{matrix.version}} ${{matrix.arch}} ${{github.run_id}} ${{secrets.MADOGUCHI_JWT}} $GITHUB_SHA
- name: Notify Madoguchi (Failure)
if: cancelled() || failure()
run: ./.github/workflows/mg.sh false ${{matrix.pkg}} ${{matrix.version}} ${{matrix.arch}} ${{github.run_id}} ${{secrets.MADOGUCHI_JWT}} $GITHUB_SHA
+11 -75
View File
@@ -1,42 +1,10 @@
name: JSON Build
permissions:
contents: read
attestations: write
artifact-metadata: write
id-token: write
on:
workflow_call:
inputs:
packages:
description: "Packages to Build"
required: true
type: string
publish:
description: "Whether the package should be published"
required: false
type: boolean
default: true
custom_builder:
description: "Custom Builder"
required: false
type: string
default: ""
bust_cache:
description: "Whether to bust the cache"
required: false
type: boolean
default: false
workflow_dispatch:
inputs:
packages:
description: "Packages to Build"
required: true
type: string
publish:
description: "Whether the package should be published"
required: false
type: boolean
default: true
jobs:
build:
@@ -45,31 +13,19 @@ 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']) && 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' }}
runs-on: ${{ matrix.pkg.arch == 'aarch64' && 'ARM64' || 'ubuntu-latest' }}
container:
image: ghcr.io/terrapkg/builder:f${{ matrix.version }}
options: --cap-add=SYS_ADMIN --privileged
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
uses: actions/checkout@v4
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: |
@@ -79,21 +35,13 @@ jobs:
fi
- name: Install Build Dependencies
if: ${{ matrix.pkg.labels.mock != '1' }}
if: ${{ !contains(matrix.pkg.labels, 'mock') }}
run: |
dir=$(dirname ${{ matrix.pkg.pkg }})
dnf5 builddep -y ${dir}/*.spec
- name: Build with Andaman
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})
run: anda build ${{ matrix.pkg.pkg }} -c terra-${{ matrix.version }}-${{ matrix.pkg.arch }} ${{ contains(matrix.pkg.labels, 'mock') && '' || '-rrpmbuild' }}
- name: Generating artifact name
id: art
@@ -102,7 +50,7 @@ jobs:
x=${NAME//\//@}
echo "name=$x" >> $GITHUB_OUTPUT
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
- uses: actions/upload-artifact@v4
with:
name: ${{ steps.art.outputs.name }}
compression-level: 0 # The RPMs are already compressed :p
@@ -111,34 +59,22 @@ jobs:
anda-build/rpm/srpm/*
- name: Upload packages to subatomic
if: inputs.publish
run: |
subrepo="${{ matrix.pkg.labels.subrepo }}"
subatomic-cli upload --prune \
--server https://subatomic.fyralabs.com \
--token ${{ secrets.SUBATOMIC_TOKEN }} \
terra${{ matrix.version }}${{ matrix.pkg.labels['subrepo'] && '-$subrepo' || '' }} anda-build/rpm/rpms/*
terra${{ matrix.version }}${{ matrix.pkg.labels['extra'] && '-extras' }} anda-build/rpm/rpms/*
- name: Upload source packages to subatomic
if: inputs.publish && matrix.pkg.labels['no_upload_srpms'] != '1'
run: |
subrepo="${{ matrix.pkg.labels.subrepo }}"
subatomic-cli upload --prune \
--server https://subatomic.fyralabs.com \
--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/*
terra${{ matrix.version }}${{ matrix.pkg.labels['extra'] && '-extras' }}-source 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"
if: success()
run: ./.github/workflows/mg.sh true ${{matrix.pkg.pkg}} ${{matrix.version}} ${{matrix.pkg.arch}} ${{github.run_id}} ${{secrets.MADOGUCHI_JWT}} $GITHUB_SHA
- name: Notify Madoguchi (Failure)
if: inputs.publish && (cancelled() || failure())
run: ./.github/workflows/mg.sh false "${{matrix.pkg.pkg}}" "${{matrix.version}}" "${{matrix.pkg.arch}}" "${{github.run_id}}" "${{secrets.MADOGUCHI_JWT}}" "$GITHUB_SHA"
if: cancelled() || failure()
run: ./.github/workflows/mg.sh false ${{matrix.pkg.pkg}} ${{matrix.version}} ${{matrix.pkg.arch}} ${{github.run_id}} ${{secrets.MADOGUCHI_JWT}} $GITHUB_SHA
+4 -4
View File
@@ -7,14 +7,14 @@ export p="{\"id\":\"$5\",\"ver\":\"%v\",\"rel\":\"%r\",\"arch\":\"$4\",\"dirs\":
if [[ $1 == false ]]; then
d=${p/\%v/?}
d=${d/\%r/?}
curl -H "Authorization: Bearer $6" https://madoguchi.fyralabs.com/ci5/terra$3/builds/f -X PUT -H "Content-Type: application/json" -d "$d" --fail-with-body
curl -H "Authorization: Bearer $6" https://madoguchi.fyralabs.com/ci/terra$3/builds/f -X PUT -H "Content-Type: application/json" -d $d --fail-with-body
exit 0
fi
for f in anda-build/rpm/rpms/*; do
n=$(lesspipe.sh $f | grep -E "Name\s*: " | sed "s@Name\s*: @@" | head -n1)
v=$(lesspipe.sh $f | grep -E "Version\s*: " | sed "s@Version\s*: @@" | head -n1)
r=$(lesspipe.sh $f | grep -E "Release\s*: " | sed "s@Release\s*: @@" | head -n1)
n=$(lesspipe.sh $f | grep -E "Name\s*: " | sed "s@Name\s*: @@")
v=$(lesspipe.sh $f | grep -E "Version\s*: " | sed "s@Version\s*: @@")
r=$(lesspipe.sh $f | grep -E "Release\s*: " | sed "s@Release\s*: @@")
d=${p/\%v/$v}
d=${d/\%r/$r}
curl -H "Authorization: Bearer $6" https://madoguchi.fyralabs.com/ci5/terra$3/builds/$n -X PUT -H "Content-Type: application/json" -d $d --fail-with-body
-78
View File
@@ -1,78 +0,0 @@
# 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@9e0d7b8d25671d64c341c19c0152d693099fb5ba # v4
with:
sarif_file: results.sarif
+3 -7
View File
@@ -1,17 +1,13 @@
name: Automatic backport/sync action
permissions:
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
runs-on: ubuntu-latest
if: github.event.pull_request.merged
steps:
- name: Install SSH signing key
@@ -27,7 +23,7 @@ jobs:
git config --global commit.gpgsign true
- name: Backport Action
uses: sorenlouv/backport-github-action@85813678d776774a19ec5af56bd3a04305946f8a # v12.0.0
uses: sorenlouv/backport-github-action@v9.3.0
with:
github_token: ${{ secrets.RABONEKO_BACKPORT_GITHUB_TOKEN }}
auto_backport_label_prefix: sync-
+5 -10
View File
@@ -1,6 +1,4 @@
name: Update per branch
permissions:
contents: read
on:
schedule:
- cron: "*/30 * * * *"
@@ -8,23 +6,20 @@ on:
jobs:
autoupdate:
permissions:
contents: write
runs-on: ubuntu-24.04-arm
runs-on: ubuntu-latest
strategy:
matrix:
branch:
- frawhide
- f44
- f43
- f42
- f40
- f41
- el10
container:
image: ghcr.io/terrapkg/builder:frawhide
options: --cap-add=SYS_ADMIN --privileged
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
uses: actions/checkout@v4
with:
ref: ${{ matrix.branch }}
fetch-depth: 0
@@ -53,7 +48,7 @@ jobs:
git config user.email "raboneko@fyralabs.com"
git config gpg.format "ssh"
git config user.signingkey "${{ runner.temp }}/signing_key"
msg="bump(branch): $(anda run andax/ci/update_commit_message.rhai)"
msg="bump(branch): $(git status | grep modified | sed -r 's@.+/([^/]+)/[^/]+\n?@\1 @g' | tr -d '\n')"
git commit -S -a -m "$msg"
git push -u origin --all
fi
+4 -7
View File
@@ -1,14 +1,11 @@
name: Push comps updates
permissions:
contents: read
on:
push:
branches:
- frawhide
- f44
- f43
- f42
- f41
- f40
- el10
paths:
- comps.xml
@@ -16,11 +13,11 @@ on:
jobs:
update-comps:
runs-on: ubuntu-24.04-arm
runs-on: ubuntu-latest
container:
image: ghcr.io/terrapkg/builder:frawhide
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: actions/checkout@v4
- name: Push to subatomic
run: |
branch=${{ github.ref_name }}
+5 -10
View File
@@ -1,6 +1,4 @@
name: Nightly Update
permissions:
contents: read
on:
schedule:
- cron: "0 0 * * *"
@@ -8,15 +6,13 @@ on:
jobs:
autoupdate:
permissions:
contents: write
runs-on: ubuntu-24.04-arm
runs-on: ubuntu-latest
container:
image: ghcr.io/terrapkg/builder:frawhide
options: --cap-add=SYS_ADMIN --privileged
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
uses: actions/checkout@v4
with:
fetch-depth: 0
ssh-key: ${{ secrets.SSH_AUTHENTICATION_KEY }}
@@ -41,7 +37,7 @@ jobs:
git config user.email "raboneko@fyralabs.com"
git config gpg.format "ssh"
git config user.signingkey "${{ runner.temp }}/signing_key"
msg="bump(nightly): $(anda run andax/ci/update_commit_message.rhai)"
msg="bump(nightly): $(git status | grep modified | sed -r 's@.+/([^/]+)/[^/]+\n?@\1 @g' | tr -d '\n')"
git commit -S -a -m "$msg"
git format-patch HEAD^
copy_over () {
@@ -50,9 +46,8 @@ jobs:
git add anda
git commit -S -a -m "$msg"
}
copy_over f44 || true
copy_over f43 || true
copy_over f42 || true
copy_over f40 || true
copy_over f41 || true
copy_over el10 || true
git push -u origin --all
fi
+7 -12
View File
@@ -1,22 +1,18 @@
name: Weekly Update
permissions:
contents: read
on:
schedule:
- cron: "0 0 * * *"
- cron: "0 0 * * 0"
workflow_dispatch:
jobs:
autoupdate:
permissions:
contents: write
runs-on: ubuntu-24.04-arm
runs-on: ubuntu-latest
container:
image: ghcr.io/terrapkg/builder:frawhide
options: --cap-add=SYS_ADMIN --privileged
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
uses: actions/checkout@v4
with:
fetch-depth: 0
ssh-key: ${{ secrets.SSH_AUTHENTICATION_KEY }}
@@ -29,7 +25,7 @@ jobs:
git config --global --add safe.directory "$GITHUB_WORKSPACE"
- name: Run Weekly Update
run: anda update --filters weekly=$(date "+%w")
run: anda update --filters weekly=1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
RUST_BACKTRACE: full
@@ -41,7 +37,7 @@ jobs:
git config user.email "raboneko@fyralabs.com"
git config gpg.format "ssh"
git config user.signingkey "${{ runner.temp }}/signing_key"
msg="bump(weekly): $(anda run andax/ci/update_commit_message.rhai)"
msg="bump(weekly): $(git status | grep modified | sed -r 's@.+/([^/]+)/[^/]+\n?@\1 @g' | tr -d '\n')"
git commit -S -a -m "$msg"
git format-patch HEAD^
copy_over () {
@@ -50,9 +46,8 @@ jobs:
git add anda
git commit -S -a -m "$msg"
}
copy_over f44 || true
copy_over f43 || true
copy_over f42 || true
copy_over f40 || true
copy_over f41 || true
copy_over el10 || true
git push -u origin --all
fi
+5 -10
View File
@@ -1,6 +1,4 @@
name: Update
permissions:
contents: read
on:
schedule:
- cron: "*/10 * * * *"
@@ -8,15 +6,13 @@ on:
jobs:
autoupdate:
permissions:
contents: write
runs-on: ubuntu-24.04-arm
runs-on: ubuntu-latest
container:
image: ghcr.io/terrapkg/builder:frawhide
options: --cap-add=SYS_ADMIN --privileged
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
uses: actions/checkout@v4
with:
fetch-depth: 0
ssh-key: ${{ secrets.SSH_AUTHENTICATION_KEY }}
@@ -41,7 +37,7 @@ jobs:
git config user.email "raboneko@fyralabs.com"
git config gpg.format "ssh"
git config user.signingkey "${{ runner.temp }}/signing_key"
msg="bump: $(anda run andax/ci/update_commit_message.rhai)"
msg="bump: $(git status | grep modified | sed -r 's@.+/([^/]+)/[^/]+\n?@\1 @g' | tr -d '\n')"
git commit -S -a -m "$msg"
git format-patch HEAD^
copy_over () {
@@ -50,9 +46,8 @@ jobs:
git add anda
git commit -S -a -m "$msg"
}
copy_over f44 || true
copy_over f43 || true
copy_over f42 || true
copy_over f40 || true
copy_over f41 || true
copy_over el10 || true
git push -u origin --all
fi
-6
View File
@@ -1,8 +1,2 @@
anda-build/
**/*.tar*
**/*.crate
**/*.zip
**/*.minisig
**/*.nupkg
**/*.rpm
**/*.kate-swp
+1 -4
View File
@@ -1,8 +1,5 @@
{
"recommendations": [
"rhaiscript.vscode-rhai",
"1dot75cm.rpmspec",
"hashicorp.hcl",
"redhat.vscode-xml"
"rhaiscript.vscode-rhai"
]
}
-9
View File
@@ -1,9 +0,0 @@
// There is no HCL extension, but the Terraform extension grants HCL support
{
"auto_install_extensions": {
"RPM Spec": true,
"XML": true,
"rhai": true,
"Terraform": true
}
}
+4 -44
View File
@@ -1,22 +1,18 @@
# Terra Sources
[![Repository status](https://repology.org/badge/repository-big/terra_40.svg?header=Terra+40)](https://repology.org/repository/terra_40)
[![Repository status](https://repology.org/badge/repository-big/terra_41.svg?header=Terra+41)](https://repology.org/repository/terra_41)
[![Repository status](https://repology.org/badge/repository-big/terra_rawhide.svg?header=Terra+Rawhide)](https://repology.org/repository/terra_rawhide)
[![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://terrapkg.com).
See the introduction at [our website](https://terra.fyralabs.com).
This monorepo contains the package manifests for all packages in Terra.
## Installation
The latest detailed instructions are available in our Devdocs: https://developer.fyralabs.com/terra/installing
### Fedora
```bash
sudo dnf install --nogpgcheck --repofrompath 'terra,https://repos.fyralabs.com/terra$releasever' terra-release
```
@@ -27,51 +23,15 @@ If you are using immutable/atomic editions of Fedora, run the following commands
curl -fsSL https://github.com/terrapkg/subatomic-repos/raw/main/terra.repo | pkexec tee /etc/yum.repos.d/terra.repo
sudo rpm-ostree install terra-release
```
#### Subrepos
On Fedora, you can optionally install the Terra subrepos. Extra care and caution may be needed as some of these packages may conflict with other repositories such as RPM Fusion.
- Install `terra-release-extras` to enable the Extras subrepo. This repo contains packages which conflict with Fedora packages in some way, such as being a patched version of the same package.
- Install `terra-release-mesa` to install the Mesa subrepo which contains a patched and codec complete Mesa.
- Install `terra-release-nvidia` to install the NVIDIA subrepo which contains NVIDIA drivers.
- Install `terra-release-multimedia` for multimedia packages in Terra. This repository is currently considered a work in progress.
### Enterprise Linux (EL)
Only EL10 is supported. Not all packages available in Terra are available in Terra EL at this time.
Terra EL requires the EPEL repos, which may be installed with:
```bash
sudo dnf install 'https://dl.fedoraproject.org/pub/epel/epel-release-latest-$releasever.noarch.rpm'
```
And Terra EL itself can be installed with:
```bash
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/).
## Searching Packages
[pkgs.org](https://fedora.pkgs.org/rawhide/terra/) and [Repology](https://repology.org/) provide a list of the packages available in Terra.
## Questions?
Feel free to reach out by [joining our community](https://wiki.ultramarine-linux.org/en/community/community/). We're always happy to help!
- [Contribution Guide](https://developer.fyralabs.com/terra/contributing)
- [FAQ](https://developer.fyralabs.com/terra/faq)
- [Guidelines](https://developer.fyralabs.com/terra/guidelines)
- [Policy](https://developer.fyralabs.com/terra/policy)
-74
View File
@@ -1,74 +0,0 @@
Name: ktailctl
Version: 0.21.5
Release: 1%{?dist}
Summary: A GUI to monitor and manage Tailscale on your Linux desktop
License: GPL-3.0-only
URL: https://github.com/f-koehler/KTailctl
Source0: %{url}/archive/refs/tags/v%{version}.tar.gz
BuildRequires: cmake
BuildRequires: extra-cmake-modules
BuildRequires: gcc-c++
BuildRequires: golang
BuildRequires: json-devel
BuildRequires: golang
BuildRequires: kf6-breeze-icons-devel
BuildRequires: kf6-kconfig-devel
BuildRequires: kf6-kcoreaddons-devel
BuildRequires: kf6-kdbusaddons-devel
BuildRequires: kf6-kguiaddons-devel
BuildRequires: kf6-ki18n-devel
BuildRequires: kf6-kirigami-addons-devel
BuildRequires: kf6-kirigami-devel
BuildRequires: kf6-knotifications-devel
BuildRequires: kf6-kwindowsystem-devel
BuildRequires: qt6-qtbase-devel
BuildRequires: qt6-qtdeclarative-devel
BuildRequires: qt6-qtsvg-devel
Requires: tailscale
Requires: kf5-qqc2-desktop-style
Requires: hicolor-icon-theme
Provides: KTailctl
Packager: Owen Zimmerman <owen@fyralabs.com>
%description
%{summary}.
%package static
%pkg_static_files
%prep
%autosetup -n KTailctl-%{version}
cd src/wrapper
go mod vendor
%conf
%cmake
%build
%cmake_build
%install
%cmake_install
%files
%doc README.md
%license LICENSE.txt
%{_bindir}/ktailctl
%{_libdir}/qt6/qml/org/fkoehler/KTailctl/Components/*.qml
%{_libdir}/qt6/qml/org/fkoehler/KTailctl/Components/*.version
%{_libdir}/qt6/qml/org/fkoehler/KTailctl/Components/*.qmltypes
%{_libdir}/qt6/qml/org/fkoehler/KTailctl/Components/qmldir
# Exclusive libs that the package needs to run
%{_libdir}/qt6/qml/org/fkoehler/KTailctl/Components/libktailctl_components.so
%{_libdir}/libktailctl_wrapper_logging.so
%{_appsdir}/org.fkoehler.KTailctl.desktop
%{_scalableiconsdir}/org.fkoehler.KTailctl.svg
%{_metainfodir}/org.fkoehler.KTailctl.metainfo.xml
%changelog
* Sat May 23 2026 Owen Zimmerman <owen@fyralabs.com> - 0.21.5-1
- Initial commit
-5
View File
@@ -1,5 +0,0 @@
project pkg {
rpm {
spec = "KTailctl.spec"
}
}
-1
View File
@@ -1 +0,0 @@
rpm.version(gh("f-koehler/KTailctl"));
-3
View File
@@ -3,7 +3,4 @@ project pkg {
rpm {
spec = "anki-bin.spec"
}
labels {
subrepo = "extras"
}
}
+14 -19
View File
@@ -1,32 +1,29 @@
%global xurl https://files.pythonhosted.org/packages/2b/bc/36972ebb0c09effa41a1dc5f1e9c19b9fd85675cc3196f43559eeb3d0ceb/anki-25.9.4-cp39-abi3-manylinux_2_36_x86_64.whl
%global aurl https://files.pythonhosted.org/packages/cb/8e/42e0a2e8f8e6da78571ff8e79dd65eef1602390d03349839a2f4397fdcb5/anki-25.9.4-cp39-abi3-manylinux_2_36_aarch64.whl
%global qurl https://files.pythonhosted.org/packages/83/a1/a8e8c5bc7dda44c0decfdeb128ca308d65d7beca1a4131230e9abadef439/aqt-25.9.4-py3-none-any.whl
%global xurl https://files.pythonhosted.org/packages/ef/fa/6c86371d0e3b71129d2a79e63fc3fdc17733c9ebbf77345c62caad8c9fca/anki-24.11-cp39-abi3-manylinux_2_28_x86_64.whl
%global aurl https://files.pythonhosted.org/packages/58/6e/9f2d4853a83e57cea48ccae3bc2d887bf7c0550042185e156bab23f524bf/anki-24.11-cp39-abi3-manylinux_2_31_aarch64.whl
%global qurl https://files.pythonhosted.org/packages/40/3c/b70ef91f1dad8248332971c0cbb2922277512789cadc33cb16233e360a56/aqt-24.11-py3-none-any.whl
Name: anki-bin
Version: 25.9.4
Release: 1%{?dist}
Version: 24.11
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/
BuildRequires: python3-pip rpm_macro(fdupes) cargo
Requires: python3-sqlalchemy python3-simplejson python3-matplotlib python3-decorator python3-markdown python3-orjson
Requires: python3-requests python3-pygame python3-beautifulsoup4 python3-httplib2 python3-pyaudio python3-jsonschema
Requires: python3-flask-cors python3-protobuf python3-requests python3-waitress python3-pyqt6-webengine python3-send2trash
Requires: python3-protobuf >= 4.21
Requires: libxcrypt-compat hicolor-icon-theme sox
Requires: (mpv or mpv-nightly)
ExclusiveArch: x86_64
BuildRequires: python3-pip rpm_macro(fdupes) cargo
Requires: python3-sqlalchemy python3-simplejson python3-matplotlib python3-decorator python3-markdown python3-orjson
Requires: python3-requests python3-pygame python3-beautifulsoup4 python3-httplib2 python3-pyaudio python3-jsonschema
Requires: python3-flask-cors python3-protobuf python3-requests python3-waitress python3-pyqt6-webengine python3-send2trash
Requires: libxcrypt-compat hicolor-icon-theme sox mpv
ExclusiveArch: x86_64
Conflicts: anki
%ifarch x86_64
Source0: %xurl
%elifarch aarch64
Source0: %aurl
Source0: %aurl
%endif
Source1: %qurl
Source2: https://raw.githubusercontent.com/ankitects/anki/%{version}/qt/runanki.py
Source3: https://raw.githubusercontent.com/ankitects/anki/%{version}/qt/bundle/lin/anki.desktop
Source4: https://raw.githubusercontent.com/ankitects/anki/%{version}/qt/bundle/lin/anki.png
Source4: https://raw.githubusercontent.com/ankitects/anki/%{version}/qt/bundle/lin/anki.png
Source5: https://raw.githubusercontent.com/ankitects/anki/%{version}/LICENSE
Source6: https://raw.githubusercontent.com/ankitects/anki/%{version}/README.md
@@ -60,8 +57,6 @@ rm -rf %buildroot%_bindir/{distro,flask,jsonschema,markdown_py,normalizer,send2t
%license LICENSE
%doc README.md
%_bindir/anki
%_bindir/pyuic6
%_bindir/pylupdate6
/usr/lib/python*/site-packages/_aqt/
/usr/lib/python*/site-packages/anki-%{version}.dist-info/
/usr/lib/python*/site-packages/anki/
@@ -74,5 +69,5 @@ rm -rf %buildroot%_bindir/{distro,flask,jsonschema,markdown_py,normalizer,send2t
* Fri Nov 10 2023 hazel-bunny <dabiswas112@gmail.com> - 23.10-2
- Add python3-orjson and mpv as dependencies
* Wed Jan 11 2023 madonuko <mado@fyralabs.com> - 2.1.60
* Wed Jan 11 2023 windowsboy111 <windowsboy111@fyralabs.com> - 2.1.60
- Initial package
+3 -3
View File
@@ -1,6 +1,6 @@
Name: anki-qt5
Version: 25.09.4
Release: 1%{?dist}
Version: 24.11
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 madonuko <mado@fyralabs.com> - 2.1.60
* Tue Jan 3 2023 windowsboy111 <windowsboy111@fyralabs.com> - 2.1.60
- Initial package
-3
View File
@@ -3,7 +3,4 @@ project pkg {
rpm {
spec = "anki.spec"
}
labels {
subrepo = "extras"
}
}
+9 -8
View File
@@ -1,16 +1,15 @@
Name: anki
Version: 25.09.4
Release: 1%{?dist}
Version: 24.11
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 <mado@fyralabs.com>
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 cargo git rsync ninja-build libxcrypt-compat nodejs python3.9 python-unversioned-command gcc python3-pyqt6-webengine
BuildRequires: python3-installer make mold 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)
Recommends: mpv
Obsoletes: anki <= 2.1.15
Conflicts: anki-qt5
Patch0: 0001-No-update.patch
@@ -21,7 +20,9 @@ phrases in a foreign language) as easily, quickly and efficiently as possible.
Anki is based on a theory called spaced repetition.
%prep
%git_clone https://github.com/ankitects/anki
rm -rf *
git clone https://github.com/ankitects/anki .
git checkout %{version}
%patch 0 -p1
# See https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=anki
@@ -30,7 +31,7 @@ Anki is based on a theory called spaced repetition.
export RELEASE=1
export PYTHONPATH=%_libdir/python3/dist-packages
cargo update
./tools/build
mold -run ./tools/build
%install
@@ -67,5 +68,5 @@ chmod 755 %{buildroot}%{_bindir}/anki
%changelog
* Tue Jan 3 2023 madonuko <mado@fyralabs.com> - 2.1.60
* Tue Jan 3 2023 windowsboy111 <windowsboy111@fyralabs.com> - 2.1.60
- Initial package
@@ -1,11 +1,8 @@
%global __requires_exclude ^lib-.*.so
%global __provides_exclude ^lib-.*.so
%global ver Audacity-3.7.7
%global sanitized_ver %(echo %{ver} | sed 's/Audacity-//g')
Name: audacity-freeworld
Version: %{sanitized_ver}
Version: Audacity.3.7.1
Release: 1%?dist
Summary: Multitrack audio editor
License: GPLv2
@@ -749,4 +746,4 @@ rm -f %{buildroot}%{_prefix}/%{realname}
- New upstream version 1.2.0-pre3
* Sat Oct 25 2003 Gerard Milmeister <gemi@bluewin.ch> - 0:1.2.0-pre2.fdr.1
- First Fedora release
- First Fedora release
+1 -4
View File
@@ -1,4 +1 @@
rpm.global("ver", gh("audacity/audacity"));
if rpm.changed() {
rpm.release();
}
rpm.version(gh("audacity/audacity"));
@@ -1,5 +1,5 @@
project pkg {
rpm {
spec = "anda.spec"
spec = "authy.spec"
}
}
+54
View File
@@ -0,0 +1,54 @@
%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: authy
Version: 2.5.0
Release: 1%{?dist}
Summary: Two factor authentication desktop application
License: Unlicense
URL: https://authy.com/
Source0: https://api.snapcraft.io/api/v1/snaps/download/H8ZpNgIoPyvmkgxOWw5MSzsXK1wRZiHn_23.snap
Requires: gtk3
Requires: nss
BuildRequires: squashfs-tools desktop-file-utils
%description
%{summary}.
%prep
unsquashfs -q -f -d snap %{SOURCE0}
%build
%install
install -d %buildroot%_datadir/authy
cp -r snap/. %buildroot%_datadir/authy
sed -i 's|${SNAP}/meta/gui/icon.png|authy|g' %buildroot%_datadir/authy/meta/gui/authy.desktop
install -Dm644 %buildroot%_datadir/authy/meta/gui/authy.desktop -t %buildroot%_datadir/applications
install -Dm644 %buildroot%_datadir/authy/meta/gui/icon.png %buildroot%_datadir/pixmaps/authy.png
rm -rf %buildroot%_datadir/authy/{data-dir,gnome-platform,lib,meta,scripts,usr,*.sh}
install -d %buildroot%_bindir
ln -s %_datadir/authy/authy %buildroot%_bindir
%check
desktop-file-validate %buildroot%_datadir/applications/authy.desktop
%files
%_datadir/authy/
%_bindir/authy
%_datadir/applications/authy.desktop
%_datadir/pixmaps/authy.png
%changelog
* Sat Jun 17 2023 windowsboy111 <windowsboy111@fyralabs.com> - 2.3.0-2
- Use /usr/share/ instead of /opt/
* Sat Oct 15 2022 windowsboy111 <windowsboy111@fyralabs.com> - 2.2.1-2
- Initial release
+5
View File
@@ -0,0 +1,5 @@
let req = new_req("https://api.snapcraft.io/v2/snaps/info/authy");
req.head("Snap-Device-Series", "16");
let obj = json(req.get())["channel-map"][0];
rpm.version(obj.version);
rpm.source(0, obj.download.url);
-6
View File
@@ -1,6 +0,0 @@
project pkg {
arches = ["x86_64"]
rpm {
spec = "auto-cpufreq.spec"
}
}
-87
View File
@@ -1,87 +0,0 @@
%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 <owen@fyralabs.com>
%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 <owen@fyralabs.com>
- Add install fix patch
* Sun Apr 05 2026 Owen Zimmerman <owen@fyralabs.com>
- Initial commit
@@ -1,101 +0,0 @@
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:
-1
View File
@@ -1 +0,0 @@
rpm.version(gh("AdnanHodzic/auto-cpufreq"));
-6
View File
@@ -1,6 +0,0 @@
project pkg {
arches = ["x86_64"]
rpm {
spec = "bazzite-portal.spec"
}
}
@@ -1,42 +0,0 @@
Name: bazzite-portal
Version: 0.2.3
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 <xarishark@outlook.com>
%description
%{summary}.
%prep
%autosetup -n yafti-gtk-%{version}
%build
%install
install -Dm 755 yafti_gtk.py %{buildroot}%{_bindir}/yafti_gtk.py
install -Dm 644 io.github.ublue_os.yafti_gtk.desktop %{buildroot}%{_appsdir}/io.github.ublue_os.yafti_gtk.desktop
install -Dm 644 portal.svg %{buildroot}%{_scalableiconsdir}/io.github.ublue_os.yafti_gtk.svg
install -Dm 644 io.github.ublue_os.yafti_gtk.metainfo.xml %{buildroot}%{_metainfodir}/io.github.ublue_os.yafti_gtk.metainfo.xml
%files
%doc README.md
%license LICENSE
%{_bindir}/yafti_gtk.py
%{_appsdir}/io.github.ublue_os.yafti_gtk.desktop
%{_scalableiconsdir}/io.github.ublue_os.yafti_gtk.svg
%{_metainfodir}/io.github.ublue_os.yafti_gtk.metainfo.xml
%changelog
* Sun Apr 19 2026 Xarishark <xarishark@outlook.com>
- Upgraded to GTK4
* Wed Jan 28 2026 Xarishark <xarishark@outlook.com>
- Initial commit
-1
View File
@@ -1 +0,0 @@
rpm.version(gh("ublue-os/yafti-gtk"));
-6
View File
@@ -1,6 +0,0 @@
project pkg {
arches = ["x86_64"]
rpm {
spec = "bitwarden-cli.bin.spec"
}
}
@@ -1,25 +0,0 @@
Name: bitwarden-cli.bin
Version: 2026.4.1
Release: 1%{?dist}
Summary: Bitwarden command-line client
License: GPL-3.0-only
URL: https://bitwarden.com
Source0: https://github.com/bitwarden/clients/releases/download/cli-v%version/bw-oss-linux-%version.zip
Packager: madonuko <mado@fyralabs.com>
Provides: bw
ExclusiveArch: x86_64
BuildRequires: unzip
%description
%summary.
%prep
unzip %{S:0}
%install
install -Dpm755 bw -t %buildroot%_bindir
%files
%_bindir/bw
-5
View File
@@ -1,5 +0,0 @@
let v = gh("bitwarden/clients");
if v.starts_with("cli-v") {
v.crop(5);
rpm.version(v);
}
-8
View File
@@ -1,8 +0,0 @@
project pkg {
rpm {
spec = "bitwarden-cli.spec"
}
labels {
updbranch = 1
}
}
@@ -1,40 +0,0 @@
%define debug_package %nil
%global __strip /bin/true
%ifarch aarch64
%global armsuffix -arm64
%endif
Name: bitwarden-cli
Version: 2026.4.1
Release: 1%{?dist}
Summary: Bitwarden command-line client
License: GPL-3.0-only
URL: https://bitwarden.com
Source0: https://github.com/bitwarden/clients/archive/refs/tags/cli-v%version.tar.gz
Packager: madonuko <mado@fyralabs.com>
Provides: bw
BuildRequires: nodejs-npm
BuildRequires: gcc-c++ gcc make
%description
%summary.
%prep
%autosetup -n clients-cli-v%version
npm i
%build
pushd apps/cli
npm i
npm run dist:oss:lin%?armsuffix
%install
install -Dm755 apps/cli/dist/oss/linux%?armsuffix/bw -t %buildroot%_bindir
%files
%doc README.md SECURITY.md CONTRIBUTING.md
%license LICENSE.txt LICENSE_GPL.txt LICENSE_BITWARDEN.txt
%_bindir/bw
-3
View File
@@ -1,3 +0,0 @@
import "andax/bump_extras.rhai" as bump;
rpm.version(bump::madoguchi("bitwarden-cli.bin", labels.branch));
+5
View File
@@ -0,0 +1,5 @@
project pkg {
rpm {
spec = "blackbox-terminal.spec"
}
}
@@ -0,0 +1,58 @@
Name: blackbox-terminal
Version: 0.14.0
Release: 1%{?dist}
Summary: A beautiful GTK 4 terminal
License: GPL-3.0
URL: https://gitlab.gnome.org/raggesilver/blackbox
BuildRequires: vala meson gettext
BuildRequires: pkgconfig(gtk4) >= 4.6.2
BuildRequires: pkgconfig(gio-2.0) >= 2.50
BuildRequires: libadwaita-devel >= 1.1
BuildRequires: pkgconfig(pqmarble) >= 2
BuildRequires: pkgconfig(vte-2.91-gtk4) >= 0.69.0
BuildRequires: pkgconfig(json-glib-1.0) >= 1.4.4
BuildRequires: pkgconfig(libxml-2.0) >= 2.9.12
BuildRequires: pkgconfig(librsvg-2.0) >= 2.54.0
BuildRequires: pkgconfig(libpcre2-8)
BuildRequires: pkgconfig(graphene-gobject-1.0)
BuildRequires: pkgconfig(gee-0.8)
BuildRequires: desktop-file-utils libappstream-glib cmake
Source0: %url/-/archive/v%version/blackbox-v%version.tar.gz
%description
%{summary}.
%prep
%autosetup -p1 -n blackbox-v%version
%build
%meson
%meson_build
%install
%meson_install
%check
appstream-util validate-relax --nonet %buildroot/%_datadir/metainfo/com.raggesilver.BlackBox.metainfo.xml
%files
%doc README.md
%license COPYING
%_bindir/blackbox
%_bindir/terminal-toolbox
%_datadir/applications/com.raggesilver.BlackBox.desktop
%_datadir/metainfo/com.raggesilver.BlackBox.metainfo.xml
%_datadir/blackbox/
%_datadir/glib-2.0/schemas/com.raggesilver.BlackBox.gschema.xml
%_datadir/icons/hicolor/scalable/actions/com.raggesilver.BlackBox-fullscreen-symbolic.svg
%_datadir/icons/hicolor/scalable/actions/com.raggesilver.BlackBox-show-headerbar-symbolic.svg
%_datadir/icons/hicolor/scalable/actions/external-link-symbolic.svg
%_datadir/icons/hicolor/scalable/actions/settings-symbolic.svg
%_datadir/icons/hicolor/scalable/apps/com.raggesilver.BlackBox.svg
%_datadir/locale/*/LC_MESSAGES/blackbox.mo
%changelog
* Sun Oct 23 2022 windowsboy111 <windowsboy111@fyralabs.com>
- Initial package
+4
View File
@@ -0,0 +1,4 @@
let txt = get("https://gitlab.gnome.org/api/v4/projects/20397/releases/");
let ver = txt.json_arr()[0].tag_name;
ver.crop(1);
rpm.version(ver);
-5
View File
@@ -1,5 +0,0 @@
project pkg {
rpm {
spec = "chdig.spec"
}
}
-35
View File
@@ -1,35 +0,0 @@
%undefine __brp_mangle_shebangs
Name: chdig
Version: 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 <owen@fyralabs.com>
- Intial Commit
-1
View File
@@ -1 +0,0 @@
rpm.version(gh("azat/chdig"));
-5
View File
@@ -1,5 +0,0 @@
project pkg {
rpm {
spec = "chrultrabook-tools.spec"
}
}
@@ -1,74 +0,0 @@
%undefine __brp_mangle_shebangs
Name: chrultrabook-tools
Version: 3.1.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 <owen@fyralabs.com>
- Initial commit
-1
View File
@@ -1 +0,0 @@
rpm.version(gh("death7654/Chrultrabook-Tools"));
+71 -53
View File
@@ -8,93 +8,106 @@ for background device management, as well as a GUI to expertly customize your se
%global __brp_mangle_shebangs %{nil}
Name: coolercontrol
Version: 4.3.1
Release: 1%{?dist}
Version: 1.4.5
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 <mado@fyralabs.com>
Provides: coolercontrol-ui
Provides: coolercontrol-gui
Requires: hicolor-icon-theme
Requires: coolercontrold = %{version}
BuildRequires: pkgconfig(appstream-glib)
Requires: webkit2gtk4.1
Requires: libappindicator-gtk3
Requires: coolercontrold
BuildRequires: git-core make nodejs-npm libdrm-devel curl wget file mold
BuildRequires: systemd-rpm-macros anda-srpm-macros cargo >= 1.75.0 cargo-rpm-macros
BuildRequires: autoconf automake binutils bison flex gcc gcc-c++ gdb libtool pkgconf strace
BuildRequires: pkgconfig(webkit2gtk-4.1) pkgconfig(openssl) pkgconfig(librsvg-2.0)
BuildRequires: libappindicator-gtk3-devel
BuildRequires: python3-devel python3-wheel python3-liquidctl python3-setproctitle python3-fastapi python3-uvicorn python3-pip
BuildRequires: libappstream-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
%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.
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
Requires: coolercontrol-liqctld
%description -n coolercontrold %_desc
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.
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.
%prep
%autosetup
pushd coolercontrold
%cargo_prep_online
%cargo_prep_online &
popd
pushd coolercontrol-ui
npm ci --prefer-offline &
pushd src-tauri
%cargo_prep_online &
popd
popd
wait
%build
pushd coolercontrol-ui
%make_build
popd
pushd coolercontrold
%{cargo_license_online} > LICENSE.dependencies
%{cargo_license_summary_online}
wait
cp -rfp ../coolercontrol-ui/dist/* resources/app/
%{cargo_build} --locked
%{cargo_license_online} > LICENSE.dependencies &
%cargo_build -- &
popd
pushd coolercontrol
%cmake
%cmake_build
pushd coolercontrol-liqctld
%pyproject_wheel
popd
pushd coolercontrol-ui
npm run build &
pushd src-tauri
%{cargo_license_online} > LICENSE.dependencies &
wait
%cargo_build -f custom-protocol
popd
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
popd
pushd coolercontrol/
%cmake_install
pushd coolercontrol-ui/src-tauri
install -Dpm755 target/rpm/coolercontrol %buildroot%_bindir/coolercontrol
install -Dpm644 LICENSE.dependencies %buildroot%_datadir/licenses/%name/LICENSE.dependencies
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-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
install -Dpm644 packaging/metadata/%rdnn.png %buildroot%_iconsdir/hicolor/256x256/apps/%rdnn.svg
for f in packaging/systemd/*.service; do
install -Dpm644 $f %buildroot%_unitdir/$(basename $f)
done
@@ -103,6 +116,7 @@ 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
@@ -114,17 +128,18 @@ 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
%license LICENSE.dependencies
%_bindir/coolercontrol
%_datadir/applications/%rdnn.desktop
%_datadir/metainfo/%rdnn.metainfo.xml
%_iconsdir/hicolor/*/apps/%rdnn.*
%_iconsdir/hicolor/*/apps/%rdnn-alert.*
%_iconsdir/hicolor/*/apps/%rdnn-symbolic.svg
%_iconsdir/hicolor/*/apps/%rdnn-symbolic-alert.svg
%_iconsdir/hicolor/*/apps/%rdnn.svg
%files -n coolercontrold
%doc coolercontrold/README.md
@@ -133,9 +148,12 @@ appstream-util validate-relax --nonet %buildroot%_metainfodir/%rdnn.metainfo.xml
%_bindir/coolercontrold
%_unitdir/coolercontrold.service
%changelog
* Sat Feb 28 2026 Guy Boldon <gb@guyboldon.com> - 3.1.1-2
- Updated dependencies and build to match current version
%files liqctld -f %pyproject_files
%doc coolercontrol-liqctld/README.md
%license LICENSE
%_bindir/coolercontrol-liqctld
%_unitdir/coolercontrol-liqctld.service
%changelog
* Thu Aug 15 2024 madonuko <mado@fyralabs.com> - 1.4.0-1
- Initial package
@@ -6,8 +6,8 @@
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
Name: discord-canary-openasar
Version: 1.0.1140
Release: 1%{?dist}
Version: 0.0.555
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 madonuko <mado@fyralabs.com> - 0.0.146-1
* Wed Jan 18 2023 windowsboy111 <windowsboy111@fyralabs.com> - 0.0.146-1
- Renamed from openasar-canary to discord-canary-openasar
- Fix issues after removing discord-canary package
- Bundle discord-canary
+28 -25
View File
@@ -1,17 +1,20 @@
%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-canary
Version: 1.0.1140
Release: 1%{?dist}
Version: 0.0.555
Release: 1%?dist
Summary: Free Voice and Text Chat for Gamers
URL: discord.com
Source0: https://dl-canary.discordapp.net/apps/linux/%{version}/%{name}-%{version}.tar.gz
Source1: https://discord.com/terms#/terms.html
License: Proprietary
Requires: zenity
Source0: https://dl-canary.discordapp.net/apps/linux/%{version}/discord-canary-%{version}.tar.gz
License: https://discord.com/terms
Requires: glibc GConf2 nspr >= 4.13 nss >= 3.27 libX11 >= 1.6 libXtst >= 1.2
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.
@@ -22,27 +25,27 @@ both your desktop and phone.
%build
%install
install -Dpm755 updater_bootstrap -t %{buildroot}%{_datadir}/%{name}
install -Dpm755 %{name} -t %{buildroot}%{_bindir}
install -Dpm644 discord.png %{buildroot}%{_datadir}/pixmaps/%{name}.png
%desktop_file_install %{name}.desktop
cp %{SOURCE1} -t .
rm -rf $RPM_BUILD_ROOT
mkdir -p %{buildroot}%{_bindir}
mkdir -p %{buildroot}%{_datadir}/discord-canary
cp -rv * %{buildroot}%{_datadir}/discord-canary
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
%files
%license terms.html
%{_bindir}/%{name}
%{_datadir}/%{name}/
%{_appsdir}/%{name}.desktop
%{_datadir}/pixmaps/%{name}.png
%_bindir/discord-canary
%{_datadir}/discord-canary/
%{_datadir}/applications/discord-canary.desktop
%{_datadir}/pixmaps/discord-canary.png
%changelog
* Tue May 5 2026 Gilver E. <roachy@fyralabs.com> - 1.0.1025-2
- Update build for new bootstrap format
* Thu Dec 01 2022 root - 0.0.144-1
- new version
* Thu Nov 17 2022 madonuko <mado@fyralabs.com> - 0.0.143-1
* Thu Nov 17 2022 windowsboy111 <wboy111@outlook.com> - 0.0.143-1
- new version
* Fri Oct 28 2022 root - 0.0.142-1
@@ -57,10 +60,10 @@ cp %{SOURCE1} -t .
* Thu Oct 27 2022 root - 0.0.141-1
- new version
* Wed Oct 19 2022 madonuko <mado@fyralabs.com> - 0.0.140-1
* Wed Oct 19 2022 windowsboy111 <wboy111@outlook.com> - 0.0.140-1
- new version
* Sun Oct 16 2022 madonuko <mado@fyralabs.com> - 0.0.139
* Sun Oct 16 2022 windowsboy111 <wboy111@outlook.com> - 0.0.139
- Repackaged for Terra
* Tue Feb 22 2022 Ultramarine Release Tracking Service - 0.0.133-2
@@ -6,8 +6,8 @@
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
Name: discord-openasar
Version: 1.0.139
Release: 1%{?dist}
Version: 0.0.78
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 madonuko <mado@fyralabs.com> - 0.0.38-1
* Sat Jan 21 2023 windowsboy111 <windowsboy111@fyralabs.com> - 0.0.38-1
- Initial package
@@ -6,8 +6,8 @@
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
Name: discord-ptb-openasar
Version: 1.0.192
Release: 1%{?dist}
Version: 0.0.124
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 madonuko <mado@fyralabs.com> - 0.0.38-1
* Sat Jan 21 2023 windowsboy111 <windowsboy111@fyralabs.com> - 0.0.38-1
- Initial package
+32 -25
View File
@@ -1,17 +1,24 @@
%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-ptb
Version: 1.0.192
Release: 1%{?dist}
Version: 0.0.124
Release: 1%?dist
Summary: Free Voice and Text Chat for Gamers.
URL: https://discord.com
Source0: https://dl-ptb.discordapp.net/apps/linux/%{version}/%{name}-%{version}.tar.gz
Source1: https://discord.com/terms#/terms.html
License: Proprietary
Requires: zenity
Source0: https://dl-ptb.discordapp.net/apps/linux/%{version}/discord-ptb-%{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
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.
@@ -22,28 +29,28 @@ both your desktop and phone.
%build
%install
install -Dpm755 updater_bootstrap -t %{buildroot}%{_datadir}/%{name}
install -Dpm755 %{name} -t %{buildroot}%{_bindir}
install -Dpm644 discord.png %{buildroot}%{_datadir}/pixmaps/%{name}.png
%desktop_file_install %{name}.desktop
cp %{SOURCE1} -t .
rm -rf $RPM_BUILD_ROOT
mkdir -p %{buildroot}%{_bindir}
mkdir -p %{buildroot}%{_datadir}/discord-ptb
cp -rv * %{buildroot}%{_datadir}/discord-ptb
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
%files
%license terms.html
%{_bindir}/%{name}
%{_datadir}/%{name}/
%{_appsdir}/%{name}.desktop
%{_datadir}/pixmaps/%{name}.png
%_bindir/discord-ptb
%{_datadir}/discord-ptb/
%{_datadir}/applications/discord-ptb.desktop
%{_datadir}/pixmaps/discord-ptb.png
%changelog
* Tue May 5 2026 Gilver E. <roachy@fyralabs.com> - 1.0.189-2
- Update build for new bootstrap format
* Thu Nov 17 2022 madonuko <mado@fyralabs.com> - 0.0.35-1
* Thu Nov 17 2022 windowsboy111 <wboy111@outlook.com> - 0.0.35-1
- new version
* Thu Oct 20 2022 madonuko <mado@fyralabs.com> - 0.0.34-1
* Thu Oct 20 2022 windowsboy111 <wboy111@outlook.com> - 0.0.34-1
- new version
* Sun Oct 16 2022 madonuko <mado@fyralabs.com> - 0.0.33
* Sun Oct 16 2022 windowsboy111 <wboy111@outlook.com> - 0.0.33
- Initial Package.
+33 -27
View File
@@ -1,17 +1,24 @@
Name: discord
Version: 1.0.139
Release: 1%{?dist}
Summary: Free Voice and Text Chat for Gamers
URL: https://discord.com
Source0: https://dl.discordapp.net/apps/linux/%{version}/%{name}-%{version}.tar.gz
Source1: https://discord.com/terms#/terms.html
License: Proprietary
Requires: zenity
Group: Applications/Internet
ExclusiveArch: x86_64
%define debug_package %{nil}
%global _build_id_links none
%electronmeta -D
# Exclude private libraries
%global __requires_exclude libffmpeg.so
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
Name: discord
Version: 0.0.78
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
Group: Applications/Internet
ExclusiveArch: x86_64
%description
All-in-one voice and text chat for gamers that's free, secure, and works on
both your desktop and phone.
@@ -22,23 +29,22 @@ both your desktop and phone.
%build
%install
install -Dpm755 updater_bootstrap -t %{buildroot}%{_datadir}/%{name}
install -Dpm755 %{name} -t %{buildroot}%{_bindir}
install -Dpm644 %{name}.png -t %{buildroot}%{_datadir}/pixmaps
%desktop_file_install %{name}.desktop
cp %{SOURCE1} -t .
rm -rf $RPM_BUILD_ROOT
mkdir -p %{buildroot}%{_bindir}
mkdir -p %{buildroot}%{_datadir}/discord
cp -rv * %{buildroot}%{_datadir}/discord
mkdir -p %{buildroot}%{_datadir}/applications/
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
%files
%license terms.html
%{_bindir}/%{name}
%{_datadir}/%{name}/
%{_appsdir}/%{name}.desktop
%{_datadir}/pixmaps/%{name}.png
%_bindir/discord
%{_datadir}/discord/
%{_datadir}/applications/discord.desktop
%{_datadir}/pixmaps/discord.png
%changelog
* Tue May 5 2026 Gilver E. <roachy@fyralabs.com> - 1.0.136-4
- Remove unused files from package
* Mon May 4 2026 Gilver E. <roachy@fyralabs.com> - 1.0.136-2
- Updated /usr/bin symlink
* Thu Jan 19 2023 madonuko <mado@fyralabs.com> - 0.0.143-1
* Thu Jan 19 2023 windowsboy111 <wboy111@outlook.com> - 0.0.143-1
- Initial package
-5
View File
@@ -1,5 +0,0 @@
project pkg {
rpm {
spec = "dorion.spec"
}
}
-63
View File
@@ -1,63 +0,0 @@
%undefine __brp_mangle_shebangs
Name: dorion
Version: 6.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)
URL: https://spikehd.dev/projects/dorion
Source0: https://github.com/SpikeHD/Dorion/archive/refs/tags/v%version.tar.gz
Source1: https://raw.githubusercontent.com/uwu/shelter-builds/main/shelter.js
Packager: madonuko <mado@fyralabs.com>
BuildRequires: pnpm rpm_macro(cargo_install) rust-packaging
BuildRequires: cmake gcc-c++
BuildRequires: pkgconfig(gtk+-3.0)
BuildRequires: pkgconfig(webkit2gtk-web-extension-4.1)
BuildRequires: pkgconfig(openssl)
%description
Dorion is an alternative Discord client aimed towards lower-spec or storage-sensitive PCs that supports themes, plugins, and more!
%prep
%autosetup -n Dorion-%version
pnpm i
cat<<EOF > Dorion.desktop
[Desktop Entry]
Categories=Network;
Exec=Dorion
Icon=Dorion
Name=Dorion
Terminal=false
Type=Application
MimeType=x-scheme-handler/discord
EOF
cd src-tauri
%cargo_prep_online
cp %{S:1} injection/shelter.js
%build
pnpm run build:js
cd src-tauri
cd extension_webkit
%cmake
%cmake_build
cp %__cmake_builddir/libextension.so .
cd ..
%cargo_license_summary_online
%{cargo_license_online} > ../LICENSE.dependencies
%install
install -Dpm655 Dorion.desktop -t %buildroot%_datadir/applications
cd src-tauri
%cargo_install
install -Dpm644 icons/icon.png %buildroot%_iconsdir/hicolor/512x512/apps/Dorion.png
%files
%doc README.md
%license LICENSE LICENSE.dependencies
%_bindir/Dorion
%_iconsdir/hicolor/512x512/apps/Dorion.png
%_datadir/applications/Dorion.desktop
-1
View File
@@ -1 +0,0 @@
rpm.version(gh_rawfile("SpikeHD/Dorion", "main", "package.json").json().version);
+7 -23
View File
@@ -1,61 +1,45 @@
%global commit 5704db300594aef6b7a38399c217eac5c704ccb8
%global commit_date 20260519
%global commit a651b87cc38ab9a208c9272b4f6e5021a1fbfa66
%global commit_date 20250104
%global shortcommit %(c=%{commit}; echo ${c:0:7})
Name: envision-nightly
Name: envision
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
License: AGPL-3.0-or-later
URL: https://gitlab.com/gabmus/envision/
Source0: %url/-/archive/%commit/envision-%commit.tar.gz
BuildRequires: anda-srpm-macros
BuildRequires: cargo
BuildRequires: cargo-rpm-macros
BuildRequires: meson
BuildRequires: ninja-build
BuildRequires: meson ninja-build cargo
BuildRequires: pkgconfig(glib-2.0) >= 2.66
BuildRequires: pkgconfig(gio-2.0) >= 2.66
BuildRequires: pkgconfig(gtk4) >= 4.10.0
BuildRequires: pkgconfig(vte-2.91-gtk4) >= 0.72.0
BuildRequires: pkgconfig(libadwaita-1)
BuildRequires: pkgconfig(libusb-1.0)
BuildRequires: pkgconfig(openssl)
BuildRequires: openssl-devel-engine
BuildRequires: openxr-devel
BuildRequires: libappstream-glib
BuildRequires: desktop-file-utils
BuildRequires: glib2-devel
BuildRequires: git-core
Recommends: android-tools
Conflicts: envision
%description
%summary.
%prep
%autosetup -n envision-%commit
%cargo_prep_online
%build
# generate constants.rs from constants.rs.in
%meson
# skip subdir
sed -E "/^subdir\('src'\)/d" -i meson.build
%meson --reconfigure
%meson_build
%install
%meson_install
%cargo_install
%{cargo_license_online} > LICENSE.dependencies
%files
%doc README.md
%license LICENSE
%license LICENSE.dependencies
%_bindir/envision
%_datadir/applications/org.gabmus.envision.Devel.desktop
%_datadir/envision/
-5
View File
@@ -1,5 +0,0 @@
project pkg {
rpm {
spec = "falcond-gui.spec"
}
}
-54
View File
@@ -1,54 +0,0 @@
%global appid com.pikaos.falcondgui
Name: falcond-gui
Version: 1.0.3
Release: 1%{?dist}
Summary: A GTK4/LibAdwaita application to control and monitor the Falcond gaming optimization daemon
SourceLicense: MIT
License: (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND CC0-1.0 AND ISC AND (MIT OR Apache-2.0) AND MIT AND (Unlicense OR MIT)
URL: https://git.pika-os.com/general-packages/falcond-gui
Source0: %{url}/archive/v%{version}.tar.gz
BuildRequires: anda-srpm-macros
BuildRequires: cargo-rpm-macros
BuildRequires: desktop-file-utils
BuildRequires: gtk4-devel
BuildRequires: libadwaita-devel
BuildRequires: mold
Requires: gtk4
Requires: falcond
Requires: falcond-profiles
Requires: libadwaita
Requires(post): gtk-update-icon-cache
Packager: Gilver E. <roachy@fyralabs.com>
%description
falcond-gui provides a user-friendly graphical interface for managing falcond. It allows users to view the status of the daemon and customize its behavior.
%prep
%autosetup -n %{name}/%{name}
%cargo_prep_online
%build
%install
%cargo_install
%desktop_file_install res/%{appid}.desktop
install -Dm644 res/%{appid}.png -t %{buildroot}%{_hicolordir}/512x512/apps/
%{cargo_license_online} > LICENSE.dependencies
%check
%desktop_file_validate %{buildroot}%{_datadir}/applications/%{appid}.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/%{appid}.png
%{_appsdir}/%{appid}.desktop
%changelog
* Thu Jan 1 2026 Gilver E. <roachy@fyralabs.com> - 1.0.0-1
- Initial package
-1
View File
@@ -1 +0,0 @@
rpm.version(get("https://git.pika-os.com/api/v1/repos/general-packages/falcond-gui/releases").json_arr()[0].tag_name);
+8 -9
View File
@@ -6,15 +6,14 @@
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
Name: feishin
Version: 1.11.0
Release: 1%{?dist}
Version: 0.12.1
Release: 1%?dist
Summary: A modern self-hosted music player
License: GPL-3.0
URL: https://github.com/jeffvli/feishin
Source0: %url/archive/refs/tags/v%version.tar.gz
Requires: fuse mpv
Packager: madonuko <mado@fyralabs.com>
BuildRequires: jq libxcrypt-compat pnpm
BuildRequires: nodejs-npm jq libxcrypt-compat
%description
%summary.
@@ -39,9 +38,9 @@ Keywords=Music;Jellyfin;Audio;Stream;Sonixd
EOF
%build
pnpm i
pnpm run postinstall
pnpm run build
npm install --legacy-peer-deps
npm run postinstall
npm run build
%ifarch x86_64
%define a linux
@@ -49,11 +48,11 @@ pnpm run build
%define a arm64
%endif
pnpm exec electron-builder --linux dir --%a
npx electron-builder --linux dir --%a
%install
mkdir -p %buildroot%_datadir/{pixmaps,applications} %buildroot%_bindir
mv dist/*-unpacked %buildroot%_datadir/feishin
mv release/build/*-unpacked %buildroot%_datadir/feishin
install -Dm644 assets/icons/icon.png %buildroot%_datadir/pixmaps/feishin.png
ln -s %_datadir/feishin/feishin %buildroot%_bindir/feishin
install -Dm644 feishin.desktop %buildroot%_datadir/applications/
-5
View File
@@ -1,5 +0,0 @@
project pkg {
rpm {
spec = "flameshot.qt5.spec"
}
}
-110
View File
@@ -1,110 +0,0 @@
#? https://github.com/terrapkg/packages/pull/5554
#? https://github.com/flameshot-org/flameshot/blob/master/packaging/rpm/fedora/flameshot.spec
%global ver 12.1.0
%global commit 4edfb2ac1d71e7f75fcdcb850ff6bce5fb148a7b
%global shortcommit %{sub %{commit} 1 7}
%global commit_date 20250618
%global devel_name QtColorWidgets
Name: flameshot.qt5
Version: %ver^%{commit_date}git.%shortcommit
Release: 3%?dist
License: GPL-3.0-or-later AND ASL-2.0 AND GPL-2.0-only AND LGPL-3.0-only AND FAL-1.3
Summary: Powerful yet simple to use screenshot software
URL: https://flameshot.org
Source0: https://github.com/flameshot-org/flameshot/archive/%commit/flameshot-%commit.tar.gz
Packager: madonuko <mado@fyralabs.com>
BuildRequires: cmake >= 3.13.0
BuildRequires: gcc-c++ >= 7
BuildRequires: fdupes
BuildRequires: libappstream-glib
BuildRequires: ninja-build
BuildRequires: desktop-file-utils
BuildRequires: cmake(Qt5Core) >= 5.9.0
BuildRequires: cmake(KF5GuiAddons) >= 5.89.0
BuildRequires: cmake(Qt5DBus) >= 5.9.0
BuildRequires: cmake(Qt5Gui) >= 5.9.0
BuildRequires: cmake(Qt5LinguistTools) >= 5.9.0
BuildRequires: cmake(Qt5Network) >= 5.9.0
BuildRequires: cmake(Qt5Svg) >= 5.9.0
BuildRequires: cmake(Qt5Widgets) >= 5.9.0
Requires: hicolor-icon-theme
Requires: qt5-qtbase >= 5.9.0
Requires: qt5-qttools >= 5.9.0
Requires: qt5-qtsvg%{?_isa} >= 5.9.0
%dnl Provides: flameshot = %version-%release
Conflicts: flameshot
Recommends: xdg-desktop-portal%{?_isa}
Recommends: (xdg-desktop-portal-gnome%{?_isa} if gnome-shell%{?_isa})
Recommends: (xdg-desktop-portal-kde%{?_isa} if plasma-workspace-wayland%{?_isa})
Recommends: (xdg-desktop-portal-wlr%{?_isa} if wlroots%{?_isa})
%description
Powerful and simple to use screenshot software with built-in
editor with advanced features.
Features:
* Customizable appearance.
* Easy to use.
* In-app screenshot edition.
* DBus interface.
* Upload to Imgur
%pkg_completion -Bfz flameshot
%package devel
Summary: Flameshot development files
Requires: %{name} = %{version}
%description devel
Development files for Flameshot.
%prep
%autosetup -p1 -n flameshot-%commit
%build
export GIT_HASH=%commit
%cmake -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DUSE_WAYLAND_CLIPBOARD:BOOL=ON \
%cmake_build
%install
%cmake_install
# https://fedoraproject.org/wiki/PackagingDrafts/find_lang
%find_lang Internationalization --with-qt
%fdupes %{buildroot}%{_datadir}/icons
%check
appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/*.metainfo.xml
desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop
%files -f Internationalization.lang
%{_datadir}/flameshot/translations/Internationalization_grc.qm
%doc README.md
%license LICENSE
%dir %{_datadir}/flameshot
%dir %{_datadir}/flameshot/translations
%{_bindir}/flameshot
%{_libdir}/lib%{devel_name}.so.*
%{_datadir}/applications/org.flameshot.Flameshot.desktop
%{_metainfodir}/org.flameshot.Flameshot.metainfo.xml
%{_datadir}/dbus-1/interfaces/org.flameshot.Flameshot.xml
%{_datadir}/dbus-1/services/org.flameshot.Flameshot.service
%{_datadir}/icons/hicolor/*/apps/*.png
%{_datadir}/icons/hicolor/scalable/apps/*.svg
%{_mandir}/man1/flameshot.1*
%files devel
%{_libdir}/lib%{devel_name}.so
%{_libdir}/cmake/%{devel_name}/
%{_libdir}/pkgconfig/%{devel_name}.pc
%{_includedir}/%{devel_name}/
-8
View File
@@ -1,8 +0,0 @@
project pkg {
rpm {
spec = "flameshot-nightly.spec"
}
labels {
nightly = 1
}
}
-102
View File
@@ -1,102 +0,0 @@
#? https://github.com/flameshot-org/flameshot/blob/master/packaging/rpm/fedora/flameshot.spec
%global ver 13.3.0
%global commit 1ee047f1d9b0ca5bc88fcbfd8bea89f0f4d23b43
%global shortcommit %{sub %{commit} 1 7}
%global commit_date 20260521
%global devel_name QtColorWidgets
%global _distro_extra_cflags -fuse-ld=mold
%global _distro_extra_cxxflags -fuse-ld=mold
Name: flameshot.nightly
Version: %ver^%{commit_date}git.%shortcommit
Release: 2%?dist
License: GPL-3.0-or-later AND ASL-2.0 AND GPL-2.0-only AND LGPL-3.0-only AND FAL-1.3
Summary: Powerful yet simple to use screenshot software
URL: https://flameshot.org
Source0: https://github.com/flameshot-org/flameshot/archive/%commit/flameshot-%commit.tar.gz
Packager: madonuko <mado@fyralabs.com>
BuildRequires: cmake >= 3.13.0
BuildRequires: gcc-c++ >= 7
BuildRequires: fdupes
BuildRequires: libappstream-glib
BuildRequires: ninja-build
BuildRequires: desktop-file-utils
BuildRequires: mold
BuildRequires: cmake(Qt6Core) >= 6.0.0
BuildRequires: cmake(KF6GuiAddons) >= 6.7.0
BuildRequires: cmake(Qt6DBus) >= 6.0.0
BuildRequires: cmake(Qt6Gui) >= 6.0.0
BuildRequires: cmake(Qt6LinguistTools) >= 6.0.0
BuildRequires: cmake(Qt6Network) >= 6.0.0
BuildRequires: cmake(Qt6Svg) >= 6.0.0
BuildRequires: cmake(Qt6Widgets) >= 6.0.0
Requires: hicolor-icon-theme
Conflicts: flameshot
Recommends: qt6-qtimageformats
Recommends: xdg-desktop-portal%{?_isa}
Recommends: (xdg-desktop-portal-gnome%{?_isa} if gnome-shell%{?_isa})
Recommends: (xdg-desktop-portal-kde%{?_isa} if plasma-workspace-wayland%{?_isa})
Recommends: (xdg-desktop-portal-wlr%{?_isa} if wlroots%{?_isa})
%description
Powerful and simple to use screenshot software with built-in
editor with advanced features.
Features:
* Customizable appearance.
* Easy to use.
* In-app screenshot edition.
* DBus interface.
%pkg_completion -Bfz flameshot
%package devel
Requires: %{name} = %{version}
%pkg_devel_files
%_libdir/cmake/*/
%package libs
%pkg_libs_files
%package static
%pkg_static_files
%prep
%autosetup -p1 -n flameshot-%commit
%build
export GIT_HASH=%commit
%cmake -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DUSE_WAYLAND_CLIPBOARD:BOOL=ON
%cmake_build
%install
%cmake_install
%find_lang Internationalization --with-qt
%fdupes %{buildroot}%{_datadir}/icons
%check
appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/*.metainfo.xml
desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop
%files -f Internationalization.lang
%doc README.md
%license LICENSE
%dir %{_datadir}/flameshot
%dir %{_datadir}/flameshot/translations
%{_bindir}/flameshot
%{_datadir}/applications/org.flameshot.Flameshot.desktop
%{_metainfodir}/org.flameshot.Flameshot.metainfo.xml
%{_datadir}/dbus-1/interfaces/org.flameshot.Flameshot.xml
%{_datadir}/dbus-1/services/org.flameshot.Flameshot.service
%{_datadir}/icons/hicolor/*/apps/*.png
%{_datadir}/icons/hicolor/scalable/apps/*.svg
%{_mandir}/man1/flameshot.1*
-7
View File
@@ -1,7 +0,0 @@
rpm.global("commit", gh_commit("flameshot-org/flameshot"));
if rpm.changed() {
let v = gh("flameshot-org/flameshot");
v.crop(1);
rpm.global("ver", v);
rpm.global("commit_date", date());
}
-74
View File
@@ -1,74 +0,0 @@
Name: flatpost
Version: 1.2.0
Release: 1%?dist
License: BSD-2-Clause
Summary: Desktop environment agnostic Flathub software center.
URL: https://github.com/gloriouseggroll/flatpost
Source0: %{url}/archive/refs/tags/%{version}.tar.gz
BuildArch: noarch
BuildRequires: python3-devel
BuildRequires: make
BuildRequires: desktop-file-utils
Provides: nobara-updater
# App Deps
Requires: python
Requires: python3
Requires: python3-gobject
Requires: python3-requests
Requires: python3-pillow
Requires: python3-svgwrite
Requires: python3-fonttools
Requires: python3-numpy
Requires: flatpak
Requires: glib2
Requires: gtk3
Requires: gtk4
Requires: xdg-utils
Requires(post): shared-mime-info
Requires(postun): shared-mime-info
Requires(posttrans): shared-mime-info
%description
Desktop environment agnostic Flathub software center. Allows for browsing,
installation, removal, updating, and permission management of flatpak packages and repositories.
%prep
%autosetup -p1
%build
make all DESTDIR=%{buildroot}
%check
desktop-file-validate %{buildroot}%{_datadir}/applications/com.flatpost.flatpostapp.desktop
%post
xdg-icon-resource forceupdate --theme hicolor &>/dev/null
update-mime-database usr/share/mime &>/dev/null
update-desktop-database -q
%postun
xdg-icon-resource forceupdate --theme hicolor &>/dev/null
update-mime-database usr/share/mime &>/dev/null
update-desktop-database -q
%posttrans
xdg-icon-resource forceupdate --theme hicolor &>/dev/null
update-mime-database usr/share/mime &>/dev/null
update-desktop-database -q
%files
%{python3_sitelib}/flatpost/
%{_bindir}/flatpost
%{_datadir}/applications/com.flatpost.flatpostapp.desktop
%{_datadir}/flatpost/collections_data.json
%{_datadir}/icons/hicolor/1024x1024/apps/com.flatpost.flatpostapp.png
%{_datadir}/icons/hicolor/64x64/apps/com.flatpost.flatpostapp.png
%{_datadir}/mime/packages/flatpost.xml
%license %{_datadir}/licenses/flatpost/LICENSE
-3
View File
@@ -1,3 +0,0 @@
let v = gh_rawfile("GloriousEggroll/flatpost", "main", "VERSION.txt");
v.trim();
rpm.version(v);
+10 -7
View File
@@ -1,19 +1,23 @@
%global commit d530f26d60dc105e44fdc8ac7f30a2f667bc1e4f
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global commit_date 20241224
Name: fontviewer
Epoch: 1
Version: 1.2.0
Version: %{commit_date}.git~%{shortcommit}
Release: 1%?dist
Summary: View and install fonts
License: GPL-2.0
URL: https://github.com/chocolateimage/%{name}
Source0: %{url}/archive/v%{version}.tar.gz
Source0: %{url}/archive/%{commit}.tar.gz
BuildRequires: gcc-c++
BuildRequires: meson
BuildRequires: pkgconfig(cairomm-1.0)
BuildRequires: pkgconfig(fontconfig)
BuildRequires: pkgconfig(freetype2)
BuildRequires: pkgconfig(gtk+-3.0)
BuildRequires: pkgconfig(gtkmm-3.0)
BuildRequires: pkgconfig(libcurl)
BuildRequires: json-glib-devel
Requires: gtk3 fontconfig
@@ -23,7 +27,7 @@ Packager: sadlerm <sad_lerm@hotmail.com>
A platform-agnostic GTK+ 3 alternative to GNOME's Font Viewer
%prep
%autosetup
%autosetup -n %{name}-%{commit} -p1
%build
%meson
@@ -37,4 +41,3 @@ A platform-agnostic GTK+ 3 alternative to GNOME's Font Viewer
%doc README.md
%{_bindir}/%{name}
%{_datadir}/applications/%{name}.desktop
%{_datadir}/icons/hicolor/scalable/actions/%{name}-google-symbolic.svg
+5 -4
View File
@@ -1,4 +1,5 @@
rpm.version(gh("chocolateimage/fontviewer"));
if rpm.changed() {
rpm.release();
}
# rpm.global("commit", gh_commit("chocolateimage/fontviewer"));
# if rpm.changed() {
# rpm.release();
# rpm.global("commit_date", date());
# }
-6
View File
@@ -1,6 +0,0 @@
project pkg {
arches = ["x86_64"]
rpm {
spec = "framework-tool-tui.spec"
}
}
@@ -1,53 +0,0 @@
%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 <owen@fyralabs.com>
%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 <owen@fyralabs.com>
- Initial commit
-1
View File
@@ -1 +0,0 @@
rpm.version(gh("grouzen/framework-tool-tui"));
-9
View File
@@ -1,9 +0,0 @@
project pkg {
rpm {
spec = "goofcord-nightly.spec"
}
labels {
mock = 1
nightly = 1
}
}
@@ -1,60 +0,0 @@
%global commit eebb15d3d940823883afa67bf62692874df7f2d1
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global commit_date 20260426
%global ver 2.2.1^
%global base_name goofcord
%global git_name GoofCord
%global appid io.github.milkshiift.GoofCord
Name: %{base_name}-nightly
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
Packager: Gilver E. <roachy@fyralabs.com>
%electronmeta -D
%description
A highly configurable and privacy minded Discord client.
%prep
%autosetup -n %{git_name}-%{commit}
%ifarch %{arm64} armv7l armv7hl armv7hnl
sed -i '/\"x64\",/d' electron-builder.ts
%endif
%build
%bun_build
%install
%electron_install -d %{base_name} -s %{base_name} -b %{base_name} -i %{base_name} -D -O -U %U -E UseOzonePlatform,WaylandWindowDecorations -I
install -Dm644 assetsDev/%{appid}.metainfo.xml -t %{buildroot}%{_metainfodir}
%check
%desktop_file_validate %{buildroot}%{_datadir}/applications/%{base_name}.desktop
%files
%doc README.md
%license LICENSE
%{_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. <rockgrub@disroot.org> - 1.10.1^20250615.git.3f5eda1
- Initial package
-13
View File
@@ -1,13 +0,0 @@
rpm.global("commit", gh_commit("Milkshiift/GoofCord"));
if rpm.changed() {
let v = gh_tag("Milkshiift/GoofCord");
v.crop(1);
if `[\d.]+-beta\.\d+`.find_all(v).len == 1 {
let v = sub(`-beta\.\d+`, `~`, v);
rpm.global("ver", v);
} else {
rpm.global("ver", v + `^`);
}
rpm.global("commit_date", date());
rpm.release();
}
-8
View File
@@ -1,8 +0,0 @@
project pkg {
rpm {
spec = "goofcord.spec"
}
labels {
mock = 1
}
}
-56
View File
@@ -1,56 +0,0 @@
%global git_name GoofCord
%global appid io.github.milkshiift.GoofCord
Name: goofcord
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
Packager: Gilver E. <roachy@fyralabs.com>
%electronmeta -D
%description
A highly configurable and privacy minded Discord client.
%prep
%autosetup -p1 -n %{git_name}-%{version}
%ifarch %{arm64} armv7hl armv7l
sed -i '/\"x64\",/d' electron-builder.ts
%endif
%build
%bun_build
%install
%electron_install -D -O -U %U -E UseOzonePlatform,WaylandWindowDecorations -I
install -Dm644 assetsDev/%{appid}.metainfo.xml -t %{buildroot}%{_metainfodir}
%check
%desktop_file_validate %{buildroot}%{_datadir}/applications/%{name}.desktop
%files
%doc README.md
%license LICENSE
%{_bindir}/%{name}
%{_datadir}/applications/%{name}.desktop
%{_libdir}/%{name}/
%{_metainfodir}/%{appid}.metainfo.xml
%{_hicolordir}/16x16/apps/%{name}.png
%{_hicolordir}/32x32/apps/%{name}.png
%{_hicolordir}/48x48/apps/%{name}.png
%{_hicolordir}/64x64/apps/%{name}.png
%{_hicolordir}/128x128/apps/%{name}.png
%{_hicolordir}/256x256/apps/%{name}.png
%{_hicolordir}/512x512/apps/%{name}.png
%{_hicolordir}/1024x1024/apps/%{name}.png
%changelog
* Sat Jun 28 2025 Gilver E. <rockgrub@disroot.org> - 1.10.1-1
- Initial package
-5
View File
@@ -1,5 +0,0 @@
let v = gh_tag("Milkshiift/GoofCord");
if `[\d.]+-beta\.\d+`.find_all(v).len == 0 {
rpm.version(v);
}
-8
View File
@@ -1,8 +0,0 @@
project pkg {
rpm {
spec = "gurk.spec"
}
labels {
sccache = 0
}
}
-40
View File
@@ -1,40 +0,0 @@
%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 <owen@fyralabs.com>
%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 <owen@fyralabs.com>
- Initial commit
-1
View File
@@ -1 +0,0 @@
rpm.version(gh("boxdot/gurk-rs"));
-5
View File
@@ -1,5 +0,0 @@
project pkg {
rpm {
spec = "halloy.spec"
}
}
-70
View File
@@ -1,70 +0,0 @@
# Generated by rust2rpm 27
%bcond check 1
%global appid org.squidowl.halloy
%global crate halloy
Name: halloy
Version: 2026.6
Release: 1%{?dist}
Summary: An open-source IRC client written in Rust, with the Iced GUI library
Packager: Yoong jin <solomoncyj@gmail.com>
SourceLicense: GPL-3.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 OR MIT) AND BSD-3-Clause) 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-2-Clause OR MIT OR Apache-2.0) AND BSD-3-Clause 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) AND (GPL-3.0+ OR BSD-3-Clause) AND (GPL-3.0-or-later) AND ISC AND (LGPL-3.0-or-later OR MPL-2.0) AND MIT AND (MIT AND (MIT OR Apache-2.0)) AND (MIT OR Apache-2.0) AND ((MIT OR Apache-2.0) AND NCSA) AND ((MIT OR Apache-2.0) AND Unicode-3.0) 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 Zlib) AND (MIT OR Zlib OR Apache-2.0) AND MPL-2.0 AND Unicode-3.0 AND Unlicense AND (Unlicense OR MIT) AND Zlib AND (Zlib OR Apache-2.0 OR MIT)
URL: https://github.com/squidowl/halloy
Source: https://github.com/squidowl/halloy/archive/refs/tags/%{version}.tar.gz
BuildRequires: alsa-lib-devel
BuildRequires: cargo-rpm-macros >= 24
BuildRequires: desktop-file-utils
BuildRequires: openssl-devel
BuildRequires: pkgconfig(xcb)
%description
%{summary}.
%prep
%autosetup -n halloy-%{version} -p1
%cargo_prep_online
%build
%cargo_build
%install
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_online} > LICENSE.dependencies
%if %{with check}
%check
%cargo_test
%endif
%files
%license LICENSE
%license wix/license.rtf
%license LICENSE.dependencies
%doc CHANGELOG.md
%doc README.md
%{_bindir}/halloy
%{_datadir}/applications/%{appid}.desktop
%{_datadir}/metainfo/%{appid}.appdata.xml
%{_iconsdir}/hicolor/16x16/apps/%{appid}.png
%{_iconsdir}/hicolor/24x24/apps/%{appid}.png
%{_iconsdir}/hicolor/32x32/apps/%{appid}.png
%{_iconsdir}/hicolor/48x48/apps/%{appid}.png
%{_iconsdir}/hicolor/64x64/apps/%{appid}.png
%{_iconsdir}/hicolor/96x96/apps/%{appid}.png
%{_iconsdir}/hicolor/128x128/apps/%{appid}.png
%{_iconsdir}/hicolor/256x256/apps/%{appid}.png
%{_iconsdir}/hicolor/512x512/apps/%{appid}.png
%changelog
%autochangelog
-1
View File
@@ -1 +0,0 @@
rpm.version(gh("squidowl/halloy"));
-5
View File
@@ -1,5 +0,0 @@
project pkg {
rpm {
spec = "helium-browser-bin.spec"
}
}

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