mirror of
https://github.com/terrapkg/packages.git
synced 2026-05-31 09:01:55 +00:00
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d58c25df5d |
+1
-1
@@ -2,7 +2,7 @@
|
||||
"repoOwner": "terrapkg",
|
||||
"repoName": "packages",
|
||||
"resetAuthor": true,
|
||||
"targetBranchChoices": ["el10", "f41", "f42", "f43", "frawhide"],
|
||||
"targetBranchChoices": ["el10", "f40", "f41", "f42", "frawhide"],
|
||||
"branchLabelMapping": {
|
||||
"^sync-(.+)$": "$1"
|
||||
}
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
# for each folder in anda/
|
||||
# generate a new workflow for each folder in anda/
|
||||
name: Automatically build packages
|
||||
permissions:
|
||||
contents: read
|
||||
on:
|
||||
push:
|
||||
paths:
|
||||
@@ -20,7 +18,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:
|
||||
@@ -38,8 +36,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' }}
|
||||
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/builder:f${{ matrix.version }}
|
||||
options: --cap-add=SYS_ADMIN --privileged
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Set up git repository
|
||||
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
|
||||
|
||||
- name: CI Setup Script
|
||||
if: ${{ matrix.pkg.labels.mock != '1' }}
|
||||
run: |
|
||||
dir=$(dirname ${{ matrix.pkg.pkg }})
|
||||
if [ -f $dir/ci_setup.rhai ]; then
|
||||
anda run $dir/ci_setup.rhai --labels script_path=$dir/ci_setup.rhai
|
||||
fi
|
||||
|
||||
- name: 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 }} -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'
|
||||
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,6 +1,5 @@
|
||||
name: Bootstrap Andaman and Subatomic
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
@@ -47,15 +46,15 @@ jobs:
|
||||
echo "PATH=$PATH:/github/home/.cargo/bin" >> $GITHUB_ENV
|
||||
export PATH=$PATH:/github/home/.cargo/bin
|
||||
git config --global --add safe.directory "$GITHUB_WORKSPACE"
|
||||
anda build -D "vendor Terra" -rrpmbuild anda/terra/mock-configs/pkg
|
||||
anda build -rrpmbuild anda/terra/mock-configs/pkg
|
||||
- name: Install terra-mock-configs
|
||||
run: dnf5 install -y anda-build/rpm/rpms/terra-mock-configs*.rpm
|
||||
|
||||
- name: Build terra-release
|
||||
run: anda build -D "vendor Terra" -rrpmbuild anda/terra/release/pkg
|
||||
- name: Build trra-release
|
||||
run: anda build -rrpmbuild anda/terra/release/pkg
|
||||
|
||||
- name: Build Subatomic
|
||||
run: anda build -D "vendor Terra" -rrpmbuild anda/tools/buildsys/subatomic/pkg
|
||||
run: anda build -rrpmbuild anda/tools/buildsys/subatomic/pkg
|
||||
- name: Install Subatomic
|
||||
run: dnf5 install -y ./anda-build/rpm/rpms/subatomic-*.rpm
|
||||
|
||||
|
||||
+76
-39
@@ -1,6 +1,4 @@
|
||||
name: Manual Builds
|
||||
permissions:
|
||||
contents: read
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
@@ -12,53 +10,92 @@ 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
|
||||
pkgs: ${{ steps.parsing.outputs.pkgs }}
|
||||
builder: ${{ inputs.custom_builder }}
|
||||
arch: ${{ steps.parsing.outputs.arch }}
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- name: Parse Input
|
||||
id: parsing
|
||||
run: |
|
||||
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
|
||||
|
||||
build:
|
||||
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:frawhide
|
||||
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: 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)'`
|
||||
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 }}
|
||||
- name: Set up git repository
|
||||
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
|
||||
|
||||
- name: Build with Andaman
|
||||
run: anda build -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: |
|
||||
subatomic-cli upload --prune \
|
||||
--server https://subatomic.fyralabs.com \
|
||||
--token ${{ secrets.SUBATOMIC_TOKEN }} \
|
||||
terra${{ matrix.version }}${{ fromJson(steps.art.outputs.labels)['extra'] && '-extras' }} anda-build/rpm/rpms/*
|
||||
|
||||
- name: Upload source packages to subatomic
|
||||
run: |
|
||||
subatomic-cli upload --prune \
|
||||
--server https://subatomic.fyralabs.com \
|
||||
--token ${{ secrets.SUBATOMIC_TOKEN }} \
|
||||
terra${{ matrix.version }}${{ fromJson(steps.art.outputs.labels)['extra'] && '-extras' }}-source anda-build/rpm/srpm/*
|
||||
|
||||
- name: Notify Madoguchi (Success)
|
||||
if: success()
|
||||
run: ./.github/workflows/mg.sh true ${{matrix.pkg}} ${{matrix.version}} ${{matrix.arch}} ${{github.run_id}} ${{secrets.MADOGUCHI_JWT}} $GITHUB_SHA
|
||||
- name: Notify Madoguchi (Failure)
|
||||
if: cancelled() || failure()
|
||||
run: ./.github/workflows/mg.sh false ${{matrix.pkg}} ${{matrix.version}} ${{matrix.arch}} ${{github.run_id}} ${{secrets.MADOGUCHI_JWT}} $GITHUB_SHA
|
||||
|
||||
@@ -1,34 +1,10 @@
|
||||
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: ""
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
packages:
|
||||
description: "Packages to Build"
|
||||
required: true
|
||||
type: string
|
||||
publish:
|
||||
description: "Whether the package should be published"
|
||||
required: false
|
||||
type: boolean
|
||||
default: true
|
||||
|
||||
jobs:
|
||||
build:
|
||||
@@ -37,7 +13,7 @@ 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
|
||||
@@ -59,13 +35,13 @@ jobs:
|
||||
fi
|
||||
|
||||
- name: Install Build Dependencies
|
||||
if: ${{ matrix.pkg.labels.mock != '1' }}
|
||||
if: ${{ !contains(matrix.pkg.labels, 'mock') }}
|
||||
run: |
|
||||
dir=$(dirname ${{ matrix.pkg.pkg }})
|
||||
dnf5 builddep -y ${dir}/*.spec
|
||||
|
||||
- name: Build with Andaman
|
||||
run: anda build -D "vendor Terra" ${{ matrix.pkg.pkg }} -c terra-${{ matrix.version }}-${{ matrix.pkg.arch }} ${{ !matrix.pkg.labels.mock == '1' && '-rrpmbuild' || '' }}
|
||||
run: anda build ${{ matrix.pkg.pkg }} -c terra-${{ matrix.version }}-${{ matrix.pkg.arch }} ${{ contains(matrix.pkg.labels, 'mock') && '' || '-rrpmbuild' }}
|
||||
|
||||
- name: Generating artifact name
|
||||
id: art
|
||||
@@ -83,7 +59,6 @@ jobs:
|
||||
anda-build/rpm/srpm/*
|
||||
|
||||
- name: Upload packages to subatomic
|
||||
if: inputs.publish
|
||||
run: |
|
||||
subrepo="${{ matrix.pkg.labels.subrepo }}"
|
||||
subatomic-cli upload --prune \
|
||||
@@ -92,7 +67,6 @@ 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'
|
||||
run: |
|
||||
subrepo="${{ matrix.pkg.labels.subrepo }}"
|
||||
subatomic-cli upload --prune \
|
||||
@@ -101,8 +75,8 @@ jobs:
|
||||
terra${{ matrix.version }}${{ matrix.pkg.labels['subrepo'] && '-$subrepo' || '' }}-source anda-build/rpm/srpm/*
|
||||
|
||||
- name: Notify Madoguchi (Success)
|
||||
if: inputs.publish && success()
|
||||
run: ./.github/workflows/mg.sh true "${{matrix.pkg.pkg}}" "${{matrix.version}}" "${{matrix.pkg.arch}}" "${{github.run_id}}" "${{secrets.MADOGUCHI_JWT}}" "$GITHUB_SHA"
|
||||
if: success()
|
||||
run: ./.github/workflows/mg.sh true ${{matrix.pkg.pkg}} ${{matrix.version}} ${{matrix.pkg.arch}} ${{github.run_id}} ${{secrets.MADOGUCHI_JWT}} $GITHUB_SHA
|
||||
- name: Notify Madoguchi (Failure)
|
||||
if: inputs.publish && (cancelled() || failure())
|
||||
run: ./.github/workflows/mg.sh false "${{matrix.pkg.pkg}}" "${{matrix.version}}" "${{matrix.pkg.arch}}" "${{github.run_id}}" "${{secrets.MADOGUCHI_JWT}}" "$GITHUB_SHA"
|
||||
if: cancelled() || failure()
|
||||
run: ./.github/workflows/mg.sh false ${{matrix.pkg.pkg}} ${{matrix.version}} ${{matrix.pkg.arch}} ${{github.run_id}} ${{secrets.MADOGUCHI_JWT}} $GITHUB_SHA
|
||||
|
||||
@@ -7,14 +7,14 @@ export p="{\"id\":\"$5\",\"ver\":\"%v\",\"rel\":\"%r\",\"arch\":\"$4\",\"dirs\":
|
||||
if [[ $1 == false ]]; then
|
||||
d=${p/\%v/?}
|
||||
d=${d/\%r/?}
|
||||
curl -H "Authorization: Bearer $6" https://madoguchi.fyralabs.com/ci5/terra$3/builds/f -X PUT -H "Content-Type: application/json" -d "$d" --fail-with-body
|
||||
curl -H "Authorization: Bearer $6" https://madoguchi.fyralabs.com/ci/terra$3/builds/f -X PUT -H "Content-Type: application/json" -d $d --fail-with-body
|
||||
exit 0
|
||||
fi
|
||||
|
||||
for f in anda-build/rpm/rpms/*; do
|
||||
n=$(lesspipe.sh $f | grep -E "Name\s*: " | sed "s@Name\s*: @@" | head -n1)
|
||||
v=$(lesspipe.sh $f | grep -E "Version\s*: " | sed "s@Version\s*: @@" | head -n1)
|
||||
r=$(lesspipe.sh $f | grep -E "Release\s*: " | sed "s@Release\s*: @@" | head -n1)
|
||||
n=$(lesspipe.sh $f | grep -E "Name\s*: " | sed "s@Name\s*: @@")
|
||||
v=$(lesspipe.sh $f | grep -E "Version\s*: " | sed "s@Version\s*: @@")
|
||||
r=$(lesspipe.sh $f | grep -E "Release\s*: " | sed "s@Release\s*: @@")
|
||||
d=${p/\%v/$v}
|
||||
d=${d/\%r/$r}
|
||||
curl -H "Authorization: Bearer $6" https://madoguchi.fyralabs.com/ci5/terra$3/builds/$n -X PUT -H "Content-Type: application/json" -d $d --fail-with-body
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
name: Automatic backport/sync action
|
||||
permissions:
|
||||
contents: write
|
||||
pull-requests: write
|
||||
|
||||
on:
|
||||
pull_request_target:
|
||||
types: ["labeled", "closed"]
|
||||
@@ -25,7 +23,7 @@ jobs:
|
||||
git config --global commit.gpgsign true
|
||||
|
||||
- name: Backport Action
|
||||
uses: sorenlouv/backport-github-action@v9.5.1
|
||||
uses: sorenlouv/backport-github-action@v9.3.0
|
||||
with:
|
||||
github_token: ${{ secrets.RABONEKO_BACKPORT_GITHUB_TOKEN }}
|
||||
auto_backport_label_prefix: sync-
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
name: Update per branch
|
||||
permissions:
|
||||
contents: write
|
||||
on:
|
||||
schedule:
|
||||
- cron: "*/30 * * * *"
|
||||
@@ -8,14 +6,14 @@ on:
|
||||
|
||||
jobs:
|
||||
autoupdate:
|
||||
runs-on: ubuntu-24.04-arm
|
||||
runs-on: ubuntu-22.04
|
||||
strategy:
|
||||
matrix:
|
||||
branch:
|
||||
- frawhide
|
||||
- f40
|
||||
- f41
|
||||
- f42
|
||||
- f43
|
||||
- el10
|
||||
container:
|
||||
image: ghcr.io/terrapkg/builder:frawhide
|
||||
@@ -51,7 +49,7 @@ jobs:
|
||||
git config user.email "raboneko@fyralabs.com"
|
||||
git config gpg.format "ssh"
|
||||
git config user.signingkey "${{ runner.temp }}/signing_key"
|
||||
msg="bump(branch): $(anda run andax/ci/update_commit_message.rhai)"
|
||||
msg="bump(branch): $(git status | grep modified | sed -r 's@.+/([^/]+)/[^/]+\n?@\1 @g' | tr -d '\n')"
|
||||
git commit -S -a -m "$msg"
|
||||
git push -u origin --all
|
||||
fi
|
||||
|
||||
@@ -1,14 +1,12 @@
|
||||
name: Push comps updates
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- frawhide
|
||||
- f43
|
||||
- f42
|
||||
- f41
|
||||
- f40
|
||||
- el10
|
||||
paths:
|
||||
- comps.xml
|
||||
@@ -16,7 +14,7 @@ on:
|
||||
|
||||
jobs:
|
||||
update-comps:
|
||||
runs-on: ubuntu-24.04-arm
|
||||
runs-on: ubuntu-22.04
|
||||
container:
|
||||
image: ghcr.io/terrapkg/builder:frawhide
|
||||
steps:
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
name: Nightly Update
|
||||
permissions:
|
||||
contents: write
|
||||
on:
|
||||
schedule:
|
||||
- cron: "0 0 * * *"
|
||||
@@ -8,7 +6,7 @@ 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
|
||||
@@ -39,7 +37,7 @@ jobs:
|
||||
git config user.email "raboneko@fyralabs.com"
|
||||
git config gpg.format "ssh"
|
||||
git config user.signingkey "${{ runner.temp }}/signing_key"
|
||||
msg="bump(nightly): $(anda run andax/ci/update_commit_message.rhai)"
|
||||
msg="bump(nightly): $(git status | grep modified | sed -r 's@.+/([^/]+)/[^/]+\n?@\1 @g' | tr -d '\n')"
|
||||
git commit -S -a -m "$msg"
|
||||
git format-patch HEAD^
|
||||
copy_over () {
|
||||
@@ -48,9 +46,9 @@ jobs:
|
||||
git add anda
|
||||
git commit -S -a -m "$msg"
|
||||
}
|
||||
copy_over f40 || true
|
||||
copy_over f41 || true
|
||||
copy_over f42 || true
|
||||
copy_over f43 || true
|
||||
copy_over el10 || true
|
||||
git push -u origin --all
|
||||
fi
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
name: Weekly Update
|
||||
permissions:
|
||||
contents: write
|
||||
on:
|
||||
schedule:
|
||||
- cron: "0 0 * * *"
|
||||
@@ -8,7 +6,7 @@ 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
|
||||
@@ -39,7 +37,7 @@ jobs:
|
||||
git config user.email "raboneko@fyralabs.com"
|
||||
git config gpg.format "ssh"
|
||||
git config user.signingkey "${{ runner.temp }}/signing_key"
|
||||
msg="bump(weekly): $(anda run andax/ci/update_commit_message.rhai)"
|
||||
msg="bump(weekly): $(git status | grep modified | sed -r 's@.+/([^/]+)/[^/]+\n?@\1 @g' | tr -d '\n')"
|
||||
git commit -S -a -m "$msg"
|
||||
git format-patch HEAD^
|
||||
copy_over () {
|
||||
@@ -48,9 +46,9 @@ jobs:
|
||||
git add anda
|
||||
git commit -S -a -m "$msg"
|
||||
}
|
||||
copy_over f40 || true
|
||||
copy_over f41 || true
|
||||
copy_over f42 || true
|
||||
copy_over f43 || true
|
||||
copy_over el10 || true
|
||||
git push -u origin --all
|
||||
fi
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
name: Update
|
||||
permissions:
|
||||
contents: write
|
||||
on:
|
||||
schedule:
|
||||
- cron: "*/10 * * * *"
|
||||
@@ -8,7 +6,7 @@ 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
|
||||
@@ -39,7 +37,7 @@ jobs:
|
||||
git config user.email "raboneko@fyralabs.com"
|
||||
git config gpg.format "ssh"
|
||||
git config user.signingkey "${{ runner.temp }}/signing_key"
|
||||
msg="bump: $(anda run andax/ci/update_commit_message.rhai)"
|
||||
msg="bump: $(git status | grep modified | sed -r 's@.+/([^/]+)/[^/]+\n?@\1 @g' | tr -d '\n')"
|
||||
git commit -S -a -m "$msg"
|
||||
git format-patch HEAD^
|
||||
copy_over () {
|
||||
@@ -48,9 +46,9 @@ jobs:
|
||||
git add anda
|
||||
git commit -S -a -m "$msg"
|
||||
}
|
||||
copy_over f40 || true
|
||||
copy_over f41 || true
|
||||
copy_over f42 || true
|
||||
copy_over f43 || true
|
||||
copy_over el10 || true
|
||||
git push -u origin --all
|
||||
fi
|
||||
|
||||
@@ -1,4 +1,2 @@
|
||||
anda-build/
|
||||
**/*.tar*
|
||||
**/*.crate
|
||||
**/*.zip
|
||||
|
||||
@@ -13,8 +13,6 @@ This monorepo contains the package manifests for all packages in Terra.
|
||||
|
||||
## Installation
|
||||
|
||||
### Fedora
|
||||
|
||||
```bash
|
||||
sudo dnf install --nogpgcheck --repofrompath 'terra,https://repos.fyralabs.com/terra$releasever' terra-release
|
||||
```
|
||||
@@ -26,24 +24,6 @@ curl -fsSL https://github.com/terrapkg/subatomic-repos/raw/main/terra.repo | pke
|
||||
sudo rpm-ostree install terra-release
|
||||
```
|
||||
|
||||
Optionally, you can install `terra-release-extra` to use the Extras repository. This also installs the Nvidia, and Mesa streams but does not enable them.
|
||||
|
||||
### Enterprise Linux (EL)
|
||||
|
||||
Only EL10 is supported. Not all packages available in Terra are available in Terra EL at this time.
|
||||
|
||||
Terra EL requires the EPEL repos, which may be installed with:
|
||||
|
||||
```bash
|
||||
sudo dnf install 'https://dl.fedoraproject.org/pub/epel/epel-release-latest-$releasever.noarch.rpm'
|
||||
```
|
||||
|
||||
And Terra EL itself can be installed with:
|
||||
|
||||
```bash
|
||||
sudo dnf install --nogpgcheck --repofrompath 'terra,https://repos.fyralabs.com/terrael$releasever' terra-release
|
||||
```
|
||||
|
||||
## Documentation
|
||||
|
||||
Our documentation can be found on our [Devdocs](https://developer.fyralabs.com/terra/).
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
13.0.0.50
|
||||
@@ -1,9 +1,9 @@
|
||||
%global xurl https://files.pythonhosted.org/packages/7f/56/a1603b10d38ee51b94ae2836be40cae6fc512f046cece5792aa3c896023e/anki-25.9-cp39-abi3-manylinux_2_36_x86_64.whl
|
||||
%global aurl https://files.pythonhosted.org/packages/bb/3e/b61430bde7b6b54ffe2a5c26a9ce93d86fd08ab787479c8fbe2bc5961ff7/anki-25.9-cp39-abi3-manylinux_2_36_aarch64.whl
|
||||
%global qurl https://files.pythonhosted.org/packages/ce/bc/2d4decdcbb9098e1355c50d894298184567a3a7501f3a43c7dbc5827cdd8/aqt-25.9-py3-none-any.whl
|
||||
%global xurl https://files.pythonhosted.org/packages/68/9c/7685bd012e597332f8ce379a31b0d58dd4eae960da96ff43e9fcd978c93f/anki-25.02-cp39-abi3-manylinux_2_35_x86_64.whl
|
||||
%global aurl https://files.pythonhosted.org/packages/da/36/741cef7b7fce943d187784549fd8de8152986067d9226f384959c07770a7/anki-25.02-cp39-abi3-manylinux_2_35_aarch64.whl
|
||||
%global qurl https://files.pythonhosted.org/packages/2c/bc/763589b97aa5c91acf3d834beaa473c25ca7f335c7b40954fd0d5fd41ddc/aqt-25.02-py3-none-any.whl
|
||||
|
||||
Name: anki-bin
|
||||
Version: 25.9
|
||||
Version: 25.02
|
||||
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
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
Name: anki-qt5
|
||||
Version: 25.09
|
||||
Version: 25.02
|
||||
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
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
Name: anki
|
||||
Version: 25.09
|
||||
Version: 25.02
|
||||
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
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
%global __requires_exclude ^lib-.*.so
|
||||
%global __provides_exclude ^lib-.*.so
|
||||
|
||||
%global ver Audacity-3.7.5
|
||||
%global ver Audacity-3.7.3
|
||||
%global sanitized_ver %(echo %{ver} | sed 's/Audacity-//g')
|
||||
|
||||
Name: audacity-freeworld
|
||||
|
||||
@@ -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.8.0
|
||||
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
|
||||
@@ -1,5 +0,0 @@
|
||||
let v = gh("bitwarden/clients");
|
||||
if v.starts_with("cli-v") {
|
||||
v.crop(5);
|
||||
rpm.version(v);
|
||||
}
|
||||
@@ -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.8.0
|
||||
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
|
||||
@@ -1,3 +0,0 @@
|
||||
import "andax/bump_extras.rhai" as bump;
|
||||
|
||||
rpm.version(bump::madoguchi("bitwarden-cli.bin", labels.branch));
|
||||
@@ -8,8 +8,8 @@ for background device management, as well as a GUI to expertly customize your se
|
||||
%global __brp_mangle_shebangs %{nil}
|
||||
|
||||
Name: coolercontrol
|
||||
Version: 2.2.2
|
||||
Release: 1%?dist
|
||||
Version: 2.0.1
|
||||
Release: 2%?dist
|
||||
Summary: Cooling device control for Linux
|
||||
License: GPL-3.0-or-later
|
||||
URL: https://gitlab.com/coolercontrol/coolercontrol
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
|
||||
|
||||
Name: discord-canary-openasar
|
||||
Version: 0.0.756
|
||||
Version: 0.0.621
|
||||
Release: 1%?dist
|
||||
Summary: A snappier Discord rewrite with features like further customization and theming
|
||||
License: MIT AND https://discord.com/terms
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
|
||||
|
||||
Name: discord-canary
|
||||
Version: 0.0.756
|
||||
Version: 0.0.621
|
||||
Release: 1%?dist
|
||||
Summary: Free Voice and Text Chat for Gamers
|
||||
URL: discord.com
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
|
||||
|
||||
Name: discord-openasar
|
||||
Version: 0.0.110
|
||||
Version: 0.0.89
|
||||
Release: 1%?dist
|
||||
Summary: A snappier Discord rewrite with features like further customization and theming
|
||||
License: MIT AND https://discord.com/terms
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
|
||||
|
||||
Name: discord-ptb-openasar
|
||||
Version: 0.0.160
|
||||
Version: 0.0.136
|
||||
Release: 1%?dist
|
||||
Summary: A snappier Discord rewrite with features like further customization and theming
|
||||
License: MIT AND https://discord.com/terms
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
|
||||
|
||||
Name: discord-ptb
|
||||
Version: 0.0.160
|
||||
Version: 0.0.136
|
||||
Release: 1%?dist
|
||||
Summary: Free Voice and Text Chat for Gamers.
|
||||
URL: https://discord.com
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
|
||||
|
||||
Name: discord
|
||||
Version: 0.0.110
|
||||
Version: 0.0.89
|
||||
Release: 1%?dist
|
||||
Summary: Free Voice and Text Chat for Gamers
|
||||
URL: https://discord.com
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
%global commit 32b222cd9e2749cfdecb216189f954c719e3f66e
|
||||
%global commit_date 20250820
|
||||
%global commit db45103d1bc23d56692571d652f56f8866dc956d
|
||||
%global commit_date 20250327
|
||||
%global shortcommit %(c=%{commit}; echo ${c:0:7})
|
||||
|
||||
Name: envision-nightly
|
||||
|
||||
@@ -6,15 +6,14 @@
|
||||
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
|
||||
|
||||
Name: feishin
|
||||
Version: 0.20.1
|
||||
Version: 0.12.3
|
||||
Release: 1%?dist
|
||||
Summary: A modern self-hosted music player
|
||||
License: GPL-3.0
|
||||
URL: https://github.com/jeffvli/feishin
|
||||
Source0: %url/archive/refs/tags/v%version.tar.gz
|
||||
Requires: fuse mpv
|
||||
Packager: madonuko <mado@fyralabs.com>
|
||||
BuildRequires: jq libxcrypt-compat pnpm
|
||||
BuildRequires: nodejs20-npm jq libxcrypt-compat
|
||||
|
||||
%description
|
||||
%summary.
|
||||
@@ -39,9 +38,13 @@ Keywords=Music;Jellyfin;Audio;Stream;Sonixd
|
||||
EOF
|
||||
|
||||
%build
|
||||
pnpm i
|
||||
pnpm run postinstall
|
||||
pnpm run build
|
||||
export PATH="$PATH:$(pwd)/bin"
|
||||
mkdir bin
|
||||
ln -s /usr/bin/node-20 bin/node
|
||||
ln -s /usr/bin/npm-20 bin/npm
|
||||
npm-20 install --legacy-peer-deps
|
||||
npm-20 run postinstall
|
||||
npm-20 run build
|
||||
%ifarch x86_64
|
||||
|
||||
%define a linux
|
||||
@@ -49,11 +52,11 @@ pnpm run build
|
||||
%define a arm64
|
||||
%endif
|
||||
|
||||
pnpm exec electron-builder --linux dir --%a
|
||||
npx-20 electron-builder --linux dir --%a
|
||||
|
||||
%install
|
||||
mkdir -p %buildroot%_datadir/{pixmaps,applications} %buildroot%_bindir
|
||||
mv dist/*-unpacked %buildroot%_datadir/feishin
|
||||
mv release/build/*-unpacked %buildroot%_datadir/feishin
|
||||
install -Dm644 assets/icons/icon.png %buildroot%_datadir/pixmaps/feishin.png
|
||||
ln -s %_datadir/feishin/feishin %buildroot%_bindir/feishin
|
||||
install -Dm644 feishin.desktop %buildroot%_datadir/applications/
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "flameshot.qt5.spec"
|
||||
}
|
||||
}
|
||||
@@ -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}/
|
||||
@@ -1,8 +0,0 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "flameshot-nightly.spec"
|
||||
}
|
||||
labels {
|
||||
nightly = 1
|
||||
}
|
||||
}
|
||||
@@ -1,102 +0,0 @@
|
||||
#? https://github.com/flameshot-org/flameshot/blob/master/packaging/rpm/fedora/flameshot.spec
|
||||
|
||||
%global ver 13.1.0
|
||||
%global commit 1e18288738d77beb6acdb2df65ae0cf5f984d58c
|
||||
%global shortcommit %{sub %{commit} 1 7}
|
||||
%global commit_date 20250911
|
||||
%global devel_name QtColorWidgets
|
||||
%global _distro_extra_cflags -fuse-ld=mold
|
||||
%global _distro_extra_cxxflags -fuse-ld=mold
|
||||
|
||||
Name: flameshot.nightly
|
||||
Version: %ver^%{commit_date}git.%shortcommit
|
||||
Release: 2%?dist
|
||||
License: GPL-3.0-or-later AND ASL-2.0 AND GPL-2.0-only AND LGPL-3.0-only AND FAL-1.3
|
||||
Summary: Powerful yet simple to use screenshot software
|
||||
URL: https://flameshot.org
|
||||
Source0: https://github.com/flameshot-org/flameshot/archive/%commit/flameshot-%commit.tar.gz
|
||||
Packager: madonuko <mado@fyralabs.com>
|
||||
|
||||
BuildRequires: cmake >= 3.13.0
|
||||
BuildRequires: gcc-c++ >= 7
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: libappstream-glib
|
||||
BuildRequires: ninja-build
|
||||
BuildRequires: desktop-file-utils
|
||||
BuildRequires: mold
|
||||
|
||||
BuildRequires: cmake(Qt6Core) >= 6.0.0
|
||||
BuildRequires: cmake(KF6GuiAddons) >= 6.7.0
|
||||
BuildRequires: cmake(Qt6DBus) >= 6.0.0
|
||||
BuildRequires: cmake(Qt6Gui) >= 6.0.0
|
||||
BuildRequires: cmake(Qt6LinguistTools) >= 6.0.0
|
||||
BuildRequires: cmake(Qt6Network) >= 6.0.0
|
||||
BuildRequires: cmake(Qt6Svg) >= 6.0.0
|
||||
BuildRequires: cmake(Qt6Widgets) >= 6.0.0
|
||||
|
||||
Requires: hicolor-icon-theme
|
||||
|
||||
Conflicts: flameshot
|
||||
|
||||
Recommends: qt6-qtimageformats
|
||||
Recommends: xdg-desktop-portal%{?_isa}
|
||||
Recommends: (xdg-desktop-portal-gnome%{?_isa} if gnome-shell%{?_isa})
|
||||
Recommends: (xdg-desktop-portal-kde%{?_isa} if plasma-workspace-wayland%{?_isa})
|
||||
Recommends: (xdg-desktop-portal-wlr%{?_isa} if wlroots%{?_isa})
|
||||
|
||||
%description
|
||||
Powerful and simple to use screenshot software with built-in
|
||||
editor with advanced features.
|
||||
|
||||
Features:
|
||||
|
||||
* Customizable appearance.
|
||||
* Easy to use.
|
||||
* In-app screenshot edition.
|
||||
* DBus interface.
|
||||
|
||||
%pkg_completion -Bfz flameshot
|
||||
|
||||
%package devel
|
||||
Requires: %{name} = %{version}
|
||||
%pkg_devel_files
|
||||
%_libdir/cmake/*/
|
||||
|
||||
%package libs
|
||||
%pkg_libs_files
|
||||
|
||||
%package static
|
||||
%pkg_static_files
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n flameshot-%commit
|
||||
|
||||
%build
|
||||
export GIT_HASH=%commit
|
||||
%cmake -G Ninja \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DUSE_WAYLAND_CLIPBOARD:BOOL=ON
|
||||
%cmake_build
|
||||
|
||||
%install
|
||||
%cmake_install
|
||||
%find_lang Internationalization --with-qt
|
||||
%fdupes %{buildroot}%{_datadir}/icons
|
||||
|
||||
%check
|
||||
appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/*.metainfo.xml
|
||||
desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop
|
||||
|
||||
%files -f Internationalization.lang
|
||||
%doc README.md
|
||||
%license LICENSE
|
||||
%dir %{_datadir}/flameshot
|
||||
%dir %{_datadir}/flameshot/translations
|
||||
%{_bindir}/flameshot
|
||||
%{_datadir}/applications/org.flameshot.Flameshot.desktop
|
||||
%{_metainfodir}/org.flameshot.Flameshot.metainfo.xml
|
||||
%{_datadir}/dbus-1/interfaces/org.flameshot.Flameshot.xml
|
||||
%{_datadir}/dbus-1/services/org.flameshot.Flameshot.service
|
||||
%{_datadir}/icons/hicolor/*/apps/*.png
|
||||
%{_datadir}/icons/hicolor/scalable/apps/*.svg
|
||||
%{_mandir}/man1/flameshot.1*
|
||||
@@ -1,7 +0,0 @@
|
||||
rpm.global("commit", gh_commit("flameshot-org/flameshot"));
|
||||
if rpm.changed() {
|
||||
let v = gh("flameshot-org/flameshot");
|
||||
v.crop(1);
|
||||
rpm.global("ver", v);
|
||||
rpm.global("commit_date", date());
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
project pkg {
|
||||
arches = ["x86_64"]
|
||||
rpm {
|
||||
spec = "flatpost.spec"
|
||||
}
|
||||
}
|
||||
@@ -1,74 +0,0 @@
|
||||
Name: flatpost
|
||||
Version: 1.1.1
|
||||
Release: 1%?dist
|
||||
License: BSD-2-Clause
|
||||
Summary: Desktop environment agnostic Flathub software center.
|
||||
|
||||
URL: https://github.com/gloriouseggroll/flatpost
|
||||
Source0: %{url}/archive/refs/tags/%{version}.tar.gz
|
||||
|
||||
BuildArch: noarch
|
||||
BuildRequires: python3-devel
|
||||
BuildRequires: make
|
||||
BuildRequires: desktop-file-utils
|
||||
|
||||
Provides: nobara-updater
|
||||
|
||||
# App Deps
|
||||
Requires: python
|
||||
Requires: python3
|
||||
Requires: python3-gobject
|
||||
Requires: python3-requests
|
||||
Requires: python3-pillow
|
||||
Requires: python3-svgwrite
|
||||
Requires: python3-fonttools
|
||||
Requires: python3-numpy
|
||||
|
||||
Requires: flatpak
|
||||
Requires: glib2
|
||||
Requires: gtk3
|
||||
Requires: gtk4
|
||||
Requires: xdg-utils
|
||||
|
||||
Requires(post): shared-mime-info
|
||||
Requires(postun): shared-mime-info
|
||||
Requires(posttrans): shared-mime-info
|
||||
|
||||
%description
|
||||
Desktop environment agnostic Flathub software center. Allows for browsing,
|
||||
installation, removal, updating, and permission management of flatpak packages and repositories.
|
||||
|
||||
%prep
|
||||
%autosetup -p1
|
||||
|
||||
%build
|
||||
make all DESTDIR=%{buildroot}
|
||||
|
||||
%check
|
||||
desktop-file-validate %{buildroot}%{_datadir}/applications/com.flatpost.flatpostapp.desktop
|
||||
|
||||
%post
|
||||
xdg-icon-resource forceupdate --theme hicolor &>/dev/null
|
||||
update-mime-database usr/share/mime &>/dev/null
|
||||
update-desktop-database -q
|
||||
|
||||
%postun
|
||||
xdg-icon-resource forceupdate --theme hicolor &>/dev/null
|
||||
update-mime-database usr/share/mime &>/dev/null
|
||||
update-desktop-database -q
|
||||
|
||||
%posttrans
|
||||
xdg-icon-resource forceupdate --theme hicolor &>/dev/null
|
||||
update-mime-database usr/share/mime &>/dev/null
|
||||
update-desktop-database -q
|
||||
|
||||
%files
|
||||
%{python3_sitelib}/flatpost/
|
||||
%{_bindir}/flatpost
|
||||
%{_datadir}/applications/com.flatpost.flatpostapp.desktop
|
||||
%{_datadir}/flatpost/collections_data.json
|
||||
%{_datadir}/icons/hicolor/1024x1024/apps/com.flatpost.flatpostapp.png
|
||||
%{_datadir}/icons/hicolor/64x64/apps/com.flatpost.flatpostapp.png
|
||||
%{_datadir}/mime/packages/flatpost.xml
|
||||
%license %{_datadir}/licenses/flatpost/LICENSE
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
let v = gh_rawfile("GloriousEggroll/flatpost", "main", "VERSION.txt");
|
||||
v.trim();
|
||||
rpm.version(v);
|
||||
@@ -1,6 +1,6 @@
|
||||
Name: fontviewer
|
||||
Epoch: 1
|
||||
Version: 1.2.0
|
||||
Version: 1.1.0
|
||||
Release: 1%?dist
|
||||
Summary: View and install fonts
|
||||
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "goofcord-nightly.spec"
|
||||
}
|
||||
labels {
|
||||
mock = 1
|
||||
nightly = 1
|
||||
}
|
||||
}
|
||||
@@ -1,101 +0,0 @@
|
||||
%global commit 3f5eda113f33fead76a5a53e0b71c11b254d68fd
|
||||
%global shortcommit %(c=%{commit}; echo ${c:0:7})
|
||||
%global commit_date 20250615
|
||||
%global ver 1.10.1
|
||||
%global base_name goofcord
|
||||
%global git_name GoofCord
|
||||
%global debug_package %{nil}
|
||||
# Exclude private libraries
|
||||
%global __provides_exclude ^((libffmpeg[.]so.*)|(lib.*\\.so.*))$
|
||||
%ifnarch aarch64 armv7hl armv7l
|
||||
%global __requires_exclude ^((libffmpeg[.]so.*)|(lib.*\\.so.*)|(.*\\aarch64*\\.so.*))$
|
||||
%elifarch aarch64 armv7hl armv7l
|
||||
%global __requires_exclude ^((libffmpeg[.]so.*)|(lib.*\\.so.*)|(.*\\x86_64*\\.so.*)|(.*\\x86-64*\\.so.*))$
|
||||
%endif
|
||||
|
||||
Name: %{base_name}-nightly
|
||||
Version: %{ver}^%{commit_date}.git.%{shortcommit}
|
||||
Release: 1%{?dist}
|
||||
License: OSL-3.0
|
||||
Summary: A privacy-minded Legcord fork.
|
||||
Group: Applications/Internet
|
||||
URL: https://github.com/Milkshiift/%{git_name}
|
||||
Source0: %{url}/archive/%{commit}/%{git_name}-%{commit}.tar.gz
|
||||
BuildRequires: bun-bin
|
||||
BuildRequires: desktop-file-utils
|
||||
BuildRequires: gcc
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: git
|
||||
BuildRequires: make
|
||||
BuildRequires: nodejs
|
||||
BuildRequires: nodejs-npm
|
||||
BuildRequires: python3
|
||||
%ifarch aarch64
|
||||
BuildRequires: zlib-ng-compat-devel
|
||||
%endif
|
||||
Packager: Gilver E. <rockgrub@disroot.org>
|
||||
|
||||
%description
|
||||
A highly configurable and privacy minded Discord client.
|
||||
|
||||
%prep
|
||||
%autosetup -n %{git_name}-%{commit}
|
||||
|
||||
%build
|
||||
%ifarch aarch64 armv7hl armv7l
|
||||
sed -i '/\"x64\",/d' electron-builder.ts
|
||||
%endif
|
||||
bun install
|
||||
bun run packageLinux --publish=never
|
||||
|
||||
%install
|
||||
mkdir -p %{buildroot}%{_datadir}/%{git_name}
|
||||
%ifarch x86_64
|
||||
mv dist/linux-unpacked/* -t %{buildroot}%{_datadir}/%{git_name}
|
||||
%elifarch aarch64
|
||||
mv dist/linux-arm64-unpacked/* -t %{buildroot}%{_datadir}/%{git_name}
|
||||
%elifarch armv7hl armv7l
|
||||
mv dist/linux-armv7l-unpacked/* -t %{buildroot}%{_datadir}/%{git_name}
|
||||
%endif
|
||||
|
||||
mkdir -p %{buildroot}%{_bindir}
|
||||
ln -sf %{_datadir}/%{git_name}/%{git_name} %{buildroot}%{_bindir}/%{git_name}
|
||||
install -Dm644 dist/.icon-set/icon_16x16.png %{buildroot}/%{_iconsdir}/hicolor/16x16/apps/%{git_name}.png
|
||||
install -Dm644 dist/.icon-set/icon_32.png %{buildroot}/%{_iconsdir}/hicolor/32x32/apps/%{git_name}.png
|
||||
install -Dm644 dist/.icon-set/icon_48x48.png %{buildroot}/%{_iconsdir}/hicolor/48x48/apps/%{git_name}.png
|
||||
install -Dm644 dist/.icon-set/icon_64.png %{buildroot}/%{_iconsdir}/hicolor/64x64/apps/%{git_name}.png
|
||||
install -Dm644 dist/.icon-set/icon_128.png %{buildroot}/%{_iconsdir}/hicolor/128x128/apps/%{git_name}.png
|
||||
install -Dm644 dist/.icon-set/icon_256.png %{buildroot}/%{_iconsdir}/hicolor/256x256/apps/%{git_name}.png
|
||||
install -Dm644 dist/.icon-set/icon_512.png %{buildroot}/%{_iconsdir}/hicolor/512x512/apps/%{git_name}.png
|
||||
install -Dm644 dist/.icon-set/icon_1024.png %{buildroot}/%{_iconsdir}/hicolor/1024x1024/apps/%{git_name}.png
|
||||
|
||||
%ifarch x86_64
|
||||
dist/%{git_name}-*x86_64.AppImage --appimage-extract '*.desktop'
|
||||
%elifarch aarch64
|
||||
dist/%{git_name}-*arm64.AppImage --appimage-extract '*.desktop'
|
||||
%elifarch armv7hl armv7l
|
||||
dist/%{git_name}-*armv7l.AppImage --appimage-extract '*.desktop'
|
||||
%endif
|
||||
desktop-file-install --set-key=Exec --set-value="%{_datadir}/%{git_name}/%{git_name} --enable-features=UseOzonePlatform,WaylandWindowDecorations --ozone-platform-hint=auto %U" squashfs-root/%{git_name}.desktop
|
||||
|
||||
%check
|
||||
desktop-file-validate %{buildroot}%{_datadir}/applications/%{git_name}.desktop
|
||||
|
||||
%files
|
||||
%doc README.md
|
||||
%license LICENSE
|
||||
%{_bindir}/%{git_name}
|
||||
%{_datadir}/applications/%{git_name}.desktop
|
||||
%{_datadir}/%{git_name}/
|
||||
%{_iconsdir}/hicolor/16x16/apps/%{git_name}.png
|
||||
%{_iconsdir}/hicolor/32x32/apps/%{git_name}.png
|
||||
%{_iconsdir}/hicolor/48x48/apps/%{git_name}.png
|
||||
%{_iconsdir}/hicolor/64x64/apps/%{git_name}.png
|
||||
%{_iconsdir}/hicolor/128x128/apps/%{git_name}.png
|
||||
%{_iconsdir}/hicolor/256x256/apps/%{git_name}.png
|
||||
%{_iconsdir}/hicolor/512x512/apps/%{git_name}.png
|
||||
%{_iconsdir}/hicolor/1024x1024/apps/%{git_name}.png
|
||||
|
||||
%changelog
|
||||
* Sat Jun 28 2025 Gilver E. <rockgrub@disroot.org> - 1.10.1^20250615.git.3f5eda1
|
||||
- Initial package
|
||||
@@ -1,8 +0,0 @@
|
||||
rpm.global("commit", gh_commit("Milkshiift/GoofCord"));
|
||||
if rpm.changed {
|
||||
let v = gh_tag("Milkshiift/GoofCord");
|
||||
v.crop(1);
|
||||
rpm.global("ver", v);
|
||||
rpm.global("commit_date", date());
|
||||
rpm.release();
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "goofcord.spec"
|
||||
}
|
||||
labels {
|
||||
mock = 1
|
||||
}
|
||||
}
|
||||
@@ -1,95 +0,0 @@
|
||||
%global git_name GoofCord
|
||||
%global debug_package %{nil}
|
||||
# Exclude private libraries
|
||||
%global __provides_exclude ^((libffmpeg[.]so.*)|(lib.*\\.so.*))$
|
||||
%ifnarch aarch64 armv7hl armv7l
|
||||
%global __requires_exclude ^((libffmpeg[.]so.*)|(lib.*\\.so.*)|(.*\\aarch64*\\.so.*))$
|
||||
%elifarch aarch64 armv7hl armv7l
|
||||
%global __requires_exclude ^((libffmpeg[.]so.*)|(lib.*\\.so.*)|(.*\\x86_64*\\.so.*)|(.*\\x86-64*\\.so.*))$
|
||||
%endif
|
||||
|
||||
Name: goofcord
|
||||
Version: 1.10.3
|
||||
Release: 1%?dist
|
||||
License: OSL-3.0
|
||||
Summary: A privacy-minded Legcord fork.
|
||||
Group: Applications/Internet
|
||||
URL: https://github.com/Milkshiift/%{git_name}
|
||||
Source0: %{url}/archive/refs/tags/v%{version}.tar.gz
|
||||
BuildRequires: bun-bin
|
||||
BuildRequires: desktop-file-utils
|
||||
BuildRequires: gcc
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: make
|
||||
BuildRequires: nodejs
|
||||
BuildRequires: nodejs-npm
|
||||
BuildRequires: python3
|
||||
%ifarch aarch64
|
||||
BuildRequires: zlib-ng-compat-devel
|
||||
%endif
|
||||
Packager: Gilver E. <rockgrub@disroot.org>
|
||||
|
||||
%description
|
||||
A highly configurable and privacy minded Discord client.
|
||||
|
||||
%prep
|
||||
%autosetup -n %{git_name}-%{version}
|
||||
|
||||
%build
|
||||
%ifarch aarch64 armv7hl armv7l
|
||||
sed -i '/\"x64\",/d' electron-builder.ts
|
||||
%endif
|
||||
bun install
|
||||
bun run packageLinux
|
||||
|
||||
%install
|
||||
mkdir -p %{buildroot}%{_datadir}/%{name}
|
||||
%ifarch x86_64
|
||||
mv dist/linux-unpacked/* -t %{buildroot}%{_datadir}/%{name}
|
||||
%elifarch aarch64
|
||||
mv dist/linux-arm64-unpacked/* -t %{buildroot}%{_datadir}/%{name}
|
||||
%elifarch armv7hl armv7l
|
||||
mv dist/linux-armv7l-unpacked/* -t %{buildroot}%{_datadir}/%{name}
|
||||
%endif
|
||||
|
||||
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
|
||||
|
||||
%files
|
||||
%doc README.md
|
||||
%license LICENSE
|
||||
%{_bindir}/%{name}
|
||||
%{_datadir}/applications/%{name}.desktop
|
||||
%{_datadir}/%{name}/
|
||||
%{_iconsdir}/hicolor/16x16/apps/%{name}.png
|
||||
%{_iconsdir}/hicolor/32x32/apps/%{name}.png
|
||||
%{_iconsdir}/hicolor/48x48/apps/%{name}.png
|
||||
%{_iconsdir}/hicolor/64x64/apps/%{name}.png
|
||||
%{_iconsdir}/hicolor/128x128/apps/%{name}.png
|
||||
%{_iconsdir}/hicolor/256x256/apps/%{name}.png
|
||||
%{_iconsdir}/hicolor/512x512/apps/%{name}.png
|
||||
%{_iconsdir}/hicolor/1024x1024/apps/%{name}.png
|
||||
|
||||
%changelog
|
||||
* Sat Jun 28 2025 Gilver E. <rockgrub@disroot.org> - 1.10.1-1
|
||||
- Initial package
|
||||
@@ -1 +0,0 @@
|
||||
rpm.version(gh_tag("Milkshiift/GoofCord"));
|
||||
@@ -1,5 +0,0 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "halloy.spec"
|
||||
}
|
||||
}
|
||||
@@ -1,70 +0,0 @@
|
||||
# Generated by rust2rpm 27
|
||||
%bcond check 1
|
||||
%global appid org.squidowl.halloy
|
||||
%global crate halloy
|
||||
|
||||
Name: halloy
|
||||
Version: 2025.8
|
||||
Release: 1%?dist
|
||||
Summary: An open-source IRC client written in Rust, with the Iced GUI library
|
||||
Packager: Yoong jin <solomoncyj@gmail.com>
|
||||
SourceLicense: GPL-3.0-or-later
|
||||
License: (0BSD OR MIT OR Apache-2.0) AND Apache-2.0 AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR ISC OR MIT) AND (Apache-2.0 OR MIT) AND ((Apache-2.0 OR MIT) AND BSD-3-Clause) AND (Apache-2.0 WITH LLVM-exception) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND BSD-2-Clause AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND (BSD-2-Clause OR MIT OR Apache-2.0) AND BSD-3-Clause AND (BSD-3-Clause OR MIT OR Apache-2.0) AND BSL-1.0 AND CC0-1.0 AND (CC0-1.0 OR Apache-2.0) AND (GPL-3.0+ OR BSD-3-Clause) AND (GPL-3.0-or-later) AND ISC AND (LGPL-3.0-or-later OR MPL-2.0) AND MIT AND (MIT AND (MIT OR Apache-2.0)) AND (MIT OR Apache-2.0) AND ((MIT OR Apache-2.0) AND NCSA) AND ((MIT OR Apache-2.0) AND Unicode-3.0) AND (MIT OR Apache-2.0 OR BSD-1-Clause) AND (MIT OR Apache-2.0 OR CC0-1.0) AND (MIT OR Apache-2.0 OR Zlib) AND (MIT OR Zlib OR Apache-2.0) AND MPL-2.0 AND Unicode-3.0 AND Unlicense AND (Unlicense OR MIT) AND Zlib AND (Zlib OR Apache-2.0 OR MIT)
|
||||
|
||||
URL: https://github.com/squidowl/halloy
|
||||
Source: https://github.com/squidowl/halloy/archive/refs/tags/%{version}.tar.gz
|
||||
|
||||
BuildRequires: alsa-lib-devel
|
||||
BuildRequires: cargo-rpm-macros >= 24
|
||||
BuildRequires: desktop-file-utils
|
||||
BuildRequires: openssl-devel
|
||||
|
||||
|
||||
%description
|
||||
%{summary}.
|
||||
|
||||
%prep
|
||||
%autosetup -n halloy-%{version} -p1
|
||||
%cargo_prep_online
|
||||
|
||||
|
||||
%build
|
||||
%cargo_build
|
||||
|
||||
%install
|
||||
%crate_install_bin
|
||||
desktop-file-install assets/linux/%{appid}.desktop
|
||||
install -Dpm644 assets/linux/%{appid}.appdata.xml -t %{buildroot}%{_datadir}/metainfo
|
||||
|
||||
mkdir -p %{buildroot}%{_datadir}
|
||||
cp -r assets/linux/icons -t %{buildroot}%{_datadir}
|
||||
|
||||
%cargo_license_summary_online
|
||||
%{cargo_license_online} > LICENSE.dependencies
|
||||
|
||||
%if %{with check}
|
||||
%check
|
||||
%cargo_test
|
||||
%endif
|
||||
|
||||
%files
|
||||
%license LICENSE
|
||||
%license wix/license.rtf
|
||||
%license LICENSE.dependencies
|
||||
%doc CHANGELOG.md
|
||||
%doc README.md
|
||||
%{_bindir}/halloy
|
||||
%{_datadir}/applications/%{appid}.desktop
|
||||
%{_datadir}/metainfo/%{appid}.appdata.xml
|
||||
%{_iconsdir}/hicolor/16x16/apps/%{appid}.png
|
||||
%{_iconsdir}/hicolor/24x24/apps/%{appid}.png
|
||||
%{_iconsdir}/hicolor/32x32/apps/%{appid}.png
|
||||
%{_iconsdir}/hicolor/48x48/apps/%{appid}.png
|
||||
%{_iconsdir}/hicolor/64x64/apps/%{appid}.png
|
||||
%{_iconsdir}/hicolor/96x96/apps/%{appid}.png
|
||||
%{_iconsdir}/hicolor/128x128/apps/%{appid}.png
|
||||
%{_iconsdir}/hicolor/256x256/apps/%{appid}.png
|
||||
%{_iconsdir}/hicolor/512x512/apps/%{appid}.png
|
||||
|
||||
%changelog
|
||||
%autochangelog
|
||||
@@ -1 +0,0 @@
|
||||
rpm.version(gh("squidowl/halloy"));
|
||||
@@ -3,12 +3,12 @@
|
||||
%global gtk4_version 4.14.4
|
||||
%global libadwaita_version 1.5.1
|
||||
%global pure_protobuf_version 2.0.0
|
||||
%global raw_ver v1.87.0
|
||||
%global raw_ver v1.74.0
|
||||
|
||||
Name: komikku
|
||||
Version: 1.87.0
|
||||
Version: 1.74.0
|
||||
%forgemeta
|
||||
Release: 1%?dist
|
||||
Release: 3%?dist
|
||||
Summary: A manga reader for GNOME
|
||||
|
||||
BuildArch: noarch
|
||||
@@ -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
|
||||
@@ -99,7 +99,6 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop
|
||||
%{_bindir}/%{name}
|
||||
%{_datadir}/%{name}/
|
||||
%{_datadir}/applications/*.desktop
|
||||
%{_datadir}/dbus-1/services/%{uuid}.service
|
||||
%{_datadir}/glib-2.0/schemas/*.gschema.xml
|
||||
%{_datadir}/icons/hicolor/scalable/*/*.svg
|
||||
%{_datadir}/icons/hicolor/symbolic/*/*.svg
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "legcord-bin.spec"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,92 @@
|
||||
%define debug_package %nil
|
||||
%global _build_id_links none
|
||||
|
||||
%ifarch x86_64
|
||||
%global src Legcord-%version-linux-x64
|
||||
%elifarch aarch64
|
||||
%global src Legcord-%version-linux-arm64
|
||||
%elifarch armv7l
|
||||
%global src Legcord-%version-linux-armv7l
|
||||
%endif
|
||||
|
||||
# Exclude private libraries
|
||||
%global __requires_exclude libffmpeg.so
|
||||
%global __provides_exclude_from %{_datadir}/(armcord|legcord)/.*\\.so
|
||||
|
||||
Name: legcord-bin
|
||||
Version: 1.1.1
|
||||
Release: 1%?dist
|
||||
License: OSL-3.0
|
||||
Summary: Custom lightweight Discord client designed to enhance your experience
|
||||
URL: https://github.com/Legcord/Legcord
|
||||
Group: Applications/Internet
|
||||
Source0: %url/releases/download/v%version/%src.tar.gz
|
||||
Source1: legcord.png
|
||||
Source2: https://raw.githubusercontent.com/Legcord/Legcord/v%version/README.md
|
||||
Requires: xdg-utils
|
||||
ExclusiveArch: x86_64 aarch64 armv7l
|
||||
Conflicts: legcord
|
||||
Conflicts: legcord-nightly
|
||||
BuildRequires: add-determinism
|
||||
Obsoletes: armcord < 3.3.2-1
|
||||
|
||||
%description
|
||||
Legcord is a custom client designed to enhance your Discord experience
|
||||
while keeping everything lightweight.
|
||||
|
||||
%prep
|
||||
%autosetup -n %src
|
||||
|
||||
cat <<EOF > .legcord.desktop
|
||||
[Desktop Entry]
|
||||
Name=Legcord
|
||||
Comment=%summary
|
||||
GenericName=Internet Messenger
|
||||
Type=Application
|
||||
Exec=%_bindir/legcord
|
||||
Icon=legcord
|
||||
Categories=Network;InstantMessaging;
|
||||
StartupWMClass=legcord
|
||||
Keywords=discord;armcord;legcord;vencord;shelter;electron;
|
||||
EOF
|
||||
|
||||
%build
|
||||
|
||||
%install
|
||||
mkdir -p %buildroot%_bindir %buildroot%_datadir/applications %buildroot%_datadir/pixmaps %buildroot%_datadir/legcord %buildroot%_docdir/%name
|
||||
cp -a * %buildroot%_datadir/legcord/
|
||||
ln -s %_datadir/legcord/legcord %buildroot%_bindir/legcord
|
||||
ln -s %_datadir/legcord %buildroot%_datadir/armcord
|
||||
chmod +x -R %buildroot%_datadir/legcord/*
|
||||
chmod 755 %buildroot%_datadir/legcord/legcord
|
||||
install -Dm644 .legcord.desktop %buildroot%_datadir/applications/LegCord.desktop
|
||||
install -Dm644 %SOURCE1 %buildroot%_datadir/pixmaps/legcord.png
|
||||
install -Dm644 %SOURCE2 %buildroot%_docdir/%name/
|
||||
|
||||
# HACK: rpm bug for unability to replace existing files on system.
|
||||
%pre
|
||||
if [ -d %_datadir/armcord ] && [ ! -L %_datadir/armcord ]; then
|
||||
echo "Found old %_datadir/armcord directory, removing…"
|
||||
rm -rf %_datadir/armcord
|
||||
fi
|
||||
|
||||
%files
|
||||
%doc README.md
|
||||
%_datadir/legcord
|
||||
%_datadir/armcord
|
||||
%_bindir/legcord
|
||||
%_datadir/applications/LegCord.desktop
|
||||
%_datadir/pixmaps/legcord.png
|
||||
|
||||
%changelog
|
||||
* Mon Oct 21 2024 madonuko <mado@fyralabs.com> - 1.0.2-2
|
||||
- Rename to LegCord.
|
||||
|
||||
* Sat Jun 17 2023 madonuko <mado@fyralabs.com> - 3.2.0-2
|
||||
- Remove libnotify dependency.
|
||||
- Fix desktop entry.
|
||||
- Set as noarch package because there are not binary files.
|
||||
- Use /usr/share/ instead of /opt/
|
||||
|
||||
* Sat May 6 2023 madonuko <mado@fyralabs.com> - 3.1.7-1
|
||||
- Initial package
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 81 KiB |
@@ -0,0 +1 @@
|
||||
rpm.version(gh("LegCord/LegCord"));
|
||||
@@ -1,9 +1,9 @@
|
||||
project pkg {
|
||||
arches = ["x86_64"]
|
||||
rpm {
|
||||
spec = "legcord-nightly.spec"
|
||||
}
|
||||
labels {
|
||||
nightly = 1
|
||||
mock = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
#!/bin/sh
|
||||
electron=/usr/bin/electron
|
||||
|
||||
CONFIG=${XDG_CONFIG_HOME:-~/.config}
|
||||
FLAGS="$CONFIG/armcord-flags.conf"
|
||||
|
||||
# Allow users to override command-line options
|
||||
if [ -f "$FLAGS" ]; then
|
||||
USER_FLAGS="$(cat "$FLAGS")"
|
||||
fi
|
||||
|
||||
# shellcheck disable=SC2086 # USER_FLAGS has to be unquoted
|
||||
"$electron" /usr/share/armcord/app.asar $USER_FLAGS "$@"
|
||||
@@ -1,14 +1,7 @@
|
||||
%global commit b55a0f58bae0c633498948ddab054f96da6da2d0
|
||||
%global commit_date 20250911
|
||||
%global commit 3dda27c303fe4fb1c2a6870ee4f68d2515ec6cd5
|
||||
%global commit_date 20250328
|
||||
%global shortcommit %(c=%{commit}; echo ${c:0:7})
|
||||
%global debug_package %nil
|
||||
%global __strip /bin/true
|
||||
%global __provides_exclude ^((libffmpeg[.]so.*)|(lib.*\\.so.*))$
|
||||
%ifnarch aarch64
|
||||
%global __requires_exclude ^((libffmpeg[.]so.*)|(lib.*\\.so.*)|(.*\\aarch64*\\.so.*))$
|
||||
%elifarch aarch64
|
||||
%global __requires_exclude ^((libffmpeg[.]so.*)|(lib.*\\.so.*)|(.*\\x86_64*\\.so.*)|(.*\\x86-64*\\.so.*))$
|
||||
%endif
|
||||
%define debug_package %nil
|
||||
|
||||
Name: legcord-nightly
|
||||
Version: %commit_date.%shortcommit
|
||||
@@ -17,60 +10,67 @@ License: OSL-3.0
|
||||
Summary: Custom lightweight Discord client designed to enhance your experience
|
||||
URL: https://github.com/Legcord/Legcord
|
||||
Group: Applications/Internet
|
||||
Source0: %url/archive/%commit/Legcord-%commit.tar.gz
|
||||
Source1: launch.sh
|
||||
Packager: Owen <owen@fyralabs.com>
|
||||
Requires: xdg-utils
|
||||
Requires: electron xdg-utils
|
||||
Provides: armcord-nightly
|
||||
Obsoletes: armcord < 3.3.2-1
|
||||
Conflicts: legcord-bin
|
||||
Conflicts: legcord
|
||||
BuildRequires: anda-srpm-macros pnpm nodejs-npm git-core gcc gcc-c++ make desktop-file-utils zlib-ng-compat-devel
|
||||
BuildArch: noarch
|
||||
BuildRequires: anda-srpm-macros pnpm
|
||||
|
||||
%description
|
||||
Legcord is a custom client designed to enhance your Discord experience
|
||||
while keeping everything lightweight.
|
||||
|
||||
%prep
|
||||
%git_clone %{url}.git %{commit}
|
||||
%autosetup -n Legcord-%commit
|
||||
|
||||
cat <<EOF > legcord.desktop
|
||||
[Desktop Entry]
|
||||
Name=Legcord
|
||||
Comment=%summary
|
||||
GenericName=Internet Messenger
|
||||
Type=Application
|
||||
Exec=/usr/bin/legcord
|
||||
Icon=legcord
|
||||
Categories=Network;InstantMessaging;
|
||||
StartupWMClass=legcord
|
||||
Keywords=discord;armcord;legcord;vencord;shelter;electron;
|
||||
EOF
|
||||
|
||||
|
||||
%build
|
||||
pnpm install
|
||||
pnpm run build
|
||||
pnpm run package --linux AppImage tar.gz
|
||||
pnpm install --no-frozen-lockfile
|
||||
pnpm run packageQuick
|
||||
|
||||
|
||||
%install
|
||||
mkdir -p %{buildroot}%{_datadir}/legcord
|
||||
%ifarch aarch64
|
||||
mv dist/linux-arm64-unpacked/* %{buildroot}%{_datadir}/legcord
|
||||
%else
|
||||
mv dist/linux-unpacked/* -t %{buildroot}%{_datadir}/legcord
|
||||
%endif
|
||||
install -Dm644 dist/*-unpacked/resources/app.asar %buildroot/usr/share/legcord/app.asar
|
||||
|
||||
mkdir -p %{buildroot}%{_bindir}
|
||||
ln -sf %{_datadir}/legcord/legcord %{buildroot}%{_bindir}/legcord
|
||||
install -Dm644 dist/.icon-set/icon_16.png %{buildroot}%{_iconsdir}/hicolor/16x16/apps/legcord.png
|
||||
install -Dm644 dist/.icon-set/icon_32.png %{buildroot}%{_iconsdir}/hicolor/32x32/apps/legcord.png
|
||||
install -Dm644 dist/.icon-set/icon_48x48.png %{buildroot}%{_iconsdir}/hicolor/48x48/apps/legcord.png
|
||||
install -Dm644 dist/.icon-set/icon_64.png %{buildroot}%{_iconsdir}/hicolor/64x64/apps/legcord.png
|
||||
install -Dm644 dist/.icon-set/icon_128.png %{buildroot}%{_iconsdir}/hicolor/128x128/apps/legcord.png
|
||||
install -Dm644 dist/.icon-set/icon_256.png %{buildroot}%{_iconsdir}/hicolor/256x256/apps/legcord.png
|
||||
install -Dm644 dist/.icon-set/icon_512.png %{buildroot}%{_iconsdir}/hicolor/512x512/apps/legcord.png
|
||||
install -Dm644 dist/.icon-set/icon_1024.png %{buildroot}%{_iconsdir}/hicolor/1024x1024/apps/legcord.png
|
||||
install -Dm755 %SOURCE1 %buildroot/usr/bin/legcord
|
||||
install -Dm644 legcord.desktop %buildroot/usr/share/applications/LegCord.desktop
|
||||
install -Dm644 build/icon.png %buildroot/usr/share/pixmaps/legcord.png
|
||||
|
||||
dist/Legcord-*.AppImage --appimage-extract '*.desktop'
|
||||
desktop-file-install --set-key=Exec --set-value="%{_datadir}/legcord/legcord %U" squashfs-root/legcord.desktop
|
||||
ln -s %_datadir/legcord %buildroot%_datadir/armcord
|
||||
|
||||
# HACK: rpm bug for unability to replace existing files on system.
|
||||
%pre
|
||||
if [ -d %_datadir/armcord ] && [ ! -L %_datadir/armcord ]; then
|
||||
echo "Found old %_datadir/armcord directory, removing…"
|
||||
rm -rf %_datadir/armcord
|
||||
fi
|
||||
|
||||
%files
|
||||
%doc README.md
|
||||
%license license.txt
|
||||
%{_bindir}/legcord
|
||||
%{_datadir}/applications/legcord.desktop
|
||||
%{_datadir}/legcord/
|
||||
%{_iconsdir}/hicolor/16x16/apps/legcord.png
|
||||
%{_iconsdir}/hicolor/32x32/apps/legcord.png
|
||||
%{_iconsdir}/hicolor/48x48/apps/legcord.png
|
||||
%{_iconsdir}/hicolor/64x64/apps/legcord.png
|
||||
%{_iconsdir}/hicolor/128x128/apps/legcord.png
|
||||
%{_iconsdir}/hicolor/256x256/apps/legcord.png
|
||||
%{_iconsdir}/hicolor/512x512/apps/legcord.png
|
||||
%{_iconsdir}/hicolor/1024x1024/apps/legcord.png
|
||||
/usr/bin/legcord
|
||||
/usr/share/applications/LegCord.desktop
|
||||
/usr/share/pixmaps/legcord.png
|
||||
/usr/share/legcord/app.asar
|
||||
/usr/share/armcord
|
||||
|
||||
%changelog
|
||||
* Fri Nov 22 2024 owen <owen@fyralabs.com> - 1.0.2-2
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
project pkg {
|
||||
arches = ["x86_64"]
|
||||
rpm {
|
||||
spec = "legcord.spec"
|
||||
}
|
||||
labels {
|
||||
mock =1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
#!/bin/sh
|
||||
electron=/usr/bin/electron
|
||||
|
||||
CONFIG=${XDG_CONFIG_HOME:-~/.config}
|
||||
FLAGS="$CONFIG/armcord-flags.conf"
|
||||
|
||||
# Allow users to override command-line options
|
||||
if [ -f "$FLAGS" ]; then
|
||||
USER_FLAGS="$(cat "$FLAGS")"
|
||||
fi
|
||||
|
||||
# shellcheck disable=SC2086 # USER_FLAGS has to be unquoted
|
||||
"$electron" /usr/share/armcord/app.asar $USER_FLAGS "$@"
|
||||
@@ -1,26 +1,25 @@
|
||||
%define debug_package %nil
|
||||
|
||||
# Exclude private libraries
|
||||
%global __provides_exclude ^((libffmpeg[.]so.*)|(lib.*\\.so.*))$
|
||||
%ifnarch aarch64
|
||||
%global __requires_exclude ^((libffmpeg[.]so.*)|(lib.*\\.so.*)|(.*\\aarch64*\\.so.*))$
|
||||
%elifarch aarch64
|
||||
%global __requires_exclude ^((libffmpeg[.]so.*)|(lib.*\\.so.*)|(.*\\x86_64*\\.so.*)|(.*\\x86-64*\\.so.*))$
|
||||
%endif
|
||||
%global __requires_exclude libffmpeg.so
|
||||
%global __provides_exclude_from %{_datadir}/(armcord|legcord)/.*\\.so
|
||||
|
||||
Name: legcord
|
||||
Version: 1.1.5
|
||||
Release: 2%?dist
|
||||
Version: 1.1.1
|
||||
Release: 1%?dist
|
||||
License: OSL-3.0
|
||||
Summary: Custom lightweight Discord client designed to enhance your experience
|
||||
URL: https://github.com/Legcord/Legcord
|
||||
Group: Applications/Internet
|
||||
Source1: launch.sh
|
||||
Packager: madonuko <mado@fyralabs.com>
|
||||
Requires: xdg-utils
|
||||
Requires: electron xdg-utils
|
||||
Provides: armcord
|
||||
Obsoletes: armcord < 3.3.2-1
|
||||
Obsoletes: legcord-bin < 1.1.5-2
|
||||
Conflicts: legcord-bin
|
||||
Conflicts: legcord-nightly
|
||||
BuildRequires: anda-srpm-macros pnpm nodejs-npm git-core gcc gcc-c++ make desktop-file-utils zlib-ng-compat-devel
|
||||
BuildArch: noarch
|
||||
BuildRequires: anda-srpm-macros pnpm
|
||||
|
||||
%description
|
||||
Legcord is a custom client designed to enhance your Discord experience
|
||||
@@ -29,47 +28,49 @@ while keeping everything lightweight.
|
||||
%prep
|
||||
%git_clone %url v%version
|
||||
|
||||
cat <<EOF > legcord.desktop
|
||||
[Desktop Entry]
|
||||
Name=Legcord
|
||||
Comment=%summary
|
||||
GenericName=Internet Messenger
|
||||
Type=Application
|
||||
Exec=/usr/bin/legcord
|
||||
Icon=legcord
|
||||
Categories=Network;InstantMessaging;
|
||||
StartupWMClass=legcord
|
||||
Keywords=discord;armcord;legcord;vencord;shelter;electron;
|
||||
EOF
|
||||
|
||||
|
||||
%build
|
||||
pnpm install
|
||||
pnpm run build
|
||||
pnpm run package --linux AppImage tar.gz
|
||||
pnpm install --no-frozen-lockfile
|
||||
pnpm run packageQuick
|
||||
|
||||
|
||||
%install
|
||||
mkdir -p %{buildroot}%{_datadir}/legcord
|
||||
%ifarch aarch64
|
||||
mv dist/linux-arm64-unpacked/* %{buildroot}%{_datadir}/legcord
|
||||
%else
|
||||
mv dist/linux-unpacked/* -t %{buildroot}%{_datadir}/legcord
|
||||
%endif
|
||||
install -Dm644 dist/*-unpacked/resources/app.asar %buildroot/usr/share/legcord/app.asar
|
||||
|
||||
mkdir -p %{buildroot}%{_bindir}
|
||||
ln -sf %{_datadir}/legcord/legcord %{buildroot}%{_bindir}/legcord
|
||||
install -Dm644 dist/.icon-set/icon_16.png %{buildroot}%{_iconsdir}/hicolor/16x16/apps/legcord.png
|
||||
install -Dm644 dist/.icon-set/icon_32.png %{buildroot}%{_iconsdir}/hicolor/32x32/apps/legcord.png
|
||||
install -Dm644 dist/.icon-set/icon_48x48.png %{buildroot}%{_iconsdir}/hicolor/48x48/apps/legcord.png
|
||||
install -Dm644 dist/.icon-set/icon_64.png %{buildroot}%{_iconsdir}/hicolor/64x64/apps/legcord.png
|
||||
install -Dm644 dist/.icon-set/icon_128.png %{buildroot}%{_iconsdir}/hicolor/128x128/apps/legcord.png
|
||||
install -Dm644 dist/.icon-set/icon_256.png %{buildroot}%{_iconsdir}/hicolor/256x256/apps/legcord.png
|
||||
install -Dm644 dist/.icon-set/icon_512.png %{buildroot}%{_iconsdir}/hicolor/512x512/apps/legcord.png
|
||||
install -Dm644 dist/.icon-set/icon_1024.png %{buildroot}%{_iconsdir}/hicolor/1024x1024/apps/legcord.png
|
||||
install -Dm755 %SOURCE1 %buildroot/usr/bin/legcord
|
||||
install -Dm644 legcord.desktop %buildroot/usr/share/applications/LegCord.desktop
|
||||
install -Dm644 build/icon.png %buildroot/usr/share/pixmaps/legcord.png
|
||||
|
||||
dist/Legcord-*.AppImage --appimage-extract '*.desktop'
|
||||
desktop-file-install --set-key=Exec --set-value="%{_datadir}/legcord/legcord %U" squashfs-root/legcord.desktop
|
||||
ln -s %_datadir/legcord %buildroot%_datadir/armcord
|
||||
|
||||
# HACK: rpm bug for unability to replace existing files on system.
|
||||
%pre
|
||||
if [ -d %_datadir/armcord ] && [ ! -L %_datadir/armcord ]; then
|
||||
echo "Found old %_datadir/armcord directory, removing…"
|
||||
rm -rf %_datadir/armcord
|
||||
fi
|
||||
|
||||
%files
|
||||
%doc README.md
|
||||
%license license.txt
|
||||
%{_bindir}/legcord
|
||||
%{_datadir}/applications/legcord.desktop
|
||||
%{_datadir}/legcord/
|
||||
%{_iconsdir}/hicolor/16x16/apps/legcord.png
|
||||
%{_iconsdir}/hicolor/32x32/apps/legcord.png
|
||||
%{_iconsdir}/hicolor/48x48/apps/legcord.png
|
||||
%{_iconsdir}/hicolor/64x64/apps/legcord.png
|
||||
%{_iconsdir}/hicolor/128x128/apps/legcord.png
|
||||
%{_iconsdir}/hicolor/256x256/apps/legcord.png
|
||||
%{_iconsdir}/hicolor/512x512/apps/legcord.png
|
||||
%{_iconsdir}/hicolor/1024x1024/apps/legcord.png
|
||||
/usr/bin/legcord
|
||||
/usr/share/applications/LegCord.desktop
|
||||
/usr/share/pixmaps/legcord.png
|
||||
/usr/share/legcord/app.asar
|
||||
/usr/share/armcord
|
||||
|
||||
%changelog
|
||||
* Mon Oct 21 2024 madonuko <mado@fyralabs.com> - 1.0.2-2
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "mission-center.spec"
|
||||
}
|
||||
}
|
||||
@@ -1,99 +0,0 @@
|
||||
%global forgeurl0 https://gitlab.com/mission-center-devs/mission-center
|
||||
Version: 1.0.2
|
||||
%global tag0 v%{version}
|
||||
|
||||
%global forgeurl1 https://gitlab.com/mission-center-devs/gng
|
||||
%global commit1 319d95d29cbc3c373ae61cff228e8440fbaadbbb
|
||||
|
||||
|
||||
%forgemeta -a
|
||||
|
||||
Name: mission-center
|
||||
Release: 1%?dist
|
||||
Summary: Monitor your CPU, Memory, Disk, Network and GPU usage
|
||||
|
||||
License: GPL-3.0-or-later
|
||||
URL: %{forgeurl0}
|
||||
Source0: %{forgesource0}
|
||||
Source1: %{forgesource1}
|
||||
Provides: bundled(mission-center-magpie)
|
||||
Provides: bundled(nvtop) = 3.2.0
|
||||
#mission centere uses a patched version of nvtop
|
||||
|
||||
BuildRequires: meson >= 0.63
|
||||
BuildRequires: cargo
|
||||
BuildRequires: cmake
|
||||
BuildRequires: gcc
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: pkgconfig(protobuf)
|
||||
BuildRequires: pkgconfig(python3)
|
||||
BuildRequires: pkgconfig(libdrm)
|
||||
BuildRequires: pkgconfig(gbm)
|
||||
BuildRequires: pkgconfig(libudev)
|
||||
BuildRequires: pkgconfig(gtk4)
|
||||
BuildRequires: pkgconfig(egl)
|
||||
BuildRequires: libadwaita-devel
|
||||
BuildRequires: desktop-file-utils
|
||||
BuildRequires: blueprint-compiler
|
||||
BuildRequires: cargo-rpm-macros >= 24
|
||||
BuildRequires: gettext
|
||||
BuildRequires: desktop-file-utils
|
||||
BuildRequires: appstream-data
|
||||
BuildRequires: libappstream-glib
|
||||
Recommends: nethogs
|
||||
|
||||
%description
|
||||
Monitor your CPU, Memory, Disk, Network and GPU usage
|
||||
|
||||
|
||||
%prep
|
||||
%forgesetup -z 0
|
||||
mkdir -p ./subprojects/magpie
|
||||
tar -x --strip-components=1 -f %{SOURCE1} -C ./subprojects/magpie
|
||||
pushd ./subprojects/magpie/
|
||||
%cargo_prep_online
|
||||
popd
|
||||
%cargo_prep_online
|
||||
%{cargo_license_summary_online}
|
||||
# %cargo_license_online > LICENSE.dependencies
|
||||
#builds is erroring
|
||||
|
||||
%build
|
||||
%meson
|
||||
%meson_build
|
||||
|
||||
|
||||
%install
|
||||
%meson_install
|
||||
%find_lang missioncenter
|
||||
|
||||
%check
|
||||
desktop-file-validate %{buildroot}/%{_datadir}/applications/io.missioncenter.MissionCenter.desktop
|
||||
appstream-util validate-relax %{buildroot}/%{_datadir}/metainfo/io.missioncenter.MissionCenter.metainfo.xml
|
||||
%meson_test
|
||||
|
||||
# https://gitlab.com/mission-center-devs/mission-center/-/wikis/Home/Nethogs
|
||||
%post
|
||||
if command -v nethogs 2>&1 >/dev/null
|
||||
then
|
||||
setcap "cap_net_admin,cap_net_raw,cap_dac_read_search,cap_sys_ptrace+pe" "$(which nethogs)"
|
||||
fi
|
||||
|
||||
|
||||
%files -f missioncenter.lang
|
||||
%doc README.md
|
||||
%license COPYING
|
||||
#builds is erroring
|
||||
# [%]license LICENSE.dependencies
|
||||
%{_datadir}/missioncenter/
|
||||
%{_datadir}/applications/io.missioncenter.MissionCenter.desktop
|
||||
%{_datadir}/metainfo/io.missioncenter.MissionCenter.metainfo.xml
|
||||
%{_datadir}/glib-2.0/schemas/io.missioncenter.MissionCenter.gschema.xml
|
||||
%{_datadir}/icons/hicolor/scalable/apps/io.missioncenter.MissionCenter.svg
|
||||
%{_datadir}/icons/hicolor/symbolic/apps/io.missioncenter.MissionCenter-symbolic.svg
|
||||
%{_bindir}/missioncenter-magpie
|
||||
%{_bindir}/missioncenter
|
||||
|
||||
|
||||
%changelog
|
||||
%autochangelog
|
||||
@@ -1,4 +0,0 @@
|
||||
rpm.version(gitlab_tag("44426042"));
|
||||
if rpm.changed() {
|
||||
rpm.global("commit1", gitlab_commit("66855638", "main"));
|
||||
}
|
||||
@@ -1,9 +1,6 @@
|
||||
# Disable X11 for RHEL 10+
|
||||
%bcond x11 %[%{undefined rhel} || 0%{?rhel} < 10]
|
||||
|
||||
%global commit 764da9919c9dcdd951d9441dac2b56b8a03770ad
|
||||
%global commit 5ba7ee513751dd005379a06fb627303e6fe1b3dd
|
||||
%global shortcommit %(c=%{commit}; echo ${c:0:7})
|
||||
%global commit_date 20250916
|
||||
%global commit_date 20250329
|
||||
%global ver 0.40.0
|
||||
|
||||
Name: mpv-nightly
|
||||
@@ -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,15 +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
|
||||
BuildRequires: pkgconfig(zimg) >= 2.9
|
||||
BuildRequires: pkgconfig(zlib)
|
||||
|
||||
Requires: hicolor-icon-theme
|
||||
Provides: mplayer-backend
|
||||
@@ -128,7 +124,32 @@ Requires: mpv-nightly-libs%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
|
||||
%description devel
|
||||
This package contains development header files and libraries for Mpv.
|
||||
|
||||
%pkg_completion -Bfz mpv
|
||||
%package bash-completion
|
||||
Summary: MPV Bash completion
|
||||
Requires: bash
|
||||
Requires: %{name}
|
||||
Supplements: (%{name} and bash)
|
||||
|
||||
%description bash-completion
|
||||
Bash shell completion for MPV.
|
||||
|
||||
%package fish-completion
|
||||
Summary: MPV Fish completion
|
||||
Requires: fish
|
||||
Requires: %{name}
|
||||
Supplements: (%{name} and fish)
|
||||
|
||||
%description fish-completion
|
||||
Fish shell completion for MPV.
|
||||
|
||||
%package zsh-completion
|
||||
Summary: MPV Zsh completion
|
||||
Requires: zsh
|
||||
Requires: %{name}
|
||||
Supplements: (%{name} and zsh)
|
||||
|
||||
%description zsh-completion
|
||||
Zsh shell completion for MPV.
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n mpv-%commit
|
||||
@@ -150,17 +171,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 \
|
||||
@@ -185,18 +199,22 @@ sed -e "s|/usr/local/etc|%{_sysconfdir}/mpv|" -i etc/mpv.conf
|
||||
-Dsdl2-gamepad=enabled \
|
||||
-Dsdl2-video=enabled \
|
||||
-Dsdl2=enabled \
|
||||
-Dshaderc=disabled \
|
||||
-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
|
||||
@@ -217,6 +235,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
|
||||
@@ -226,3 +246,15 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/mpv.desktop
|
||||
%{_includedir}/mpv/
|
||||
%{_libdir}/libmpv.so
|
||||
%{_libdir}/pkgconfig/mpv.pc
|
||||
|
||||
%files bash-completion
|
||||
%{bash_completions_dir}/mpv
|
||||
|
||||
%files fish-completion
|
||||
%{fish_completions_dir}/mpv.fish
|
||||
|
||||
%files zsh-completion
|
||||
%{zsh_completions_dir}/_mpv
|
||||
|
||||
%changelog
|
||||
%autochangelog
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
%global __brp_mangle_shebangs %{nil}
|
||||
|
||||
Name: neohtop
|
||||
Version: 1.2.0
|
||||
Version: 1.1.2
|
||||
Release: 1%?dist
|
||||
Summary: System monitoring on steroids
|
||||
License: MIT
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "opensnitch.spec"
|
||||
}
|
||||
}
|
||||
@@ -1,119 +0,0 @@
|
||||
# Generated by go2rpm 1.16.0
|
||||
%bcond check 1
|
||||
%bcond bootstrap 0
|
||||
|
||||
# https://github.com/evilsocket/opensnitch
|
||||
%global goipath github.com/evilsocket/opensnitch
|
||||
Version: 1.7.0.0
|
||||
|
||||
%gometa -f
|
||||
|
||||
%global common_description %{expand:
|
||||
OpenSnitch is a GNU/Linux interactive application firewall inspired by Little
|
||||
Snitch.}
|
||||
|
||||
%global golicenses LICENSE ui/LICENSE\\\
|
||||
ui/opensnitch/res/themes/dark/icons/LICENSE
|
||||
%global godocs README.md ebpf_prog/README ui/requirements.txt\\\
|
||||
ui/i18n/README.md example example example\\\
|
||||
utils/packaging/daemon/deb/debian/changelog\\\
|
||||
utils/packaging/ui/deb/debian/changelog
|
||||
|
||||
Name: opensnitch
|
||||
Release: %autorelease
|
||||
Summary: OpenSnitch is a GNU/Linux interactive application firewall inspired by Little Snitch
|
||||
|
||||
License: GPL-3.0-only AND LGPL-2.1-or-later
|
||||
URL: %{gourl}
|
||||
Source: %{gosource}
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: python3-devel
|
||||
BuildRequires: python-rpm-macros
|
||||
BuildRequires: python3dist(pip)
|
||||
BuildRequires: python3dist(setuptools) >= 61.0
|
||||
BuildRequires: python3dist(wheel) >= 0.37.1
|
||||
BuildRequires: python3dist(pyqt5)
|
||||
BuildRequires: /usr/bin/lrelease-qt5
|
||||
BuildRequires: protobuf-compiler
|
||||
BuildRequires: pkgconfig(libnetfilter_queue)
|
||||
#BuildRequires: protoc-gen-go
|
||||
#BuildRequires: /usr/bin/protoc-gen-go-grpc
|
||||
|
||||
%description %{common_description}
|
||||
|
||||
%gopkg
|
||||
|
||||
|
||||
%prep
|
||||
%goprep -A
|
||||
%autopatch -p1
|
||||
|
||||
export GOBIN=$(go env GOPATH | sed -E 's/:.+$//')/bin
|
||||
echo $GOBIN > %_builddir/gobin
|
||||
go install github.com/golang/protobuf/protoc-gen-go@latest
|
||||
go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.34.1
|
||||
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.3.0
|
||||
|
||||
sed -i 's/@pip3 /@python3 -m pip /' ui/Makefile
|
||||
|
||||
%build
|
||||
pushd ui
|
||||
%make_build deps
|
||||
popd
|
||||
|
||||
export GOBIN=$(cat %_builddir/gobin)
|
||||
export PATH=$GOBIN:$PATH
|
||||
pushd proto
|
||||
%make_build
|
||||
popd
|
||||
|
||||
pushd ui
|
||||
%make_build
|
||||
%pyproject_wheel
|
||||
popd
|
||||
|
||||
%global gomodulesmode GO111MODULE=on
|
||||
pushd daemon
|
||||
%gobuild -o ../opensnitchd .
|
||||
popd
|
||||
|
||||
|
||||
%install
|
||||
%gopkginstall
|
||||
install -Dm755 opensnitchd -t %buildroot%_bindir
|
||||
|
||||
pushd ui
|
||||
%if 0%{?fedora} <= 41
|
||||
%py3_install
|
||||
%else
|
||||
%pyproject_install
|
||||
%pyproject_save_files %name
|
||||
%endif
|
||||
popd
|
||||
|
||||
rm -rf %buildroot%python3_sitelib/tests/
|
||||
cp -r %buildroot%python3_sitelib%_usr/ %buildroot%_usr/ --preserve=all --no-target-directory
|
||||
rm -rf %buildroot%python3_sitelib%_usr
|
||||
|
||||
|
||||
%if 0%{?fedora} <= 41
|
||||
%files
|
||||
%{python3_sitelib}/%name/
|
||||
%{python3_sitelib}/%name-%{version}-py%{python3_version}.egg-info/
|
||||
%else
|
||||
%files -f %{pyproject_files}
|
||||
%endif
|
||||
%license LICENSE
|
||||
%doc README.md
|
||||
%_bindir/opensnitch-ui
|
||||
%_bindir/opensnitchd
|
||||
%_datadir/applications/opensnitch_ui.desktop
|
||||
%_iconsdir/hicolor/48x48/apps/opensnitch-ui.png
|
||||
%_iconsdir/hicolor/64x64/apps/opensnitch-ui.png
|
||||
%_iconsdir/hicolor/scalable/apps/opensnitch-ui.svg
|
||||
%_datadir/kservices5/kcm_opensnitch.desktop
|
||||
%_metainfodir/io.github.evilsocket.opensnitch.appdata.xml
|
||||
|
||||
/usr/share/icons/hicolor/scalable/apps/opensnitch-ui.svg
|
||||
|
||||
%gopkgfiles
|
||||
@@ -2,8 +2,8 @@
|
||||
%define debug_package %nil
|
||||
|
||||
Name: peazip
|
||||
Version: 10.6.1
|
||||
Release: 1%?dist
|
||||
Version: 10.3.0
|
||||
Release: 3%?dist
|
||||
Summary: Free Zip / Unzip software and Rar file extractor. Cross-platform file and archive manager
|
||||
License: LGPL-3.0-only
|
||||
URL: https://peazip.github.io
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
project pkg {
|
||||
arches = ["x86_64"]
|
||||
rpm {
|
||||
spec = "protontricks.spec"
|
||||
}
|
||||
labels {
|
||||
subrepo = "extras"
|
||||
}
|
||||
}
|
||||
@@ -1,92 +0,0 @@
|
||||
%bcond_with tests
|
||||
%global pypi_name protontricks
|
||||
|
||||
Name: terra-%{pypi_name}
|
||||
Version: 1.13.0
|
||||
Release: 1%?dist
|
||||
Summary: Simple wrapper that does winetricks things for Proton enabled games
|
||||
BuildArch: noarch
|
||||
|
||||
License: GPL-3.0-or-later
|
||||
URL: https://github.com/Matoking/protontricks
|
||||
|
||||
# GitHub tarball won't work for setuptools-scm
|
||||
Source0: %{pypi_source}
|
||||
|
||||
BuildRequires: desktop-file-utils
|
||||
BuildRequires: python3-devel
|
||||
BuildRequires: python3dist(pip)
|
||||
BuildRequires: python3dist(setuptools)
|
||||
BuildRequires: python3dist(setuptools-scm)
|
||||
# BuildRequires: python3dist(vdf) >= 3.4
|
||||
%if %{with tests}
|
||||
BuildRequires: python3dist(pytest-cov) >= 2.10
|
||||
BuildRequires: python3dist(pytest) >= 6.0
|
||||
%endif
|
||||
|
||||
Requires: (terra-winetricks or winetricks-git)
|
||||
Conflicts: protontricks
|
||||
|
||||
Recommends: yad
|
||||
|
||||
Suggests: zenity
|
||||
# https://github.com/Matoking/protontricks/blob/master/CHANGELOG.md#1120---2024-09-16
|
||||
Provides: bundled(python3-vdf)
|
||||
|
||||
|
||||
%description
|
||||
A simple wrapper that does winetricks things for Proton enabled games,
|
||||
requires Winetricks.
|
||||
|
||||
This is a fork of the original project created by sirmentio. The original
|
||||
repository is available at Sirmentio/protontricks.
|
||||
|
||||
|
||||
%prep
|
||||
%autosetup -n %{pypi_name}-%{version}
|
||||
|
||||
|
||||
%build
|
||||
%if 0%{?fedora} <= 41
|
||||
%py3_build
|
||||
%else
|
||||
%pyproject_wheel
|
||||
%endif
|
||||
|
||||
|
||||
%install
|
||||
%if 0%{?fedora} <= 41
|
||||
%py3_install
|
||||
%else
|
||||
%pyproject_install
|
||||
%endif
|
||||
|
||||
# Remove `protontricks-desktop-install`, since we already install .desktop
|
||||
# files properly
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1991684
|
||||
rm %{buildroot}%{_bindir}/%{pypi_name}-desktop-install
|
||||
|
||||
|
||||
%if %{with tests}
|
||||
%check
|
||||
%{py3_test_envvars} %{python3} -m pytest -v
|
||||
desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop
|
||||
%endif
|
||||
|
||||
|
||||
%files
|
||||
%license LICENSE
|
||||
%doc README.md CHANGELOG.md
|
||||
%{_bindir}/%{pypi_name}-launch
|
||||
%{_bindir}/%{pypi_name}
|
||||
%{_datadir}/applications/*.desktop
|
||||
%{python3_sitelib}/%{pypi_name}/
|
||||
%if 0%{?fedora} <= 41
|
||||
%{python3_sitelib}/%{pypi_name}-%{version}*.egg-info/
|
||||
%else
|
||||
%{python3_sitelib}/%{pypi_name}-%{version}*.dist-info/
|
||||
%endif
|
||||
|
||||
|
||||
%changelog
|
||||
%autochangelog
|
||||
@@ -1 +0,0 @@
|
||||
rpm.version(pypi("protontricks"));
|
||||
@@ -1,5 +0,0 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "rp-appset.spec"
|
||||
}
|
||||
}
|
||||
@@ -1,51 +0,0 @@
|
||||
%global commit 5b4b8f65c3d2795a61e765a01e07af9bfe3d1990
|
||||
%global commit_date 20250501
|
||||
%global shortcommit %(c=%{commit}; echo ${c:0:7})
|
||||
|
||||
Name: appset
|
||||
Version: 0~%commit_date.git~%shortcommit
|
||||
Release: 1%?dist
|
||||
Summary: Application for customisation of appearance of Raspberry Pi Desktop
|
||||
License: BSD-3-Clause
|
||||
URL: https://github.com/raspberrypi-ui/appset
|
||||
Source0: %url/archive/%commit.tar.gz
|
||||
Packager: Owen Zimmerman <owen@fyralabs.com>
|
||||
|
||||
BuildRequires: meson
|
||||
BuildRequires: ninja-build
|
||||
BuildRequires: gtk3-devel
|
||||
BuildRequires: libxml2-devel
|
||||
BuildRequires: intltool
|
||||
BuildRequires: gcc
|
||||
|
||||
Requires: libxml2
|
||||
Requires: gtk3
|
||||
|
||||
Provides: pipanel
|
||||
Provides: rp-appset
|
||||
|
||||
%description
|
||||
%summary.
|
||||
|
||||
%prep
|
||||
%autosetup -n appset-%commit
|
||||
|
||||
%build
|
||||
%meson
|
||||
%meson_build
|
||||
|
||||
%install
|
||||
%meson_install
|
||||
|
||||
%find_lang pipanel
|
||||
|
||||
%files -f pipanel.lang
|
||||
%doc README
|
||||
%license debian/copyright
|
||||
%{_bindir}/pipanel
|
||||
%{_datadir}/applications/pipanel.desktop
|
||||
%{_datadir}/pipanel/ui/pipanel.ui
|
||||
|
||||
%changelog
|
||||
* Fri Aug 15 2025 Owen Zimmerman <owen@fyralabs.com>
|
||||
- Package appset
|
||||
@@ -1,5 +0,0 @@
|
||||
rpm.global("commit", gh_commit("raspberrypi-ui/appset"));
|
||||
if rpm.changed() {
|
||||
rpm.release();
|
||||
rpm.global("commit_date", date());
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "rp-bookshelf.spec"
|
||||
}
|
||||
}
|
||||
@@ -1,50 +0,0 @@
|
||||
%global commit 53102fb6f4b0324cc89635f0ef58966c6b847a74
|
||||
%global commit_date 20250327
|
||||
%global shortcommit %(c=%{commit}; echo ${c:0:7})
|
||||
|
||||
Name: rp-bookshelf
|
||||
Version: 0~%commit_date.git~%shortcommit
|
||||
Release: 1%?dist
|
||||
Summary: Browser for Raspberry Pi Press publications in PDF format
|
||||
License: BSD-3-Clause
|
||||
URL: https://github.com/raspberrypi-ui/bookshelf
|
||||
Source0: %url/archive/%commit.tar.gz
|
||||
Packager: Owen Zimmerman <owen@fyralabs.com>
|
||||
|
||||
BuildRequires: meson
|
||||
BuildRequires: ninja-build
|
||||
BuildRequires: gtk3-devel
|
||||
BuildRequires: libcurl-devel
|
||||
BuildRequires: intltool
|
||||
BuildRequires: gcc
|
||||
|
||||
Requires: libcurl gtk3
|
||||
|
||||
%description
|
||||
%summary.
|
||||
|
||||
%prep
|
||||
%autosetup -n bookshelf-%commit
|
||||
|
||||
%build
|
||||
%meson
|
||||
%meson_build
|
||||
|
||||
%install
|
||||
%meson_install
|
||||
%find_lang %{name}
|
||||
|
||||
%files -f %{name}.lang
|
||||
%doc README
|
||||
%license debian/copyright
|
||||
%{_bindir}/rp-bookshelf
|
||||
%{_datadir}/icons/hicolor/16x16/apps/bookshelf.png
|
||||
%{_datadir}/icons/hicolor/24x24/apps/bookshelf.png
|
||||
%{_datadir}/icons/hicolor/32x32/apps/bookshelf.png
|
||||
%{_datadir}/icons/hicolor/48x48/apps/bookshelf.png
|
||||
%{_datadir}/applications/rp-bookshelf.desktop
|
||||
%{_datadir}/rp-bookshelf/*
|
||||
|
||||
%changelog
|
||||
* Fri Aug 08 2025 Owen Zimmerman <owen@fyralabs.com>
|
||||
- Package bookshelf
|
||||
@@ -1,5 +0,0 @@
|
||||
rpm.global("commit", gh_commit("raspberrypi-ui/bookshelf"));
|
||||
if rpm.changed() {
|
||||
rpm.release();
|
||||
rpm.global("commit_date", date());
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
%global ver 2025-09-16
|
||||
%global ver 2025-03-30
|
||||
%global goodver %(echo %ver | sed 's/-//g')
|
||||
%global __brp_mangle_shebangs %{nil}
|
||||
%bcond_without mold
|
||||
@@ -31,7 +31,7 @@ Packager: madonuko <mado@fyralabs.com>
|
||||
%doc README.md
|
||||
%license LICENSE.md
|
||||
%license LICENSE.dependencies
|
||||
%_bindir/ruffle
|
||||
%_bindir/ruffle_desktop
|
||||
%_datadir/applications/rs.ruffle.Ruffle.desktop
|
||||
%_iconsdir/hicolor/scalable/apps/rs.ruffle.Ruffle.svg
|
||||
%_metainfodir/rs.ruffle.Ruffle.metainfo.xml
|
||||
@@ -39,18 +39,18 @@ Packager: madonuko <mado@fyralabs.com>
|
||||
%prep
|
||||
%autosetup -n ruffle-nightly-%ver -p1
|
||||
%cargo_prep_online
|
||||
sed -iE 's@^Exec=ruffle %%u$@Exec=ruffle_desktop %%u@' desktop/packages/linux/rs.ruffle.Ruffle.desktop
|
||||
cat desktop/packages/linux/rs.ruffle.Ruffle.desktop
|
||||
|
||||
%build
|
||||
cd desktop
|
||||
%cargo_build
|
||||
%{cargo_license_online} > LICENSE.dependencies
|
||||
|
||||
%install
|
||||
install -Dm755 target/rpm/ruffle_desktop %buildroot%_bindir/ruffle
|
||||
install -Dm644 desktop/packages/linux/rs.ruffle.Ruffle.svg %buildroot%_iconsdir/hicolor/scalable/apps/rs.ruffle.Ruffle.svg
|
||||
install -Dm644 desktop/packages/linux/rs.ruffle.Ruffle.desktop %buildroot%_datadir/applications/rs.ruffle.Ruffle.desktop
|
||||
install -Dm644 desktop/packages/linux/rs.ruffle.Ruffle.metainfo.xml %buildroot%_metainfodir/rs.ruffle.Ruffle.metainfo.xml
|
||||
|
||||
%{cargo_license_online} > LICENSE.dependencies
|
||||
cd desktop
|
||||
%cargo_install
|
||||
install -Dm644 packages/linux/rs.ruffle.Ruffle.svg %buildroot%_iconsdir/hicolor/scalable/apps/rs.ruffle.Ruffle.svg
|
||||
install -Dm644 packages/linux/rs.ruffle.Ruffle.desktop %buildroot%_datadir/applications/rs.ruffle.Ruffle.desktop
|
||||
install -Dm644 packages/linux/rs.ruffle.Ruffle.metainfo.xml %buildroot%_metainfodir/rs.ruffle.Ruffle.metainfo.xml
|
||||
|
||||
%changelog
|
||||
* Mon Jul 29 2024 madonuko <mado@fyralabs.com>
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "signal-desktop.spec"
|
||||
}
|
||||
}
|
||||
@@ -1,123 +0,0 @@
|
||||
#? https://gitlab.archlinux.org/archlinux/packaging/packages/signal-desktop/-/blob/main/PKGBUILD
|
||||
%define debug_package %{nil}
|
||||
|
||||
# Exclude private libraries
|
||||
%global __requires_exclude libffmpeg.so
|
||||
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
|
||||
|
||||
%ifarch x86_64
|
||||
%define arch %{nil}
|
||||
%elifarch aarch64
|
||||
%define arch arm64-
|
||||
%endif
|
||||
|
||||
Name: signal-desktop
|
||||
Version: 7.70.0
|
||||
Release: 1%?dist
|
||||
Summary: A private messenger for Windows, macOS, and Linux
|
||||
URL: https://signal.org
|
||||
Source0: https://github.com/signalapp/Signal-Desktop/archive/refs/tags/v%{version}.tar.gz
|
||||
# signal.desktop from https://github.com/signalflatpak/signal/blob/master/org.signal.Signal.desktop
|
||||
Source1: signal.desktop
|
||||
License: AGPL-3.0 AND %electron_licenses
|
||||
ExclusiveArch: x86_64 aarch64
|
||||
BuildRequires: pulseaudio-libs-devel libX11-devel pnpm make gcc g++ python3
|
||||
BuildRequires: git-lfs
|
||||
Requires: gtk3
|
||||
Requires: libwayland-cursor
|
||||
Requires: libwayland-client
|
||||
Requires: libxkbcommon
|
||||
Requires: gdk-pixbuf2
|
||||
Requires: libthai
|
||||
Requires: nettle
|
||||
Requires: avahi-libs
|
||||
Requires: libXfixes
|
||||
Requires: libjpeg-turbo
|
||||
Requires: sqlite-libs
|
||||
Requires: json-glib
|
||||
Requires: libdatrie
|
||||
Requires: libxml2
|
||||
Requires: libbrotli
|
||||
Requires: cairo
|
||||
Requires: xz-libs
|
||||
Requires: libxcb
|
||||
Requires: nss-util
|
||||
Requires: nss
|
||||
Requires: dbus-libs
|
||||
Requires: mesa-libgbm
|
||||
Requires: at-spi2-atk
|
||||
Requires: expat
|
||||
Requires: alsa-lib
|
||||
|
||||
%description
|
||||
Signal Desktop links with Signal on Android or iOS and lets you message from your Windows, macOS, and Linux computers.
|
||||
|
||||
%prep
|
||||
%autosetup -n Signal-Desktop-%{version} -p1
|
||||
|
||||
%build
|
||||
pnpm install --frozen-lockfile
|
||||
pnpm --prefix sticker-creator install
|
||||
pnpm --prefix sticker-creator build
|
||||
pnpm run build-linux --dir
|
||||
|
||||
%install
|
||||
install -Dm755 release/linux-%{arch}unpacked/libEGL.so %{buildroot}%{_libdir}/signal-desktop/libEGL.so
|
||||
install -Dm755 release/linux-%{arch}unpacked/libGLESv2.so %{buildroot}%{_libdir}/signal-desktop/libGLESv2.so
|
||||
install -Dm755 release/linux-%{arch}unpacked/libffmpeg.so %{buildroot}%{_libdir}/signal-desktop/libffmpeg.so
|
||||
install -Dm755 release/linux-%{arch}unpacked/libvk_swiftshader.so %{buildroot}%{_libdir}/signal-desktop/libvk_swiftshader.so
|
||||
install -Dm755 release/linux-%{arch}unpacked/libvulkan.so.1 %{buildroot}%{_libdir}/signal-desktop/libvulkan.so.1
|
||||
install -Dm644 release/linux-%{arch}unpacked/icudtl.dat %{buildroot}%{_libdir}/signal-desktop/icudtl.dat
|
||||
install -Dm644 release/linux-%{arch}unpacked/v8_context_snapshot.bin %{buildroot}%{_libdir}/signal-desktop/v8_context_snapshot.bin
|
||||
install -Dm644 release/linux-%{arch}unpacked/chrome_100_percent.pak %{buildroot}%{_libdir}/signal-desktop/chrome_100_percent.pak
|
||||
install -Dm644 release/linux-%{arch}unpacked/chrome_200_percent.pak %{buildroot}%{_libdir}/signal-desktop/chrome_200_percent.pak
|
||||
install -Dm644 release/linux-%{arch}unpacked/resources.pak %{buildroot}%{_libdir}/signal-desktop/resources.pak
|
||||
install -Dm644 release/linux-%{arch}unpacked/vk_swiftshader_icd.json %{buildroot}%{_libdir}/signal-desktop/vk_swiftshader_icd.json
|
||||
install -Dm644 release/linux-%{arch}unpacked/resources/app.asar %{buildroot}%{_libdir}/signal-desktop/resources/app.asar
|
||||
cp -r release/linux-%{arch}unpacked/resources/app.asar.unpacked %{buildroot}%{_libdir}/signal-desktop/resources/
|
||||
|
||||
install -Dm755 release/linux-%{arch}unpacked/chrome-sandbox %{buildroot}%{_libdir}/signal-desktop/chrome-sandbox
|
||||
install -Dm755 release/linux-%{arch}unpacked/chrome_crashpad_handler %{buildroot}%{_libdir}/signal-desktop/chrome_crashpad_handler
|
||||
|
||||
install -Dm755 release/linux-%{arch}unpacked/signal-desktop %{buildroot}%{_libdir}/signal-desktop/signal-desktop
|
||||
|
||||
install -Dm644 release/linux-%{arch}unpacked/resources/org.signalapp.view-aep.policy %{buildroot}%{_datadir}/polkit-1/rules.d/org.signalapp.view-aep.policy
|
||||
install -Dm644 release/linux-%{arch}unpacked/resources/org.signalapp.enable-backups.policy %{buildroot}%{_datadir}/polkit-1/rules.d/org.signalapp.enable-backups.policy
|
||||
|
||||
install -Dm644 build/icons/png/1024x1024.png %{buildroot}%{_iconsdir}/hicolor/1024x1024/apps/signal.png
|
||||
install -Dm644 build/icons/png/128x128.png %{buildroot}%{_iconsdir}/hicolor/128x128/apps/signal.png
|
||||
install -Dm644 build/icons/png/16x16.png %{buildroot}%{_iconsdir}/hicolor/16x16/apps/signal.png
|
||||
install -Dm644 build/icons/png/24x24.png %{buildroot}%{_iconsdir}/hicolor/24x24/apps/signal.png
|
||||
install -Dm644 build/icons/png/256x256.png %{buildroot}%{_iconsdir}/hicolor/256x256/apps/signal.png
|
||||
install -Dm644 build/icons/png/32x32.png %{buildroot}%{_iconsdir}/hicolor/32x32/apps/signal.png
|
||||
install -Dm644 build/icons/png/48x48.png %{buildroot}%{_iconsdir}/hicolor/48x48/apps/signal.png
|
||||
install -Dm644 build/icons/png/512x512.png %{buildroot}%{_iconsdir}/hicolor/512x512/apps/signal.png
|
||||
install -Dm644 build/icons/png/64x64.png %{buildroot}%{_iconsdir}/hicolor/64x64/apps/signal.png
|
||||
|
||||
install -Dm644 %{SOURCE1} %{buildroot}%{_datadir}/applications/signal.desktop
|
||||
mkdir -p %buildroot%_bindir
|
||||
ln -s %_libdir/signal-desktop/signal-desktop %buildroot%_bindir/signal-desktop
|
||||
|
||||
%files
|
||||
%license LICENSE
|
||||
%doc README.md CONTRIBUTING.md ACKNOWLEDGMENTS.md
|
||||
%license release/linux-%{arch}unpacked/LICENSE.electron.txt
|
||||
%license release/linux-%{arch}unpacked/LICENSES.chromium.html
|
||||
%{_bindir}/signal-desktop
|
||||
%{_libdir}/signal-desktop/
|
||||
%{_datadir}/polkit-1/rules.d/org.signalapp.view-aep.policy
|
||||
%{_datadir}/polkit-1/rules.d/org.signalapp.enable-backups.policy
|
||||
%{_datadir}/applications/signal.desktop
|
||||
%{_iconsdir}/hicolor/1024x1024/apps/signal.png
|
||||
%{_iconsdir}/hicolor/128x128/apps/signal.png
|
||||
%{_iconsdir}/hicolor/16x16/apps/signal.png
|
||||
%{_iconsdir}/hicolor/24x24/apps/signal.png
|
||||
%{_iconsdir}/hicolor/256x256/apps/signal.png
|
||||
%{_iconsdir}/hicolor/32x32/apps/signal.png
|
||||
%{_iconsdir}/hicolor/48x48/apps/signal.png
|
||||
%{_iconsdir}/hicolor/512x512/apps/signal.png
|
||||
%{_iconsdir}/hicolor/64x64/apps/signal.png
|
||||
|
||||
%changelog
|
||||
* Fri Aug 8 2025 june-fish <git@june.fish>
|
||||
- Initial Package
|
||||
@@ -1,13 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Name=Signal
|
||||
Exec=signal-desktop %U
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Icon=signal
|
||||
StartupWMClass=Signal
|
||||
Comment=Private messaging from your desktop
|
||||
MimeType=x-scheme-handler/sgnl;x-scheme-handler/signalcaptcha;
|
||||
Categories=Network;InstantMessaging;Chat;
|
||||
X-Desktop-File-Install-Version=0.27
|
||||
X-Purism-FormFactor=Workstation;Mobile;
|
||||
X-Flatpak-RenamedFrom=signal-desktop.desktop;
|
||||
@@ -1 +0,0 @@
|
||||
rpm.version(gh("signalapp/Signal-Desktop"));
|
||||
@@ -2,7 +2,7 @@
|
||||
%global realname subtitleedit
|
||||
|
||||
Name: %realname.bin
|
||||
Version: 4.0.13
|
||||
Version: 4.0.11
|
||||
Release: 1%?dist
|
||||
Summary: An advanced subtitle editor and converter
|
||||
License: GPL-3.0-only
|
||||
@@ -13,7 +13,7 @@ Packager: madonuko <mado@fyralabs.com>
|
||||
Provides: %realname = %evr
|
||||
Conflicts: %realname
|
||||
BuildRequires: unzip anda-srpm-macros
|
||||
Requires: dejavu-sans-mono-fonts mono-core
|
||||
Requires: mono dejavu-fonts
|
||||
|
||||
%description
|
||||
%summary.
|
||||
@@ -33,7 +33,7 @@ EOF
|
||||
|
||||
cat<<EOF > subtitleedit
|
||||
#!/usr/bin/sh
|
||||
exec mono /usr/share/subtitleedit/SubtitleEdit.exe "$@"
|
||||
exec mono /opt/subtitleedit/SubtitleEdit.exe "$@"
|
||||
EOF
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
From 44046bfbcb30a19c45416113a2a82a4d17a1a998 Mon Sep 17 00:00:00 2001
|
||||
From: Jan200101 <sentrycraft123@gmail.com>
|
||||
Date: Mon, 14 Aug 2023 14:06:45 +0200
|
||||
Subject: [PATCH 01/10] main: update GPUs comment for dbus property
|
||||
|
||||
Signed-off-by: Jan200101 <sentrycraft123@gmail.com>
|
||||
---
|
||||
src/net.hadess.SwitcherooControl.xml | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/net.hadess.SwitcherooControl.xml b/src/net.hadess.SwitcherooControl.xml
|
||||
index e52bc1a..59a8896 100644
|
||||
--- a/src/net.hadess.SwitcherooControl.xml
|
||||
+++ b/src/net.hadess.SwitcherooControl.xml
|
||||
@@ -38,7 +38,8 @@
|
||||
will contain a user-facing name for the GPU, the "Environment" (as) key will
|
||||
contain an array of even number of strings, each being an environment
|
||||
variable to set to use the GPU, followed by its value, the "Default" (b) key
|
||||
- will tag the default (usually integrated) GPU.
|
||||
+ will tag the default GPU, the "Discrete" (b) key tags if the GPU is a
|
||||
+ dedicated component.
|
||||
-->
|
||||
<property name="GPUs" type="aa{sv}" access="read"/>
|
||||
|
||||
--
|
||||
2.46.0
|
||||
|
||||
@@ -0,0 +1,379 @@
|
||||
From 4f31415cb61a50c2bcba1510a7511518417d0970 Mon Sep 17 00:00:00 2001
|
||||
From: Jan200101 <sentrycraft123@gmail.com>
|
||||
Date: Mon, 11 Sep 2023 15:21:46 +0200
|
||||
Subject: [PATCH 02/10] main: add Discrete key
|
||||
|
||||
Signed-off-by: Jan200101 <sentrycraft123@gmail.com>
|
||||
---
|
||||
.gitlab-ci.yml | 1 +
|
||||
data/30-discrete-gpu.rules.in | 3 +
|
||||
data/meson.build | 7 ++
|
||||
meson.build | 9 +++
|
||||
meson_options.txt | 24 +++++++
|
||||
src/discrete-detection/amdgpu.c | 46 +++++++++++++
|
||||
src/discrete-detection/meson.build | 18 +++++
|
||||
src/discrete-detection/nouveau.c | 105 +++++++++++++++++++++++++++++
|
||||
src/meson.build | 4 +-
|
||||
src/switcheroo-control.c | 16 +++++
|
||||
10 files changed, 232 insertions(+), 1 deletion(-)
|
||||
create mode 100644 data/30-discrete-gpu.rules.in
|
||||
create mode 100644 src/discrete-detection/amdgpu.c
|
||||
create mode 100644 src/discrete-detection/meson.build
|
||||
create mode 100644 src/discrete-detection/nouveau.c
|
||||
|
||||
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
|
||||
index a6aa3c7..a09fe20 100644
|
||||
--- a/.gitlab-ci.yml
|
||||
+++ b/.gitlab-ci.yml
|
||||
@@ -3,6 +3,7 @@ image: fedora:rawhide
|
||||
variables:
|
||||
DEPENDENCIES: glib2-devel
|
||||
libgudev-devel
|
||||
+ libdrm-devel
|
||||
gtk-doc
|
||||
gcc
|
||||
gcc-c++
|
||||
diff --git a/data/30-discrete-gpu.rules.in b/data/30-discrete-gpu.rules.in
|
||||
new file mode 100644
|
||||
index 0000000..a803ed4
|
||||
--- /dev/null
|
||||
+++ b/data/30-discrete-gpu.rules.in
|
||||
@@ -0,0 +1,3 @@
|
||||
+DRIVERS=="amdgpu", SUBSYSTEM=="drm", PROGRAM="@libexecdir@/check-discrete-amdgpu $env{DEVNAME}", TAG+="switcheroo-discrete-gpu"
|
||||
+DRIVERS=="nouveau", SUBSYSTEM=="drm", PROGRAM="@libexecdir@/check-discrete-nouveau $env{DEVNAME}", TAG+="switcheroo-discrete-gpu"
|
||||
+DRIVERS=="nvidia", TAG+="switcheroo-discrete-gpu"
|
||||
diff --git a/data/meson.build b/data/meson.build
|
||||
index 85e5c93..38cf96c 100644
|
||||
--- a/data/meson.build
|
||||
+++ b/data/meson.build
|
||||
@@ -17,3 +17,10 @@ install_data(
|
||||
'30-pci-intel-gpu.hwdb',
|
||||
install_dir: hwdb_dir,
|
||||
)
|
||||
+
|
||||
+configure_file(
|
||||
+ input: '30-discrete-gpu.rules.in',
|
||||
+ output: '30-discrete-gpu.rules',
|
||||
+ configuration: data_conf,
|
||||
+ install_dir: rules_dir,
|
||||
+)
|
||||
diff --git a/meson.build b/meson.build
|
||||
index b8f4bff..b3aaf0c 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -20,6 +20,9 @@ gnome = import('gnome')
|
||||
glib = dependency('glib-2.0', version: '>= 2.56.0')
|
||||
gio = dependency('gio-2.0', version: '>= 2.56.0')
|
||||
gudev = dependency('gudev-1.0', version: '>= 232')
|
||||
+libdrm = dependency('libdrm', version: '>= 2.4.97', required: get_option('libdrm'))
|
||||
+libdrm_nouveau = dependency('libdrm_nouveau', version: '>= 2.4.97', required: get_option('libdrm_nouveau'))
|
||||
+libdrm_amdgpu = dependency('libdrm_amdgpu', version: '>= 2.4.97', required: get_option('libdrm_amdgpu'))
|
||||
|
||||
systemd_systemunitdir = get_option('systemdsystemunitdir')
|
||||
if systemd_systemunitdir == ''
|
||||
@@ -32,6 +35,12 @@ if hwdb_dir == ''
|
||||
hwdb_dir = udevdir / 'hwdb.d'
|
||||
endif
|
||||
|
||||
+rules_dir = get_option('rulesdir')
|
||||
+if rules_dir == ''
|
||||
+ udevdir = dependency('udev').get_pkgconfig_variable('udevdir')
|
||||
+ rules_dir = udevdir / 'rules.d'
|
||||
+endif
|
||||
+
|
||||
# Make like license available in the build root for docs
|
||||
configure_file(
|
||||
input: 'COPYING',
|
||||
diff --git a/meson_options.txt b/meson_options.txt
|
||||
index c8d9619..b8d671a 100644
|
||||
--- a/meson_options.txt
|
||||
+++ b/meson_options.txt
|
||||
@@ -10,6 +10,12 @@ option('hwdbdir',
|
||||
description: 'Directory for hwdb files',
|
||||
)
|
||||
|
||||
+option('rulesdir',
|
||||
+ type: 'string',
|
||||
+ value: '',
|
||||
+ description: 'Directory for ruke files',
|
||||
+)
|
||||
+
|
||||
option('gtk_doc',
|
||||
type: 'boolean',
|
||||
value: false,
|
||||
@@ -21,3 +27,21 @@ option('tests',
|
||||
type: 'boolean',
|
||||
value: false
|
||||
)
|
||||
+
|
||||
+option('libdrm',
|
||||
+ description: 'Whether libdrm should be used to probe GPUs',
|
||||
+ type: 'feature',
|
||||
+ value: 'auto'
|
||||
+)
|
||||
+
|
||||
+option('libdrm_nouveau',
|
||||
+ description: 'Whether libdrm_nouveau should be used to probe Nvidia GPUs',
|
||||
+ type: 'feature',
|
||||
+ value: 'auto'
|
||||
+)
|
||||
+
|
||||
+option('libdrm_amdgpu',
|
||||
+ description: 'Whether libdrm_amdgpu should be used to probe AMD GPUs',
|
||||
+ type: 'feature',
|
||||
+ value: 'auto'
|
||||
+)
|
||||
diff --git a/src/discrete-detection/amdgpu.c b/src/discrete-detection/amdgpu.c
|
||||
new file mode 100644
|
||||
index 0000000..2d9804f
|
||||
--- /dev/null
|
||||
+++ b/src/discrete-detection/amdgpu.c
|
||||
@@ -0,0 +1,46 @@
|
||||
+
|
||||
+#include <fcntl.h>
|
||||
+#include <stdlib.h>
|
||||
+#include <stdio.h>
|
||||
+#include <gio/gio.h>
|
||||
+#include <gudev/gudev.h>
|
||||
+
|
||||
+#include <amdgpu.h>
|
||||
+#include <amdgpu_drm.h>
|
||||
+
|
||||
+typedef int handle;
|
||||
+G_DEFINE_AUTO_CLEANUP_FREE_FUNC(handle, close, -1)
|
||||
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(amdgpu_device_handle, free);
|
||||
+
|
||||
+int main(int argc, char** argv)
|
||||
+{
|
||||
+ if (argc < 2)
|
||||
+ {
|
||||
+ puts ("check-discrete-amdgpu [DEVNAME]");
|
||||
+ return EXIT_FAILURE;
|
||||
+ }
|
||||
+
|
||||
+ const char *devname;
|
||||
+ g_auto(handle) fd = -1;
|
||||
+ g_autoptr(GUdevDevice) parent = NULL;
|
||||
+ struct drm_amdgpu_info_device device_info = {0};
|
||||
+ amdgpu_device_handle device = NULL;
|
||||
+ uint32_t drm_major, drm_minor;
|
||||
+
|
||||
+ devname = argv[1];
|
||||
+ fd = open (devname, O_RDWR);
|
||||
+ if (fd < 0)
|
||||
+ return EXIT_FAILURE;
|
||||
+
|
||||
+ if (amdgpu_device_initialize (fd, &drm_major, &drm_minor, &device))
|
||||
+ return EXIT_FAILURE;
|
||||
+
|
||||
+ if (amdgpu_query_info (device, AMDGPU_INFO_DEV_INFO, sizeof(device_info), &device_info))
|
||||
+ return EXIT_FAILURE;
|
||||
+
|
||||
+ /* AMDGPU_IDS_FLAGS_FUSION is set for all APUs */
|
||||
+ if (device_info.ids_flags & AMDGPU_IDS_FLAGS_FUSION)
|
||||
+ return EXIT_FAILURE;
|
||||
+
|
||||
+ return EXIT_SUCCESS;
|
||||
+}
|
||||
diff --git a/src/discrete-detection/meson.build b/src/discrete-detection/meson.build
|
||||
new file mode 100644
|
||||
index 0000000..3a6c03f
|
||||
--- /dev/null
|
||||
+++ b/src/discrete-detection/meson.build
|
||||
@@ -0,0 +1,18 @@
|
||||
+
|
||||
+if libdrm_amdgpu.found()
|
||||
+ executable('check-discrete-amdgpu',
|
||||
+ files('amdgpu.c'),
|
||||
+ dependencies: deps,
|
||||
+ install: true,
|
||||
+ install_dir: libexecdir,
|
||||
+ )
|
||||
+endif
|
||||
+
|
||||
+if libdrm.found() and libdrm_nouveau.found()
|
||||
+ executable('check-discrete-nouveau',
|
||||
+ files('nouveau.c'),
|
||||
+ dependencies: deps,
|
||||
+ install: true,
|
||||
+ install_dir: libexecdir,
|
||||
+ )
|
||||
+endif
|
||||
diff --git a/src/discrete-detection/nouveau.c b/src/discrete-detection/nouveau.c
|
||||
new file mode 100644
|
||||
index 0000000..0a1f220
|
||||
--- /dev/null
|
||||
+++ b/src/discrete-detection/nouveau.c
|
||||
@@ -0,0 +1,105 @@
|
||||
+
|
||||
+#include <fcntl.h>
|
||||
+#include <stdlib.h>
|
||||
+#include <stdio.h>
|
||||
+#include <gio/gio.h>
|
||||
+#include <gudev/gudev.h>
|
||||
+
|
||||
+#include <xf86drm.h>
|
||||
+#include <nouveau_drm.h>
|
||||
+#include <nouveau/nvif/ioctl.h>
|
||||
+#include <nvif/cl0080.h>
|
||||
+#include <nvif/class.h>
|
||||
+
|
||||
+typedef int handle;
|
||||
+G_DEFINE_AUTO_CLEANUP_FREE_FUNC(handle, close, -1)
|
||||
+
|
||||
+int main(int argc, char** argv)
|
||||
+{
|
||||
+ if (argc < 2)
|
||||
+ {
|
||||
+ puts ("check-discrete-nouveau [DEVNAME]");
|
||||
+ return EXIT_FAILURE;
|
||||
+ }
|
||||
+
|
||||
+ const char *devname;
|
||||
+ g_auto(handle) fd = -1;
|
||||
+
|
||||
+ devname = argv[1];
|
||||
+ fd = open (devname, O_RDWR);
|
||||
+ if (fd < 0)
|
||||
+ return EXIT_FAILURE;
|
||||
+
|
||||
+ g_autofree void *device = malloc(352);
|
||||
+
|
||||
+ /* Init device */
|
||||
+ {
|
||||
+ struct {
|
||||
+ struct nvif_ioctl_v0 ioctl;
|
||||
+ struct nvif_ioctl_new_v0 new;
|
||||
+ struct nv_device_v0 dev;
|
||||
+ } init_args = {
|
||||
+ .ioctl = {
|
||||
+ .object = 0,
|
||||
+ .owner = NVIF_IOCTL_V0_OWNER_ANY,
|
||||
+ .route = 0x00,
|
||||
+ .type = NVIF_IOCTL_V0_NEW,
|
||||
+ .version = 0,
|
||||
+ },
|
||||
+ .new = {
|
||||
+ .handle = 0,
|
||||
+ .object = (uintptr_t)device,
|
||||
+ .oclass = NV_DEVICE,
|
||||
+ .route = NVIF_IOCTL_V0_ROUTE_NVIF,
|
||||
+ .token = (uintptr_t)device,
|
||||
+ .version = 0,
|
||||
+ },
|
||||
+ .dev = {
|
||||
+ .device = ~0ULL,
|
||||
+ },
|
||||
+ };
|
||||
+
|
||||
+ if (drmCommandWrite (fd, DRM_NOUVEAU_NVIF, &init_args, sizeof(init_args)))
|
||||
+ return EXIT_FAILURE;
|
||||
+ }
|
||||
+
|
||||
+ /* Query device info */
|
||||
+ struct {
|
||||
+ struct nvif_ioctl_v0 ioctl;
|
||||
+ struct nvif_ioctl_mthd_v0 mthd;
|
||||
+ struct nv_device_info_v0 info;
|
||||
+ } args = {
|
||||
+ .ioctl = {
|
||||
+ .object = (uintptr_t)device,
|
||||
+ .owner = NVIF_IOCTL_V0_OWNER_ANY,
|
||||
+ .route = 0x00,
|
||||
+ .type = NVIF_IOCTL_V0_MTHD,
|
||||
+ .version = 0,
|
||||
+ },
|
||||
+ .mthd = {
|
||||
+ .method = NV_DEVICE_V0_INFO,
|
||||
+ .version = 0,
|
||||
+ },
|
||||
+ .info = {
|
||||
+ .version = 0,
|
||||
+ },
|
||||
+ };
|
||||
+
|
||||
+ if (drmCommandWriteRead (fd, DRM_NOUVEAU_NVIF, &args, sizeof(args)))
|
||||
+ return EXIT_FAILURE;
|
||||
+
|
||||
+
|
||||
+ switch (args.info.platform)
|
||||
+ {
|
||||
+ case NV_DEVICE_INFO_V0_IGP:
|
||||
+ case NV_DEVICE_INFO_V0_SOC:
|
||||
+ return EXIT_FAILURE;
|
||||
+
|
||||
+ case NV_DEVICE_INFO_V0_PCI:
|
||||
+ case NV_DEVICE_INFO_V0_AGP:
|
||||
+ case NV_DEVICE_INFO_V0_PCIE:
|
||||
+ default:
|
||||
+ return EXIT_SUCCESS;
|
||||
+ }
|
||||
+ return EXIT_FAILURE;
|
||||
+}
|
||||
diff --git a/src/meson.build b/src/meson.build
|
||||
index ab3a77d..da4267f 100644
|
||||
--- a/src/meson.build
|
||||
+++ b/src/meson.build
|
||||
@@ -1,4 +1,4 @@
|
||||
-deps = [glib, gio, gudev]
|
||||
+deps = [glib, gio, gudev, libdrm, libdrm_nouveau, libdrm_amdgpu]
|
||||
|
||||
sources = [
|
||||
'info-cleanup.c',
|
||||
@@ -34,3 +34,5 @@ configure_file(
|
||||
configuration: switcherooctl_conf,
|
||||
install_dir: get_option('bindir')
|
||||
)
|
||||
+
|
||||
+subdir('discrete-detection')
|
||||
diff --git a/src/switcheroo-control.c b/src/switcheroo-control.c
|
||||
index abd8154..e407bfb 100644
|
||||
--- a/src/switcheroo-control.c
|
||||
+++ b/src/switcheroo-control.c
|
||||
@@ -31,6 +31,7 @@ typedef struct {
|
||||
char *name;
|
||||
GPtrArray *env;
|
||||
gboolean is_default;
|
||||
+ gboolean is_discrete;
|
||||
} CardData;
|
||||
|
||||
typedef struct {
|
||||
@@ -94,6 +95,8 @@ build_gpus_variant (ControlData *data)
|
||||
g_variant_new_strv ((const gchar * const *) card->env->pdata, card->env->len));
|
||||
g_variant_builder_add (&asv_builder, "{sv}", "Default",
|
||||
g_variant_new_boolean (card->is_default));
|
||||
+ g_variant_builder_add (&asv_builder, "{sv}", "Discrete",
|
||||
+ g_variant_new_boolean (card->is_discrete));
|
||||
|
||||
g_variant_builder_add (&builder, "a{sv}", &asv_builder);
|
||||
}
|
||||
@@ -312,6 +315,18 @@ get_card_is_default (GUdevDevice *d)
|
||||
return g_udev_device_get_sysfs_attr_as_boolean (parent, "boot_vga");
|
||||
}
|
||||
|
||||
+static gboolean
|
||||
+get_card_is_discrete (GUdevDevice *d)
|
||||
+{
|
||||
+ const char * const * tags;
|
||||
+ g_autoptr (GUdevDevice) platform_device = NULL;
|
||||
+
|
||||
+ tags = g_udev_device_get_tags (d);
|
||||
+ if (tags && g_strv_contains (tags, "switcheroo-discrete-gpu"))
|
||||
+ return TRUE;
|
||||
+ return FALSE;
|
||||
+}
|
||||
+
|
||||
static CardData *
|
||||
get_card_data (GUdevClient *client,
|
||||
GUdevDevice *d)
|
||||
@@ -328,6 +343,7 @@ get_card_data (GUdevClient *client,
|
||||
data->name = get_card_name (d);
|
||||
data->env = env;
|
||||
data->is_default = get_card_is_default (d);
|
||||
+ data->is_discrete = get_card_is_discrete (d);
|
||||
|
||||
return data;
|
||||
}
|
||||
--
|
||||
2.46.0
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
From 1b115ed72e03ff1169cbfddd79ef10890baca133 Mon Sep 17 00:00:00 2001
|
||||
From: Jan200101 <sentrycraft123@gmail.com>
|
||||
Date: Tue, 12 Sep 2023 15:53:40 +0200
|
||||
Subject: [PATCH 03/10] tests: fix integration tests without UMockdev
|
||||
`gi.require_version` throws ValueError if the dependency cannot be found
|
||||
|
||||
Signed-off-by: Jan200101 <sentrycraft123@gmail.com>
|
||||
---
|
||||
tests/integration-test.py | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/tests/integration-test.py b/tests/integration-test.py
|
||||
index d8dea16..e3dd996 100755
|
||||
--- a/tests/integration-test.py
|
||||
+++ b/tests/integration-test.py
|
||||
@@ -37,7 +37,7 @@ except ImportError as e:
|
||||
try:
|
||||
gi.require_version('UMockdev', '1.0')
|
||||
from gi.repository import UMockdev
|
||||
-except ImportError:
|
||||
+except (ImportError, ValueError):
|
||||
sys.stderr.write('Skipping tests, umockdev not available (https://github.com/martinpitt/umockdev)\n')
|
||||
sys.exit(0)
|
||||
|
||||
--
|
||||
2.46.0
|
||||
|
||||
+278
@@ -0,0 +1,278 @@
|
||||
From d933e96bdb15679ae7653f929461982aa66973ba Mon Sep 17 00:00:00 2001
|
||||
From: Jan200101 <sentrycraft123@gmail.com>
|
||||
Date: Tue, 12 Sep 2023 15:58:16 +0200
|
||||
Subject: [PATCH 04/10] tests: add tests for discrete detection with mock libs
|
||||
Both tests have 4 different ways of testing: - Invalid Device - Unexpected
|
||||
Device - Non Discrete GPU (iGPU/APU) - Discrete GPU
|
||||
|
||||
Signed-off-by: Jan200101 <sentrycraft123@gmail.com>
|
||||
---
|
||||
src/discrete-detection/meson.build | 4 +-
|
||||
tests/discrete-detection/libdrm_amdgpu_mock.c | 57 +++++++++++++
|
||||
.../discrete-detection/libdrm_nouveau_mock.c | 68 ++++++++++++++++
|
||||
tests/discrete-detection/meson.build | 80 +++++++++++++++++++
|
||||
tests/meson.build | 2 +
|
||||
5 files changed, 209 insertions(+), 2 deletions(-)
|
||||
create mode 100644 tests/discrete-detection/libdrm_amdgpu_mock.c
|
||||
create mode 100644 tests/discrete-detection/libdrm_nouveau_mock.c
|
||||
create mode 100644 tests/discrete-detection/meson.build
|
||||
|
||||
diff --git a/src/discrete-detection/meson.build b/src/discrete-detection/meson.build
|
||||
index 3a6c03f..8eb8437 100644
|
||||
--- a/src/discrete-detection/meson.build
|
||||
+++ b/src/discrete-detection/meson.build
|
||||
@@ -1,6 +1,6 @@
|
||||
|
||||
if libdrm_amdgpu.found()
|
||||
- executable('check-discrete-amdgpu',
|
||||
+ amdgpu_discrete = executable('check-discrete-amdgpu',
|
||||
files('amdgpu.c'),
|
||||
dependencies: deps,
|
||||
install: true,
|
||||
@@ -9,7 +9,7 @@ if libdrm_amdgpu.found()
|
||||
endif
|
||||
|
||||
if libdrm.found() and libdrm_nouveau.found()
|
||||
- executable('check-discrete-nouveau',
|
||||
+ nouveau_discrete = executable('check-discrete-nouveau',
|
||||
files('nouveau.c'),
|
||||
dependencies: deps,
|
||||
install: true,
|
||||
diff --git a/tests/discrete-detection/libdrm_amdgpu_mock.c b/tests/discrete-detection/libdrm_amdgpu_mock.c
|
||||
new file mode 100644
|
||||
index 0000000..20fa4aa
|
||||
--- /dev/null
|
||||
+++ b/tests/discrete-detection/libdrm_amdgpu_mock.c
|
||||
@@ -0,0 +1,57 @@
|
||||
+#include <string.h>
|
||||
+#include <stdint.h>
|
||||
+#include <stdio.h>
|
||||
+
|
||||
+#include <amdgpu_drm.h>
|
||||
+
|
||||
+enum {
|
||||
+ OTHER_GPU,
|
||||
+ AMD_APU,
|
||||
+ AMD_GPU,
|
||||
+};
|
||||
+
|
||||
+/* Mock open(2) so we can test multiple devices configurations */
|
||||
+int open(const char *pathname, int flags)
|
||||
+{
|
||||
+ if (!strcmp(pathname, "OTHER_GPU"))
|
||||
+ return OTHER_GPU;
|
||||
+ if (!strcmp (pathname, "AMD_APU"))
|
||||
+ return AMD_APU;
|
||||
+ if (!strcmp (pathname, "AMD_GPU"))
|
||||
+ return AMD_GPU;
|
||||
+
|
||||
+ return -1;
|
||||
+}
|
||||
+
|
||||
+/* open64 may be used for large file support */
|
||||
+int open64(const char *pathname, int flags)
|
||||
+{
|
||||
+ return open (pathname, flags);
|
||||
+}
|
||||
+
|
||||
+int amdgpu_device_initialize(int fd, uint32_t *major_version, uint32_t *minor_version, int *device_handle)
|
||||
+{
|
||||
+ // Store the fd in the device handle for access in query_info
|
||||
+ *device_handle = fd;
|
||||
+
|
||||
+ if (fd != AMD_GPU && fd != AMD_APU)
|
||||
+ return 1;
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+int amdgpu_query_info(int device_handle, unsigned info_id, unsigned size, void *value)
|
||||
+{
|
||||
+ struct drm_amdgpu_info_device* device_info = value;
|
||||
+
|
||||
+ if (device_handle == AMD_GPU) {
|
||||
+ device_info->ids_flags = 0;
|
||||
+ return 0;
|
||||
+ }
|
||||
+ if (device_handle == AMD_APU) {
|
||||
+ device_info->ids_flags = AMDGPU_IDS_FLAGS_FUSION;
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
+ return 1;
|
||||
+}
|
||||
diff --git a/tests/discrete-detection/libdrm_nouveau_mock.c b/tests/discrete-detection/libdrm_nouveau_mock.c
|
||||
new file mode 100644
|
||||
index 0000000..cdbfda8
|
||||
--- /dev/null
|
||||
+++ b/tests/discrete-detection/libdrm_nouveau_mock.c
|
||||
@@ -0,0 +1,68 @@
|
||||
+#include <string.h>
|
||||
+#include <stdint.h>
|
||||
+#include <stdio.h>
|
||||
+
|
||||
+#include <xf86drm.h>
|
||||
+#include <nouveau_drm.h>
|
||||
+#include <nouveau/nvif/ioctl.h>
|
||||
+#include <nvif/cl0080.h>
|
||||
+#include <nvif/class.h>
|
||||
+
|
||||
+enum {
|
||||
+ OTHER_GPU,
|
||||
+ NVIDIA_IGPU,
|
||||
+ NVIDIA_GPU,
|
||||
+};
|
||||
+
|
||||
+/* Mock open(2) so we can test multiple devices configurations */
|
||||
+int open(const char *pathname, int flags)
|
||||
+{
|
||||
+ if (!strcmp(pathname, "OTHER_GPU"))
|
||||
+ return OTHER_GPU;
|
||||
+ if (!strcmp (pathname, "NVIDIA_IGPU"))
|
||||
+ return NVIDIA_IGPU;
|
||||
+ if (!strcmp (pathname, "NVIDIA_GPU"))
|
||||
+ return NVIDIA_GPU;
|
||||
+
|
||||
+ return -1;
|
||||
+}
|
||||
+
|
||||
+/* open64 may be used for large file support */
|
||||
+int open64(const char *pathname, int flags)
|
||||
+{
|
||||
+ return open (pathname, flags);
|
||||
+}
|
||||
+
|
||||
+int drmCommandWrite(int fd, unsigned long drmCommandIndex, void *data, unsigned long size)
|
||||
+{
|
||||
+ if (drmCommandIndex != DRM_NOUVEAU_NVIF)
|
||||
+ return 1;
|
||||
+
|
||||
+ if (fd != NVIDIA_GPU && fd != NVIDIA_IGPU)
|
||||
+ return 1;
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+int drmCommandWriteRead(int fd, unsigned long drmCommandIndex, void *data, unsigned long size)
|
||||
+{
|
||||
+ if (drmCommandIndex != DRM_NOUVEAU_NVIF)
|
||||
+ return 1;
|
||||
+
|
||||
+ struct {
|
||||
+ struct nvif_ioctl_v0 ioctl;
|
||||
+ struct nvif_ioctl_mthd_v0 mthd;
|
||||
+ struct nv_device_info_v0 info;
|
||||
+ } *args = data;
|
||||
+
|
||||
+ if (fd == NVIDIA_GPU) {
|
||||
+ args->info.platform = NV_DEVICE_INFO_V0_PCIE;
|
||||
+ return 0;
|
||||
+ }
|
||||
+ if (fd == NVIDIA_IGPU) {
|
||||
+ args->info.platform = NV_DEVICE_INFO_V0_IGP;
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
+ return 1;
|
||||
+}
|
||||
\ No newline at end of file
|
||||
diff --git a/tests/discrete-detection/meson.build b/tests/discrete-detection/meson.build
|
||||
new file mode 100644
|
||||
index 0000000..f01a014
|
||||
--- /dev/null
|
||||
+++ b/tests/discrete-detection/meson.build
|
||||
@@ -0,0 +1,80 @@
|
||||
+
|
||||
+if libdrm_amdgpu.found()
|
||||
+ amdgpu_mock_lib = shared_library(
|
||||
+ 'drm_amdgpu_mock',
|
||||
+ files('libdrm_amdgpu_mock.c'),
|
||||
+ dependencies: libdrm_amdgpu
|
||||
+ )
|
||||
+
|
||||
+ test(
|
||||
+ 'test amdgpu detection with invalid device',
|
||||
+ amdgpu_discrete,
|
||||
+ args: ['NO_GPU'],
|
||||
+ env: environment({'LD_PRELOAD': amdgpu_mock_lib.full_path()}),
|
||||
+ should_fail: true
|
||||
+ )
|
||||
+
|
||||
+ test(
|
||||
+ 'test amdgpu detection with non-AMD GPU',
|
||||
+ amdgpu_discrete,
|
||||
+ args: ['OTHER_GPU'],
|
||||
+ env: environment({'LD_PRELOAD': amdgpu_mock_lib.full_path()}),
|
||||
+ should_fail: true
|
||||
+ )
|
||||
+
|
||||
+ test(
|
||||
+ 'test amdgpu detection with AMD APU',
|
||||
+ amdgpu_discrete,
|
||||
+ args: ['AMD_APU'],
|
||||
+ env: environment({'LD_PRELOAD': amdgpu_mock_lib.full_path()}),
|
||||
+ should_fail: true
|
||||
+ )
|
||||
+
|
||||
+ test(
|
||||
+ 'test amdgpu detection with AMD GPU',
|
||||
+ amdgpu_discrete,
|
||||
+ args: ['AMD_GPU'],
|
||||
+ env: environment({'LD_PRELOAD': amdgpu_mock_lib.full_path()}),
|
||||
+ should_fail: false
|
||||
+ )
|
||||
+endif
|
||||
+
|
||||
+if libdrm.found() and libdrm_nouveau.found()
|
||||
+ nouveau_mock_lib = shared_library(
|
||||
+ 'drm_nouveau_mock',
|
||||
+ files('libdrm_nouveau_mock.c'),
|
||||
+ dependencies: [libdrm, libdrm_nouveau]
|
||||
+ )
|
||||
+
|
||||
+ test(
|
||||
+ 'test nouveau detection with invalid device',
|
||||
+ nouveau_discrete,
|
||||
+ args: ['NO_GPU'],
|
||||
+ env: environment({'LD_PRELOAD': nouveau_mock_lib.full_path()}),
|
||||
+ should_fail: true
|
||||
+ )
|
||||
+
|
||||
+ test(
|
||||
+ 'test nouveau detection with non-Nvidia GPU',
|
||||
+ nouveau_discrete,
|
||||
+ args: ['OTHER_GPU'],
|
||||
+ env: environment({'LD_PRELOAD': nouveau_mock_lib.full_path()}),
|
||||
+ should_fail: true
|
||||
+ )
|
||||
+
|
||||
+ test(
|
||||
+ 'test nouveau detection with Nvidia iGPU',
|
||||
+ nouveau_discrete,
|
||||
+ args: ['NVIDIA_IGPU'],
|
||||
+ env: environment({'LD_PRELOAD': nouveau_mock_lib.full_path()}),
|
||||
+ should_fail: true
|
||||
+ )
|
||||
+
|
||||
+ test(
|
||||
+ 'test nouveau detection with Nvidia GPU',
|
||||
+ nouveau_discrete,
|
||||
+ args: ['NVIDIA_GPU'],
|
||||
+ env: environment({'LD_PRELOAD': nouveau_mock_lib.full_path()}),
|
||||
+ should_fail: false
|
||||
+ )
|
||||
+endif
|
||||
\ No newline at end of file
|
||||
diff --git a/tests/meson.build b/tests/meson.build
|
||||
index b0b7476..61ef00c 100644
|
||||
--- a/tests/meson.build
|
||||
+++ b/tests/meson.build
|
||||
@@ -15,3 +15,5 @@ foreach ut: unit_tests
|
||||
env: envs,
|
||||
)
|
||||
endforeach
|
||||
+
|
||||
+subdir('discrete-detection')
|
||||
--
|
||||
2.46.0
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
From c102b643945dc076d881497dd2ca5865938f7053 Mon Sep 17 00:00:00 2001
|
||||
From: Jan200101 <sentrycraft123@gmail.com>
|
||||
Date: Tue, 12 Sep 2023 15:57:47 +0200
|
||||
Subject: [PATCH 05/10] main: remove leftover and fix typo
|
||||
|
||||
Signed-off-by: Jan200101 <sentrycraft123@gmail.com>
|
||||
---
|
||||
meson_options.txt | 2 +-
|
||||
src/switcheroo-control.c | 1 -
|
||||
2 files changed, 1 insertion(+), 2 deletions(-)
|
||||
|
||||
diff --git a/meson_options.txt b/meson_options.txt
|
||||
index b8d671a..c77fea8 100644
|
||||
--- a/meson_options.txt
|
||||
+++ b/meson_options.txt
|
||||
@@ -13,7 +13,7 @@ option('hwdbdir',
|
||||
option('rulesdir',
|
||||
type: 'string',
|
||||
value: '',
|
||||
- description: 'Directory for ruke files',
|
||||
+ description: 'Directory for rule files',
|
||||
)
|
||||
|
||||
option('gtk_doc',
|
||||
diff --git a/src/switcheroo-control.c b/src/switcheroo-control.c
|
||||
index e407bfb..0f6a548 100644
|
||||
--- a/src/switcheroo-control.c
|
||||
+++ b/src/switcheroo-control.c
|
||||
@@ -319,7 +319,6 @@ static gboolean
|
||||
get_card_is_discrete (GUdevDevice *d)
|
||||
{
|
||||
const char * const * tags;
|
||||
- g_autoptr (GUdevDevice) platform_device = NULL;
|
||||
|
||||
tags = g_udev_device_get_tags (d);
|
||||
if (tags && g_strv_contains (tags, "switcheroo-discrete-gpu"))
|
||||
--
|
||||
2.46.0
|
||||
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
From f764db4eb565c19ba14155791fbfced3fb5d34c8 Mon Sep 17 00:00:00 2001
|
||||
From: Jan200101 <sentrycraft123@gmail.com>
|
||||
Date: Tue, 12 Sep 2023 15:58:27 +0200
|
||||
Subject: [PATCH 06/10] main: move discrete dependencies out of main deps
|
||||
|
||||
Signed-off-by: Jan200101 <sentrycraft123@gmail.com>
|
||||
---
|
||||
src/discrete-detection/meson.build | 5 +++--
|
||||
src/meson.build | 2 +-
|
||||
2 files changed, 4 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/discrete-detection/meson.build b/src/discrete-detection/meson.build
|
||||
index 8eb8437..353316f 100644
|
||||
--- a/src/discrete-detection/meson.build
|
||||
+++ b/src/discrete-detection/meson.build
|
||||
@@ -1,8 +1,9 @@
|
||||
+discrete_deps = deps + [libdrm, libdrm_nouveau, libdrm_amdgpu]
|
||||
|
||||
if libdrm_amdgpu.found()
|
||||
amdgpu_discrete = executable('check-discrete-amdgpu',
|
||||
files('amdgpu.c'),
|
||||
- dependencies: deps,
|
||||
+ dependencies: discrete_deps,
|
||||
install: true,
|
||||
install_dir: libexecdir,
|
||||
)
|
||||
@@ -11,7 +12,7 @@ endif
|
||||
if libdrm.found() and libdrm_nouveau.found()
|
||||
nouveau_discrete = executable('check-discrete-nouveau',
|
||||
files('nouveau.c'),
|
||||
- dependencies: deps,
|
||||
+ dependencies: discrete_deps,
|
||||
install: true,
|
||||
install_dir: libexecdir,
|
||||
)
|
||||
diff --git a/src/meson.build b/src/meson.build
|
||||
index da4267f..22d69e7 100644
|
||||
--- a/src/meson.build
|
||||
+++ b/src/meson.build
|
||||
@@ -1,4 +1,4 @@
|
||||
-deps = [glib, gio, gudev, libdrm, libdrm_nouveau, libdrm_amdgpu]
|
||||
+deps = [glib, gio, gudev]
|
||||
|
||||
sources = [
|
||||
'info-cleanup.c',
|
||||
--
|
||||
2.46.0
|
||||
|
||||
+137
@@ -0,0 +1,137 @@
|
||||
From d2ecc29469d5572fd171926c9d1dbb1b851c7b09 Mon Sep 17 00:00:00 2001
|
||||
From: Jan200101 <sentrycraft123@gmail.com>
|
||||
Date: Tue, 12 Sep 2023 17:12:00 +0200
|
||||
Subject: [PATCH 07/10] main: use glib for discrete command-line arguments
|
||||
|
||||
Signed-off-by: Jan200101 <sentrycraft123@gmail.com>
|
||||
---
|
||||
src/discrete-detection/amdgpu.c | 29 ++++++++++++++++++++---------
|
||||
src/discrete-detection/nouveau.c | 29 ++++++++++++++++++++---------
|
||||
2 files changed, 40 insertions(+), 18 deletions(-)
|
||||
|
||||
diff --git a/src/discrete-detection/amdgpu.c b/src/discrete-detection/amdgpu.c
|
||||
index 2d9804f..5a9a4ab 100644
|
||||
--- a/src/discrete-detection/amdgpu.c
|
||||
+++ b/src/discrete-detection/amdgpu.c
|
||||
@@ -1,9 +1,10 @@
|
||||
-
|
||||
#include <fcntl.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
+#include <locale.h>
|
||||
#include <gio/gio.h>
|
||||
#include <gudev/gudev.h>
|
||||
+#include <glib.h>
|
||||
|
||||
#include <amdgpu.h>
|
||||
#include <amdgpu_drm.h>
|
||||
@@ -12,22 +13,32 @@ typedef int handle;
|
||||
G_DEFINE_AUTO_CLEANUP_FREE_FUNC(handle, close, -1)
|
||||
G_DEFINE_AUTOPTR_CLEANUP_FUNC(amdgpu_device_handle, free);
|
||||
|
||||
-int main(int argc, char** argv)
|
||||
+int main (int argc, char** argv)
|
||||
{
|
||||
- if (argc < 2)
|
||||
- {
|
||||
- puts ("check-discrete-amdgpu [DEVNAME]");
|
||||
- return EXIT_FAILURE;
|
||||
- }
|
||||
-
|
||||
const char *devname;
|
||||
g_auto(handle) fd = -1;
|
||||
- g_autoptr(GUdevDevice) parent = NULL;
|
||||
struct drm_amdgpu_info_device device_info = {0};
|
||||
amdgpu_device_handle device = NULL;
|
||||
uint32_t drm_major, drm_minor;
|
||||
+ g_autoptr(GOptionContext) option_context = NULL;
|
||||
+ g_autoptr(GError) error = NULL;
|
||||
|
||||
+ setlocale (LC_ALL, "");
|
||||
+ option_context = g_option_context_new ("");
|
||||
+
|
||||
+ if (!g_option_context_parse (option_context, &argc, &argv, &error)) {
|
||||
+ g_print ("Failed to parse arguments: %s\n", error->message);
|
||||
+ return EXIT_FAILURE;
|
||||
+ }
|
||||
+
|
||||
+ if (argc < 2)
|
||||
+ {
|
||||
+ g_print ("%s\n", g_option_context_get_help (option_context, TRUE, NULL));
|
||||
+ return EXIT_FAILURE;
|
||||
+ }
|
||||
devname = argv[1];
|
||||
+;
|
||||
+
|
||||
fd = open (devname, O_RDWR);
|
||||
if (fd < 0)
|
||||
return EXIT_FAILURE;
|
||||
diff --git a/src/discrete-detection/nouveau.c b/src/discrete-detection/nouveau.c
|
||||
index 0a1f220..1d61cbb 100644
|
||||
--- a/src/discrete-detection/nouveau.c
|
||||
+++ b/src/discrete-detection/nouveau.c
|
||||
@@ -1,9 +1,10 @@
|
||||
-
|
||||
#include <fcntl.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
+#include <locale.h>
|
||||
#include <gio/gio.h>
|
||||
#include <gudev/gudev.h>
|
||||
+#include <glib.h>
|
||||
|
||||
#include <xf86drm.h>
|
||||
#include <nouveau_drm.h>
|
||||
@@ -14,23 +15,34 @@
|
||||
typedef int handle;
|
||||
G_DEFINE_AUTO_CLEANUP_FREE_FUNC(handle, close, -1)
|
||||
|
||||
-int main(int argc, char** argv)
|
||||
+int main (int argc, char** argv)
|
||||
{
|
||||
+ const gchar *devname = NULL;
|
||||
+ g_auto(handle) fd = -1;
|
||||
+ g_autofree void *device = NULL;
|
||||
+ g_autoptr(GOptionContext) option_context = NULL;
|
||||
+ g_autoptr(GError) error = NULL;
|
||||
+
|
||||
+ setlocale (LC_ALL, "");
|
||||
+ option_context = g_option_context_new ("");
|
||||
+
|
||||
+ if (!g_option_context_parse (option_context, &argc, &argv, &error)) {
|
||||
+ g_print ("Failed to parse arguments: %s\n", error->message);
|
||||
+ return EXIT_FAILURE;
|
||||
+ }
|
||||
+
|
||||
if (argc < 2)
|
||||
{
|
||||
- puts ("check-discrete-nouveau [DEVNAME]");
|
||||
+ g_print ("%s\n", g_option_context_get_help (option_context, TRUE, NULL));
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
-
|
||||
- const char *devname;
|
||||
- g_auto(handle) fd = -1;
|
||||
-
|
||||
devname = argv[1];
|
||||
+
|
||||
fd = open (devname, O_RDWR);
|
||||
if (fd < 0)
|
||||
return EXIT_FAILURE;
|
||||
|
||||
- g_autofree void *device = malloc(352);
|
||||
+ device = malloc(352);
|
||||
|
||||
/* Init device */
|
||||
{
|
||||
@@ -88,7 +100,6 @@ int main(int argc, char** argv)
|
||||
if (drmCommandWriteRead (fd, DRM_NOUVEAU_NVIF, &args, sizeof(args)))
|
||||
return EXIT_FAILURE;
|
||||
|
||||
-
|
||||
switch (args.info.platform)
|
||||
{
|
||||
case NV_DEVICE_INFO_V0_IGP:
|
||||
--
|
||||
2.46.0
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
From 462b09f02de37dfd2965d23cc7c4137bcf45a4ae Mon Sep 17 00:00:00 2001
|
||||
From: Jan200101 <sentrycraft123@gmail.com>
|
||||
Date: Wed, 14 Feb 2024 20:25:42 +0100
|
||||
Subject: [PATCH 08/10] main: add udev rule for i915 checking a lot of systems
|
||||
has shown that the intel iGPU will always be available at `0000:00:02.0`.
|
||||
Using ID_PATH would have been cleaner, but I couldn't get it to work.
|
||||
|
||||
Signed-off-by: Jan200101 <sentrycraft123@gmail.com>
|
||||
---
|
||||
data/30-discrete-gpu.rules.in | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/data/30-discrete-gpu.rules.in b/data/30-discrete-gpu.rules.in
|
||||
index a803ed4..f30f315 100644
|
||||
--- a/data/30-discrete-gpu.rules.in
|
||||
+++ b/data/30-discrete-gpu.rules.in
|
||||
@@ -1,3 +1,4 @@
|
||||
DRIVERS=="amdgpu", SUBSYSTEM=="drm", PROGRAM="@libexecdir@/check-discrete-amdgpu $env{DEVNAME}", TAG+="switcheroo-discrete-gpu"
|
||||
DRIVERS=="nouveau", SUBSYSTEM=="drm", PROGRAM="@libexecdir@/check-discrete-nouveau $env{DEVNAME}", TAG+="switcheroo-discrete-gpu"
|
||||
-DRIVERS=="nvidia", TAG+="switcheroo-discrete-gpu"
|
||||
+DRIVERS=="nvidia", SUBSYSTEM=="drm", TAG+="switcheroo-discrete-gpu"
|
||||
+DRIVERS=="i915", SUBSYSTEM=="drm", DEVPATH!="/devices/pci0000:00/0000:00:02.0/drm/*", TAG+="switcheroo-discrete-gpu"
|
||||
--
|
||||
2.46.0
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
From 55db3aeaeb962952881f73e94432f750cfb64fc8 Mon Sep 17 00:00:00 2001
|
||||
From: Jan200101 <sentrycraft123@gmail.com>
|
||||
Date: Thu, 15 Feb 2024 16:24:00 +0100
|
||||
Subject: [PATCH 09/10] main: use Discrete key in switcherooctl
|
||||
|
||||
Signed-off-by: Jan200101 <sentrycraft123@gmail.com>
|
||||
---
|
||||
src/switcherooctl.in | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/switcherooctl.in b/src/switcherooctl.in
|
||||
index 96c21cc..c0e3f07 100755
|
||||
--- a/src/switcherooctl.in
|
||||
+++ b/src/switcherooctl.in
|
||||
@@ -77,6 +77,7 @@ def print_gpu(gpu, index):
|
||||
print('Device:', index)
|
||||
print(' Name: ', gpu['Name'])
|
||||
print(' Default: ', "yes" if gpu['Default'] else "no")
|
||||
+ print(' Discrete: ', "yes" if gpu['Discrete'] else "no")
|
||||
print(' Environment:', env_to_str(gpu['Environment']))
|
||||
|
||||
def _list():
|
||||
@@ -126,7 +127,7 @@ def get_discrete_gpu():
|
||||
return None
|
||||
|
||||
try:
|
||||
- gpu = next(gpu for gpu in gpus if not gpu['Default'])
|
||||
+ gpu = next(gpu for gpu in gpus if gpu['Discrete'])
|
||||
except StopIteration:
|
||||
return None
|
||||
else:
|
||||
--
|
||||
2.46.0
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
From 4232c75fe41158bb5063d630d36b3ffd6a8a57ec Mon Sep 17 00:00:00 2001
|
||||
From: Jan200101 <sentrycraft123@gmail.com>
|
||||
Date: Fri, 6 Sep 2024 22:31:56 +0200
|
||||
Subject: [PATCH 10/10] main: use new GPU list on uevent the amount of GPUs may
|
||||
still be the same but underlying attributes may have changed On the ASUS TUF
|
||||
Dash F15 running Fedora 40 6.10.7-200.fc40.x86_64 the udev tags are not
|
||||
applied at the time switcheroo-control starts but at a later uevent they are
|
||||
correct. Memory gets allocated anyways to check if the GPU count has changed,
|
||||
so this shouldn't affect memory usage.
|
||||
|
||||
Signed-off-by: Jan200101 <sentrycraft123@gmail.com>
|
||||
---
|
||||
src/switcheroo-control.c | 16 ++++++----------
|
||||
1 file changed, 6 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/src/switcheroo-control.c b/src/switcheroo-control.c
|
||||
index 0f6a548..01954c7 100644
|
||||
--- a/src/switcheroo-control.c
|
||||
+++ b/src/switcheroo-control.c
|
||||
@@ -438,16 +438,12 @@ uevent_cb (GUdevClient *client,
|
||||
|
||||
cards = get_drm_cards (data);
|
||||
num_gpus = cards->len;
|
||||
- if (num_gpus != data->num_gpus) {
|
||||
- g_debug ("GPUs added or removed (old: %d new: %d)",
|
||||
- data->num_gpus, num_gpus);
|
||||
- g_ptr_array_free (data->cards, TRUE);
|
||||
- data->cards = cards;
|
||||
- data->num_gpus = cards->len;
|
||||
- send_dbus_event (data);
|
||||
- } else {
|
||||
- g_ptr_array_free (cards, TRUE);
|
||||
- }
|
||||
+ g_debug ("GPUs updated (old: %d new: %d)",
|
||||
+ data->num_gpus, num_gpus);
|
||||
+ g_ptr_array_free (data->cards, TRUE);
|
||||
+ data->cards = cards;
|
||||
+ data->num_gpus = cards->len;
|
||||
+ send_dbus_event (data);
|
||||
}
|
||||
|
||||
static void
|
||||
--
|
||||
2.46.0
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,16 +1,22 @@
|
||||
Name: switcheroo-control
|
||||
Version: 3.0
|
||||
Release: 1%?dist
|
||||
Version: 2.6
|
||||
Release: 8%{?dist}
|
||||
Summary: D-Bus service to check the availability of dual-GPU
|
||||
|
||||
License: GPLv3
|
||||
URL: https://gitlab.freedesktop.org/hadess/switcheroo-control/
|
||||
# URL from https://gitlab.freedesktop.org/hadess/switcheroo-control/-/releases
|
||||
Source0: https://gitlab.freedesktop.org/hadess/switcheroo-control/uploads/86ea54ac7ddb901b6bf6e915209151f8/switcheroo-control-2.6.tar.xz
|
||||
# Adds proper discrete GPU detection to switcheroo-control
|
||||
# https://gitlab.freedesktop.org/hadess/switcheroo-control/-/merge_requests/69
|
||||
Patch: discrete.patch
|
||||
|
||||
Patch: 0001-main-update-GPUs-comment-for-dbus-property.patch
|
||||
Patch: 0002-main-add-Discrete-key.patch
|
||||
Patch: 0003-tests-fix-integration-tests-without-UMockdev.patch
|
||||
Patch: 0004-tests-add-tests-for-discrete-detection-with-mock-lib.patch
|
||||
Patch: 0005-main-remove-leftover-and-fix-typo.patch
|
||||
Patch: 0006-main-move-discrete-dependencies-out-of-main-deps.patch
|
||||
Patch: 0007-main-use-glib-for-discrete-command-line-arguments.patch
|
||||
Patch: 0008-main-add-udev-rule-for-i915.patch
|
||||
Patch: 0009-main-use-Discrete-key-in-switcherooctl.patch
|
||||
Patch: 0010-main-use-new-GPU-list-on-uevent.patch
|
||||
|
||||
BuildRequires: gcc
|
||||
BuildRequires: pkgconfig(gudev-1.0)
|
||||
@@ -19,7 +25,6 @@ BuildRequires: gtk-doc
|
||||
BuildRequires: meson
|
||||
BuildRequires: systemd
|
||||
BuildRequires: libdrm-devel
|
||||
BuildRequires: kernel-headers
|
||||
BuildRequires: python3-dbusmock
|
||||
BuildRequires: umockdev
|
||||
|
||||
@@ -73,7 +78,6 @@ fi
|
||||
%{_mandir}/man1/switcherooctl.1*
|
||||
%{_libexecdir}/check-discrete-amdgpu
|
||||
%{_libexecdir}/check-discrete-nouveau
|
||||
%{_libexecdir}/check-discrete-xe
|
||||
%{_udevrulesdir}/30-discrete-gpu.rules
|
||||
|
||||
%files docs
|
||||
@@ -82,17 +86,14 @@ fi
|
||||
%{_datadir}/gtk-doc/html/%{name}/
|
||||
|
||||
%changelog
|
||||
* Tue Apr 29 2025 Jan200101 <sentrycraft123@gmail.com> - 2.6-9
|
||||
* Fri Sep 06 2024 Jan200101 <sentrycraft123@gmail.com> - 2.6-8
|
||||
- Update discrete patch
|
||||
|
||||
* Sun Jan 19 2025 Fedora Release Engineering <releng@fedoraproject.org> - 2.6-8
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
|
||||
* Thu Feb 15 2024 Jan Drögehoff <sentrycraft123@gmail.com> - 2.6-7
|
||||
- Update discrete patch
|
||||
|
||||
* Mon Jul 29 2024 Miroslav Suchý <msuchy@redhat.com> - 2.6-7
|
||||
- convert license to SPDX
|
||||
|
||||
* Sat Jul 20 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.6-6
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
|
||||
* Wed Feb 14 2024 Jan Drögehoff <sentrycraft123@gmail.com> - 2.6-6
|
||||
- Add discrete patch
|
||||
|
||||
* Sat Jan 27 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.6-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
Throne-*
|
||||
*.tar.gz
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user