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,9 +1,9 @@
|
||||
%global xurl https://files.pythonhosted.org/packages/22/1c/37fe0377fd5fbfe27b17db20679d76aeb1cef7be3ddfb22e24c0bb62cf96/anki-25.9.2-cp39-abi3-manylinux_2_36_x86_64.whl
|
||||
%global aurl https://files.pythonhosted.org/packages/c1/49/484a786ea0e1b3659de9478f2546368c5970da60a1cd403cec1fa2f81d65/anki-25.9.2-cp39-abi3-manylinux_2_36_aarch64.whl
|
||||
%global qurl https://files.pythonhosted.org/packages/e5/d4/26016857a780290264866e1818b1a408106c379906fbd186a0aa26eb1054/aqt-25.9.2-py3-none-any.whl
|
||||
%global xurl https://files.pythonhosted.org/packages/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.2
|
||||
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.2
|
||||
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.2
|
||||
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.9.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.9.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: 3.0.1
|
||||
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.776
|
||||
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.776
|
||||
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.111
|
||||
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.161
|
||||
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.161
|
||||
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.111
|
||||
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 5470662f25a0fc9cdb024d2e3dce4108f5cc529a
|
||||
%global commit_date 20250917
|
||||
%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 f8ab6a67517476522631fb0838eab3fa58093402
|
||||
%global shortcommit %{sub %{commit} 1 7}
|
||||
%global commit_date 20251007
|
||||
%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.9
|
||||
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.88.0
|
||||
%global raw_ver v1.74.0
|
||||
|
||||
Name: komikku
|
||||
Version: 1.88.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 e68610a3ecee4235666fd170eb8021d8447bfa1c
|
||||
%global commit_date 20251006
|
||||
%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 6083cf13f28a0e82fa116678d3a0a2848d99f182
|
||||
%global commit 5ba7ee513751dd005379a06fb627303e6fe1b3dd
|
||||
%global shortcommit %(c=%{commit}; echo ${c:0:7})
|
||||
%global commit_date 20251007
|
||||
%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,19 +71,12 @@ BuildRequires: pkgconfig(xdamage)
|
||||
BuildRequires: pkgconfig(xext)
|
||||
BuildRequires: pkgconfig(xinerama)
|
||||
BuildRequires: pkgconfig(xkbcommon)
|
||||
BuildRequires: pkgconfig(xrandr)
|
||||
BuildRequires: pkgconfig(zimg) >= 2.9
|
||||
BuildRequires: pkgconfig(zlib)
|
||||
%if %{with x11}
|
||||
BuildRequires: pkgconfig(vdpau)
|
||||
BuildRequires: pkgconfig(xpresent)
|
||||
BuildRequires: pkgconfig(xrandr)
|
||||
BuildRequires: pkgconfig(xscrnsaver)
|
||||
BuildRequires: pkgconfig(xv)
|
||||
%endif
|
||||
|
||||
%ifarch x86_64
|
||||
BuildRequires: libOpenCL.so.1
|
||||
%endif
|
||||
BuildRequires: pkgconfig(zimg) >= 2.9
|
||||
BuildRequires: pkgconfig(zlib)
|
||||
|
||||
Requires: hicolor-icon-theme
|
||||
Provides: mplayer-backend
|
||||
@@ -132,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
|
||||
@@ -154,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 \
|
||||
@@ -189,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
|
||||
@@ -221,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
|
||||
@@ -230,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 2905b8fc7d4a5d3a952163e0ba5ee7968c92dfb4
|
||||
%global commit_date 20251003
|
||||
%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 e5e5796f787fade0514c44649d206a860049424d
|
||||
%global commit_date 20250930
|
||||
%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-10-07
|
||||
%global ver 2025-03-30
|
||||
%global goodver %(echo %ver | sed 's/-//g')
|
||||
%global __brp_mangle_shebangs %{nil}
|
||||
%bcond_without mold
|
||||
@@ -17,7 +17,7 @@ Source0: https://github.com/ruffle-rs/ruffle/archive/refs/tags/nightly-%v
|
||||
Provides: ruffle
|
||||
BuildRequires: cargo-rpm-macros >= 24
|
||||
BuildRequires: anda-srpm-macros mold
|
||||
BuildRequires: gcc-c++ cmake
|
||||
BuildRequires: gcc-c++ cmake java
|
||||
BuildRequires: java-latest-openjdk-headless
|
||||
BuildRequires: pkgconfig(alsa)
|
||||
BuildRequires: pkgconfig(gtk+-3.0)
|
||||
@@ -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 = "scrcpy.spec"
|
||||
}
|
||||
}
|
||||
@@ -1,77 +0,0 @@
|
||||
Name: scrcpy
|
||||
Version: 3.3.3
|
||||
Release: 2%?dist
|
||||
Summary: Display and control your Android device
|
||||
License: Apache-2.0 AND Proprietary
|
||||
URL: https://github.com/Genymobile/scrcpy
|
||||
Source0: %url/archive/refs/tags/v%version.tar.gz
|
||||
Source1: https://developer.android.com/studio/terms.html
|
||||
Packager: madonuko <mado@fyralabs.com>
|
||||
BuildRequires: meson ninja-build cmake nasm gcc
|
||||
BuildRequires: pkgconfig(sdl2)
|
||||
BuildRequires: pkgconfig(libavcodec)
|
||||
BuildRequires: pkgconfig(libavdevice)
|
||||
BuildRequires: pkgconfig(libavformat)
|
||||
BuildRequires: pkgconfig(libavutil)
|
||||
BuildRequires: pkgconfig(libswresample)
|
||||
BuildRequires: pkgconfig(libusb)
|
||||
BuildRequires: pkgconfig(libv4l2)
|
||||
BuildRequires: cmake(VulkanHeaders)
|
||||
BuildRequires: vulkan-loader
|
||||
BuildRequires: OpenCL-ICD-Loader
|
||||
BuildRequires: python3-sdkmanager
|
||||
BuildRequires: java-25-openjdk-devel
|
||||
BuildConflicts: dkms-nvidia akmod-nvidia
|
||||
Requires: android-tools
|
||||
|
||||
%description
|
||||
This application mirrors Android devices (video and audio) connected via USB or TCP/IP and allows control using the computer's keyboard and mouse. It does not require root access or an app installed on the device. It works on Linux, Windows, and macOS.
|
||||
|
||||
%pkg_completion -Bz
|
||||
|
||||
%prep
|
||||
%autosetup
|
||||
mkdir -p /tmp/android_sdk
|
||||
export ANDROID_SDK_ROOT=/tmp/android_sdk
|
||||
sdkmanager --install tools --sdk_root /tmp/android_sdk
|
||||
echo y | sdkmanager --license
|
||||
|
||||
%build
|
||||
export WORK_DIR=$PWD/work
|
||||
export OUTPUT_DIR=$PWD/output
|
||||
%dnl #export CFLAGS="$(echo $CFLAGS | sed 's/-D_GNU_SOURCE[=1]*//g')"
|
||||
%dnl #export CPPFLAGS="$(echo $CPPFLAGS | sed 's/-D_GNU_SOURCE[=1]*//g')"
|
||||
export VERSION=v%version
|
||||
export ANDROID_SDK_ROOT=/tmp/android_sdk
|
||||
|
||||
%meson \
|
||||
-Dcompile_server=true \
|
||||
-Dportable=false \
|
||||
-Dstatic=false
|
||||
|
||||
%meson_build
|
||||
|
||||
rm -rf /tmp/android_sdk
|
||||
|
||||
%install
|
||||
pushd "%_vpath_builddir"
|
||||
%ninja_install
|
||||
popd
|
||||
ls -la
|
||||
install -Dm 644 ${SOURCES}/terms.html %{buildroot}%{_licensedir}/LICENSE.android-sdk-license
|
||||
|
||||
%files
|
||||
%doc README.md
|
||||
%license LICENSE
|
||||
%license %{SOURCE1}
|
||||
%_bindir/scrcpy
|
||||
%_datadir/applications/scrcpy-console.desktop
|
||||
%_datadir/applications/scrcpy.desktop
|
||||
%_datadir/scrcpy/scrcpy-server
|
||||
%_datadir/bash-completion/completions/scrcpy
|
||||
%_iconsdir/hicolor/*/apps/scrcpy.png
|
||||
%_mandir/man1/scrcpy.1.*
|
||||
|
||||
%changelog
|
||||
* Thu Oct 02 2025 june-fish <june@fyralabs.com>
|
||||
- fix android sdk bug
|
||||
@@ -1 +0,0 @@
|
||||
rpm.version(gh("Genymobile/scrcpy"));
|
||||
@@ -1,5 +0,0 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "signal-desktop.spec"
|
||||
}
|
||||
}
|
||||
@@ -1,127 +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 ^lib.*\\.so.*$
|
||||
|
||||
%ifarch x86_64
|
||||
%define arch %{nil}
|
||||
%elifarch aarch64
|
||||
%define arch arm64-
|
||||
%endif
|
||||
|
||||
Name: signal-desktop
|
||||
Version: 7.73.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
|
||||
|
||||
Provides: signal
|
||||
Provides: Signal
|
||||
Provides: Signal-Desktop
|
||||
|
||||
%description
|
||||
Signal Desktop links with Signal on Android or iOS and lets you message from your Windows, macOS, and Linux computers.
|
||||
|
||||
%prep
|
||||
%autosetup -n Signal-Desktop-%{version} -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
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user