Compare commits

..

8 Commits

Author SHA1 Message Date
madomado ee0f88d6f1 Merge branch 'frawhide' into mado/fix/gradle-1 2025-07-16 23:54:36 +08:00
madomado 9ca97a5428 java 17
Signed-off-by: madomado <madonuko@outlook.com>
2025-03-09 15:14:05 +08:00
madomado f4795fddbd try this?
Signed-off-by: madomado <madonuko@outlook.com>
2025-03-02 00:44:06 +08:00
madomado a45ca8e5e3 Update gradle.spec
Signed-off-by: madomado <madonuko@outlook.com>
2025-03-02 00:38:18 +08:00
madomado 33de270f55 the funny
Signed-off-by: madomado <madonuko@outlook.com>
2025-03-01 17:18:17 +08:00
madomado 8ed6d2d798 Update gradle.spec
Signed-off-by: madomado <madonuko@outlook.com>
2025-03-01 16:57:23 +08:00
madomado e3656524cb Update gradle.spec
Signed-off-by: madomado <madonuko@outlook.com>
2025-03-01 16:48:16 +08:00
madomado 86089d2be0 fix(gradle): use java-latest-openjdk
Signed-off-by: madomado <madonuko@outlook.com>
2025-02-25 21:32:40 +08:00
1648 changed files with 11186 additions and 33728 deletions
+1 -1
View File
@@ -2,7 +2,7 @@
"repoOwner": "terrapkg",
"repoName": "packages",
"resetAuthor": true,
"targetBranchChoices": ["frawhide", "f43", "f42", "el10"],
"targetBranchChoices": ["el10", "f41", "f42", "frawhide"],
"branchLabelMapping": {
"^sync-(.+)$": "$1"
}
+4 -5
View File
@@ -1,17 +1,16 @@
{
"name": "Terra Devcontainer",
"image": "ghcr.io/terrapkg/builder:frawhide",
"runArgs": ["--privileged"],
"runArgs": [
"--privileged"
],
"features": {
"ghcr.io/devcontainers/features/common-utils:2": {}
},
"customizations": {
"vscode": {
"extensions": [
"rhaiscript.vscode-rhai",
"1dot75cm.rpmspec",
"hashicorp.hcl",
"redhat.vscode-xml"
"rhaiscript.vscode-rhai"
]
}
},
-63
View File
@@ -1,63 +0,0 @@
name: Package Bug Report
description: Report an issue with a package.
title: "[BUG] "
labels: ["bug", "triage"]
#projects: ["octo-org/1", "octo-org/44"]
assignees:
- hamachitan
#type: bug
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this bug report!
- type: input
id: pkg
attributes:
label: Full Package Name
description: If you report multiple packages, only the main package is needed if applicable, or separate them with spaces otherwise. Obtain the full package name using `rpm -qa pkg-name`.
placeholder: anda-0.4.14-1.fc43.x86_64
validations:
required: true
- type: dropdown
id: releasever
attributes:
label: Release Version
description: Which version of Terra are you using?
options:
- frawhide
- f43
- f42
- el10
default: 1
- type: textarea
id: description
attributes:
label: Describe the Bug
description: A clear and concise description of what the bug is. Please only report issues with packaging or Terra itself, report upstream bugs to the respective project.
placeholder: A bug happened!
validations:
required: true
- type: textarea
id: repro
attributes:
label: To Reproduce
description: How can the bug be reproduced?
placeholder: |
1. `dnf install this-package`
2. run `this-package`
3. see error
validations:
required: true
- type: textarea
id: expect
attributes:
label: Expected Behavior
description: A clear and concise description of what you expected to happen.
placeholder: Running it should show hello world!
- type: textarea
id: logs
attributes:
label: Relevant Log Output
description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
render: shell
@@ -1,14 +1,14 @@
---
name: Incident Report
about: Report an issue with Terra itself
title: '[INCIDENT] '
labels: incident
assignees: ['madonuko', 'korewaChino', 'lleyton']
name: Bug report
about: Report an issue with a package (or Terra itself)
title: '[BUG] '
labels: bug
assignees: ''
---
**Describe the Incident**
A clear and concise description of what is going on. **If you want to report a problem with a package, please use the Package Bug Report option instead.**
**Describe the bug**
A clear and concise description of what the bug is. Please only report issues with packaging or Terra itself, report upstream bugs to the respective project.
**To Reproduce**
Steps to reproduce the behavior:
@@ -23,7 +23,7 @@ If applicable, add screenshots to help explain your problem.
**Affected (please complete the following information):**
- Distro [e.g. Fedora]
- Other relevant environments
- Package [e.g. melody, srpm-macros]
**Additional context**
Add any other context about the problem here.
-172
View File
@@ -1,172 +0,0 @@
// Configure sccache environment variables for GitHub Actions cache integration
//
// This script is still unused until we build terra-sccache with this supported,
// Turns out that Fedora's sccache build has the GHA feature support disabled.
//
// Note: ACTIONS_CACHE_SERVICE_V2 and SCCACHE_GHA_ENABLED are set at workflow level
module.exports = async ({ github, context, core, exec }) => {
// Find sccache path (try which command)
let sccachePath = "sccache";
try {
const result = await exec.getExecOutput("which", ["sccache"], {
ignoreReturnCode: true,
silent: true,
});
if (result.exitCode === 0 && result.stdout.trim()) {
sccachePath = result.stdout.trim();
core.info(`Found sccache at: ${sccachePath}`);
}
} catch (e) {
core.debug(`Could not find sccache path: ${e.message}`);
}
// Check sccache version
try {
const versionResult = await exec.getExecOutput(sccachePath, ["--version"], {
ignoreReturnCode: true,
silent: true,
});
core.info(`sccache version: ${versionResult.stdout.trim()}`);
} catch (e) {
core.warning(`Could not get sccache version: ${e.message}`);
}
// Debug: Show what environment variables are available
core.info("=== Environment Variables Diagnostic ===");
core.info(`SCCACHE_GHA_ENABLED: ${process.env.SCCACHE_GHA_ENABLED}`);
core.info(
`ACTIONS_CACHE_SERVICE_V2: ${process.env.ACTIONS_CACHE_SERVICE_V2}`,
);
core.info(
`ACTIONS_RESULTS_URL: ${process.env.ACTIONS_RESULTS_URL ? "SET (length: " + process.env.ACTIONS_RESULTS_URL.length + ")" : "NOT SET"}`,
);
core.info(
`ACTIONS_RUNTIME_TOKEN: ${process.env.ACTIONS_RUNTIME_TOKEN ? "SET (length: " + process.env.ACTIONS_RUNTIME_TOKEN.length + ")" : "NOT SET"}`,
);
core.info(`RUSTC_WRAPPER: ${process.env.RUSTC_WRAPPER}`);
core.info(`SCCACHE_LOG: ${process.env.SCCACHE_LOG}`);
core.info("========================================");
// Export SCCACHE_PATH so it's available to subsequent steps
core.exportVariable("SCCACHE_PATH", sccachePath);
// Expose the GHA cache related variables to make it easier for users to
// integrate with GHA support (from upstream mozilla/sccache-action)
if (process.env.ACTIONS_RESULTS_URL) {
core.exportVariable("ACTIONS_RESULTS_URL", process.env.ACTIONS_RESULTS_URL);
core.info("✓ Exported ACTIONS_RESULTS_URL");
} else {
core.error(
"ACTIONS_RESULTS_URL is not set - GitHub Actions cache WILL NOT work",
);
}
if (process.env.ACTIONS_RUNTIME_TOKEN) {
core.exportVariable(
"ACTIONS_RUNTIME_TOKEN",
process.env.ACTIONS_RUNTIME_TOKEN,
);
core.info("✓ Exported ACTIONS_RUNTIME_TOKEN");
} else {
core.error(
"ACTIONS_RUNTIME_TOKEN is not set - GitHub Actions cache WILL NOT work",
);
}
// Set cache version and restore keys for this specific build matrix
if (process.env.SCCACHE_GHA_VERSION) {
core.exportVariable("SCCACHE_GHA_VERSION", process.env.SCCACHE_GHA_VERSION);
}
if (process.env.SCCACHE_GHA_CACHE_FROM) {
core.exportVariable(
"SCCACHE_GHA_CACHE_FROM",
process.env.SCCACHE_GHA_CACHE_FROM,
);
}
// Check if cache busting is enabled
const inputs =
(github &&
github.context &&
github.context.payload &&
github.context.payload.inputs) ||
{};
const rawBustCache =
inputs.bust_cache ??
inputs.bustCache ??
process.env.INPUT_BUST_CACHE ??
process.env.BUST_CACHE;
let bustCache = false;
if (typeof rawBustCache === "string") {
const v = rawBustCache.toLowerCase().trim();
bustCache = v === "true" || v === "1" || v === "yes";
} else {
bustCache = !!rawBustCache;
}
if (bustCache) {
core.exportVariable("SCCACHE_RECACHE", "1");
core.info("SCCACHE_RECACHE enabled because bust_cache is true");
}
// Stop any running sccache daemon so it picks up the new environment variables
core.info("Stopping any running sccache daemon to pick up configuration...");
try {
await exec.exec(sccachePath, ["--stop-server"], {
ignoreReturnCode: true,
});
core.info("✓ sccache daemon stopped successfully");
} catch (e) {
core.debug(
`Could not stop sccache daemon (it may not be running): ${e.message}`,
);
}
// Verify sccache can see the GHA environment variables by starting server with explicit env
core.info("Starting sccache server with GHA environment variables...");
const sccacheEnv = {
...process.env,
SCCACHE_GHA_ENABLED: process.env.SCCACHE_GHA_ENABLED || "on",
ACTIONS_CACHE_SERVICE_V2: process.env.ACTIONS_CACHE_SERVICE_V2 || "on",
};
try {
await exec.exec(sccachePath, ["--start-server"], {
ignoreReturnCode: true,
env: sccacheEnv,
});
core.info("✓ sccache server started");
} catch (e) {
core.warning(`Could not start sccache server: ${e.message}`);
}
// Show the current sccache configuration
core.info("Verifying sccache configuration:");
try {
const statsResult = await exec.getExecOutput(
sccachePath,
["--show-stats"],
{
ignoreReturnCode: true,
env: sccacheEnv,
},
);
// Check if it's using GitHub Actions cache
if (statsResult.stdout.includes("GitHub Actions")) {
core.info("✓ sccache is configured to use GitHub Actions cache");
} else if (statsResult.stdout.includes("Local disk")) {
core.error(
"✗ sccache is using Local disk cache instead of GitHub Actions cache!",
);
core.error(
"This means SCCACHE_GHA_ENABLED or required env vars are not being recognized.",
);
core.info("Stats output:");
core.info(statsResult.stdout);
}
} catch (e) {
core.debug(`Could not show sccache stats: ${e.message}`);
}
};
-121
View File
@@ -1,121 +0,0 @@
module.exports = async ({ github, context, core, exec }) => {
if (!exec) {
throw new Error("exec parameter is required but was not provided");
}
// Use SCCACHE_PATH if set, otherwise default to 'sccache' (will use PATH)
const sccachePath = process.env.SCCACHE_PATH || "sccache";
core.debug(`Using sccache path: ${sccachePath}`);
const percentage = (x, y) => Math.round((x / y) * 100 || 0);
const plural = (count, base, pluralForm = base + "s") =>
`${count} ${count === 1 ? base : pluralForm}`;
const sumStats = (stats) =>
Object.values(stats.counts).reduce((acc, val) => acc + val, 0);
const formatDuration = (duration) => {
const ms = duration.nanos / 1e6;
return `${duration.secs}s ${ms}ms`;
};
const formatJsonStats = (stats) => {
const cacheErrorCount = sumStats(stats.stats.cache_errors);
const cacheHitCount = sumStats(stats.stats.cache_hits);
const cacheMissCount = sumStats(stats.stats.cache_misses);
const totalHits = cacheHitCount + cacheMissCount + cacheErrorCount;
const ratio = percentage(cacheHitCount, totalHits);
const writeDuration = formatDuration(stats.stats.cache_write_duration);
const readDuration = formatDuration(stats.stats.cache_read_hit_duration);
const compilerDuration = formatDuration(
stats.stats.compiler_write_duration,
);
const noticeHit = plural(cacheHitCount, "hit");
const noticeMiss = plural(cacheMissCount, "miss", "misses");
const noticeError = plural(cacheErrorCount, "error");
const notice = `${ratio}% - ${noticeHit}, ${noticeMiss}, ${noticeError}`;
const table = [
[{ data: "Cache hit %", header: true }, { data: `${ratio}%` }],
[
{ data: "Cache hits", header: true },
{ data: cacheHitCount.toString() },
],
[
{ data: "Cache misses", header: true },
{ data: cacheMissCount.toString() },
],
[
{ data: "Cache errors", header: true },
{ data: cacheErrorCount.toString() },
],
[
{ data: "Compile requests", header: true },
{ data: stats.stats.compile_requests.toString() },
],
[
{ data: "Requests executed", header: true },
{ data: stats.stats.requests_executed.toString() },
],
[
{ data: "Cache writes", header: true },
{ data: stats.stats.cache_writes.toString() },
],
[
{ data: "Cache write errors", header: true },
{ data: stats.stats.cache_write_errors.toString() },
],
[{ data: "Cache write duration", header: true }, { data: writeDuration }],
[
{ data: "Cache read hit duration", header: true },
{ data: readDuration },
],
[
{ data: "Compiler write duration", header: true },
{ data: compilerDuration },
],
];
return { table, notice };
};
const getOutput = async (command, args = []) => {
core.debug(`get_output: ${command} ${args.join(" ")}`);
const output = await exec.getExecOutput(command, args, {
ignoreReturnCode: false,
silent: false,
});
if (!output.stdout.endsWith("\n")) {
process.stdout.write("\n");
}
return output.stdout.toString();
};
const humanStats = await core.group("Get human-readable stats", async () => {
return getOutput(sccachePath, ["--show-stats"]);
});
const jsonStats = await core.group("Get JSON stats", async () => {
return getOutput(sccachePath, ["--show-stats", "--stats-format=json"]);
});
const stats = JSON.parse(jsonStats);
const formattedStats = formatJsonStats(stats);
core.notice(formattedStats.notice, {
title: `sccache stats - ${context.job}`,
});
core.info("\nFull human-readable stats:");
core.info(humanStats);
core.summary.addHeading("sccache stats", 2);
core.summary.addTable(formattedStats.table);
core.summary.addDetails(
"Full human-readable stats",
"\n\n```\n" + humanStats + "\n```\n\n",
);
core.summary.addDetails(
"Full JSON Stats",
"\n\n```json\n" + JSON.stringify(stats, null, 2) + "\n```\n\n",
);
await core.summary.write();
};
+70 -64
View File
@@ -20,7 +20,7 @@ on:
jobs:
manifest:
runs-on: ubuntu-24.04-arm
runs-on: ubuntu-22.04
outputs:
build_matrix: ${{ steps.generate_build_matrix.outputs.build_matrix }}
container:
@@ -30,7 +30,7 @@ jobs:
- name: Set workspace as safe
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
- name: Checkout
uses: actions/checkout@v6
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Generate build matrix
@@ -38,71 +38,77 @@ 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' && matrix.pkg.labels['large']) && 'arm64-lg' || matrix.pkg.arch == 'aarch64' && 'ubuntu-22.04-arm' || matrix.pkg.labels['large'] && 'x86-64-lg' || 'ubuntu-22.04' }}
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@v7
- name: Checkout
uses: actions/checkout@v4
with:
merge-multiple: true
path: ./artifacts
- name: Generate test catalog
# run appstream-builder, then add step summary
run: |
set -x
appstream-builder -v \
--packages-dir=artifacts/rpms \
--icons-dir=icons \
--include-failed \
--output-dir=output \
--uncompressed-icons \
--origin=test \
--basename=test \
--veto-ignore=missing-parents \
--veto-ignore=missing-info 2>&1 | tee asb.log
- name: Export logs
id: export_logs
run: |
echo "## AppStream Builder Log" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo '```log' >> $GITHUB_STEP_SUMMARY
cat asb.log >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
echo '---' >> $GITHUB_STEP_SUMMARY
fetch-depth: 0
- name: Report Summary
id: report_summary
- 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: |
echo "## AppStream Builder Report" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
if grep -q "veto" asb.log; then
echo "::group::Vetoed packages"
echo "### Vetoed packages" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo '```xml' >> $GITHUB_STEP_SUMMARY
echo "$(grep -i 'veto' asb.log)" >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
echo "::warning file=asb.log::Some packages were vetoed during AppStream generation. Please review the 'Vetoed packages' section in the summary for details."
echo "::endgroup::"
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
echo "## Full Data Summary" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "### Generated Appstream files:" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
for file in output/*.xml.gz; do
echo "#### \`$file\`" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo '```xml' >> $GITHUB_STEP_SUMMARY
zcat "$file" >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
done
- name: Install Build Dependencies
if: ${{ matrix.pkg.labels.mock != '1' }}
run: |
dir=$(dirname ${{ matrix.pkg.pkg }})
dnf5 builddep -y ${dir}/*.spec
- name: Build with Andaman
run: anda build ${{ matrix.pkg.pkg }} -D "vendor Terra" -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: |
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/*
- name: Upload source packages to subatomic
if: github.event_name == 'push' && 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: 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"
+1 -1
View File
@@ -21,7 +21,7 @@ jobs:
dnf5 swap -y --setopt=install_weak_deps=False systemd-standalone-sysusers systemd
dnf5 install -y --setopt=install_weak_deps=False curl wget git-core openssl-devel cargo podman fuse-overlayfs dnf5-plugins rpmbuild script
- uses: actions/checkout@v6
- uses: actions/checkout@v4
with:
ref: f${{ matrix.version }}
fetch-depth: 1
+80 -38
View File
@@ -12,53 +12,95 @@ 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-22.04
steps:
- name: Checkout
uses: actions/checkout@v6
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' && 'ubuntu-22.04-arm' || needs.parse.outputs.builder && needs.parse.outputs.builder || 'ubuntu-22.04' }}
container:
image: ghcr.io/terrapkg/builder:f${{ matrix.version }}
options: --cap-add=SYS_ADMIN --privileged
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up git repository
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
- name: Build with Andaman
run: anda build -D "vendor Terra" -c terra-${{ matrix.version }}-${{ matrix.arch }} 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: |
subrepo="${{ fromJson(steps.art.outputs.labels).subrepo }}"
subatomic-cli upload --prune \
--server https://subatomic.fyralabs.com \
--token ${{ secrets.SUBATOMIC_TOKEN }} \
terra${{ matrix.version }}${{ fromJson(steps.art.outputs.labels)['subrepo'] && '-$subrepo' }} anda-build/rpm/rpms/*
- name: Upload source packages to subatomic
if: fromJson(steps.art.outputs.labels)['no_upload_srpms'] != '1'
run: |
subrepo="${{ fromJson(steps.art.outputs.labels).subrepo }}"
subatomic-cli upload --prune \
--server https://subatomic.fyralabs.com \
--token ${{ secrets.SUBATOMIC_TOKEN }} \
terra${{ matrix.version }}${{ fromJson(steps.art.outputs.labels)['subrepo'] && '-$subrepo' }}-source anda-build/rpm/srpm/*
- name: Notify Madoguchi (Success)
if: success()
run: ./.github/workflows/mg.sh true "anda/${{matrix.pkg}}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 "anda/${{matrix.pkg}}pkg" "${{matrix.version}}" "${{matrix.arch}}" "${{github.run_id}}" "${{secrets.MADOGUCHI_JWT}}" "$GITHUB_SHA"
+7 -54
View File
@@ -2,44 +2,11 @@ name: JSON Build
permissions:
contents: read
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
env:
RUSTC_WRAPPER: sccache
# SCCACHE_NO_DAEMON: "1"
# Disable incremental compilation so sccache works better
CARGO_INCREMENTAL: "false"
jobs:
build:
@@ -48,13 +15,13 @@ jobs:
pkg: ${{ fromJson(inputs.packages) }}
version: ["rawhide"]
fail-fast: false
runs-on: ${{ inputs.custom_builder && inputs.custom_builder || (matrix.pkg.arch == 'aarch64' && matrix.pkg.labels['large']) && 'arm64-lg' || matrix.pkg.arch == 'aarch64' && 'ubuntu-22.04-arm' || matrix.pkg.labels['large'] && format('cirun-x86-64-lg--{0}', github.run_id) || 'ubuntu-22.04' }}
runs-on: ${{ (matrix.pkg.arch == 'aarch64' && matrix.pkg.labels['large']) && 'arm64-lg' || matrix.pkg.arch == 'aarch64' && 'ubuntu-22.04-arm' || matrix.pkg.labels['large'] && 'x86-64-lg' || 'ubuntu-22.04' }}
container:
image: ghcr.io/terrapkg/builder:f${{ matrix.version }}
options: --cap-add=SYS_ADMIN --privileged
steps:
- name: Checkout
uses: actions/checkout@v6
uses: actions/checkout@v4
with:
fetch-depth: 0
@@ -75,19 +42,6 @@ jobs:
dir=$(dirname ${{ matrix.pkg.pkg }})
dnf5 builddep -y ${dir}/*.spec
- name: Run sccache-cache
uses: mozilla-actions/sccache-action@v0.0.9
- name: Configure sccache
run: |
set -euo pipefail
echo "SCCACHE_GHA_ENABLED=true" >> $GITHUB_ENV
if [ "${{ inputs.bust_cache }}" = "true" ]; then
echo "SCCACHE_BUST_CACHE=true" >> $GITHUB_ENV
fi
- name: Build with Andaman
run: anda build -D "vendor Terra" ${{ matrix.pkg.pkg }} -c terra-${{ matrix.version }}-${{ matrix.pkg.arch }} ${{ !matrix.pkg.labels.mock == '1' && '-rrpmbuild' || '' }}
@@ -98,7 +52,7 @@ jobs:
x=${NAME//\//@}
echo "name=$x" >> $GITHUB_OUTPUT
- uses: actions/upload-artifact@v6
- uses: actions/upload-artifact@v4
with:
name: ${{ steps.art.outputs.name }}
compression-level: 0 # The RPMs are already compressed :p
@@ -107,7 +61,6 @@ jobs:
anda-build/rpm/srpm/*
- name: Upload packages to subatomic
if: inputs.publish
run: |
subrepo="${{ matrix.pkg.labels.subrepo }}"
subatomic-cli upload --prune \
@@ -116,7 +69,7 @@ jobs:
terra${{ matrix.version }}${{ matrix.pkg.labels['subrepo'] && '-$subrepo' || '' }} anda-build/rpm/rpms/*
- name: Upload source packages to subatomic
if: inputs.publish && matrix.pkg.labels['no_upload_srpms'] != '1'
if: matrix.pkg.labels['no_upload_srpms'] != '1'
run: |
subrepo="${{ matrix.pkg.labels.subrepo }}"
subatomic-cli upload --prune \
@@ -125,8 +78,8 @@ jobs:
terra${{ matrix.version }}${{ matrix.pkg.labels['subrepo'] && '-$subrepo' || '' }}-source anda-build/rpm/srpm/*
- name: Notify Madoguchi (Success)
if: inputs.publish && success()
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"
+1 -1
View File
@@ -25,7 +25,7 @@ jobs:
git config --global commit.gpgsign true
- name: Backport Action
uses: sorenlouv/backport-github-action@v10.2.0
uses: sorenlouv/backport-github-action@v9.5.1
with:
github_token: ${{ secrets.RABONEKO_BACKPORT_GITHUB_TOKEN }}
auto_backport_label_prefix: sync-
+3 -3
View File
@@ -8,12 +8,12 @@ on:
jobs:
autoupdate:
runs-on: ubuntu-24.04-arm
runs-on: ubuntu-22.04
strategy:
matrix:
branch:
- frawhide
- f43
- f41
- f42
- el10
container:
@@ -21,7 +21,7 @@ jobs:
options: --cap-add=SYS_ADMIN --privileged
steps:
- name: Checkout
uses: actions/checkout@v6
uses: actions/checkout@v4
with:
ref: ${{ matrix.branch }}
fetch-depth: 0
+3 -3
View File
@@ -6,8 +6,8 @@ on:
push:
branches:
- frawhide
- f43
- f42
- f41
- el10
paths:
- comps.xml
@@ -15,11 +15,11 @@ on:
jobs:
update-comps:
runs-on: ubuntu-24.04-arm
runs-on: ubuntu-22.04
container:
image: ghcr.io/terrapkg/builder:frawhide
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v4
- name: Push to subatomic
run: |
branch=${{ github.ref_name }}
+3 -3
View File
@@ -8,13 +8,13 @@ on:
jobs:
autoupdate:
runs-on: ubuntu-24.04-arm
runs-on: ubuntu-22.04
container:
image: ghcr.io/terrapkg/builder:frawhide
options: --cap-add=SYS_ADMIN --privileged
steps:
- name: Checkout
uses: actions/checkout@v6
uses: actions/checkout@v4
with:
fetch-depth: 0
ssh-key: ${{ secrets.SSH_AUTHENTICATION_KEY }}
@@ -48,7 +48,7 @@ jobs:
git add anda
git commit -S -a -m "$msg"
}
copy_over f43 || true
copy_over f41 || true
copy_over f42 || true
copy_over el10 || true
git push -u origin --all
+3 -3
View File
@@ -8,13 +8,13 @@ on:
jobs:
autoupdate:
runs-on: ubuntu-24.04-arm
runs-on: ubuntu-22.04
container:
image: ghcr.io/terrapkg/builder:frawhide
options: --cap-add=SYS_ADMIN --privileged
steps:
- name: Checkout
uses: actions/checkout@v6
uses: actions/checkout@v4
with:
fetch-depth: 0
ssh-key: ${{ secrets.SSH_AUTHENTICATION_KEY }}
@@ -48,7 +48,7 @@ jobs:
git add anda
git commit -S -a -m "$msg"
}
copy_over f43 || true
copy_over f41 || true
copy_over f42 || true
copy_over el10 || true
git push -u origin --all
+3 -3
View File
@@ -8,13 +8,13 @@ on:
jobs:
autoupdate:
runs-on: ubuntu-24.04-arm
runs-on: ubuntu-22.04
container:
image: ghcr.io/terrapkg/builder:frawhide
options: --cap-add=SYS_ADMIN --privileged
steps:
- name: Checkout
uses: actions/checkout@v6
uses: actions/checkout@v4
with:
fetch-depth: 0
ssh-key: ${{ secrets.SSH_AUTHENTICATION_KEY }}
@@ -48,7 +48,7 @@ jobs:
git add anda
git commit -S -a -m "$msg"
}
copy_over f43 || true
copy_over f41 || true
copy_over f42 || true
copy_over el10 || true
git push -u origin --all
-4
View File
@@ -2,7 +2,3 @@ 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
}
}
+3 -15
View File
@@ -1,5 +1,7 @@
# Terra Sources
[![Repository status](https://repology.org/badge/repository-big/terra_40.svg?header=Terra+40)](https://repology.org/repository/terra_40)
[![Repository status](https://repology.org/badge/repository-big/terra_41.svg?header=Terra+41)](https://repology.org/repository/terra_41)
[![Repository status](https://repology.org/badge/repository-big/terra_rawhide.svg?header=Terra+Rawhide)](https://repology.org/repository/terra_rawhide)
Terra is a rolling-release Fedora repository for all the software you need.
@@ -11,8 +13,6 @@ This monorepo contains the package manifests for all packages in Terra.
## Installation
The latest detailed instructions are available in our Devdocs: https://developer.fyralabs.com/terra/installing
### Fedora
```bash
@@ -44,26 +44,14 @@ And Terra EL itself can be installed with:
sudo dnf install --nogpgcheck --repofrompath 'terra,https://repos.fyralabs.com/terrael$releasever' terra-release
```
## Contributions
First of all, thanks for being interested in contributing to Terra! If you have any questions about contributing, please [join our chats](https://wiki.ultramarine-linux.org/en/community/community/).
- [Contribution Guide](https://developer.fyralabs.com/terra/contributing)
- [FAQ](https://developer.fyralabs.com/terra/faq)
- [Guidelines](https://developer.fyralabs.com/terra/guidelines)
## Documentation
Our documentation can be found on our [Devdocs](https://developer.fyralabs.com/terra/).
## 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)
+5 -5
View File
@@ -1,9 +1,9 @@
%global xurl https://files.pythonhosted.org/packages/22/1c/37fe0377fd5fbfe27b17db20679d76aeb1cef7be3ddfb22e24c0bb62cf96/anki-25.9.2-cp39-abi3-manylinux_2_36_x86_64.whl
%global aurl https://files.pythonhosted.org/packages/c1/49/484a786ea0e1b3659de9478f2546368c5970da60a1cd403cec1fa2f81d65/anki-25.9.2-cp39-abi3-manylinux_2_36_aarch64.whl
%global qurl https://files.pythonhosted.org/packages/e5/d4/26016857a780290264866e1818b1a408106c379906fbd186a0aa26eb1054/aqt-25.9.2-py3-none-any.whl
%global xurl https://files.pythonhosted.org/packages/bf/05/3f3e0e890408cd8bf590bb00029de1623d85a09f2bc40545f87f4fa5e0f8/anki-25.7.2-cp39-abi3-manylinux_2_36_x86_64.whl
%global aurl https://files.pythonhosted.org/packages/ed/0a/6f07edb9b60c0aa5e5ea2546ffb2f9cf079dd6b7b5b90f0d31852978c3b9/anki-25.7.2-cp39-abi3-manylinux_2_36_aarch64.whl
%global qurl https://files.pythonhosted.org/packages/83/0b/51bf1a1f623fe52a590050087dcdfdaeab72025a2dd02bb6e5d3627de4e2/aqt-25.7.2-py3-none-any.whl
Name: anki-bin
Version: 25.9.2
Version: 25.7.2
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
@@ -74,5 +74,5 @@ rm -rf %buildroot%_bindir/{distro,flask,jsonschema,markdown_py,normalizer,send2t
* Fri Nov 10 2023 hazel-bunny <dabiswas112@gmail.com> - 23.10-2
- Add python3-orjson and mpv as dependencies
* Wed Jan 11 2023 madonuko <mado@fyralabs.com> - 2.1.60
* Wed Jan 11 2023 windowsboy111 <windowsboy111@fyralabs.com> - 2.1.60
- Initial package
+2 -2
View File
@@ -1,5 +1,5 @@
Name: anki-qt5
Version: 25.09.2
Version: 25.07.2
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
@@ -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
+2 -2
View File
@@ -1,5 +1,5 @@
Name: anki
Version: 25.09.2
Version: 25.07.2
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
@@ -68,5 +68,5 @@ chmod 755 %{buildroot}%{_bindir}/anki
%changelog
* Tue Jan 3 2023 madonuko <mado@fyralabs.com> - 2.1.60
* Tue Jan 3 2023 windowsboy111 <windowsboy111@fyralabs.com> - 2.1.60
- Initial package
@@ -1,7 +1,7 @@
%global __requires_exclude ^lib-.*.so
%global __provides_exclude ^lib-.*.so
%global ver Audacity-3.7.7
%global ver Audacity-3.7.4
%global sanitized_ver %(echo %{ver} | sed 's/Audacity-//g')
Name: audacity-freeworld
-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: 2025.12.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: 2025.12.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
@@ -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.1.1
Release: 1%?dist
Summary: Dig into ClickHouse with TUI interface
URL: https://github.com/azat/chdig
Source0: %url/archive/refs/tags/v%{version}.tar.gz
License: MIT
BuildRequires: cargo anda-srpm-macros cargo-rpm-macros mold clang fontconfig-devel glib2 libgcc
%description
%{summary}.
%prep
%autosetup -n %{name}-%{version}
%cargo_prep_online
%build
%cargo_build
%install
install -Dm755 target/rpm/chdig %{buildroot}%{_bindir}/chdig
%cargo_license_summary_online
%{cargo_license_online -a} > LICENSE.dependencies
%files
%doc README.md
%license LICENSE
%license LICENSE.dependencies
%{_bindir}/chdig
%changelog
* Fri Nov 14 2025 Owen Zimmerman <owen@fyralabs.com>
- Intial Commit
-1
View File
@@ -1 +0,0 @@
rpm.version(gh("azat/chdig"));
-5
View File
@@ -1,5 +0,0 @@
project pkg {
rpm {
spec = "chrultrabook-tools.spec"
}
}
@@ -1,74 +0,0 @@
%undefine __brp_mangle_shebangs
Name: chrultrabook-tools
Version: 3.1.3
Release: 2%?dist
Summary: User-friendly configuration utility for Chromebooks running an alternate OS
URL: https://github.com/death7654/Chrultrabook-Tools
Source0: %url/archive/refs/tags/%version.tar.gz
License: GPL-3.0-only AND MPL-2.0 AND MIT-0 AND (CC0-1.0 OR MIT-0 OR Apache-2.0) AND (CC0-1.0 OR Apache-2.0) AND BSL-1.0 AND BlueOak-1.0.0 AND CC0-1.0 AND (BSD-3-Clause OR Apache-2.0) AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND BSD-2-Clause AND ISC AND MIT AND (Apache-2.0 OR MIT) AND BSD-3-Clause AND NCSA AND Unicode-3.0 AND (0BSD OR MIT OR Apache-2.0) AND Apache-2.0 AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR ISC OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND (Unlicense OR MIT) AND Zlib AND (Zlib OR Apache-2.0 OR MIT) AND (Apache-2.0/MIT) AND CDLA-Permissive-2.0 AND (MIT OR Zlib OR Apache-2.0) AND (MIT OR Apache-2.0 OR LGPL-2.1-or-later) AND (MIT OR Apache-2.0 OR Zlib) AND (MIT OR Apache-2.0 OR BSD-1-Clause) AND Unlicense
BuildRequires: cargo
BuildRequires: glib2
BuildRequires: glib2-devel
BuildRequires: gtk3
BuildRequires: gtk3-devel
BuildRequires: javascriptcoregtk4.1
BuildRequires: javascriptcoregtk4.1-devel
BuildRequires: libsoup3
BuildRequires: libsoup3-devel
BuildRequires: libappindicator-gtk3
BuildRequires: libappindicator-devel
BuildRequires: gstreamer1
BuildRequires: gstreamer1-devel
BuildRequires: patchelf
BuildRequires: libstdc++-static
BuildRequires: libxdo-devel
BuildRequires: anda-srpm-macros
BuildRequires: rustc
BuildRequires: %{tauri_buildrequires -a}
# This may seem weird, but https://github.com/nodejs/node/issues/51752#issuecomment-2970163641
BuildRequires: nodejs-full-i18n
Requires: chromium-ectool
Requires: coreboot-utils-cbmem
Requires: libayatana-appindicator-gtk3
Requires: libayatana-ido-gtk3
Requires: libayatana-indicator-gtk3
Packager: Owen Zimmerman owen@fyralabs.com
%description
%summary.
%prep
%autosetup -n Chrultrabook-Tools-%version
%tauri_prep
%build
%npm_build -r build -B
%install
%tauri_install
install -Dm755 src-tauri/linux/chrultrabook-tools-root %{buildroot}%{_bindir}/chrultrabook-tools-root
install -Dm644 src-tauri/linux/chrultrabook-tools.desktop %{buildroot}%{_appsdir}/chrultrabook-tools.desktop
install -Dm644 src-tauri/icons/128x128.png %{buildroot}%{_hicolordir}/128x128/apps/chrultrabook-tools.png
# Not matching, but upstream does it this way. Working with upstream to correct this issue.
install -Dm644 src-tauri/icons/128x128@2x.png %{buildroot}%{_hicolordir}/256x256@2/apps/chrultrabook-tools.png
install -Dm644 src-tauri/icons/32x32.png %{buildroot}%{_hicolordir}/32x32/apps/chrultrabook-tools.png
install -Dm644 src-tauri/linux/com.chrultrabook.tools.policy %{buildroot}%{_datadir}/polkit-1/actions/com.chrultrabook.tools.policy
%{tauri_cargo_license} > LICENSE.dependencies
%files
%doc README.md
%license LICENSE
%license LICENSE.dependencies
%{_bindir}/chrultrabook-tools
%{_bindir}/chrultrabook-tools-root
%{_appsdir}/chrultrabook-tools.desktop
%{_hicolordir}/*x*/apps/chrultrabook-tools.png
%{_datadir}/polkit-1/actions/com.chrultrabook.tools.policy
%changelog
* Mon Jan 19 2026 Owen Zimmerman <owen@fyralabs.com>
- Initial commit
-1
View File
@@ -1 +0,0 @@
rpm.version(gh("death7654/Chrultrabook-Tools"));
+1 -1
View File
@@ -8,7 +8,7 @@ for background device management, as well as a GUI to expertly customize your se
%global __brp_mangle_shebangs %{nil}
Name: coolercontrol
Version: 3.1.1
Version: 2.2.1
Release: 1%?dist
Summary: Cooling device control for Linux
License: GPL-3.0-or-later
@@ -6,7 +6,7 @@
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
Name: discord-canary-openasar
Version: 0.0.857
Version: 0.0.718
Release: 1%?dist
Summary: A snappier Discord rewrite with features like further customization and theming
License: MIT AND https://discord.com/terms
@@ -54,7 +54,7 @@ ln -s %_datadir/discord-canary-openasar/DiscordCanary %buildroot%_bindir/discord
%changelog
* Wed Jan 18 2023 madonuko <mado@fyralabs.com> - 0.0.146-1
* Wed Jan 18 2023 windowsboy111 <windowsboy111@fyralabs.com> - 0.0.146-1
- Renamed from openasar-canary to discord-canary-openasar
- Fix issues after removing discord-canary package
- Bundle discord-canary
+5 -5
View File
@@ -6,7 +6,7 @@
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
Name: discord-canary
Version: 0.0.857
Version: 0.0.718
Release: 1%?dist
Summary: Free Voice and Text Chat for Gamers
URL: discord.com
@@ -33,7 +33,7 @@ mkdir -p %{buildroot}%{_datadir}/applications/
mkdir -p %{buildroot}%{_datadir}/pixmaps
ln -s %_datadir/discord-canary/discord-canary.desktop %{buildroot}%{_datadir}/applications/
ln -s %_datadir/discord-canary/discord.png %{buildroot}%{_datadir}/pixmaps/discord-canary.png
ln -s %_datadir/discord-canary/DiscordCanary %buildroot%_bindir/discord-canary
ln -s %_datadir/discord/DiscordCanary %buildroot%_bindir/discord-canary
%files
%_bindir/discord-canary
@@ -45,7 +45,7 @@ ln -s %_datadir/discord-canary/DiscordCanary %buildroot%_bindir/discord-canary
* Thu Dec 01 2022 root - 0.0.144-1
- new version
* Thu Nov 17 2022 madonuko <mado@fyralabs.com> - 0.0.143-1
* Thu Nov 17 2022 windowsboy111 <wboy111@outlook.com> - 0.0.143-1
- new version
* Fri Oct 28 2022 root - 0.0.142-1
@@ -60,10 +60,10 @@ ln -s %_datadir/discord-canary/DiscordCanary %buildroot%_bindir/discord-canary
* Thu Oct 27 2022 root - 0.0.141-1
- new version
* Wed Oct 19 2022 madonuko <mado@fyralabs.com> - 0.0.140-1
* Wed Oct 19 2022 windowsboy111 <wboy111@outlook.com> - 0.0.140-1
- new version
* Sun Oct 16 2022 madonuko <mado@fyralabs.com> - 0.0.139
* Sun Oct 16 2022 windowsboy111 <wboy111@outlook.com> - 0.0.139
- Repackaged for Terra
* Tue Feb 22 2022 Ultramarine Release Tracking Service - 0.0.133-2
@@ -6,7 +6,7 @@
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
Name: discord-openasar
Version: 0.0.122
Version: 0.0.102
Release: 1%?dist
Summary: A snappier Discord rewrite with features like further customization and theming
License: MIT AND https://discord.com/terms
@@ -54,5 +54,5 @@ ln -s %_datadir/discord-openasar/Discord %buildroot%_bindir/discord-openasar
%changelog
* Sat Jan 21 2023 madonuko <mado@fyralabs.com> - 0.0.38-1
* Sat Jan 21 2023 windowsboy111 <windowsboy111@fyralabs.com> - 0.0.38-1
- Initial package
@@ -6,7 +6,7 @@
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
Name: discord-ptb-openasar
Version: 0.0.174
Version: 0.0.152
Release: 1%?dist
Summary: A snappier Discord rewrite with features like further customization and theming
License: MIT AND https://discord.com/terms
@@ -56,5 +56,5 @@ ln -s %_datadir/discord-ptb-openasar/Discord %buildroot%_bindir/discord-ptb-open
%changelog
* Sat Jan 21 2023 madonuko <mado@fyralabs.com> - 0.0.38-1
* Sat Jan 21 2023 windowsboy111 <windowsboy111@fyralabs.com> - 0.0.38-1
- Initial package
+4 -4
View File
@@ -6,7 +6,7 @@
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
Name: discord-ptb
Version: 0.0.174
Version: 0.0.152
Release: 1%?dist
Summary: Free Voice and Text Chat for Gamers.
URL: https://discord.com
@@ -46,11 +46,11 @@ ln -s %_datadir/discord-ptb/Discord %buildroot%_bindir/discord-ptb
%{_datadir}/pixmaps/discord-ptb.png
%changelog
* Thu Nov 17 2022 madonuko <mado@fyralabs.com> - 0.0.35-1
* Thu Nov 17 2022 windowsboy111 <wboy111@outlook.com> - 0.0.35-1
- new version
* Thu Oct 20 2022 madonuko <mado@fyralabs.com> - 0.0.34-1
* Thu Oct 20 2022 windowsboy111 <wboy111@outlook.com> - 0.0.34-1
- new version
* Sun Oct 16 2022 madonuko <mado@fyralabs.com> - 0.0.33
* Sun Oct 16 2022 windowsboy111 <wboy111@outlook.com> - 0.0.33
- Initial Package.
+2 -2
View File
@@ -6,7 +6,7 @@
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
Name: discord
Version: 0.0.122
Version: 0.0.102
Release: 1%?dist
Summary: Free Voice and Text Chat for Gamers
URL: https://discord.com
@@ -46,5 +46,5 @@ ln -s %_datadir/discord/Discord %buildroot%_bindir/discord
%{_datadir}/pixmaps/discord.png
%changelog
* Thu Jan 19 2023 madonuko <mado@fyralabs.com> - 0.0.143-1
* Thu Jan 19 2023 windowsboy111 <wboy111@outlook.com> - 0.0.143-1
- Initial package
-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.0
Release: 1%?dist
Summary: Tiny alternative Discord client with a smaller footprint, snappier startup, themes, plugins and more!
SourceLicense: GPL-3.0-only
License: ((Apache-2.0 OR MIT) AND BSD-3-Clause) AND ((MIT OR Apache-2.0) AND Unicode-3.0) AND 0BSD AND (0BSD OR MIT OR Apache-2.0) AND Apache-2.0 AND (Apache-2.0 AND ISC) AND (Apache-2.0 AND MIT) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR ISC OR MIT) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND BSD-3-Clause AND (BSD-3-Clause AND MIT) AND (BSD-3-Clause OR Apache-2.0) AND (BSD-3-Clause OR MIT) AND (BSD-3-Clause OR MIT OR Apache-2.0) AND CC0-1.0 AND (CC0-1.0 OR MIT-0 OR Apache-2.0) AND CDLA-Permissive-2.0 AND ISC AND MIT AND (MIT OR Apache-2.0) AND (MIT OR Apache-2.0 OR LGPL-2.1-or-later) AND (MIT OR Apache-2.0 OR Zlib) AND (MIT OR Zlib OR Apache-2.0) AND MPL-2.0 AND Unicode-3.0 AND (Unlicense OR MIT) AND Zlib AND (Zlib OR Apache-2.0 OR MIT)
URL: https://spikehd.dev/projects/dorion
Source0: https://github.com/SpikeHD/Dorion/archive/refs/tags/v%version.tar.gz
Source1: https://raw.githubusercontent.com/uwu/shelter-builds/main/shelter.js
Packager: madonuko <mado@fyralabs.com>
BuildRequires: pnpm rpm_macro(cargo_install) rust-packaging
BuildRequires: cmake gcc-c++
BuildRequires: pkgconfig(gtk+-3.0)
BuildRequires: pkgconfig(webkit2gtk-web-extension-4.1)
BuildRequires: pkgconfig(openssl)
%description
Dorion is an alternative Discord client aimed towards lower-spec or storage-sensitive PCs that supports themes, plugins, and more!
%prep
%autosetup -n Dorion-%version
pnpm i
cat<<EOF > Dorion.desktop
[Desktop Entry]
Categories=Network;
Exec=Dorion
Icon=Dorion
Name=Dorion
Terminal=false
Type=Application
MimeType=x-scheme-handler/discord
EOF
cd src-tauri
%cargo_prep_online
cp %{S:1} injection/shelter.js
%build
pnpm run build:js
cd src-tauri
cd extension_webkit
%cmake
%cmake_build
cp %__cmake_builddir/libextension.so .
cd ..
%cargo_license_summary_online
%{cargo_license_online} > ../LICENSE.dependencies
%install
install -Dpm655 Dorion.desktop -t %buildroot%_datadir/applications
cd src-tauri
%cargo_install
install -Dpm644 icons/icon.png %buildroot%_iconsdir/hicolor/512x512/apps/Dorion.png
%files
%doc README.md
%license LICENSE LICENSE.dependencies
%_bindir/Dorion
%_iconsdir/hicolor/512x512/apps/Dorion.png
%_datadir/applications/Dorion.desktop
-1
View File
@@ -1 +0,0 @@
rpm.version(gh_rawfile("SpikeHD/Dorion", "main", "package.json").json().version);
+2 -2
View File
@@ -1,5 +1,5 @@
%global commit b50c32d7c3e74af4faeb92fb0e8f49108d85ff90
%global commit_date 20251211
%global commit 1a1d1682fe4978dca98c2811c5c8cb67114991b1
%global commit_date 20250713
%global shortcommit %(c=%{commit}; echo ${c:0:7})
Name: envision-nightly
-5
View File
@@ -1,5 +0,0 @@
project pkg {
rpm {
spec = "falcond-gui.spec"
}
}
-52
View File
@@ -1,52 +0,0 @@
Name: falcond-gui
Version: 1.0.1
Release: 1%{?dist}
Summary: A GTK4/LibAdwaita application to control and monitor the Falcond gaming optimization daemon
SourceLicense: MIT
License: (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND CC0-1.0 AND ISC AND (MIT OR Apache-2.0) AND MIT AND (Unlicense OR MIT)
URL: https://git.pika-os.com/general-packages/falcond-gui
Source0: %{url}/archive/v%{version}.tar.gz
BuildRequires: anda-srpm-macros
BuildRequires: cargo-rpm-macros
BuildRequires: desktop-file-utils
BuildRequires: gtk4-devel
BuildRequires: libadwaita-devel
BuildRequires: mold
Requires: gtk4
Requires: falcond
Requires: falcond-profiles
Requires: libadwaita
Requires(post): gtk-update-icon-cache
Packager: Gilver E. <roachy@fyralabs.com>
%description
falcond-gui provides a user-friendly graphical interface for managing falcond. It allows users to view the status of the daemon and customize its behavior.
%prep
%autosetup -n %{name}/%{name}
%cargo_prep_online
%build
%install
%cargo_install
desktop-file-install res/%{name}.desktop
install -Dm644 res/falcond.png -t %{buildroot}%{_hicolordir}/512x512/apps/
%{cargo_license_online} > LICENSE.dependencies
%check
desktop-file-validate %{buildroot}%{_datadir}/applications/%{name}.desktop
%posttrans
/usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor/ &>/dev/null || :
%files
%doc ../README.md
%license ../LICENSE.md
%{_bindir}/%{name}
%{_hicolordir}/512x512/apps/falcond.png
%{_appsdir}/%{name}.desktop
%changelog
* Thu Jan 1 2026 Gilver E. <roachy@fyralabs.com> - 1.0.0-1
- Initial package
-1
View File
@@ -1 +0,0 @@
rpm.version(get("https://git.pika-os.com/api/v1/repos/general-packages/falcond-gui/releases").json_arr()[0].tag_name);
+1 -1
View File
@@ -6,7 +6,7 @@
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
Name: feishin
Version: 1.3.0
Version: 0.18.0
Release: 1%?dist
Summary: A modern self-hosted music player
License: GPL-3.0
-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}/
+31 -24
View File
@@ -1,12 +1,11 @@
#? https://github.com/flameshot-org/flameshot/blob/master/packaging/rpm/fedora/flameshot.spec
%global ver 13.3.0
%global commit 6b0427b4466689b3268f7838277455702d7f9691
%global ver 12.1.0
%global commit 4edfb2ac1d71e7f75fcdcb850ff6bce5fb148a7b
%global shortcommit %{sub %{commit} 1 7}
%global commit_date 20260125
#global commit_date 20250608
%global commit_date 20250618
%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
@@ -23,22 +22,24 @@ 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
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: 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})
@@ -54,32 +55,30 @@ Features:
* 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}
%pkg_devel_files
%_libdir/cmake/*/
%package libs
%pkg_libs_files
%package static
%pkg_static_files
%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
-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
@@ -88,11 +87,13 @@ 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
@@ -100,3 +101,9 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop
%{_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}/
+1
View File
@@ -1,3 +1,4 @@
terminate();
rpm.global("commit", gh_commit("flameshot-org/flameshot"));
if rpm.changed() {
let v = gh("flameshot-org/flameshot");
@@ -0,0 +1,16 @@
commit 86a77b2e3d69a09f75992e6795903ab56df1a900 (HEAD -> main, fork/main)
Author: Adam Fidel <adam@fidel.id>
Date: Tue Apr 22 14:52:16 2025 -0500
feat: add MimeType to .desktop file
diff --git a/data/usr/share/applications/com.flatpost.flatpostapp.desktop b/data/usr/share/applications/com.flatpost.flatpostapp.desktop
index 73013fc..d1f321d 100644
--- a/data/usr/share/applications/com.flatpost.flatpostapp.desktop
+++ b/data/usr/share/applications/com.flatpost.flatpostapp.desktop
@@ -4,3 +4,4 @@ Exec=python3 /usr/bin/flatpost
Icon=com.flatpost.flatpostapp
Type=Application
Categories=Utility;
+MimeType=application/vnd.flatpak.ref;application/vnd.flatpak.repo;
+11
View File
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
<mime-type type="application/vnd.flatpak.ref">
<glob pattern="*.flatpakref"/>
<comment>Flatpak Reference File</comment>
</mime-type>
<mime-type type="application/vnd.flatpak.repo">
<glob pattern="*.flatpakrepo"/>
<comment>Flatpak Repository File</comment>
</mime-type>
</mime-info>
+4 -1
View File
@@ -1,11 +1,13 @@
Name: flatpost
Version: 1.2.0
Version: 1.0.6
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
Source1: flatpost-mime.xml
Patch0: flatpost-desktop-mimetype.patch
BuildArch: noarch
BuildRequires: python3-devel
@@ -43,6 +45,7 @@ installation, removal, updating, and permission management of flatpak packages a
%build
make all DESTDIR=%{buildroot}
install -D -m644 %{SOURCE1} %{buildroot}/usr/share/mime/packages/flatpost.xml
%check
desktop-file-validate %{buildroot}%{_datadir}/applications/com.flatpost.flatpostapp.desktop
@@ -1,59 +1,100 @@
%global commit 8fdb51cf58797af136cf25350cc4b27ab287752b
%global commit 3f5eda113f33fead76a5a53e0b71c11b254d68fd
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global commit_date 20260125
%global ver 2.0.1^
%global commit_date 20250615
%global ver 1.10.1
%global base_name goofcord
%global git_name GoofCord
%global appid io.github.milkshiift.GoofCord
%global debug_package %{nil}
# Exclude private libraries
%global __provides_exclude ^((libffmpeg[.]so.*)|(lib.*\\.so.*))$
%ifnarch aarch64 armv7hl armv7l
%global __requires_exclude ^((libffmpeg[.]so.*)|(lib.*\\.so.*)|(.*\\aarch64*\\.so.*))$
%elifarch aarch64 armv7hl armv7l
%global __requires_exclude ^((libffmpeg[.]so.*)|(lib.*\\.so.*)|(.*\\x86_64*\\.so.*)|(.*\\x86-64*\\.so.*))$
%endif
Name: %{base_name}-nightly
Version: %{ver}%{commit_date}.git.%{shortcommit}
Release: 1%?dist
Version: %{ver}^%{commit_date}.git.%{shortcommit}
Release: 1%{?dist}
License: OSL-3.0
Summary: A privacy-minded Legcord fork.
Group: Applications/Internet
URL: https://github.com/Milkshiift/%{git_name}
Source0: %{url}/archive/%{commit}/%{git_name}-%{commit}.tar.gz
BuildRequires: anda-srpm-macros >= 0.2.26
BuildRequires: bun-bin
Packager: Gilver E. <roachy@fyralabs.com>
%electronmeta -D
BuildRequires: desktop-file-utils
BuildRequires: gcc
BuildRequires: gcc-c++
BuildRequires: git
BuildRequires: make
BuildRequires: nodejs
BuildRequires: nodejs-npm
BuildRequires: python3
%ifarch aarch64
BuildRequires: zlib-ng-compat-devel
%endif
Packager: Gilver E. <rockgrub@disroot.org>
%description
A highly configurable and privacy minded Discord client.
%prep
%autosetup -n %{git_name}-%{commit}
%ifarch %{arm64} armv7l armv7hl armv7hnl
sed -i '/\"x64\",/d' electron-builder.ts
%endif
%build
%bun_build
%ifarch aarch64 armv7hl armv7l
sed -i '/\"x64\",/d' electron-builder.ts
%endif
bun install
bun run packageLinux --publish=never
%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}
mkdir -p %{buildroot}%{_datadir}/%{git_name}
%ifarch x86_64
mv dist/linux-unpacked/* -t %{buildroot}%{_datadir}/%{git_name}
%elifarch aarch64
mv dist/linux-arm64-unpacked/* -t %{buildroot}%{_datadir}/%{git_name}
%elifarch armv7hl armv7l
mv dist/linux-armv7l-unpacked/* -t %{buildroot}%{_datadir}/%{git_name}
%endif
mkdir -p %{buildroot}%{_bindir}
ln -sf %{_datadir}/%{git_name}/%{git_name} %{buildroot}%{_bindir}/%{git_name}
install -Dm644 dist/.icon-set/icon_16x16.png %{buildroot}/%{_iconsdir}/hicolor/16x16/apps/%{git_name}.png
install -Dm644 dist/.icon-set/icon_32.png %{buildroot}/%{_iconsdir}/hicolor/32x32/apps/%{git_name}.png
install -Dm644 dist/.icon-set/icon_48x48.png %{buildroot}/%{_iconsdir}/hicolor/48x48/apps/%{git_name}.png
install -Dm644 dist/.icon-set/icon_64.png %{buildroot}/%{_iconsdir}/hicolor/64x64/apps/%{git_name}.png
install -Dm644 dist/.icon-set/icon_128.png %{buildroot}/%{_iconsdir}/hicolor/128x128/apps/%{git_name}.png
install -Dm644 dist/.icon-set/icon_256.png %{buildroot}/%{_iconsdir}/hicolor/256x256/apps/%{git_name}.png
install -Dm644 dist/.icon-set/icon_512.png %{buildroot}/%{_iconsdir}/hicolor/512x512/apps/%{git_name}.png
install -Dm644 dist/.icon-set/icon_1024.png %{buildroot}/%{_iconsdir}/hicolor/1024x1024/apps/%{git_name}.png
%ifarch x86_64
dist/%{git_name}-*x86_64.AppImage --appimage-extract '*.desktop'
%elifarch aarch64
dist/%{git_name}-*arm64.AppImage --appimage-extract '*.desktop'
%elifarch armv7hl armv7l
dist/%{git_name}-*armv7l.AppImage --appimage-extract '*.desktop'
%endif
desktop-file-install --set-key=Exec --set-value="%{_datadir}/%{git_name}/%{git_name} --enable-features=UseOzonePlatform,WaylandWindowDecorations --ozone-platform-hint=auto %U" squashfs-root/%{git_name}.desktop
%check
%desktop_file_validate %{buildroot}%{_datadir}/applications/%{base_name}.desktop
desktop-file-validate %{buildroot}%{_datadir}/applications/%{git_name}.desktop
%files
%doc README.md
%license LICENSE
%{_bindir}/%{base_name}
%{_datadir}/applications/%{base_name}.desktop
%{_libdir}/%{base_name}/
%{_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
%{_bindir}/%{git_name}
%{_datadir}/applications/%{git_name}.desktop
%{_datadir}/%{git_name}/
%{_iconsdir}/hicolor/16x16/apps/%{git_name}.png
%{_iconsdir}/hicolor/32x32/apps/%{git_name}.png
%{_iconsdir}/hicolor/48x48/apps/%{git_name}.png
%{_iconsdir}/hicolor/64x64/apps/%{git_name}.png
%{_iconsdir}/hicolor/128x128/apps/%{git_name}.png
%{_iconsdir}/hicolor/256x256/apps/%{git_name}.png
%{_iconsdir}/hicolor/512x512/apps/%{git_name}.png
%{_iconsdir}/hicolor/1024x1024/apps/%{git_name}.png
%changelog
* Sat Jun 28 2025 Gilver E. <rockgrub@disroot.org> - 1.10.1^20250615.git.3f5eda1
+3 -8
View File
@@ -1,13 +1,8 @@
rpm.global("commit", gh_commit("Milkshiift/GoofCord"));
if rpm.changed() {
let v = gh_tag("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("ver", v);
rpm.global("commit_date", date());
rpm.release();
}
+3 -3
View File
@@ -2,7 +2,7 @@ project pkg {
rpm {
spec = "goofcord.spec"
}
labels {
mock = 1
}
labels {
mock = 1
}
}
+63 -24
View File
@@ -1,55 +1,94 @@
%global git_name GoofCord
%global appid io.github.milkshiift.GoofCord
%global debug_package %{nil}
# Exclude private libraries
%global __provides_exclude ^((libffmpeg[.]so.*)|(lib.*\\.so.*))$
%ifnarch aarch64 armv7hl armv7l
%global __requires_exclude ^((libffmpeg[.]so.*)|(lib.*\\.so.*)|(.*\\aarch64*\\.so.*))$
%elifarch aarch64 armv7hl armv7l
%global __requires_exclude ^((libffmpeg[.]so.*)|(lib.*\\.so.*)|(.*\\x86_64*\\.so.*)|(.*\\x86-64*\\.so.*))$
%endif
Name: goofcord
Version: 2.0.1
Release: 2%{?dist}
Version: 1.10.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
BuildRequires: desktop-file-utils
BuildRequires: gcc
BuildRequires: gcc-c++
BuildRequires: make
BuildRequires: nodejs
BuildRequires: nodejs-npm
BuildRequires: python3
%ifarch aarch64
BuildRequires: zlib-ng-compat-devel
%endif
Packager: Gilver E. <rockgrub@disroot.org>
%description
A highly configurable and privacy minded Discord client.
%prep
%autosetup -n %{git_name}-%{version}
%ifarch %{arm64} armv7hl armv7l
sed -i '/\"x64\",/d' electron-builder.ts
%endif
%build
%bun_build
%ifarch aarch64 armv7hl armv7l
sed -i '/\"x64\",/d' electron-builder.ts
%endif
bun install
bun run packageLinux
%install
%electron_install -D -O -U %U -E UseOzonePlatform,WaylandWindowDecorations -I
mkdir -p %{buildroot}%{_datadir}/%{name}
%ifarch x86_64
mv dist/linux-unpacked/* -t %{buildroot}%{_datadir}/%{name}
%elifarch aarch64
mv dist/linux-arm64-unpacked/* -t %{buildroot}%{_datadir}/%{name}
%elifarch armv7hl armv7l
mv dist/linux-armv7l-unpacked/* -t %{buildroot}%{_datadir}/%{name}
%endif
install -Dm644 assetsDev/%{appid}.metainfo.xml -t %{buildroot}%{_metainfodir}
mkdir -p %{buildroot}%{_bindir}
ln -sf %{_datadir}/%{name}/%{name} %{buildroot}%{_bindir}/%{name}
install -Dm644 dist/.icon-set/icon_16x16.png %{buildroot}/%{_iconsdir}/hicolor/16x16/apps/%{name}.png
install -Dm644 dist/.icon-set/icon_32.png %{buildroot}/%{_iconsdir}/hicolor/32x32/apps/%{name}.png
install -Dm644 dist/.icon-set/icon_48x48.png %{buildroot}/%{_iconsdir}/hicolor/48x48/apps/%{name}.png
install -Dm644 dist/.icon-set/icon_64.png %{buildroot}/%{_iconsdir}/hicolor/64x64/apps/%{name}.png
install -Dm644 dist/.icon-set/icon_128.png %{buildroot}/%{_iconsdir}/hicolor/128x128/apps/%{name}.png
install -Dm644 dist/.icon-set/icon_256.png %{buildroot}/%{_iconsdir}/hicolor/256x256/apps/%{name}.png
install -Dm644 dist/.icon-set/icon_512.png %{buildroot}/%{_iconsdir}/hicolor/512x512/apps/%{name}.png
install -Dm644 dist/.icon-set/icon_1024.png %{buildroot}/%{_iconsdir}/hicolor/1024x1024/apps/%{name}.png
%ifarch x86_64
dist/%{git_name}-*x86_64.AppImage --appimage-extract '*.desktop'
%elifarch aarch64
dist/%{git_name}-*arm64.AppImage --appimage-extract '*.desktop'
%elifarch armv7hl armv7l
dist/%{git_name}-*armv7l.AppImage --appimage-extract '*.desktop'
%endif
desktop-file-install --set-key=Exec --set-value="%{_datadir}/%{name}/%{name} --enable-features=UseOzonePlatform,WaylandWindowDecorations --ozone-platform-hint=auto %U" squashfs-root/%{name}.desktop
%check
%desktop_file_validate %{buildroot}%{_datadir}/applications/%{name}.desktop
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
%{_datadir}/%{name}/
%{_iconsdir}/hicolor/16x16/apps/%{name}.png
%{_iconsdir}/hicolor/32x32/apps/%{name}.png
%{_iconsdir}/hicolor/48x48/apps/%{name}.png
%{_iconsdir}/hicolor/64x64/apps/%{name}.png
%{_iconsdir}/hicolor/128x128/apps/%{name}.png
%{_iconsdir}/hicolor/256x256/apps/%{name}.png
%{_iconsdir}/hicolor/512x512/apps/%{name}.png
%{_iconsdir}/hicolor/1024x1024/apps/%{name}.png
%changelog
* Sat Jun 28 2025 Gilver E. <rockgrub@disroot.org> - 1.10.1-1
+1 -5
View File
@@ -1,5 +1 @@
let v = gh_tag("Milkshiift/GoofCord");
if `[\d.]+-beta\.\d+`.find_all(v).len == 0 {
rpm.version(v);
}
rpm.version(gh_tag("Milkshiift/GoofCord"));
+2 -3
View File
@@ -4,8 +4,8 @@
%global crate halloy
Name: halloy
Version: 2026.1.1
Release: 1%?dist
Version: 2025.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
@@ -18,7 +18,6 @@ BuildRequires: alsa-lib-devel
BuildRequires: cargo-rpm-macros >= 24
BuildRequires: desktop-file-utils
BuildRequires: openssl-devel
BuildRequires: pkgconfig(xcb)
%description
-5
View File
@@ -1,5 +0,0 @@
project pkg {
rpm {
spec = "helium-browser-bin.spec"
}
}
@@ -1,122 +0,0 @@
%define debug_package %{nil}
%global __requires_exclude libffmpeg.so|libvk_swiftshader.so|libvulkan.so|libEGL.so|libGLESv2.so
%global __provides_exclude_from %{_libdir}/%{name}/.*\\.so
%global appid net.imput.helium
%ifarch x86_64
%define arch x86_64
%elifarch aarch64
%define arch arm64
%endif
Name: helium-browser-bin
Version: 0.8.3.1
Release: 1%?dist
Summary: Private, fast, and honest web browser based on Chromium
URL: https://helium.computer
License: GPL-3.0-only AND BSD-3-Clause
Source0: https://github.com/imputnet/helium-linux/releases/download/%{version}/helium-%{version}-%{arch}_linux.tar.xz
Source1: https://github.com/imputnet/helium-linux/archive/refs/tags/%{version}.tar.gz
Source2: net.imput.helium.metainfo.xml
ExclusiveArch: x86_64 aarch64
BuildRequires: terra-appstream-helper desktop-file-utils
Requires: xdg-utils
Requires: liberation-fonts
Packager: Nadia P <nyadiia@pm.me>
%description
Private, fast, and honest web browser based on Chromium.
Based on ungoogled-chromium with additional privacy and usability improvements.
%prep
%autosetup -n helium-%{version}-%{arch}_linux
tar --strip-components=1 -zxvf %{SOURCE1}
sed -i 's/Exec=helium\b/Exec=helium-browser-bin/g' helium.desktop
%build
%install
install -dm755 %{buildroot}%{_libdir}/%{name}
cp -a * %{buildroot}%{_libdir}/%{name}/
sed -i 's/exists_desktop_file || generate_desktop_file/true/' \
%{buildroot}%{_libdir}/%{name}/chrome-wrapper
install -Dm644 helium.desktop %{buildroot}%{_appsdir}/%{name}.desktop
%__desktop_file_edit --set-icon=net.input.helium %{buildroot}%{_appsdir}/%{name}.desktop
install -Dm644 product_logo_256.png %{buildroot}%{_hicolordir}/256x256/apps/%{appid}.png
rm -f %{buildroot}%{_libdir}/%{name}/helium.desktop
rm -f %{buildroot}%{_libdir}/%{name}/product_logo_256.png
install -dm755 %{buildroot}%{_bindir}
cat > %{buildroot}%{_bindir}/%{name} << EOF
#!/bin/bash
set -euo pipefail
XDG_CONFIG_HOME="\${XDG_CONFIG_HOME:-\"\$HOME/.config\"}"
SYS_CONF="%{_sysconfdir}/helium-browser-flags.conf"
USR_CONF="\${XDG_CONFIG_HOME}/helium-browser-flags.conf"
FLAGS=()
append_flags_file() {
local file="\$1"
[[ -r "\$file" ]] || return 0
local line safe_line
while IFS= read -r line; do
[[ "\$line" =~ ^[[:space:]]*(#|\$) ]] && continue
case "\$line" in
*'\$('*|*'\`'*)
echo "Warning: ignoring unsafe line in \$file: \$line" >&2
continue
;;
esac
set -f
safe_line=\${line//\$/\\\\\$}
safe_line=\${safe_line//~/\\\\~}
eval "set -- \$safe_line"
set +f
for token in "\$@"; do
FLAGS+=("\$token")
done
done < "\$file"
}
append_flags_file "\$SYS_CONF"
append_flags_file "\$USR_CONF"
if [[ -n "\${HELIUM_USER_FLAGS:-}" ]]; then
read -r -a ENV_FLAGS <<< "\$HELIUM_USER_FLAGS"
FLAGS+=("\${ENV_FLAGS[@]}")
fi
exec %{_libdir}/%{name}/chrome-wrapper "\${FLAGS[@]}" "\$@"
EOF
chmod 755 %{buildroot}%{_bindir}/%{name}
%terra_appstream -o %{SOURCE2}
%files
%doc README.md
%license LICENSE LICENSE.ungoogled_chromium
%{_libdir}/%{name}/
%{_bindir}/%{name}
%{_appsdir}/%{name}.desktop
%{_hicolordir}/256x256/apps/%{appid}.png
%{_metainfodir}/%{appid}.metainfo.xml
%changelog
* Wed Dec 03 2025 Nadia P <nyadiia@pm.me> - 0.6.9.1-1
- Initial package
@@ -1,24 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<component type="runtime">
<id>net.imput.helium</id>
<metadata_license>CC0-1.0</metadata_license>
<project_license>GPL-3.0-only AND BSD-3-Clause</project_license>
<name>Helium Browser</name>
<summary>Private, fast, and honest web browser based on Chromium.</summary>
<icon type="local">
/usr/share/icons/hicolor/256x256/apps/net.imput.helium.png
</icon>
<description>
<p>
Private, fast, and honest web browser based on Chromium.
Based on ungoogled-chromium with additional privacy and usability improvements.
</p>
</description>
<url type="homepage">https://helium.computer</url>
<releases>
<release version="0.6.9.1" />
</releases>
</component>
-1
View File
@@ -1 +0,0 @@
rpm.version(gh("imputnet/helium-linux"));
-5
View File
@@ -1,5 +0,0 @@
project pkg {
rpm {
spec = "juce.spec"
}
}
-60
View File
@@ -1,60 +0,0 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index f8864a6dc5..6518db0532 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -137,10 +137,10 @@ write_basic_package_version_file("${JUCE_BINARY_DIR}/JUCEConfigVersion.cmake"
VERSION ${JUCE_VERSION}
COMPATIBILITY ExactVersion)
-set(JUCE_INSTALL_DESTINATION "lib/cmake/JUCE-${JUCE_VERSION}" CACHE STRING
+set(JUCE_INSTALL_DESTINATION "lib64/cmake/juce" CACHE STRING
"The location, relative to the install prefix, where the JUCE config file will be installed")
-set(JUCE_MODULE_PATH "include/JUCE-${JUCE_VERSION}/modules")
+set(JUCE_MODULE_PATH "share/juce/modules")
set(UTILS_INSTALL_DIR "${JUCE_INSTALL_DESTINATION}")
set(JUCEAIDE_PATH "${JUCE_TOOL_INSTALL_DIR}/${JUCE_JUCEAIDE_NAME}")
configure_package_config_file("${JUCE_CMAKE_UTILS_DIR}/JUCEConfig.cmake.in"
@@ -148,7 +148,6 @@ configure_package_config_file("${JUCE_CMAKE_UTILS_DIR}/JUCEConfig.cmake.in"
PATH_VARS UTILS_INSTALL_DIR JUCEAIDE_PATH JUCE_MODULE_PATH
INSTALL_DESTINATION "${JUCE_INSTALL_DESTINATION}")
-set(JUCE_MODULE_PATH "${JUCE_MODULES_DIR}")
set(UTILS_INSTALL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/extras/Build/CMake")
get_target_property(JUCEAIDE_PATH juceaide IMPORTED_LOCATION)
configure_package_config_file("${JUCE_CMAKE_UTILS_DIR}/JUCEConfig.cmake.in"
@@ -181,7 +180,7 @@ if(("${CMAKE_SOURCE_DIR}" STREQUAL "${JUCE_SOURCE_DIR}") AND (NOT JUCE_BUILD_HEL
_juce_add_lv2_manifest_helper_target()
if(TARGET juce_lv2_helper)
- install(TARGETS juce_lv2_helper EXPORT LV2_HELPER DESTINATION "bin/JUCE-${JUCE_VERSION}")
+ install(TARGETS juce_lv2_helper EXPORT LV2_HELPER DESTINATION "bin")
install(EXPORT LV2_HELPER NAMESPACE juce:: DESTINATION "${JUCE_INSTALL_DESTINATION}")
endif()
endif()
diff --git a/extras/Build/juceaide/CMakeLists.txt b/extras/Build/juceaide/CMakeLists.txt
index 17e5520974..afcd55981d 100644
--- a/extras/Build/juceaide/CMakeLists.txt
+++ b/extras/Build/juceaide/CMakeLists.txt
@@ -168,7 +168,7 @@ else()
add_executable(juce::juceaide ALIAS juceaide)
- set(JUCE_TOOL_INSTALL_DIR "bin/JUCE-${JUCE_VERSION}" CACHE STRING
+ set(JUCE_TOOL_INSTALL_DIR "bin" CACHE STRING
"The location, relative to the install prefix, where juceaide will be installed")
install(PROGRAMS "${imported_location}" DESTINATION "${JUCE_TOOL_INSTALL_DIR}")
diff --git a/modules/CMakeLists.txt b/modules/CMakeLists.txt
index db8a56774d..652da64743 100644
--- a/modules/CMakeLists.txt
+++ b/modules/CMakeLists.txt
@@ -31,7 +31,7 @@
# ==============================================================================
juce_add_modules(
- INSTALL_PATH "include/JUCE-${JUCE_VERSION}/modules"
+ INSTALL_PATH "share/juce/modules"
ALIAS_NAMESPACE juce
juce_analytics
juce_animation
-83
View File
@@ -1,83 +0,0 @@
Name: juce
Version: 8.0.12
Release: 3%{?dist}
License: AGPL-3.0
Summary: framework for audio application and plug-in development
URL: https://juce.com
Source: https://github.com/juce-framework/JUCE/archive/refs/tags/%{version}.tar.gz
Patch0: fix-install-dirs.patch
Packager: metcya <metcya@gmail.com>
BuildRequires: gcc-c++
BuildRequires: cmake
BuildRequires: pkgconfig(alsa)
BuildRequires: pkgconfig(freetype2)
BuildRequires: pkgconfig(flac)
BuildRequires: pkgconfig(gtk+-3.0)
BuildRequires: pkgconfig(jack)
BuildRequires: ladspa-devel
BuildRequires: pkgconfig(libjpeg)
BuildRequires: pkgconfig(libpng)
BuildRequires: pkgconfig(vorbis)
BuildRequires: pkgconfig(zlib)
BuildRequires: pkgconfig(libcurl)
BuildRequires: webkit2gtk4.1-devel
# for building docs
BuildRequires: doxygen
BuildRequires: python3
BuildRequires: graphviz
%description
JUCE is an open-source cross-platform C++ application framework for creating
desktop and mobile applications, including VST, VST3, AU, AUv3, AAX and LV2
audio plug-ins and plug-in hosts. JUCE can be easily integrated with existing
projects via CMake, or can be used as a project generation tool via the
Projucer, which supports exporting projects for Xcode (macOS and iOS), Visual
Studio, Android Studio, and Linux Makefiles as well as containing a source code
editor.
%package doc
Summary: Documentation files for %{name}
%description doc
Documentation files for %{name}
%prep
%autosetup -p1 -n JUCE-%{version}
%build
%cmake -DJUCER_ENABLE_GPL_MODE=1 \
-DJUCE_BUILD_EXTRAS=ON \
-DJUCE_TOOL_INSTALL_DIR=bin
%cmake_build
pushd docs/doxygen
python3 build.py
popd
%install
%cmake_install
pushd docs/doxygen/doc
find -type f -exec install -Dm 644 '{}' -t %{buildroot}%{_pkgdocdir} \;
popd
%files
%doc README.md CODE_OF_CONDUCT.md CHANGE_LIST.md BREAKING_CHANGES.md
%license LICENSE.md
%{_bindir}/juceaide
%{_bindir}/juce_lv2_helper
%{_libdir}/cmake/%{name}/*
%{_datadir}/%{name}/modules/*
%files doc
%license LICENSE.md
%doc %{_pkgdocdir}/*
%changelog
* Tue Dec 23 2025 Owen Zimmerman <owen@fyralabs.com>
- Install doc subpackage license
* Fri Dec 19 2025 metcya <metcya@gmail.com> - 8.0.12
- Package juce
-1
View File
@@ -1 +0,0 @@
rpm.version(gh("juce-framework/JUCE"));
+4 -4
View File
@@ -3,10 +3,10 @@
%global gtk4_version 4.14.4
%global libadwaita_version 1.5.1
%global pure_protobuf_version 2.0.0
%global raw_ver v1.100.0
%global raw_ver v1.82.0
Name: komikku
Version: 1.100.0
Version: 1.82.0
%forgemeta
Release: 1%?dist
Summary: A manga reader for GNOME
@@ -14,7 +14,7 @@ Summary: A manga reader for GNOME
BuildArch: noarch
License: GPL-3.0-or-later
URL: https://apps.gnome.org/Komikku/
URL: https://valos.gitlab.io/Komikku
Source0: https://codeberg.org/valos/%{appname}/archive/%{raw_ver}.tar.gz#/%{name}-%{version}.tar.gz
BuildRequires: desktop-file-utils
@@ -36,7 +36,7 @@ Requires: libnotify
Requires: webkitgtk6.0
Requires: python3-beautifulsoup4
Requires: python3-brotli
Requires: python3-modern-colorthief
Requires: python3-colorthief
Requires: python3-dateparser %dnl >= 1.1.4 | https://bugzilla.redhat.com/show_bug.cgi?id=2115204
Requires: python3-emoji
Requires: python3-gobject
-5
View File
@@ -1,5 +0,0 @@
project pkg {
rpm {
spec = "kopia.spec"
}
}
@@ -1,13 +0,0 @@
diff --git a/app/package.json b/app/package.json
index bd3a699a..df05befa 100644
--- a/app/package.json
+++ b/app/package.json
@@ -45,7 +45,7 @@
],
"directories": {
"buildResources": "assets",
- "output": "../dist/kopia-ui"
+ "output": "./dist"
},
"nsis": {
"oneClick": false,
-7
View File
@@ -1,7 +0,0 @@
[Desktop Entry]
Type=Application
Terminal=false
Name=KopiaUI
Comment=Fast and secure open-source backup/restore tool
Exec=kopia-ui
Icon=kopia
-13
View File
@@ -1,13 +0,0 @@
<component>
<name>KopiaUI</name>
<summary>
A backup/restore tool that allows you to create encrypted snapshots
</summary>
<categories>
<category>System</category>
<category>Network</category>
</categories>
<provides>
<binary>kopia-ui</binary>
</provides>
</component>
-84
View File
@@ -1,84 +0,0 @@
%global appid io.kopia.ui
%global appstream_component desktop-application
Name: kopia
%electronmeta -D
Version: 0.22.3
Release: 1%{?dist}
Summary: A backup/restore tool that allows you to create encrypted snapshots
License: Apache-2.0 AND CC0-1.0 AND %{electron_license}
URL: https://kopia.io/
Source0: https://github.com/kopia/kopia/archive/v%{version}.tar.gz
Source1: io.kopia.ui.desktop
Source2: io.kopia.ui.metainfo.xml
Patch0: fix-electron-output-dir.patch
ExclusiveArch: %{golang_arches_future}
Packager: metcya <metcya@gmail.com>
BuildRequires: go-rpm-macros
BuildRequires: terra-appstream-helper
%global gui_name %{name}-ui
%package -n %{gui_name}
Summary: GUI for %{name}
Requires: %{name} = %{evr}
ExclusiveArch: %{electron_arches}
%description
Kopia is a fast and secure open-source backup/restore tool that allows you to
create encrypted snapshots of your data and save the snapshots to remote or
cloud storage of your choice, to network-attached storage or server, or locally
on your machine. Kopia does not 'image' your whole machine. Rather, Kopia
allows you to backup/restore any and all files/directories that you deem are
important or critical.
%description -n %{gui_name}
A graphical user interface for %{name}.
%prep
%autosetup -p1
%build
%global gomodulesmode GO111MODULE=on
%gobuild -o %{name} .
pushd app
%npm_build -B
popd
%install
install -Dm 755 %{name} -t %{buildroot}%{_bindir}
pushd app
%electron_install -b %{gui_name} -d %{gui_name} -s %{gui_name} -I ../icons
popd
# the offical package for kopia-ui includes a bundled copy of the kopia binary
# but we'll just symlink it
mkdir -p %{buildroot}%{_libdir}/%{gui_name}/resources/server
%{__ln_s} %{_bindir}/%{name} %{buildroot}%{_libdir}/%{gui_name}/resources/server/%{name}
%desktop_file_install %{S:1}
%terra_appstream -o %{S:2}
%check
%desktop_file_validate %{buildroot}%{_appsdir}/%{appid}.desktop
%files
%license README.md
%doc LICENSE
%{_bindir}/%{name}
%files -n %{gui_name}
%{_bindir}/%{gui_name}
%{_libdir}/%{gui_name}/
%{_appsdir}/%{appid}.desktop
%{_metainfodir}/%{appid}.metainfo.xml
%{_hicolordir}/*/apps/kopia.png
%changelog
* Thu Jan 22 2026 metcya <metcya@gmail.com> - 0.22.3-1
- Initial package
-1
View File
@@ -1 +0,0 @@
rpm.version(gh("kopia/kopia"));
@@ -1,5 +1,5 @@
%global commit 4ccb21b88c39a387701cf65d31330a7572abd45d
%global commit_date 20260120
%global commit 0b1a005936552abd5aed144bdc0ca5a82f2fa682
%global commit_date 20250622
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global debug_package %nil
%global __strip /bin/true
@@ -82,10 +82,10 @@ desktop-file-install --set-key=Exec --set-value="%{_datadir}/legcord/legcord %U"
* Mon Aug 26 2024 madonuko <mado@fyralabs.com> - 3.3.0-1
- Update to license.txt
* Sat Jun 17 2023 madonuko <mado@fyralabs.com> - 3.2.0-2
* Sat Jun 17 2023 windowsboy111 <windowsboy111@fyralabs.com> - 3.2.0-2
- Remove libnotify dependency.
- Fix desktop entry.
- Set as noarch package because there are not binary files.
* Sat May 6 2023 madonuko <mado@fyralabs.com> - 3.1.7-1
* Sat May 6 2023 windowsboy111 <windowsboy111@fyralabs.com> - 3.1.7-1
- Initial package
+4 -4
View File
@@ -9,8 +9,8 @@
%endif
Name: legcord
Version: 1.1.6
Release: 1%?dist
Version: 1.1.5
Release: 2%?dist
License: OSL-3.0
Summary: Custom lightweight Discord client designed to enhance your experience
URL: https://github.com/Legcord/Legcord
@@ -78,10 +78,10 @@ desktop-file-install --set-key=Exec --set-value="%{_datadir}/legcord/legcord %U"
* Mon Aug 26 2024 madonuko <mado@fyralabs.com> - 3.3.0-1
- Update to license.txt
* Sat Jun 17 2023 madonuko <mado@fyralabs.com> - 3.2.0-2
* Sat Jun 17 2023 windowsboy111 <windowsboy111@fyralabs.com> - 3.2.0-2
- Remove libnotify dependency.
- Fix desktop entry.
- Set as noarch package because there are not binary files.
* Sat May 6 2023 madonuko <mado@fyralabs.com> - 3.1.7-1
* Sat May 6 2023 windowsboy111 <windowsboy111@fyralabs.com> - 3.1.7-1
- Initial package
-5
View File
@@ -1,5 +0,0 @@
project pkg {
rpm {
spec = "librepods.spec"
}
}
@@ -1,37 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<component type="desktop-application">
<id>com.github.librepods</id>
<metadata_license>CC0-1.0</metadata_license>
<project_license>GPL-3.0-only</project_license>
<icon
type="remote"
>https://github.com/kavishdevar/librepods/blob/main/linux/assets/librepods.png</icon>
<name>librepods</name>
<summary>AirPods liberated from Apple's ecosystem</summary>
<description>
<p>
LibrePods unlocks Apple's exclusive AirPods features on non-Apple devices.
Get access to noise control modes, adaptive transparency, ear detection,
hearing aid, customized transparency mode, battery status, and more - all the
premium features you paid for but Apple locked to their ecosystem.
</p>
</description>
<launchable type="desktop-id">me.kavishdevar.librepods.desktop</launchable>
<url type="homepage">https://github.com/kavishdevar/librepods</url>
<provides>
<binary>librepods</binary>
</provides>
<keywords>
<keyword>airpods</keyword>
<keyword>librepods</keyword>
</keywords>
<releases>
<release version="0.1.0" />
</releases>
</component>
-63
View File
@@ -1,63 +0,0 @@
%global appid com.github.librepods
Name: librepods
Summary: AirPods liberated from Apple's ecosystem
Version: 0.1.0
Release: 1%?dist
License: GPL-3.0-only
URL: https://github.com/kavishdevar/librepods
Source0: %url/archive/refs/tags/linux-v%version.tar.gz
Source1: com.github.librepods.metainfo.xml
Packager: Owen Zimmerman <owen@fyralabs.com>
BuildRequires: cmake
BuildRequires: gcc
BuildRequires: g++
BuildRequires: qt6-qtbase-devel
BuildRequires: qt6-qtconnectivity-devel
BuildRequires: qt6-qtmultimedia-devel
BuildRequires: qt6-qtdeclarative-devel
BuildRequires: openssl-devel
BuildRequires: anda-srpm-macros
BuildRequires: terra-appstream-helper
Requires: glibc
Requires: openssl
Requires: qt6-qtbase
Requires: qt6-qtconnectivity
Requires: qt6-qtdeclarative
%description
LibrePods unlocks Apple's exclusive AirPods features on non-Apple devices.
Get access to noise control modes, adaptive transparency, ear detection,
hearing aid, customized transparency mode, battery status, and more - all the
premium features you paid for but Apple locked to their ecosystem.
%prep
%autosetup -n %{name}-linux-v%{version}
%build
pushd linux
%cmake
%cmake_build
popd
%install
install -Dm644 linux-rust/assets/icon.png %{buildroot}%{_iconsdir}/hicolor/512x512/apps/librepods.png
pushd linux
%cmake_install
popd
%terra_appstream -o %{SOURCE1}
%files
%doc README.md linux/README.md CHANGELOG.md
%license LICENSE
%{_bindir}/librepods
%{_datadir}/applications/me.kavishdevar.librepods.desktop
%{_metainfodir}/com.github.librepods.metainfo.xml
%{_iconsdir}/hicolor/512x512/apps/librepods.png
%changelog
* Wed Nov 19 2025 Owen Zimmerman <owen@fyralabs.com>
- Initial commit
-4
View File
@@ -1,4 +0,0 @@
let tags = json_arr(get("https://api.github.com/repos/kavishdevar/librepods/tags"));
let tag = tags.find(|t| t.name.starts_with("linux-v"));
tag.name.crop(7);
rpm.version(tag.name);
+2 -2
View File
@@ -1,9 +1,9 @@
%global forgeurl0 https://gitlab.com/mission-center-devs/mission-center
Version: 1.1.0
Version: 1.0.2
%global tag0 v%{version}
%global forgeurl1 https://gitlab.com/mission-center-devs/gng
%global commit1 1a8916cfeb06a3d63eefa8b17972eb2988e16da3
%global commit1 319d95d29cbc3c373ae61cff228e8440fbaadbbb
%forgemeta -a
+1 -1
View File
@@ -3,6 +3,6 @@ project pkg {
spec = "mpv-nightly.spec"
}
labels {
nightly = 1
nightly = "1"
}
}
+18 -26
View File
@@ -1,10 +1,7 @@
# Disable X11 for RHEL 10+
%bcond x11 %[%{undefined rhel} || 0%{?rhel} < 10]
%global commit 7bfa2cfd3d44d38d1736d66cc26e30c587e17636
%global commit dd2cccec192496940d396e75d1a3892ee09efd81
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global commit_date 20260126
%global ver 0.41.0
%global commit_date 20250716
%global ver 0.40.0
Name: mpv-nightly
Version: %ver^%commit_date.%shortcommit
@@ -45,8 +42,8 @@ BuildRequires: pkgconfig(libavutil) >= 57.24.100
BuildRequires: pkgconfig(libbluray)
BuildRequires: pkgconfig(libcdio)
BuildRequires: pkgconfig(libcdio_paranoia)
BuildRequires: pkgconfig(libdrm)
BuildRequires: pkgconfig(libdisplay-info)
BuildRequires: pkgconfig(libdrm)
BuildRequires: pkgconfig(libjpeg)
BuildRequires: pkgconfig(libpipewire-0.3) >= 0.3.19
BuildRequires: pkgconfig(libplacebo) >= 6.338.0
@@ -59,8 +56,10 @@ BuildRequires: pkgconfig(mujs)
BuildRequires: pkgconfig(openal)
BuildRequires: pkgconfig(rubberband)
BuildRequires: pkgconfig(sdl2)
BuildRequires: pkgconfig(shaderc)
BuildRequires: pkgconfig(uchardet) >= 0.0.5
BuildRequires: pkgconfig(vapoursynth)
BuildRequires: pkgconfig(vdpau)
BuildRequires: pkgconfig(vulkan)
BuildRequires: pkgconfig(wayland-client)
BuildRequires: pkgconfig(wayland-cursor)
@@ -72,19 +71,12 @@ BuildRequires: pkgconfig(xdamage)
BuildRequires: pkgconfig(xext)
BuildRequires: pkgconfig(xinerama)
BuildRequires: pkgconfig(xkbcommon)
BuildRequires: pkgconfig(xrandr)
BuildRequires: pkgconfig(zimg) >= 2.9
BuildRequires: pkgconfig(zlib)
%if %{with x11}
BuildRequires: pkgconfig(vdpau)
BuildRequires: pkgconfig(xpresent)
BuildRequires: pkgconfig(xrandr)
BuildRequires: pkgconfig(xscrnsaver)
BuildRequires: pkgconfig(xv)
%endif
%ifarch x86_64
BuildRequires: libOpenCL.so.1
%endif
BuildRequires: pkgconfig(zimg) >= 2.9
BuildRequires: pkgconfig(zlib)
Requires: hicolor-icon-theme
Provides: mplayer-backend
@@ -154,17 +146,10 @@ sed -e "s|/usr/local/etc|%{_sysconfdir}/mpv|" -i etc/mpv.conf
-Ddvdnav=enabled \
-Degl-drm=enabled \
-Degl-wayland=enabled \
%if %{with x11}
-Degl-x11=enabled \
-Dgl-x11=enabled \
-Dvaapi-x11=enabled \
-Dvdpau-gl-x11=enabled \
-Dvdpau=enabled \
-Dx11=enabled \
-Dxv=enabled \
%endif
-Degl=enabled \
-Dgbm=enabled \
-Dgl-x11=enabled \
-Dgl=enabled \
-Dhtml-build=enabled \
-Diconv=enabled \
@@ -188,18 +173,23 @@ sed -e "s|/usr/local/etc|%{_sysconfdir}/mpv|" -i etc/mpv.conf
-Dsdl2-audio=enabled \
-Dsdl2-gamepad=enabled \
-Dsdl2-video=enabled \
-Dshaderc=disabled \
-Dsdl2=enabled \
-Dsndio=disabled \
-Dspirv-cross=disabled \
-Duchardet=enabled \
-Dvaapi-drm=enabled \
-Dvaapi-wayland=enabled \
-Dvaapi-x11=enabled \
-Dvaapi=enabled \
-Dvapoursynth=enabled \
-Dvdpau-gl-x11=enabled \
-Dvdpau=enabled \
-Dvector=enabled \
-Dvulkan=enabled \
-Dwayland=enabled \
-Dwerror=false \
-Dx11=enabled \
-Dxv=enabled \
-Dzimg=enabled \
-Dzlib=enabled
%meson_build
@@ -220,6 +210,8 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/mpv.desktop
%{_datadir}/icons/hicolor/*/apps/mpv*.*
%{_mandir}/man1/mpv.*
%{_metainfodir}/mpv.metainfo.xml
%dir %{_sysconfdir}/mpv/
%config(noreplace) %{_sysconfdir}/mpv/encoding-profiles.conf
%files libs
%license LICENSE.GPL LICENSE.LGPL Copyright
@@ -0,0 +1 @@
v1.11.15
@@ -1,5 +1,5 @@
project pkg {
rpm {
spec = "scrcpy.spec"
spec = "nekoray.spec"
}
}
@@ -2,10 +2,10 @@
Version=1.0
Terminal=false
Type=Application
Name=Throne
Name=nekoray
Categories=Network;
Comment=Qt based cross-platform GUI proxy configuration manager (backend: sing-box)
Comment[zh_CN]= Qt ( sing-box)
Keywords=Internet;VPN;Proxy;sing-box;nekoray;
Exec=/usr/bin/throne
Icon=/usr/share/icons/Throne.ico
Keywords=Internet;VPN;Proxy;sing-box;
Exec=/bin/nekoray
Icon=/usr/share/icons/nekoray.ico
+2
View File
@@ -0,0 +1,2 @@
#!/bin/sh
/lib64/nekoray/nekoray -appdata "${@}"
+93
View File
@@ -0,0 +1,93 @@
%global gomodulesmode GO111MODULE=on
Name: nekoray
Version: 4.3.7
Release: 1%?dist
Summary: Qt based cross-platform GUI proxy configuration manager (backend: sing-box)
URL: https://github.com/Mahdi-zarei/nekoray
License: GPLv3
Source0: https://github.com/Mahdi-zarei/nekoray/archive/refs/tags/%{version}.tar.gz#/nekoray-%{version}.tar.gz
Packager: bunzuhbu <g89156436@gmail.com>
Source1: vendor-%{version}.tar.gz
%define fetch_vendor %{_rpmconfigdir}/rpmuncompress -xv %{SOURCE1}
Source2: Sagernet.SingBox.Version.txt
%define singbox_version $(cat %{SOURCE2})
Source3: %{name}.desktop
Source4: %{name}.sh
BuildRequires: rpm_macro(cmake)
BuildRequires: rpm_macro(cmake_build)
BuildRequires: rpm_macro(cmake_install)
BuildRequires: cmake
BuildRequires: gcc-c++
BuildRequires: pkgconfig(protobuf)
BuildRequires: pkgconfig(libcurl)
BuildRequires: cmake(yaml-cpp)
BuildRequires: cmake(ZXing)
BuildRequires: cmake(absl)
BuildRequires: cmake(cpr)
BuildRequires: cmake(Qt6)
BuildRequires: cmake(Qt6Svg)
BuildRequires: cmake(Qt6Linguist)
BuildRequires: cmake(Qt6Charts)
BuildRequires: patchelf
BuildRequires: sed
BuildRequires: golang
BuildRequires: rpm_macro(gobuildflags)
Requires: %{name}-core
%define core nekobox_core
%package core
Summary: %{summary}
%description
%{summary}
%description core
%{summary}
%prep
%autosetup -p1 -n %{name}-%{version}
sed -i 's~find_package(Protobuf CONFIG REQUIRED)~find_package(Protobuf REQUIRED)~' cmake/myproto.cmake
sed -i 's~add_library(qhotkey 3rdparty/QHotkey/qhotkey.cpp)~add_library(qhotkey STATIC 3rdparty/QHotkey/qhotkey.cpp)~' cmake/QHotkey.cmake
# sed -i 's~ImageFormat::BGRA~ImageFormat::BGR~' 3rdparty/ZxingQtReader.hpp
pushd core/server
%{fetch_vendor}
popd
%build
%cmake
%cmake_build
DEST=$PWD/%{__cmake_builddir}/%{core}
pushd core/server
go build %{gobuildflags} -o $DEST -trimpath -ldflags "-B 0x$(echo "%{name}-%{version}-%{release}-${SOURCE_DATE_EPOCH:-}" | sha1sum | cut -d ' ' -f1) -w -s -X 'github.com/sagernet/sing-box/constant.Version=%{singbox_version}'" -tags "with_clash_api,with_gvisor,with_quic,with_wireguard,with_utls,with_ech,with_dhcp"
popd
%install
mkdir -p %{buildroot}%{_libdir}/%{name}
mkdir -p %{buildroot}%{_bindir}
mkdir -p %{buildroot}%{_datadir}/applications
mkdir -p %{buildroot}%{_datadir}/icons
cp %{SOURCE4} %{buildroot}%{_bindir}/%{name}
cp %{SOURCE3} %{buildroot}%{_datadir}/applications/%{name}.desktop
sed -i 's~/bin~%{_bindir}~g;s~/usr/share~%{_datadir}~g;s~nekoray~%{name}~g' %{buildroot}%{_datadir}/applications/%{name}.desktop
sed -i 's~/bin~%{_bindir}~g;s~/lib64~%{_libdir}~g;s~nekoray~%{name}~g' %{buildroot}%{_bindir}/%{name}
cp %{__cmake_builddir}/%{name} %{buildroot}%{_libdir}/%{name}/%{name}
cp %{__cmake_builddir}/%{core} %{buildroot}%{_libdir}/%{name}/%{core}
cp res/nekoray.ico %{buildroot}%{_datadir}/icons/%{name}.ico
patchelf --remove-rpath %{buildroot}%{_libdir}/%{name}/%{name}
patchelf --remove-rpath %{buildroot}%{_libdir}/%{name}/%{core}
%files
%attr(0755, -, -) %{_bindir}/%{name}
%attr(0755, -, -) %{_libdir}/%{name}/%{name}
%attr(0644, -, -) %{_datadir}/icons/%{name}.ico
%attr(0644, -, -) %{_datadir}/applications/%{name}.desktop
%files core
%dir %{_libdir}/%{name}
%attr(0755, -, -) %{_libdir}/%{name}/%{core}
+5
View File
@@ -0,0 +1,5 @@
let sourcedir = "anda/apps/nekoray";
sh(`dnf in -y golang rpmdevtools tar rpm-build coreutils`, #{});
sh(`pushd ${sourcedir}; bash -x pre.sh; popd`, #{});
+10
View File
@@ -0,0 +1,10 @@
export sourcedir="$PWD"
rpmdev-spectool --all --get-files nekoray.spec
version=$(rpmspec --query --queryformat "%{VERSION}\n" nekoray.spec | uniq)
tar -xzf "nekoray-${version}.tar.gz"
pushd "nekoray-${version}/core/server"
go mod download github.com/stretchr/testify
go mod vendor
tar -czf "${sourcedir}/vendor-${version}.tar.gz" vendor
popd
+3
View File
@@ -0,0 +1,3 @@
rpm.version(find(`([\d.]+)-\d+-\d+-\d+`, gh_rawfile("Mahdi-zarei/nekoray", "dev", "nekoray_version.txt"), 1));
open_file("anda/apps/nekoray/Sagernet.SingBox.Version.txt", "w").write(gh("sagernet/sing-box"));
@@ -1,31 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<component type="desktop-application">
<id>com.github.neohtop</id>
<metadata_license>CC0-1.0</metadata_license>
<project_license>MIT</project_license>
<icon type="local">/usr/share/icons/hicolor/128x128/apps/NeoHtop.png</icon>
<name>NeoHtop</name>
<summary>System monitoring on steroids</summary>
<description>
<p>
A modern, cross-platform system monitor built on top of Svelte, Rust, and Tauri.
</p>
</description>
<launchable type="desktop-id">NeoHtop.desktop</launchable>
<url type="homepage">https://abdenasser.github.io/neohtop/</url>
<provides>
<binary>neohtop</binary>
</provides>
<keywords>
<keyword>system monitor</keyword>
</keywords>
<releases>
<release version="1.2.0" />
</releases>
</component>
+18 -37
View File
@@ -1,70 +1,51 @@
%undefine __brp_mangle_shebangs
%global appid com.github.neohtop
%global __brp_mangle_shebangs %{nil}
Name: neohtop
Version: 1.2.0
Release: 3%?dist
Release: 1%?dist
Summary: System monitoring on steroids
SourceLicense: MIT
License: ((Apache-2.0 OR MIT) AND BSD-3-Clause) AND (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND Apache-2.0 AND (BSD-3-Clause AND MIT) AND (BSD-3-Clause OR MIT OR Apache-2.0) AND (BSD-3-Clause OR MIT) AND BSD-3-Clause AND (CC0-1.0 OR MIT-0 OR Apache-2.0) AND (MIT OR Apache-2.0 OR Zlib) AND (MIT OR Apache-2.0) AND (MIT OR Zlib OR Apache-2.0) AND MIT AND MPL-2.0 AND (Unlicense OR MIT) AND (Zlib OR Apache-2.0 OR MIT)
License: MIT
URL: https://github.com/Abdenasser/neohtop
Source0: %url/archive/refs/tags/v%version.tar.gz
Source1: NeoHtop.desktop
Source2: com.github.neohtop.metainfo.xml
Packager: Owen Zimmerman <owen@fyralabs.com>
BuildRequires: rust
BuildRequires: %tauri_buildrequires
BuildRequires: nodejs-npm
BuildRequires: webkit2gtk4.1-devel
BuildRequires: javascriptcoregtk4.1-devel
BuildRequires: libsoup3-devel
BuildRequires: gtk3-devel
BuildRequires: rust-gdk-pixbuf-sys-devel
BuildRequires: glib2-devel
BuildRequires: openssl-devel
BuildRequires: desktop-file-utils
BuildRequires: anda-srpm-macros
BuildRequires: terra-appstream-helper
Provides: NeoHtop
%description
%summary.
%prep
%autosetup -n neohtop-%version
%tauri_prep
%build
%npm_build -B
npm install
npm run tauri build
%install
install -Dpm755 src-tauri/target/rpm/NeoHtop %{buildroot}%{_bindir}/NeoHtop
%desktop_file_install %{SOURCE1}
install -Dpm755 src-tauri/target/release/NeoHtop %buildroot%_bindir/NeoHtop
install -Dpm644 %{SOURCE1} %buildroot%{_datadir}/applications/NeoHtop.desktop
# don't mind the numbers not matching, this is how the offical rpm installs these files
install -Dpm644 src-tauri/icons/128x128@2x.png %{buildroot}%{_hicolordir}/256x256@2/apps/NeoHtop.png
install -Dpm644 src-tauri/icons/32x32.png %{buildroot}%{_hicolordir}/32x32/apps/NeoHtop.png
install -Dpm644 src-tauri/icons/128x128.png %{buildroot}%{_hicolordir}/128x128/apps/NeoHtop.png
%terra_appstream -o %{SOURCE2}
%{tauri_cargo_license} > LICENSE.dependencies
%check
%desktop_file_validate %{buildroot}%{_appsdir}/NeoHtop.desktop
install -Dpm644 src-tauri/icons/128x128@2x.png %buildroot%{_iconsdir}/hicolor/256x256@2/apps/NeoHtop.png
install -Dpm644 src-tauri/icons/32x32.png %buildroot%{_iconsdir}/hicolor/32x32/apps/NeoHtop.png
install -Dpm644 src-tauri/icons/128x128.png %buildroot%{_iconsdir}/hicolor/128x128/apps/NeoHtop.png
%files
%doc README.md
%license LICENSE
%license LICENSE.dependencies
%{_bindir}/NeoHtop
%{_appsdir}/NeoHtop.desktop
%{_hicolordir}/256x256@2/apps/NeoHtop.png
%{_hicolordir}/32x32/apps/NeoHtop.png
%{_hicolordir}/128x128/apps/NeoHtop.png
%{_metainfodir}/com.github.neohtop.metainfo.xml
%_bindir/NeoHtop
%{_datadir}/applications/NeoHtop.desktop
%{_iconsdir}/hicolor/256x256@2/apps/NeoHtop.png
%{_iconsdir}/hicolor/32x32/apps/NeoHtop.png
%{_iconsdir}/hicolor/128x128/apps/NeoHtop.png
%changelog
* Wed Dec 24 2025 Owen Zimmerman <owen@fyralabs.com>
- Clean up build, add %check
* Wed Nov 19 2025 Owen Zimmerman <owen@fyralabs.com>
- Add metainfo
* Sat Feb 15 2025 Owen Zimmerman <owen@fyralabs.com>
- Initial package
-5
View File
@@ -1,5 +0,0 @@
project pkg {
rpm {
spec = "newsraft.spec"
}
}
-61
View File
@@ -1,61 +0,0 @@
%define debug_package %{nil}
Name: newsraft
Version: 0.34
Release: 1%?dist
Summary: Newsraft is a feed reader with text-based user interface.
# It's hosted on codeberg but updates are easier from the github mirror.
URL: https://codeberg.org/newsraft/%{name}
Source0: https://github.com/newsraft/%{name}/archive/refs/tags/%{name}-%{version}.tar.gz
License: ISC
# The Requires and BuildRequires are duplicated because they are used both
# at build and runtime.
BuildRequires: anda-srpm-macros gcc make
BuildRequires: sqlite-devel
BuildRequires: gumbo-parser-devel
BuildRequires: expat-devel
BuildRequires: libcurl-devel
BuildRequires: scdoc %dnl This is just for man pages.
Requires: sqlite-devel
Requires: gumbo-parser-devel
Requires: expat-devel
Requires: libcurl-devel
Packager: arbormoss <arbormoss@woodsprite.dev>
%description
%summary.
It's greatly inspired by Newsboat and tries to be its lightweight counterpart.
%prep
# The source just has an ugly dir name.
%autosetup -n %name-%name-%version
%build
%{make_build}
%{make_build} man
%install
mkdir -p %{buildroot}%{_mandir}/man1/
mkdir -p %{buildroot}%{_iconsdir}/hicolor/scalable/apps/
mkdir -p %{buildroot}%{_datadir}/applications/
install -Dm755 %{name} %{buildroot}%{_bindir}/%{name}
install -Dm644 doc/%{name}.1 %{buildroot}%{_mandir}/man1/
install -Dm644 doc/%{name}.svg %{buildroot}%{_iconsdir}/hicolor/scalable/apps/
install -Dm644 doc/%{name}.desktop %{buildroot}%{_datadir}/applications/
%files
%doc README.md
%license doc/license.txt
%{_bindir}/%{name}
%{_mandir}/man1/%{name}.1.*
%{_datadir}/applications/%{name}.desktop
%{_iconsdir}/hicolor/scalable/apps/%{name}.svg
%changelog
* Wed Dec 10 2025 arbormoss <arbormoss@woodsprite.dev>
- Intial Commit

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