mirror of
https://github.com/terrapkg/packages.git
synced 2026-05-31 09:01:55 +00:00
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| a4ecd34cdd | |||
| 18eea51485 |
+1
-1
@@ -2,7 +2,7 @@
|
||||
"repoOwner": "terrapkg",
|
||||
"repoName": "packages",
|
||||
"resetAuthor": true,
|
||||
"targetBranchChoices": ["el10", "f40", "f41", "f42", "frawhide"],
|
||||
"targetBranchChoices": ["f39", "f40", "frawhide"],
|
||||
"branchLabelMapping": {
|
||||
"^sync-(.+)$": "$1"
|
||||
}
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
ARG VARIANT="rawhide"
|
||||
FROM fedora:${VARIANT}
|
||||
|
||||
RUN useradd -m vscode
|
||||
RUN groupadd mock
|
||||
RUN usermod -aG mock vscode
|
||||
RUN echo vscode ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/vscode
|
||||
RUN curl -Lo /etc/yum.repos.d/terra.repo https://raw.githubusercontent.com/terrapkg/subatomic-repos/main/terra.repo
|
||||
RUN dnf -y install git mock createrepo_c anda terra-mock-configs
|
||||
@@ -1,19 +1,18 @@
|
||||
{
|
||||
"name": "Terra Devcontainer",
|
||||
"image": "ghcr.io/terrapkg/builder:frawhide",
|
||||
"name": "Fedora",
|
||||
"build": {
|
||||
"dockerfile": "Dockerfile",
|
||||
"args": { "VARIANT": "rawhide" }
|
||||
},
|
||||
"remoteUser": "vscode",
|
||||
"runArgs": [
|
||||
"--privileged"
|
||||
],
|
||||
"features": {
|
||||
"ghcr.io/devcontainers/features/common-utils:2": {}
|
||||
},
|
||||
"customizations": {
|
||||
"vscode": {
|
||||
"extensions": [
|
||||
"rhaiscript.vscode-rhai"
|
||||
]
|
||||
}
|
||||
},
|
||||
"remoteUser": "vscode",
|
||||
"onCreateCommand": "sudo usermod -a -G mock vscode"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,7 +18,8 @@ on:
|
||||
|
||||
jobs:
|
||||
manifest:
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
outputs:
|
||||
build_matrix: ${{ steps.generate_build_matrix.outputs.build_matrix }}
|
||||
container:
|
||||
@@ -41,7 +42,7 @@ jobs:
|
||||
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' }}
|
||||
runs-on: ${{ matrix.pkg.arch == 'aarch64' && 'ARM64' || matrix.pkg.labels['large'] && 'x86-64-lg' || 'ubuntu-latest' }}
|
||||
container:
|
||||
image: ghcr.io/terrapkg/builder:f${{ matrix.version }}
|
||||
options: --cap-add=SYS_ADMIN --privileged
|
||||
@@ -69,7 +70,7 @@ jobs:
|
||||
dnf5 builddep -y ${dir}/*.spec
|
||||
|
||||
- name: Build with Andaman
|
||||
run: anda build ${{ matrix.pkg.pkg }} -D "vendor Terra" -c terra-${{ matrix.version }}-${{ matrix.pkg.arch }} ${{ !matrix.pkg.labels.mock == '1' && '-rrpmbuild' || '' }}
|
||||
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
|
||||
@@ -89,20 +90,18 @@ jobs:
|
||||
- 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/*
|
||||
terra${{ matrix.version }}${{ matrix.pkg.labels['extra'] && '-extras' }} 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/*
|
||||
terra${{ matrix.version }}${{ matrix.pkg.labels['extra'] && '-extras' }}-source anda-build/rpm/srpm/*
|
||||
|
||||
- name: Notify Madoguchi (Success)
|
||||
if: success() && github.event_name == 'push'
|
||||
|
||||
@@ -10,56 +10,42 @@ jobs:
|
||||
version: ["rawhide"]
|
||||
arch: ["x86_64", "aarch64"]
|
||||
fail-fast: true
|
||||
runs-on: ${{ matrix.arch == 'aarch64' && 'ubuntu-22.04-arm' || 'ubuntu-22.04' }}
|
||||
runs-on: ${{ matrix.arch == 'aarch64' && 'ARM64' || 'ubuntu-latest' }}
|
||||
container:
|
||||
image: registry.fedoraproject.org/fedora-minimal:${{ matrix.version }}
|
||||
options: --cap-add=SYS_ADMIN --privileged
|
||||
steps:
|
||||
- name: Install repositories
|
||||
run: |
|
||||
dnf5 swap -y --setopt=install_weak_deps=False systemd-standalone-sysusers systemd
|
||||
dnf5 install -y --setopt=install_weak_deps=False curl wget git-core openssl-devel cargo podman fuse-overlayfs dnf5-plugins rpmbuild script
|
||||
dnf5 install -y --setopt=install_weak_deps=False curl wget git-core openssl-devel cargo podman fuse-overlayfs
|
||||
dnf5 builddep -y anda/terra/{mock-configs,srpm-macros}/*.spec anda/tools/buildsys/{anda,subatomic}/*.spec
|
||||
|
||||
- name: Install Anda
|
||||
run: cargo install anda
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
ref: f${{ matrix.version }}
|
||||
fetch-depth: 1
|
||||
|
||||
- name: Build anda-srpm-macros
|
||||
run: |
|
||||
mkdir -p anda-build/rpm/rpms
|
||||
rpmbuild -bb anda/terra/srpm-macros/*.spec --undefine=_disable_source_fetch -D "_sourcedir $(pwd)/anda/terra/srpm-macros/" -D "_rpmdir $(pwd)/anda-build/rpm/rpms/"
|
||||
mv ./anda-build/rpm/rpms/*/anda-*.rpm ./anda-build/rpm/rpms/
|
||||
dnf5 install -y ./anda-build/rpm/rpms/anda-*.rpm
|
||||
|
||||
- name: Install build dependencies
|
||||
run: dnf5 builddep -y anda/terra/{mock-configs,srpm-macros}/*.spec anda/tools/buildsys/{anda,subatomic}/*.spec
|
||||
|
||||
- name: Install Anda
|
||||
run: |
|
||||
rpmbuild -bb anda/tools/buildsys/anda/*.spec --undefine=_disable_source_fetch -D "_sourcedir $(pwd)/anda/tools/buildsys/anda/" -D "_rpmdir $(pwd)/anda-build/rpm/rpms/"
|
||||
mv ./anda-build/rpm/rpms/*/anda-*.rpm ./anda-build/rpm/rpms/
|
||||
dnf5 install -y ./anda-build/rpm/rpms/anda-*.rpm
|
||||
|
||||
- name: Build terra-mock-configs
|
||||
run: |
|
||||
echo "PATH=$PATH:/github/home/.cargo/bin" >> $GITHUB_ENV
|
||||
export PATH=$PATH:/github/home/.cargo/bin
|
||||
git config --global --add safe.directory "$GITHUB_WORKSPACE"
|
||||
anda build -D "vendor Terra" -rrpmbuild anda/terra/mock-configs/pkg
|
||||
anda build -rrpmbuild anda/terra/mock-configs/pkg
|
||||
- name: Install terra-mock-configs
|
||||
run: dnf5 install -y anda-build/rpm/rpms/terra-mock-configs*.rpm
|
||||
|
||||
- name: Build terra-release
|
||||
run: anda build -D "vendor Terra" -rrpmbuild anda/terra/release/pkg
|
||||
- name: Build anda-srpm-macros
|
||||
run: anda build -rrpmbuild anda/terra/srpm-macros/pkg
|
||||
|
||||
- name: Build Subatomic
|
||||
run: anda build -D "vendor Terra" -rrpmbuild anda/tools/buildsys/subatomic/pkg
|
||||
run: anda build -rrpmbuild anda/tools/buildsys/subatomic/pkg
|
||||
- name: Install Subatomic
|
||||
run: dnf5 install -y ./anda-build/rpm/rpms/subatomic-*.rpm
|
||||
|
||||
- name: Tidy up output directory
|
||||
run: rmdir anda-build/rpm/rpms/{noarch,aarch64,x86_64} | true
|
||||
- name: Build Andaman
|
||||
run: anda build -rrpmbuild anda/tools/buildsys/anda/pkg
|
||||
|
||||
- name: Upload packages to subatomic
|
||||
run: |
|
||||
|
||||
@@ -21,7 +21,7 @@ jobs:
|
||||
pkgs: ${{ steps.parsing.outputs.pkgs }}
|
||||
builder: ${{ inputs.custom_builder }}
|
||||
arch: ${{ steps.parsing.outputs.arch }}
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: "ubuntu-latest"
|
||||
steps:
|
||||
- name: Parse Input
|
||||
id: parsing
|
||||
@@ -47,7 +47,7 @@ jobs:
|
||||
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' }}
|
||||
runs-on: ${{ matrix.arch == 'aarch64' && 'ARM64' || needs.parse.outputs.builder && needs.parse.outputs.builder || 'ubuntu-latest' }}
|
||||
container:
|
||||
image: ghcr.io/terrapkg/builder:f${{ matrix.version }}
|
||||
options: --cap-add=SYS_ADMIN --privileged
|
||||
@@ -60,8 +60,15 @@ jobs:
|
||||
- name: Set up git repository
|
||||
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
|
||||
|
||||
- name: CI Setup Script
|
||||
run: |
|
||||
dir=${{ matrix.pkg }}
|
||||
if [ -f $dir/ci_setup.rhai ]; then
|
||||
anda run $dir/ci_setup.rhai --labels script_path=$dir/ci_setup.rhai
|
||||
fi
|
||||
|
||||
- name: Build with Andaman
|
||||
run: anda build -D "vendor Terra" -c terra-${{ matrix.version }}-${{ matrix.arch }} anda/${{ matrix.pkg }}pkg
|
||||
run: anda build -rrpmbuild anda/${{ matrix.pkg }}pkg
|
||||
|
||||
- name: Generating artifact name
|
||||
id: art
|
||||
|
||||
@@ -13,7 +13,7 @@ jobs:
|
||||
pkg: ${{ fromJson(inputs.packages) }}
|
||||
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' }}
|
||||
runs-on: ${{ matrix.pkg.arch == 'aarch64' && 'ARM64' || 'ubuntu-latest' }}
|
||||
container:
|
||||
image: ghcr.io/terrapkg/builder:f${{ matrix.version }}
|
||||
options: --cap-add=SYS_ADMIN --privileged
|
||||
@@ -35,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
|
||||
@@ -60,19 +60,17 @@ jobs:
|
||||
|
||||
- name: Upload packages to subatomic
|
||||
run: |
|
||||
subrepo="${{ matrix.pkg.labels.subrepo }}"
|
||||
subatomic-cli upload --prune \
|
||||
--server https://subatomic.fyralabs.com \
|
||||
--token ${{ secrets.SUBATOMIC_TOKEN }} \
|
||||
terra${{ matrix.version }}${{ matrix.pkg.labels['subrepo'] && '-$subrepo' || '' }} anda-build/rpm/rpms/*
|
||||
terra${{ matrix.version }}${{ matrix.pkg.labels['extra'] && '-extras' }} anda-build/rpm/rpms/*
|
||||
|
||||
- name: Upload source packages to subatomic
|
||||
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/*
|
||||
terra${{ matrix.version }}${{ matrix.pkg.labels['extra'] && '-extras' }}-source anda-build/rpm/srpm/*
|
||||
|
||||
- name: Notify Madoguchi (Success)
|
||||
if: success()
|
||||
|
||||
@@ -7,7 +7,7 @@ on:
|
||||
jobs:
|
||||
backport:
|
||||
name: Backport/sync PR
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-latest
|
||||
if: github.event.pull_request.merged
|
||||
steps:
|
||||
- name: Install SSH signing key
|
||||
@@ -23,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-
|
||||
|
||||
@@ -6,14 +6,13 @@ on:
|
||||
|
||||
jobs:
|
||||
autoupdate:
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
branch:
|
||||
- frawhide
|
||||
- f40
|
||||
- f41
|
||||
- f42
|
||||
- el10
|
||||
container:
|
||||
image: ghcr.io/terrapkg/builder:frawhide
|
||||
@@ -49,7 +48,7 @@ jobs:
|
||||
git config user.email "raboneko@fyralabs.com"
|
||||
git config gpg.format "ssh"
|
||||
git config user.signingkey "${{ runner.temp }}/signing_key"
|
||||
msg="bump(branch): $(anda run andax/ci/update_commit_message.rhai)"
|
||||
msg="bump(branch): $(git status | grep modified | sed -r 's@.+/([^/]+)/[^/]+\n?@\1 @g' | tr -d '\n')"
|
||||
git commit -S -a -m "$msg"
|
||||
git push -u origin --all
|
||||
fi
|
||||
|
||||
@@ -4,7 +4,6 @@ on:
|
||||
push:
|
||||
branches:
|
||||
- frawhide
|
||||
- f42
|
||||
- f41
|
||||
- f40
|
||||
- el10
|
||||
@@ -14,7 +13,7 @@ on:
|
||||
|
||||
jobs:
|
||||
update-comps:
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: ghcr.io/terrapkg/builder:frawhide
|
||||
steps:
|
||||
|
||||
@@ -6,7 +6,7 @@ on:
|
||||
|
||||
jobs:
|
||||
autoupdate:
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: ghcr.io/terrapkg/builder:frawhide
|
||||
options: --cap-add=SYS_ADMIN --privileged
|
||||
@@ -37,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,7 +48,6 @@ jobs:
|
||||
}
|
||||
copy_over f40 || true
|
||||
copy_over f41 || true
|
||||
copy_over f42 || true
|
||||
copy_over el10 || true
|
||||
git push -u origin --all
|
||||
fi
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
name: Weekly Update
|
||||
on:
|
||||
schedule:
|
||||
- cron: "0 0 * * *"
|
||||
- cron: "0 0 * * 0"
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
autoupdate:
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: ghcr.io/terrapkg/builder:frawhide
|
||||
options: --cap-add=SYS_ADMIN --privileged
|
||||
@@ -25,7 +25,7 @@ jobs:
|
||||
git config --global --add safe.directory "$GITHUB_WORKSPACE"
|
||||
|
||||
- name: Run Weekly Update
|
||||
run: anda update --filters weekly=$(date "+%w")
|
||||
run: anda update --filters weekly=1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
RUST_BACKTRACE: full
|
||||
@@ -37,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,7 +48,6 @@ jobs:
|
||||
}
|
||||
copy_over f40 || true
|
||||
copy_over f41 || true
|
||||
copy_over f42 || true
|
||||
copy_over el10 || true
|
||||
git push -u origin --all
|
||||
fi
|
||||
|
||||
@@ -6,7 +6,7 @@ on:
|
||||
|
||||
jobs:
|
||||
autoupdate:
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: ghcr.io/terrapkg/builder:frawhide
|
||||
options: --cap-add=SYS_ADMIN --privileged
|
||||
@@ -37,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,7 +48,6 @@ jobs:
|
||||
}
|
||||
copy_over f40 || true
|
||||
copy_over f41 || true
|
||||
copy_over f42 || true
|
||||
copy_over el10 || true
|
||||
git push -u origin --all
|
||||
fi
|
||||
|
||||
@@ -1,4 +1,2 @@
|
||||
anda-build/
|
||||
**/*.tar*
|
||||
**/*.crate
|
||||
**/*.zip
|
||||
|
||||
@@ -3,7 +3,4 @@ project pkg {
|
||||
rpm {
|
||||
spec = "anki-bin.spec"
|
||||
}
|
||||
labels {
|
||||
subrepo = "extras"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,32 +1,29 @@
|
||||
%global xurl https://files.pythonhosted.org/packages/f4/be/4b66f654302eb99e02f691ba1fdd1a5cd1f439d439b3b16f58aa4786836f/anki-25.02.7-cp39-abi3-manylinux_2_35_x86_64.whl
|
||||
%global aurl https://files.pythonhosted.org/packages/71/40/19545c12e7d14cf00a5d669317bc39e8b0e14b538da9a1bf753a0b59269f/anki-25.02.7-cp39-abi3-manylinux_2_35_aarch64.whl
|
||||
%global qurl https://files.pythonhosted.org/packages/c9/ea/9dd58dee2ac85626335b73b742f67dadfb25c4bb31fd607c1415dc9fdfc3/aqt-25.02.7-py3-none-any.whl
|
||||
%global xurl https://files.pythonhosted.org/packages/ef/fa/6c86371d0e3b71129d2a79e63fc3fdc17733c9ebbf77345c62caad8c9fca/anki-24.11-cp39-abi3-manylinux_2_28_x86_64.whl
|
||||
%global aurl https://files.pythonhosted.org/packages/58/6e/9f2d4853a83e57cea48ccae3bc2d887bf7c0550042185e156bab23f524bf/anki-24.11-cp39-abi3-manylinux_2_31_aarch64.whl
|
||||
%global qurl https://files.pythonhosted.org/packages/40/3c/b70ef91f1dad8248332971c0cbb2922277512789cadc33cb16233e360a56/aqt-24.11-py3-none-any.whl
|
||||
|
||||
Name: anki-bin
|
||||
Version: 25.02.7
|
||||
Version: 24.11
|
||||
Release: 1%?dist
|
||||
Summary: Flashcard program for using space repetition learning (Installed with wheel)
|
||||
License: AGPL-3.0-or-later AND GPL-3.0-or-later AND LGPL-3.0-or-later AND MIT AND BSD-3-Clause AND CC-BY-SA-3.0 AND CC-BY-3.0 AND Apache-2.0 AND CC-BY-2.5
|
||||
URL: https://apps.ankiweb.net/
|
||||
BuildRequires: python3-pip rpm_macro(fdupes) cargo
|
||||
Requires: python3-sqlalchemy python3-simplejson python3-matplotlib python3-decorator python3-markdown python3-orjson
|
||||
Requires: python3-requests python3-pygame python3-beautifulsoup4 python3-httplib2 python3-pyaudio python3-jsonschema
|
||||
Requires: python3-flask-cors python3-protobuf python3-requests python3-waitress python3-pyqt6-webengine python3-send2trash
|
||||
Requires: python3-protobuf >= 4.21
|
||||
Requires: libxcrypt-compat hicolor-icon-theme sox
|
||||
Requires: (mpv or mpv-nightly)
|
||||
|
||||
ExclusiveArch: x86_64
|
||||
BuildRequires: python3-pip rpm_macro(fdupes) cargo
|
||||
Requires: python3-sqlalchemy python3-simplejson python3-matplotlib python3-decorator python3-markdown python3-orjson
|
||||
Requires: python3-requests python3-pygame python3-beautifulsoup4 python3-httplib2 python3-pyaudio python3-jsonschema
|
||||
Requires: python3-flask-cors python3-protobuf python3-requests python3-waitress python3-pyqt6-webengine python3-send2trash
|
||||
Requires: libxcrypt-compat hicolor-icon-theme sox mpv
|
||||
ExclusiveArch: x86_64
|
||||
Conflicts: anki
|
||||
%ifarch x86_64
|
||||
Source0: %xurl
|
||||
%elifarch aarch64
|
||||
Source0: %aurl
|
||||
Source0: %aurl
|
||||
%endif
|
||||
Source1: %qurl
|
||||
Source2: https://raw.githubusercontent.com/ankitects/anki/%{version}/qt/runanki.py
|
||||
Source3: https://raw.githubusercontent.com/ankitects/anki/%{version}/qt/bundle/lin/anki.desktop
|
||||
Source4: https://raw.githubusercontent.com/ankitects/anki/%{version}/qt/bundle/lin/anki.png
|
||||
Source4: https://raw.githubusercontent.com/ankitects/anki/%{version}/qt/bundle/lin/anki.png
|
||||
Source5: https://raw.githubusercontent.com/ankitects/anki/%{version}/LICENSE
|
||||
Source6: https://raw.githubusercontent.com/ankitects/anki/%{version}/README.md
|
||||
|
||||
@@ -60,8 +57,6 @@ rm -rf %buildroot%_bindir/{distro,flask,jsonschema,markdown_py,normalizer,send2t
|
||||
%license LICENSE
|
||||
%doc README.md
|
||||
%_bindir/anki
|
||||
%_bindir/pyuic6
|
||||
%_bindir/pylupdate6
|
||||
/usr/lib/python*/site-packages/_aqt/
|
||||
/usr/lib/python*/site-packages/anki-%{version}.dist-info/
|
||||
/usr/lib/python*/site-packages/anki/
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
Name: anki-qt5
|
||||
Version: 25.02.6
|
||||
Version: 24.11
|
||||
Release: 1%?dist
|
||||
Summary: Flashcard program for using space repetition learning
|
||||
License: AGPL-3.0-or-later AND GPL-3.0-or-later AND LGPL-3.0-or-later AND MIT AND BSD-3-Clause AND CC-BY-SA-3.0 AND CC-BY-3.0 AND Apache-2.0 AND CC-BY-2.5
|
||||
|
||||
@@ -3,7 +3,4 @@ project pkg {
|
||||
rpm {
|
||||
spec = "anki.spec"
|
||||
}
|
||||
labels {
|
||||
subrepo = "extras"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
Name: anki
|
||||
Version: 25.02.6
|
||||
Version: 24.11
|
||||
Release: 1%?dist
|
||||
Summary: Flashcard program for using space repetition learning
|
||||
License: AGPL-3.0-or-later AND GPL-3.0-or-later AND LGPL-3.0-or-later AND MIT AND BSD-3-Clause AND CC-BY-SA-3.0 AND CC-BY-3.0 AND Apache-2.0 AND CC-BY-2.5
|
||||
@@ -9,7 +9,7 @@ BuildRequires: python3-distro python3-flask-cors python3-jsonschema python3-sen
|
||||
BuildRequires: python3-installer make mold cargo git rsync ninja-build libxcrypt-compat nodejs python3.9 python-unversioned-command gcc python3-pyqt6-webengine
|
||||
Requires: hicolor-icon-theme python3-sqlalchemy python3-simplejson python3-matplotlib python3-decorator python3-markdown python3-send2trash
|
||||
Requires: python3-requests python3-pygame python3-beautifulsoup4 python3-httplib2 python3-pyaudio python3-jsonschema sox libxcrypt-compat python3-pyqt6-webengine
|
||||
Recommends: (mpv or mpv-nightly)
|
||||
Recommends: mpv
|
||||
Obsoletes: anki <= 2.1.15
|
||||
Conflicts: anki-qt5
|
||||
Patch0: 0001-No-update.patch
|
||||
|
||||
@@ -1,11 +1,8 @@
|
||||
%global __requires_exclude ^lib-.*.so
|
||||
%global __provides_exclude ^lib-.*.so
|
||||
|
||||
%global ver Audacity-3.7.4
|
||||
%global sanitized_ver %(echo %{ver} | sed 's/Audacity-//g')
|
||||
|
||||
Name: audacity-freeworld
|
||||
Version: %{sanitized_ver}
|
||||
Version: Audacity.3.7.1
|
||||
Release: 1%?dist
|
||||
Summary: Multitrack audio editor
|
||||
License: GPLv2
|
||||
@@ -749,4 +746,4 @@ rm -f %{buildroot}%{_prefix}/%{realname}
|
||||
- New upstream version 1.2.0-pre3
|
||||
|
||||
* Sat Oct 25 2003 Gerard Milmeister <gemi@bluewin.ch> - 0:1.2.0-pre2.fdr.1
|
||||
- First Fedora release
|
||||
- First Fedora release
|
||||
@@ -1,4 +1 @@
|
||||
rpm.global("ver", gh("audacity/audacity"));
|
||||
if rpm.changed() {
|
||||
rpm.release();
|
||||
}
|
||||
rpm.version(gh("audacity/audacity"));
|
||||
@@ -1,5 +1,5 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "atac.spec"
|
||||
spec = "authy.spec"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
%define debug_package %nil
|
||||
%global _build_id_links none
|
||||
|
||||
# Exclude private libraries
|
||||
%global __requires_exclude libffmpeg.so
|
||||
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
|
||||
|
||||
Name: authy
|
||||
Version: 2.5.0
|
||||
Release: 1%{?dist}
|
||||
Summary: Two factor authentication desktop application
|
||||
License: Unlicense
|
||||
URL: https://authy.com/
|
||||
Source0: https://api.snapcraft.io/api/v1/snaps/download/H8ZpNgIoPyvmkgxOWw5MSzsXK1wRZiHn_23.snap
|
||||
Requires: gtk3
|
||||
Requires: nss
|
||||
BuildRequires: squashfs-tools desktop-file-utils
|
||||
|
||||
%description
|
||||
%{summary}.
|
||||
|
||||
%prep
|
||||
unsquashfs -q -f -d snap %{SOURCE0}
|
||||
|
||||
%build
|
||||
|
||||
%install
|
||||
install -d %buildroot%_datadir/authy
|
||||
cp -r snap/. %buildroot%_datadir/authy
|
||||
|
||||
sed -i 's|${SNAP}/meta/gui/icon.png|authy|g' %buildroot%_datadir/authy/meta/gui/authy.desktop
|
||||
install -Dm644 %buildroot%_datadir/authy/meta/gui/authy.desktop -t %buildroot%_datadir/applications
|
||||
install -Dm644 %buildroot%_datadir/authy/meta/gui/icon.png %buildroot%_datadir/pixmaps/authy.png
|
||||
|
||||
rm -rf %buildroot%_datadir/authy/{data-dir,gnome-platform,lib,meta,scripts,usr,*.sh}
|
||||
|
||||
install -d %buildroot%_bindir
|
||||
ln -s %_datadir/authy/authy %buildroot%_bindir
|
||||
|
||||
%check
|
||||
desktop-file-validate %buildroot%_datadir/applications/authy.desktop
|
||||
|
||||
%files
|
||||
%_datadir/authy/
|
||||
%_bindir/authy
|
||||
%_datadir/applications/authy.desktop
|
||||
%_datadir/pixmaps/authy.png
|
||||
|
||||
%changelog
|
||||
* Sat Jun 17 2023 windowsboy111 <windowsboy111@fyralabs.com> - 2.3.0-2
|
||||
- Use /usr/share/ instead of /opt/
|
||||
|
||||
* Sat Oct 15 2022 windowsboy111 <windowsboy111@fyralabs.com> - 2.2.1-2
|
||||
- Initial release
|
||||
@@ -0,0 +1,5 @@
|
||||
let req = new_req("https://api.snapcraft.io/v2/snaps/info/authy");
|
||||
req.head("Snap-Device-Series", "16");
|
||||
let obj = json(req.get())["channel-map"][0];
|
||||
rpm.version(obj.version);
|
||||
rpm.source(0, obj.download.url);
|
||||
@@ -0,0 +1,5 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "blackbox-terminal.spec"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
Name: blackbox-terminal
|
||||
Version: 0.14.0
|
||||
Release: 1%{?dist}
|
||||
Summary: A beautiful GTK 4 terminal
|
||||
License: GPL-3.0
|
||||
URL: https://gitlab.gnome.org/raggesilver/blackbox
|
||||
BuildRequires: vala meson gettext
|
||||
BuildRequires: pkgconfig(gtk4) >= 4.6.2
|
||||
BuildRequires: pkgconfig(gio-2.0) >= 2.50
|
||||
BuildRequires: libadwaita-devel >= 1.1
|
||||
BuildRequires: pkgconfig(pqmarble) >= 2
|
||||
BuildRequires: pkgconfig(vte-2.91-gtk4) >= 0.69.0
|
||||
BuildRequires: pkgconfig(json-glib-1.0) >= 1.4.4
|
||||
BuildRequires: pkgconfig(libxml-2.0) >= 2.9.12
|
||||
BuildRequires: pkgconfig(librsvg-2.0) >= 2.54.0
|
||||
BuildRequires: pkgconfig(libpcre2-8)
|
||||
BuildRequires: pkgconfig(graphene-gobject-1.0)
|
||||
BuildRequires: pkgconfig(gee-0.8)
|
||||
BuildRequires: desktop-file-utils libappstream-glib cmake
|
||||
Source0: %url/-/archive/v%version/blackbox-v%version.tar.gz
|
||||
|
||||
%description
|
||||
%{summary}.
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n blackbox-v%version
|
||||
|
||||
%build
|
||||
%meson
|
||||
%meson_build
|
||||
|
||||
%install
|
||||
%meson_install
|
||||
|
||||
%check
|
||||
appstream-util validate-relax --nonet %buildroot/%_datadir/metainfo/com.raggesilver.BlackBox.metainfo.xml
|
||||
|
||||
%files
|
||||
%doc README.md
|
||||
%license COPYING
|
||||
%_bindir/blackbox
|
||||
%_bindir/terminal-toolbox
|
||||
%_datadir/applications/com.raggesilver.BlackBox.desktop
|
||||
%_datadir/metainfo/com.raggesilver.BlackBox.metainfo.xml
|
||||
%_datadir/blackbox/
|
||||
%_datadir/glib-2.0/schemas/com.raggesilver.BlackBox.gschema.xml
|
||||
%_datadir/icons/hicolor/scalable/actions/com.raggesilver.BlackBox-fullscreen-symbolic.svg
|
||||
%_datadir/icons/hicolor/scalable/actions/com.raggesilver.BlackBox-show-headerbar-symbolic.svg
|
||||
%_datadir/icons/hicolor/scalable/actions/external-link-symbolic.svg
|
||||
%_datadir/icons/hicolor/scalable/actions/settings-symbolic.svg
|
||||
%_datadir/icons/hicolor/scalable/apps/com.raggesilver.BlackBox.svg
|
||||
%_datadir/locale/*/LC_MESSAGES/blackbox.mo
|
||||
|
||||
|
||||
|
||||
%changelog
|
||||
* Sun Oct 23 2022 windowsboy111 <windowsboy111@fyralabs.com>
|
||||
- Initial package
|
||||
@@ -0,0 +1,4 @@
|
||||
let txt = get("https://gitlab.gnome.org/api/v4/projects/20397/releases/");
|
||||
let ver = txt.json_arr()[0].tag_name;
|
||||
ver.crop(1);
|
||||
rpm.version(ver);
|
||||
@@ -8,7 +8,7 @@ for background device management, as well as a GUI to expertly customize your se
|
||||
%global __brp_mangle_shebangs %{nil}
|
||||
|
||||
Name: coolercontrol
|
||||
Version: 2.2.1
|
||||
Version: 1.4.5
|
||||
Release: 1%?dist
|
||||
Summary: Cooling device control for Linux
|
||||
License: GPL-3.0-or-later
|
||||
@@ -21,19 +21,19 @@ Requires: hicolor-icon-theme
|
||||
Requires: webkit2gtk4.1
|
||||
Requires: libappindicator-gtk3
|
||||
Requires: coolercontrold
|
||||
BuildRequires: nodejs-npm libdrm-devel curl wget file mold
|
||||
BuildRequires: git-core make nodejs-npm libdrm-devel curl wget file mold
|
||||
BuildRequires: systemd-rpm-macros anda-srpm-macros cargo >= 1.75.0 cargo-rpm-macros
|
||||
BuildRequires: binutils bison cmake flex gcc gcc-c++ libtool strace
|
||||
BuildRequires: autoconf automake binutils bison flex gcc gcc-c++ gdb libtool pkgconf strace
|
||||
BuildRequires: pkgconfig(webkit2gtk-4.1) pkgconfig(openssl) pkgconfig(librsvg-2.0)
|
||||
BuildRequires: libappindicator-gtk3-devel
|
||||
BuildRequires: python3-devel python3-wheel python3-liquidctl python3-setproctitle python3-fastapi python3-uvicorn python3-pip
|
||||
BuildRequires: libappstream-glib
|
||||
BuildRequires: desktop-file-utils
|
||||
BuildRequires: cmake(Qt6)
|
||||
BuildRequires: cmake(Qt6WebEngineWidgets)
|
||||
%description %_desc
|
||||
|
||||
%package liqctld
|
||||
Summary: CoolerControl daemon for interacting with liquidctl devices on a system level
|
||||
Requires: coolercontrold
|
||||
BuildRequires: python3-devel python3-wheel python3-liquidctl python3-setproctitle python3-fastapi python3-uvicorn python3-pip
|
||||
%description liqctld %_desc
|
||||
coolercontrol-liqctld is a CoolerControl daemon for interacting with liquidctl devices on a system level, and is
|
||||
installed as the coolercontrol-liqctld application. Its main purpose is to wrap the underlying
|
||||
@@ -43,8 +43,6 @@ It also enables parallel device communication and access to specific device prop
|
||||
%package -n coolercontrold
|
||||
Summary: Monitor and control your cooling devices.
|
||||
Requires: coolercontrol-liqctld
|
||||
BuildRequires: pkgconfig(webkit2gtk-4.1) pkgconfig(openssl) pkgconfig(librsvg-2.0)
|
||||
BuildRequires: libappindicator-gtk3-devel
|
||||
%description -n coolercontrold %_desc
|
||||
coolercontrold is the main daemon containing the core logic for interfacing with devices, and installed as
|
||||
"coolercontrold". It is meant to run in the background as a system daemon. It handles all device
|
||||
@@ -61,31 +59,33 @@ popd
|
||||
|
||||
pushd coolercontrol-ui
|
||||
npm ci --prefer-offline &
|
||||
pushd src-tauri
|
||||
%cargo_prep_online &
|
||||
popd
|
||||
popd
|
||||
|
||||
wait
|
||||
|
||||
|
||||
%build
|
||||
pushd coolercontrol-ui
|
||||
npm run build-only &
|
||||
pushd coolercontrold
|
||||
%{cargo_license_online} > LICENSE.dependencies &
|
||||
%cargo_build -- &
|
||||
popd
|
||||
|
||||
pushd coolercontrol-liqctld
|
||||
%pyproject_wheel
|
||||
popd
|
||||
|
||||
pushd coolercontrol
|
||||
%cmake
|
||||
%cmake_build &
|
||||
popd
|
||||
|
||||
pushd coolercontrold
|
||||
pushd coolercontrol-ui
|
||||
npm run build &
|
||||
pushd src-tauri
|
||||
%{cargo_license_online} > LICENSE.dependencies &
|
||||
wait
|
||||
cp -rfp ../coolercontrol-ui/dist/* resources/app/
|
||||
%cargo_build
|
||||
%cargo_build -f custom-protocol
|
||||
popd
|
||||
popd
|
||||
|
||||
|
||||
%install
|
||||
pushd coolercontrol-liqctld
|
||||
@@ -99,8 +99,9 @@ install -Dpm755 target/rpm/coolercontrold %buildroot%_bindir/coolercontrold
|
||||
install -Dpm644 LICENSE.dependencies %buildroot%_datadir/licenses/coolercontrold/LICENSE.dependencies
|
||||
popd
|
||||
|
||||
pushd coolercontrol/
|
||||
%cmake_install
|
||||
pushd coolercontrol-ui/src-tauri
|
||||
install -Dpm755 target/rpm/coolercontrol %buildroot%_bindir/coolercontrol
|
||||
install -Dpm644 LICENSE.dependencies %buildroot%_datadir/licenses/%name/LICENSE.dependencies
|
||||
popd
|
||||
|
||||
install -Dpm644 packaging/systemd/coolercontrol-liqctld.service %buildroot%_unitdir/coolercontrol-liqctld.service
|
||||
@@ -134,6 +135,7 @@ appstream-util validate-relax --nonet %buildroot%_metainfodir/%rdnn.metainfo.xml
|
||||
%files
|
||||
%doc README.md
|
||||
%license LICENSE
|
||||
%license LICENSE.dependencies
|
||||
%_bindir/coolercontrol
|
||||
%_datadir/applications/%rdnn.desktop
|
||||
%_datadir/metainfo/%rdnn.metainfo.xml
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
|
||||
|
||||
Name: discord-canary-openasar
|
||||
Version: 0.0.697
|
||||
Version: 0.0.555
|
||||
Release: 1%?dist
|
||||
Summary: A snappier Discord rewrite with features like further customization and theming
|
||||
License: MIT AND https://discord.com/terms
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
|
||||
|
||||
Name: discord-canary
|
||||
Version: 0.0.697
|
||||
Version: 0.0.555
|
||||
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.97
|
||||
Version: 0.0.78
|
||||
Release: 1%?dist
|
||||
Summary: A snappier Discord rewrite with features like further customization and theming
|
||||
License: MIT AND https://discord.com/terms
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
|
||||
|
||||
Name: discord-ptb-openasar
|
||||
Version: 0.0.148
|
||||
Version: 0.0.124
|
||||
Release: 1%?dist
|
||||
Summary: A snappier Discord rewrite with features like further customization and theming
|
||||
License: MIT AND https://discord.com/terms
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
|
||||
|
||||
Name: discord-ptb
|
||||
Version: 0.0.148
|
||||
Version: 0.0.124
|
||||
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.97
|
||||
Version: 0.0.78
|
||||
Release: 1%?dist
|
||||
Summary: Free Voice and Text Chat for Gamers
|
||||
URL: https://discord.com
|
||||
|
||||
@@ -1,61 +1,45 @@
|
||||
%global commit 754395586e8c690343d9826b437dd0a98a34b154
|
||||
%global commit_date 20250613
|
||||
%global commit 1c3b4decb50593268c16cf8b47397fb3a7a87c9d
|
||||
%global commit_date 20250105
|
||||
%global shortcommit %(c=%{commit}; echo ${c:0:7})
|
||||
|
||||
Name: envision-nightly
|
||||
Name: envision
|
||||
Version: %commit_date.%shortcommit
|
||||
Release: 1%?dist
|
||||
Summary: UI for building, configuring and running Monado, the open source OpenXR runtime
|
||||
SourceLicense: AGPL-3.0-or-later
|
||||
License: ((Apache-2.0 OR MIT) AND BSD-3-Clause) AND ((MIT OR Apache-2.0) AND Unicode-3.0) AND (0BSD OR MIT OR Apache-2.0) AND AGPL-3.0-or-later AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR ISC OR MIT) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND Apache-2.0 AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND ISC AND (MIT OR Apache-2.0) AND (MIT OR Zlib OR Apache-2.0) AND MIT AND Unicode-3.0 AND (Unlicense OR MIT) AND Zlib
|
||||
License: AGPL-3.0-or-later
|
||||
URL: https://gitlab.com/gabmus/envision/
|
||||
Source0: %url/-/archive/%commit/envision-%commit.tar.gz
|
||||
BuildRequires: anda-srpm-macros
|
||||
BuildRequires: cargo
|
||||
BuildRequires: cargo-rpm-macros
|
||||
BuildRequires: meson
|
||||
BuildRequires: ninja-build
|
||||
BuildRequires: meson ninja-build cargo
|
||||
BuildRequires: pkgconfig(glib-2.0) >= 2.66
|
||||
BuildRequires: pkgconfig(gio-2.0) >= 2.66
|
||||
BuildRequires: pkgconfig(gtk4) >= 4.10.0
|
||||
BuildRequires: pkgconfig(vte-2.91-gtk4) >= 0.72.0
|
||||
BuildRequires: pkgconfig(libadwaita-1)
|
||||
BuildRequires: pkgconfig(libusb-1.0)
|
||||
BuildRequires: pkgconfig(openssl)
|
||||
BuildRequires: openssl-devel-engine
|
||||
BuildRequires: openxr-devel
|
||||
BuildRequires: libappstream-glib
|
||||
BuildRequires: desktop-file-utils
|
||||
BuildRequires: glib2-devel
|
||||
BuildRequires: git-core
|
||||
Recommends: android-tools
|
||||
Conflicts: envision
|
||||
|
||||
%description
|
||||
%summary.
|
||||
|
||||
%prep
|
||||
%autosetup -n envision-%commit
|
||||
%cargo_prep_online
|
||||
|
||||
%build
|
||||
# generate constants.rs from constants.rs.in
|
||||
%meson
|
||||
|
||||
# skip subdir
|
||||
sed -E "/^subdir\('src'\)/d" -i meson.build
|
||||
|
||||
%meson --reconfigure
|
||||
%meson_build
|
||||
|
||||
%install
|
||||
%meson_install
|
||||
%cargo_install
|
||||
%{cargo_license_online} > LICENSE.dependencies
|
||||
|
||||
%files
|
||||
%doc README.md
|
||||
%license LICENSE
|
||||
%license LICENSE.dependencies
|
||||
%_bindir/envision
|
||||
%_datadir/applications/org.gabmus.envision.Devel.desktop
|
||||
%_datadir/envision/
|
||||
|
||||
@@ -6,15 +6,14 @@
|
||||
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
|
||||
|
||||
Name: feishin
|
||||
Version: 0.14.0
|
||||
Version: 0.12.1
|
||||
Release: 1%?dist
|
||||
Summary: A modern self-hosted music player
|
||||
License: GPL-3.0
|
||||
URL: https://github.com/jeffvli/feishin
|
||||
Source0: %url/archive/refs/tags/v%version.tar.gz
|
||||
Requires: fuse mpv
|
||||
Packager: madonuko <mado@fyralabs.com>
|
||||
BuildRequires: jq libxcrypt-compat pnpm
|
||||
BuildRequires: nodejs-npm jq libxcrypt-compat
|
||||
|
||||
%description
|
||||
%summary.
|
||||
@@ -39,9 +38,9 @@ Keywords=Music;Jellyfin;Audio;Stream;Sonixd
|
||||
EOF
|
||||
|
||||
%build
|
||||
pnpm i
|
||||
pnpm run postinstall
|
||||
pnpm run build
|
||||
npm install --legacy-peer-deps
|
||||
npm run postinstall
|
||||
npm run build
|
||||
%ifarch x86_64
|
||||
|
||||
%define a linux
|
||||
@@ -49,11 +48,11 @@ pnpm run build
|
||||
%define a arm64
|
||||
%endif
|
||||
|
||||
pnpm exec electron-builder --linux dir --%a
|
||||
npx electron-builder --linux dir --%a
|
||||
|
||||
%install
|
||||
mkdir -p %buildroot%_datadir/{pixmaps,applications} %buildroot%_bindir
|
||||
mv dist/*-unpacked %buildroot%_datadir/feishin
|
||||
mv release/build/*-unpacked %buildroot%_datadir/feishin
|
||||
install -Dm644 assets/icons/icon.png %buildroot%_datadir/pixmaps/feishin.png
|
||||
ln -s %_datadir/feishin/feishin %buildroot%_bindir/feishin
|
||||
install -Dm644 feishin.desktop %buildroot%_datadir/applications/
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "flameshot-nightly.spec"
|
||||
}
|
||||
labels {
|
||||
nightly = 1
|
||||
}
|
||||
}
|
||||
@@ -1,108 +0,0 @@
|
||||
#? https://github.com/flameshot-org/flameshot/blob/master/packaging/rpm/fedora/flameshot.spec
|
||||
|
||||
%global ver v12.1.0
|
||||
%global commit 58afdce7414bbe3881610042e4da3772d2d0365f
|
||||
%global shortcommit %{sub %{commit} 1 7}
|
||||
%global commit_date 20250613
|
||||
%global devel_name QtColorWidgets
|
||||
|
||||
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: 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
|
||||
%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,5 +0,0 @@
|
||||
rpm.global("commit", gh_commit("flameshot-org/flameshot"));
|
||||
if rpm.changed() {
|
||||
rpm.global("ver", gh("flameshot-org/flameshot"));
|
||||
rpm.global("commit_date", date());
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
project pkg {
|
||||
arches = ["x86_64"]
|
||||
rpm {
|
||||
spec = "flatpost.spec"
|
||||
}
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
commit 86a77b2e3d69a09f75992e6795903ab56df1a900 (HEAD -> main, fork/main)
|
||||
Author: Adam Fidel <adam@fidel.id>
|
||||
Date: Tue Apr 22 14:52:16 2025 -0500
|
||||
|
||||
feat: add MimeType to .desktop file
|
||||
|
||||
diff --git a/data/usr/share/applications/com.flatpost.flatpostapp.desktop b/data/usr/share/applications/com.flatpost.flatpostapp.desktop
|
||||
index 73013fc..d1f321d 100644
|
||||
--- a/data/usr/share/applications/com.flatpost.flatpostapp.desktop
|
||||
+++ b/data/usr/share/applications/com.flatpost.flatpostapp.desktop
|
||||
@@ -4,3 +4,4 @@ Exec=python3 /usr/bin/flatpost
|
||||
Icon=com.flatpost.flatpostapp
|
||||
Type=Application
|
||||
Categories=Utility;
|
||||
+MimeType=application/vnd.flatpak.ref;application/vnd.flatpak.repo;
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
|
||||
<mime-type type="application/vnd.flatpak.ref">
|
||||
<glob pattern="*.flatpakref"/>
|
||||
<comment>Flatpak Reference File</comment>
|
||||
</mime-type>
|
||||
<mime-type type="application/vnd.flatpak.repo">
|
||||
<glob pattern="*.flatpakrepo"/>
|
||||
<comment>Flatpak Repository File</comment>
|
||||
</mime-type>
|
||||
</mime-info>
|
||||
@@ -1,77 +0,0 @@
|
||||
Name: flatpost
|
||||
Version: 1.0.6
|
||||
Release: 1%?dist
|
||||
License: BSD-2-Clause
|
||||
Summary: Desktop environment agnostic Flathub software center.
|
||||
|
||||
URL: https://github.com/gloriouseggroll/flatpost
|
||||
Source0: %{url}/archive/refs/tags/%{version}.tar.gz
|
||||
Source1: flatpost-mime.xml
|
||||
Patch0: flatpost-desktop-mimetype.patch
|
||||
|
||||
BuildArch: noarch
|
||||
BuildRequires: python3-devel
|
||||
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}
|
||||
install -D -m644 %{SOURCE1} %{buildroot}/usr/share/mime/packages/flatpost.xml
|
||||
|
||||
%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,19 +1,23 @@
|
||||
%global commit d530f26d60dc105e44fdc8ac7f30a2f667bc1e4f
|
||||
%global shortcommit %(c=%{commit}; echo ${c:0:7})
|
||||
%global commit_date 20241224
|
||||
|
||||
Name: fontviewer
|
||||
Epoch: 1
|
||||
Version: 1.2.0
|
||||
Version: %{commit_date}.git~%{shortcommit}
|
||||
Release: 1%?dist
|
||||
Summary: View and install fonts
|
||||
|
||||
License: GPL-2.0
|
||||
URL: https://github.com/chocolateimage/%{name}
|
||||
Source0: %{url}/archive/v%{version}.tar.gz
|
||||
Source0: %{url}/archive/%{commit}.tar.gz
|
||||
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: meson
|
||||
BuildRequires: pkgconfig(cairomm-1.0)
|
||||
BuildRequires: pkgconfig(fontconfig)
|
||||
BuildRequires: pkgconfig(freetype2)
|
||||
BuildRequires: pkgconfig(gtk+-3.0)
|
||||
BuildRequires: pkgconfig(gtkmm-3.0)
|
||||
BuildRequires: pkgconfig(libcurl)
|
||||
BuildRequires: json-glib-devel
|
||||
|
||||
Requires: gtk3 fontconfig
|
||||
|
||||
@@ -23,7 +27,7 @@ Packager: sadlerm <sad_lerm@hotmail.com>
|
||||
A platform-agnostic GTK+ 3 alternative to GNOME's Font Viewer
|
||||
|
||||
%prep
|
||||
%autosetup
|
||||
%autosetup -n %{name}-%{commit} -p1
|
||||
|
||||
%build
|
||||
%meson
|
||||
@@ -37,4 +41,3 @@ A platform-agnostic GTK+ 3 alternative to GNOME's Font Viewer
|
||||
%doc README.md
|
||||
%{_bindir}/%{name}
|
||||
%{_datadir}/applications/%{name}.desktop
|
||||
%{_datadir}/icons/hicolor/scalable/actions/%{name}-google-symbolic.svg
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
rpm.version(gh("chocolateimage/fontviewer"));
|
||||
if rpm.changed() {
|
||||
rpm.release();
|
||||
}
|
||||
# rpm.global("commit", gh_commit("chocolateimage/fontviewer"));
|
||||
# if rpm.changed() {
|
||||
# rpm.release();
|
||||
# rpm.global("commit_date", date());
|
||||
# }
|
||||
|
||||
@@ -3,10 +3,9 @@
|
||||
%global gtk4_version 4.14.4
|
||||
%global libadwaita_version 1.5.1
|
||||
%global pure_protobuf_version 2.0.0
|
||||
%global raw_ver v1.79.1
|
||||
|
||||
Name: komikku
|
||||
Version: 1.79.1
|
||||
Version: 1.67.0
|
||||
%forgemeta
|
||||
Release: 1%?dist
|
||||
Summary: A manga reader for GNOME
|
||||
@@ -15,7 +14,7 @@ BuildArch: noarch
|
||||
|
||||
License: GPL-3.0-or-later
|
||||
URL: https://valos.gitlab.io/Komikku
|
||||
Source0: https://codeberg.org/valos/%{appname}/archive/%{raw_ver}.tar.gz#/%{name}-%{version}.tar.gz
|
||||
Source0: https://codeberg.org/valos/%{appname}/archive/v%{version}.tar.gz#/%{name}-v%{version}.tar.gz
|
||||
|
||||
BuildRequires: desktop-file-utils
|
||||
BuildRequires: intltool
|
||||
@@ -23,7 +22,6 @@ BuildRequires: libappstream-glib
|
||||
BuildRequires: meson >= 0.59.0
|
||||
BuildRequires: python3-devel >= 3.8
|
||||
BuildRequires: blueprint-compiler
|
||||
BuildRequires: cmake
|
||||
|
||||
BuildRequires: pkgconfig(gobject-introspection-1.0) >= 1.35.9
|
||||
BuildRequires: pkgconfig(gtk4) >= %{gtk4_version}
|
||||
@@ -94,12 +92,11 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop
|
||||
|
||||
|
||||
%files -f %{name}.lang
|
||||
%license LICENSES/*
|
||||
%license LICENSE
|
||||
%doc README.md
|
||||
%{_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
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
let latest_tag = get("https://codeberg.org/api/v1/repos/valos/Komikku/tags").json_arr()[0].name;
|
||||
let new_version = find("([\\.\\d]+)", latest_tag, 1);
|
||||
rpm.global("raw_ver", latest_tag);
|
||||
rpm.version(new_version);
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "legcord-bin.spec"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,95 @@
|
||||
%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.0.6
|
||||
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.zip
|
||||
Source1: legcord.png
|
||||
Source2: https://raw.githubusercontent.com/LegCord/LegCord/v%version/README.md
|
||||
Requires: xdg-utils
|
||||
BuildRequires: unzip
|
||||
ExclusiveArch: x86_64 aarch64 armv7l
|
||||
Conflicts: legcord
|
||||
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
|
||||
mkdir legcord
|
||||
cd legcord
|
||||
unzip %SOURCE0
|
||||
|
||||
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
|
||||
cd legcord
|
||||
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"));
|
||||
@@ -0,0 +1,5 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "legcord-bin.spec"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,96 @@
|
||||
%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.0.6
|
||||
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.zip
|
||||
Source1: legcord.png
|
||||
Source2: https://raw.githubusercontent.com/LegCord/LegCord/v%version/README.md
|
||||
Requires: xdg-utils
|
||||
BuildRequires: unzip
|
||||
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
|
||||
mkdir legcord
|
||||
cd legcord
|
||||
unzip %SOURCE0
|
||||
|
||||
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
|
||||
cd legcord
|
||||
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,75 +1,76 @@
|
||||
%global commit 774311e9473dbf7741f0daced1bad98ddac17de8
|
||||
%global commit_date 20250614
|
||||
%global commit 106ae1ac4251239e56c848667f1e3ffbbb30c762
|
||||
%global commit_date 20250105
|
||||
%global shortcommit %(c=%{commit}; echo ${c:0:7})
|
||||
%define debug_package %nil
|
||||
%global __provides_exclude ^((libffmpeg[.]so.*)|(lib.*\\.so.*))$
|
||||
%ifnarch aarch64
|
||||
%global __requires_exclude ^((libffmpeg[.]so.*)|(lib.*\\.so.*)|(.*\\aarch64*\\.so.*))$
|
||||
%elifarch aarch64
|
||||
%global __requires_exclude ^((libffmpeg[.]so.*)|(lib.*\\.so.*)|(.*\\x86_64*\\.so.*)|(.*\\x86-64*\\.so.*))$
|
||||
%endif
|
||||
|
||||
Name: legcord-nightly
|
||||
Version: %commit_date.%shortcommit
|
||||
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
|
||||
Packager: Owen <owen@fyralabs.com>
|
||||
Requires: xdg-utils
|
||||
Obsoletes: armcord < 3.3.2-1
|
||||
Conflicts: legcord
|
||||
BuildRequires: anda-srpm-macros pnpm nodejs-npm git-core gcc gcc-c++ make desktop-file-utils zlib-ng-compat-devel
|
||||
Name: legcord-nightly
|
||||
Version: %commit_date.%shortcommit
|
||||
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/archive/%commit/legcord-%commit.tar.gz
|
||||
Source1: launch.sh
|
||||
Packager: Owen <owen@fyralabs.com>
|
||||
Requires: electron xdg-utils
|
||||
Provides: armcord-nightly
|
||||
Obsoletes: armcord < 3.3.2-1
|
||||
Conflicts: legcord-bin
|
||||
Conflicts: legcord
|
||||
BuildArch: noarch
|
||||
BuildRequires: anda-srpm-macros pnpm
|
||||
|
||||
%description
|
||||
Legcord is a custom client designed to enhance your Discord experience
|
||||
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,75 +1,76 @@
|
||||
%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
|
||||
License: OSL-3.0
|
||||
Summary: Custom lightweight Discord client designed to enhance your experience
|
||||
URL: https://github.com/Legcord/Legcord
|
||||
Group: Applications/Internet
|
||||
Packager: madonuko <mado@fyralabs.com>
|
||||
Requires: xdg-utils
|
||||
Obsoletes: armcord < 3.3.2-1
|
||||
Obsoletes: legcord-bin < 1.1.5-2
|
||||
Conflicts: legcord-nightly
|
||||
BuildRequires: anda-srpm-macros pnpm nodejs-npm git-core gcc gcc-c++ make desktop-file-utils zlib-ng-compat-devel
|
||||
Name: legcord
|
||||
Version: 1.0.6
|
||||
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: electron xdg-utils
|
||||
Provides: armcord
|
||||
Obsoletes: armcord < 3.3.2-1
|
||||
Conflicts: legcord-bin
|
||||
Conflicts: legcord-nightly
|
||||
BuildArch: noarch
|
||||
BuildRequires: anda-srpm-macros pnpm
|
||||
|
||||
%description
|
||||
Legcord is a custom client designed to enhance your Discord experience
|
||||
legcord is a custom client designed to enhance your Discord experience
|
||||
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,7 +1,7 @@
|
||||
%global commit e8ade130faef6a18971325d49213b8d166935d50
|
||||
%global commit 44384aad73da69b51c57fc7299457beecfcc1698
|
||||
%global shortcommit %(c=%{commit}; echo ${c:0:7})
|
||||
%global commit_date 20250613
|
||||
%global ver 0.40.0
|
||||
%global commit_date 20250105
|
||||
%global ver 0.39.0
|
||||
|
||||
Name: mpv-nightly
|
||||
Version: %ver^%commit_date.%shortcommit
|
||||
@@ -124,8 +124,6 @@ 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
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n mpv-%commit
|
||||
sed -e "s|/usr/local/etc|%{_sysconfdir}/mpv|" -i etc/mpv.conf
|
||||
@@ -207,7 +205,13 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/mpv.desktop
|
||||
%{_docdir}/mpv/
|
||||
%{_bindir}/mpv
|
||||
%{_datadir}/applications/mpv.desktop
|
||||
%dir %{_datadir}/bash-completion/
|
||||
%dir %{_datadir}/bash-completion/completions/
|
||||
%{_datadir}/bash-completion/completions/mpv
|
||||
%{_datadir}/icons/hicolor/*/apps/mpv*.*
|
||||
%dir %{_datadir}/zsh/
|
||||
%dir %{_datadir}/zsh/site-functions/
|
||||
%{_datadir}/zsh/site-functions/_mpv
|
||||
%{_mandir}/man1/mpv.*
|
||||
%{_metainfodir}/mpv.metainfo.xml
|
||||
%dir %{_sysconfdir}/mpv/
|
||||
@@ -221,3 +225,6 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/mpv.desktop
|
||||
%{_includedir}/mpv/
|
||||
%{_libdir}/libmpv.so
|
||||
%{_libdir}/pkgconfig/mpv.pc
|
||||
|
||||
%changelog
|
||||
%autochangelog
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
v1.11.13
|
||||
@@ -1,11 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Version=1.0
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Name=nekoray
|
||||
Categories=Network;
|
||||
Comment=Qt based cross-platform GUI proxy configuration manager (backend: sing-box)
|
||||
Comment[zh_CN]=基于 Qt 的跨平台代理配置管理器 (后端 sing-box)
|
||||
Keywords=Internet;VPN;Proxy;sing-box;
|
||||
Exec=/bin/nekoray
|
||||
Icon=/usr/share/icons/nekoray.ico
|
||||
@@ -1,2 +0,0 @@
|
||||
#!/bin/sh
|
||||
/lib64/nekoray/nekoray -appdata "${@}"
|
||||
@@ -1,93 +0,0 @@
|
||||
%global gomodulesmode GO111MODULE=on
|
||||
Name: nekoray
|
||||
Version: 4.3.5
|
||||
Release: 1%?dist
|
||||
Summary: Qt based cross-platform GUI proxy configuration manager (backend: sing-box)
|
||||
URL: https://github.com/Mahdi-zarei/nekoray
|
||||
License: GPLv3
|
||||
|
||||
Source0: https://github.com/Mahdi-zarei/nekoray/archive/refs/tags/%{version}.tar.gz#/nekoray-%{version}.tar.gz
|
||||
Packager: bunzuhbu <g89156436@gmail.com>
|
||||
Source1: vendor-%{version}.tar.gz
|
||||
%define fetch_vendor %{_rpmconfigdir}/rpmuncompress -xv %{SOURCE1}
|
||||
|
||||
Source2: Sagernet.SingBox.Version.txt
|
||||
%define singbox_version $(cat %{SOURCE2})
|
||||
|
||||
Source3: %{name}.desktop
|
||||
Source4: %{name}.sh
|
||||
|
||||
BuildRequires: rpm_macro(cmake)
|
||||
BuildRequires: rpm_macro(cmake_build)
|
||||
BuildRequires: rpm_macro(cmake_install)
|
||||
BuildRequires: cmake
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: pkgconfig(protobuf)
|
||||
BuildRequires: pkgconfig(libcurl)
|
||||
BuildRequires: cmake(yaml-cpp)
|
||||
BuildRequires: cmake(ZXing)
|
||||
BuildRequires: cmake(absl)
|
||||
BuildRequires: cmake(cpr)
|
||||
BuildRequires: cmake(Qt6)
|
||||
BuildRequires: cmake(Qt6Svg)
|
||||
BuildRequires: cmake(Qt6Linguist)
|
||||
BuildRequires: cmake(Qt6Charts)
|
||||
BuildRequires: patchelf
|
||||
BuildRequires: sed
|
||||
BuildRequires: golang
|
||||
BuildRequires: rpm_macro(gobuildflags)
|
||||
Requires: %{name}-core
|
||||
%define core nekobox_core
|
||||
|
||||
%package core
|
||||
Summary: %{summary}
|
||||
|
||||
%description
|
||||
%{summary}
|
||||
|
||||
%description core
|
||||
%{summary}
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n %{name}-%{version}
|
||||
sed -i 's~find_package(Protobuf CONFIG REQUIRED)~find_package(Protobuf REQUIRED)~' cmake/myproto.cmake
|
||||
sed -i 's~add_library(qhotkey 3rdparty/QHotkey/qhotkey.cpp)~add_library(qhotkey STATIC 3rdparty/QHotkey/qhotkey.cpp)~' cmake/QHotkey.cmake
|
||||
sed -i 's~ImageFormat::BGRA~ImageFormat::BGR~' 3rdparty/ZxingQtReader.hpp
|
||||
pushd core/server
|
||||
%{fetch_vendor}
|
||||
popd
|
||||
|
||||
%build
|
||||
%cmake
|
||||
%cmake_build
|
||||
DEST=$PWD/%{__cmake_builddir}/%{core}
|
||||
pushd core/server
|
||||
go build %{gobuildflags} -o $DEST -trimpath -ldflags "-B 0x$(echo "%{name}-%{version}-%{release}-${SOURCE_DATE_EPOCH:-}" | sha1sum | cut -d ' ' -f1) -w -s -X 'github.com/sagernet/sing-box/constant.Version=%{singbox_version}'" -tags "with_clash_api,with_gvisor,with_quic,with_wireguard,with_utls,with_ech,with_dhcp"
|
||||
popd
|
||||
|
||||
%install
|
||||
mkdir -p %{buildroot}%{_libdir}/%{name}
|
||||
mkdir -p %{buildroot}%{_bindir}
|
||||
mkdir -p %{buildroot}%{_datadir}/applications
|
||||
mkdir -p %{buildroot}%{_datadir}/icons
|
||||
|
||||
cp %{SOURCE4} %{buildroot}%{_bindir}/%{name}
|
||||
cp %{SOURCE3} %{buildroot}%{_datadir}/applications/%{name}.desktop
|
||||
sed -i 's~/bin~%{_bindir}~g;s~/usr/share~%{_datadir}~g;s~nekoray~%{name}~g' %{buildroot}%{_datadir}/applications/%{name}.desktop
|
||||
sed -i 's~/bin~%{_bindir}~g;s~/lib64~%{_libdir}~g;s~nekoray~%{name}~g' %{buildroot}%{_bindir}/%{name}
|
||||
cp %{__cmake_builddir}/%{name} %{buildroot}%{_libdir}/%{name}/%{name}
|
||||
cp %{__cmake_builddir}/%{core} %{buildroot}%{_libdir}/%{name}/%{core}
|
||||
cp res/nekoray.ico %{buildroot}%{_datadir}/icons/%{name}.ico
|
||||
patchelf --remove-rpath %{buildroot}%{_libdir}/%{name}/%{name}
|
||||
patchelf --remove-rpath %{buildroot}%{_libdir}/%{name}/%{core}
|
||||
|
||||
%files
|
||||
%attr(0755, -, -) %{_bindir}/%{name}
|
||||
%attr(0755, -, -) %{_libdir}/%{name}/%{name}
|
||||
%attr(0644, -, -) %{_datadir}/icons/%{name}.ico
|
||||
%attr(0644, -, -) %{_datadir}/applications/%{name}.desktop
|
||||
|
||||
%files core
|
||||
%dir %{_libdir}/%{name}
|
||||
%attr(0755, -, -) %{_libdir}/%{name}/%{core}
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
let sourcedir = "anda/apps/nekoray";
|
||||
|
||||
sh(`dnf in -y golang rpmdevtools tar rpm-build coreutils`, #{});
|
||||
sh(`pushd ${sourcedir}; bash -x pre.sh; popd`, #{});
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
export sourcedir="$PWD"
|
||||
rpmdev-spectool --all --get-files nekoray.spec
|
||||
version=$(rpmspec --query --queryformat "%{VERSION}\n" nekoray.spec | uniq)
|
||||
|
||||
tar -xzf "nekoray-${version}.tar.gz"
|
||||
pushd "nekoray-${version}/core/server"
|
||||
go mod vendor
|
||||
tar -czf "${sourcedir}/vendor-${version}.tar.gz" vendor
|
||||
popd
|
||||
@@ -1,3 +0,0 @@
|
||||
rpm.version(find(`([\d.]+)-\d+-\d+-\d+`, gh_rawfile("Mahdi-zarei/nekoray", "dev", "nekoray_version.txt"), 1));
|
||||
|
||||
open_file("anda/apps/nekoray/Sagernet.SingBox.Version.txt", "w").write(gh("sagernet/sing-box"));
|
||||
@@ -1,8 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Categories=Utility;
|
||||
Comment=A cross-platform system monitor
|
||||
Exec=NeoHtop
|
||||
Icon=NeoHtop
|
||||
Name=NeoHtop
|
||||
Terminal=false
|
||||
Type=Application
|
||||
@@ -1,5 +0,0 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "neohtop.spec"
|
||||
}
|
||||
}
|
||||
@@ -1,51 +0,0 @@
|
||||
%global __brp_mangle_shebangs %{nil}
|
||||
|
||||
Name: neohtop
|
||||
Version: 1.2.0
|
||||
Release: 1%?dist
|
||||
Summary: System monitoring on steroids
|
||||
License: MIT
|
||||
URL: https://github.com/Abdenasser/neohtop
|
||||
Source0: %url/archive/refs/tags/v%version.tar.gz
|
||||
Source1: NeoHtop.desktop
|
||||
Packager: Owen Zimmerman <owen@fyralabs.com>
|
||||
BuildRequires: rust
|
||||
BuildRequires: nodejs-npm
|
||||
BuildRequires: webkit2gtk4.1-devel
|
||||
BuildRequires: javascriptcoregtk4.1-devel
|
||||
BuildRequires: libsoup3-devel
|
||||
BuildRequires: gtk3-devel
|
||||
BuildRequires: rust-gdk-pixbuf-sys-devel
|
||||
BuildRequires: glib2-devel
|
||||
BuildRequires: openssl-devel
|
||||
|
||||
%description
|
||||
%summary.
|
||||
|
||||
%prep
|
||||
%autosetup -n neohtop-%version
|
||||
|
||||
%build
|
||||
npm install
|
||||
npm run tauri build
|
||||
|
||||
%install
|
||||
install -Dpm755 src-tauri/target/release/NeoHtop %buildroot%_bindir/NeoHtop
|
||||
install -Dpm644 %{SOURCE1} %buildroot%{_datadir}/applications/NeoHtop.desktop
|
||||
# don't mind the numbers not matching, this is how the offical rpm installs these files
|
||||
install -Dpm644 src-tauri/icons/128x128@2x.png %buildroot%{_iconsdir}/hicolor/256x256@2/apps/NeoHtop.png
|
||||
install -Dpm644 src-tauri/icons/32x32.png %buildroot%{_iconsdir}/hicolor/32x32/apps/NeoHtop.png
|
||||
install -Dpm644 src-tauri/icons/128x128.png %buildroot%{_iconsdir}/hicolor/128x128/apps/NeoHtop.png
|
||||
|
||||
%files
|
||||
%doc README.md
|
||||
%license LICENSE
|
||||
%_bindir/NeoHtop
|
||||
%{_datadir}/applications/NeoHtop.desktop
|
||||
%{_iconsdir}/hicolor/256x256@2/apps/NeoHtop.png
|
||||
%{_iconsdir}/hicolor/32x32/apps/NeoHtop.png
|
||||
%{_iconsdir}/hicolor/128x128/apps/NeoHtop.png
|
||||
|
||||
%changelog
|
||||
* Sat Feb 15 2025 Owen Zimmerman <owen@fyralabs.com>
|
||||
- Initial package
|
||||
@@ -1 +0,0 @@
|
||||
rpm.version(gh("Abdenasser/neohtop"));
|
||||
@@ -1,138 +0,0 @@
|
||||
# can't figure out how to apply usual build flags to lazbuild
|
||||
%define debug_package %nil
|
||||
|
||||
Name: peazip
|
||||
Version: 10.4.0
|
||||
Release: 1%?dist
|
||||
Summary: Free Zip / Unzip software and Rar file extractor. Cross-platform file and archive manager
|
||||
License: LGPL-3.0-only
|
||||
URL: https://peazip.github.io
|
||||
Source0: https://github.com/peazip/PeaZip/archive/refs/tags/%version.tar.gz
|
||||
# holy smoke this is written in pascal?
|
||||
BuildRequires: lazarus-tools
|
||||
BuildRequires: lazarus-lcl-gtk2
|
||||
BuildRequires: lazarus-lcl-gtk3
|
||||
BuildRequires: lazarus-lcl-qt5
|
||||
BuildRequires: lazarus-lcl-qt6
|
||||
Requires: (peazip-gtk2 or peazip-gtk3 or peazip-gtk4 or peazip-qt5 or peazip-qt6)
|
||||
Requires: p7zip brotli zstd
|
||||
Suggests: (peazip-gtk4 if gtk4)
|
||||
Suggests: (peazip-qt5 if qt5-qtbase)
|
||||
Suggests: (peazip-qt6 if qt6-qtbase)
|
||||
|
||||
%description
|
||||
PeaZip is a free file archiver utility and rar extractor for Linux, macOS, and
|
||||
Windows, which works with 200+ archive types and variants (7z, ace, arc, bz2,
|
||||
cab, gz, iso, paq, pea, rar, tar, wim, zip, zipx...), handles spanned archives
|
||||
(001, r01, z01...), supports multiple archive encryption standards, file
|
||||
hashing, exports tasks as console scripts.
|
||||
|
||||
%package gtk2
|
||||
Summary: GTK2 version of peazip
|
||||
Requires: peazip
|
||||
RemovePathPostFixes: .gtk2
|
||||
%description gtk2
|
||||
GTK2 version of peazip.
|
||||
%package gtk3
|
||||
Summary: GTK3 version of peazip
|
||||
Requires: peazip
|
||||
RemovePathPostFixes: .gtk3
|
||||
%description gtk3
|
||||
GTK3 version of peazip.
|
||||
%package qt5
|
||||
Summary: Qt5 version of peazip
|
||||
Requires: peazip
|
||||
RemovePathPostFixes: .qt5
|
||||
%description qt5
|
||||
Qt5 version of peazip.
|
||||
%package qt6
|
||||
Summary: Qt6 version of peazip
|
||||
Requires: peazip
|
||||
RemovePathPostFixes: .qt6
|
||||
%description qt6
|
||||
Qt6 version of peazip.
|
||||
|
||||
|
||||
%package -n pea
|
||||
Summary: Engine for PEA file format support
|
||||
%description -n pea
|
||||
Engine for PEA file format support.
|
||||
|
||||
%package -n pea-gtk2
|
||||
Summary: GTK2 version of pea
|
||||
Requires: pea
|
||||
RemovePathPostFixes: .gtk2
|
||||
%description -n pea-gtk2
|
||||
GTK2 version of pea.
|
||||
%package -n pea-gtk3
|
||||
Summary: GTK3 version of pea
|
||||
Requires: pea
|
||||
RemovePathPostFixes: .gtk3
|
||||
%description -n pea-gtk3
|
||||
GTK3 version of pea.
|
||||
%package -n pea-qt5
|
||||
Summary: Qt5 version of pea
|
||||
Requires: pea
|
||||
RemovePathPostFixes: .qt5
|
||||
%description -n pea-qt5
|
||||
Qt5 version of pea.
|
||||
%package -n pea-qt6
|
||||
Summary: Qt6 version of pea
|
||||
Requires: pea
|
||||
RemovePathPostFixes: .qt6
|
||||
%description -n pea-qt6
|
||||
Qt6 version of pea.
|
||||
|
||||
%prep
|
||||
%autosetup -n PeaZip-%version
|
||||
|
||||
%build
|
||||
cd peazip-sources
|
||||
lazbuild --add-package dev/metadarkstyle/metadarkstyle.lpk
|
||||
lazbuild --ws=gtk2 dev/project_peach.lpi && cp dev/peazip ../peazip.gtk2
|
||||
lazbuild --ws=gtk3 dev/project_peach.lpi && cp dev/peazip ../peazip.gtk3
|
||||
lazbuild --ws=qt5 dev/project_peach.lpi && cp dev/peazip ../peazip.qt5
|
||||
lazbuild --ws=qt6 dev/project_peach.lpi && cp dev/peazip ../peazip.qt6
|
||||
lazbuild --ws=gtk2 dev/project_pea.lpi && cp dev/pea ../pea.gtk2
|
||||
lazbuild --ws=gtk3 dev/project_pea.lpi && cp dev/pea ../pea.gtk3
|
||||
lazbuild --ws=qt5 dev/project_pea.lpi && cp dev/pea ../pea.qt5
|
||||
lazbuild --ws=qt6 dev/project_pea.lpi && cp dev/pea ../pea.qt6
|
||||
|
||||
%install
|
||||
install -Dm755 peazip.* -t %buildroot%_bindir
|
||||
install -Dm755 pea.* -t %buildroot%_bindir
|
||||
install -Dm644 peazip-sources/res/share/batch/freedesktop_integration/peazip.desktop -t %{buildroot}%{_datadir}/applications
|
||||
install -Dm644 peazip-sources/res/share/batch/freedesktop_integration/*.png -t %{buildroot}%{_datadir}/pixmaps
|
||||
install -Dm644 peazip-sources/res/share/batch/freedesktop_integration/KDE-servicemenus/KDE6-dolphin/peazip-kde6.desktop -t %{buildroot}%{_datadir}/kio/servicemenus
|
||||
install -Dm644 peazip-sources/res/share/batch/freedesktop_integration/Nautilus-scripts/PeaZip/* -t %{buildroot}%{_datadir}/nautilus/scripts/PeaZip
|
||||
|
||||
%files
|
||||
%doc README.md
|
||||
%license LICENSE SECURITY.md
|
||||
%{_datadir}/applications/peazip.desktop
|
||||
%{_datadir}/pixmaps/peazip*.png
|
||||
%{_datadir}/kio/servicemenus/peazip-kde6.desktop
|
||||
%dir %{_datadir}/nautilus/scripts/PeaZip
|
||||
%{_datadir}/nautilus/scripts/PeaZip/*
|
||||
|
||||
%files -n pea
|
||||
%doc README.md
|
||||
%license LICENSE SECURITY.md
|
||||
|
||||
%files gtk2
|
||||
%_bindir/peazip.gtk2
|
||||
%files gtk3
|
||||
%_bindir/peazip.gtk3
|
||||
%files qt5
|
||||
%_bindir/peazip.qt5
|
||||
%files qt6
|
||||
%_bindir/peazip.qt6
|
||||
|
||||
%files -n pea-gtk2
|
||||
%_bindir/pea.gtk2
|
||||
%files -n pea-gtk3
|
||||
%_bindir/pea.gtk3
|
||||
%files -n pea-qt5
|
||||
%_bindir/pea.qt5
|
||||
%files -n pea-qt6
|
||||
%_bindir/pea.qt6
|
||||
@@ -1 +0,0 @@
|
||||
rpm.version(get("https://raw.githubusercontent.com/peazip/peazip.github.io/master/autoupdate.txt"));
|
||||
@@ -0,0 +1,11 @@
|
||||
--- a/desktop/packages/linux/rs.ruffle.Ruffle.desktop
|
||||
+++ b/desktop/packages/linux/rs.ruffle.Ruffle.desktop
|
||||
@@ -47,7 +47,7 @@ Comment[zh_CN]=播放 Flash 游戏和动画
|
||||
Comment[zh_TW]=播放 Flash 遊戲和動畫
|
||||
Comment=Play Flash games & movies
|
||||
Icon=rs.ruffle.Ruffle
|
||||
-Exec=ruffle %u
|
||||
+Exec=ruffle_desktop %u
|
||||
MimeType=application/x-shockwave-flash;application/vnd.adobe.flash.movie
|
||||
Categories=AudioVideo;Player;Graphics;Viewer;VectorGraphics;Game
|
||||
Keywords[ar]=الفلاش;swf;مشغل;محاكي;رَسْت
|
||||
@@ -1,4 +1,4 @@
|
||||
%global ver 2025-06-13
|
||||
%global ver 2025-01-05
|
||||
%global goodver %(echo %ver | sed 's/-//g')
|
||||
%global __brp_mangle_shebangs %{nil}
|
||||
%bcond_without mold
|
||||
@@ -14,6 +14,7 @@ Summary: A Flash Player emulator written in Rust
|
||||
License: Apache-2.0 OR MIT
|
||||
URL: https://ruffle.rs/
|
||||
Source0: https://github.com/ruffle-rs/ruffle/archive/refs/tags/nightly-%ver.tar.gz
|
||||
Patch0: desktop_file_patch.diff
|
||||
Provides: ruffle
|
||||
BuildRequires: cargo-rpm-macros >= 24
|
||||
BuildRequires: anda-srpm-macros mold
|
||||
@@ -31,7 +32,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
|
||||
@@ -41,16 +42,14 @@ Packager: madonuko <mado@fyralabs.com>
|
||||
%cargo_prep_online
|
||||
|
||||
%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 = "sticky.spec"
|
||||
}
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
diff --git a/usr/bin/sticky b/usr/bin/sticky
|
||||
index 7425e9c..a00e755 100755
|
||||
--- a/usr/bin/sticky
|
||||
+++ b/usr/bin/sticky
|
||||
@@ -1,3 +1,3 @@
|
||||
#!/bin/bash
|
||||
|
||||
-/usr/lib/sticky/sticky.py $*
|
||||
+/usr/lib/python3*/site-packages/sticky/sticky.py $*
|
||||
@@ -1,9 +0,0 @@
|
||||
diff --git a/meson.build b/meson.build
|
||||
index b25d642..435a6f0 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -17,4 +17,3 @@ subdir('po')
|
||||
install_subdir('etc', install_dir: sysconfdir, strip_directory: true)
|
||||
install_subdir('usr', install_dir: prefix, strip_directory: true)
|
||||
|
||||
-meson.add_install_script('meson/meson-postinstall.sh')
|
||||
@@ -1,62 +0,0 @@
|
||||
%global debug_package %{nil}
|
||||
|
||||
Name: sticky
|
||||
Version: 1.24
|
||||
Release: 1%{?dist}
|
||||
Summary: A sticky notes app for the Linux desktop
|
||||
|
||||
License: GPL-2.0
|
||||
URL: https://github.com/linuxmint/sticky
|
||||
Source0: %{url}/archive/%{version}.tar.gz
|
||||
Patch0: remove-meson-postinstall-script.patch
|
||||
Patch1: point-executable-to-sitepackages-directory.patch
|
||||
|
||||
BuildArch: noarch
|
||||
|
||||
BuildRequires: python3-devel
|
||||
BuildRequires: meson
|
||||
BuildRequires: gettext-devel
|
||||
|
||||
Requires: python3
|
||||
Requires: glib2
|
||||
Requires: gspell
|
||||
Requires: gtk3
|
||||
Requires: python3-gobject-base
|
||||
Requires: python3-xapp
|
||||
Requires: xapps
|
||||
|
||||
Packager: sadlerm <sad_lerm@hotmail.com>
|
||||
|
||||
%description
|
||||
Sticky is a note-taking app for the Linux desktop that simulates traditional "sticky note" style stationery on your desktop. Some of its features include basic text formatting (bold, italics, monospaced, etc.), spell-checking, a tray icon for controlling note visibility, color notes, manual and automatic backups, and a manager to organize your notes into groups.
|
||||
|
||||
%prep
|
||||
%autosetup -p1
|
||||
|
||||
%build
|
||||
%meson
|
||||
%meson_build
|
||||
|
||||
%install
|
||||
%meson_install
|
||||
mkdir -p %{buildroot}%{python3_sitelib}
|
||||
mv -v %{buildroot}%{_prefix}/lib/%{name} %{buildroot}%{python3_sitelib}/%{name}
|
||||
|
||||
%files
|
||||
%license COPYING
|
||||
%doc README.md
|
||||
%{_bindir}/%{name}
|
||||
%{_datadir}/applications/%{name}.desktop
|
||||
%{_datadir}/glib-2.0/schemas/org.x.%{name}.gschema.xml
|
||||
%{_datadir}/icons/hicolor/scalable/apps/%{name}*.svg
|
||||
%{_datadir}/icons/hicolor/scalable/status/%{name}*.svg
|
||||
%{_datadir}/locale/*/LC_MESSAGES/%{name}.mo
|
||||
%{_datadir}/%{name}/*
|
||||
%{_sysconfdir}/xdg/autostart/%{name}.desktop
|
||||
%{_datadir}/dbus-1/services/org.x.%{name}.service
|
||||
%{python3_sitelib}/%{name}/*.py
|
||||
%{python3_sitelib}/%{name}/__pycache__/*.pyc
|
||||
|
||||
%changelog
|
||||
* Thu Jan 16 2025 sadlerm4 <sad_lerm@hotmail.com>
|
||||
- Initial package
|
||||
@@ -1,5 +0,0 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "subtitleedit.spec"
|
||||
}
|
||||
}
|
||||
@@ -1,56 +0,0 @@
|
||||
%global pkgdir %_datadir/subtitleedit
|
||||
%global realname subtitleedit
|
||||
|
||||
Name: %realname.bin
|
||||
Version: 4.0.12
|
||||
Release: 2%?dist
|
||||
Summary: An advanced subtitle editor and converter
|
||||
License: GPL-3.0-only
|
||||
URL: https://www.nikse.dk/SubtitleEdit
|
||||
Source0: https://github.com/SubtitleEdit/subtitleedit/releases/download/%version/SE%{gsub %version %. %{quote:}}.zip
|
||||
Source1: https://github.com/SubtitleEdit/subtitleedit/blob/%version/src/libse/Icon.png?raw=true
|
||||
Packager: madonuko <mado@fyralabs.com>
|
||||
Provides: %realname = %evr
|
||||
Conflicts: %realname
|
||||
BuildRequires: unzip anda-srpm-macros
|
||||
Requires: dejavu-sans-mono-fonts mono-core
|
||||
|
||||
%description
|
||||
%summary.
|
||||
|
||||
|
||||
%prep
|
||||
cat<<EOF > subtitleedit.desktop
|
||||
[Desktop Entry]
|
||||
Name=Subtitle Edit
|
||||
Comment=An advanced subtitle editor and converter
|
||||
Exec=/usr/bin/subtitleedit %%F
|
||||
Icon=subtitleedit
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Categories=Video;AudioVideo;AudioVideoEditing;
|
||||
EOF
|
||||
|
||||
cat<<EOF > subtitleedit
|
||||
#!/usr/bin/sh
|
||||
exec mono /usr/share/subtitleedit/SubtitleEdit.exe "$@"
|
||||
EOF
|
||||
|
||||
|
||||
%install
|
||||
mkdir -p %buildroot%pkgdir
|
||||
unzip %{S:0} -d %buildroot%pkgdir
|
||||
rm -r %buildroot%pkgdir/Tesseract302
|
||||
rm %buildroot%pkgdir/Hunspell{x86,x64}.dll
|
||||
touch %buildroot%pkgdir/.PACKAGE-MANAGER
|
||||
|
||||
install -Dm755 subtitleedit -t %buildroot%_bindir
|
||||
install -Dm644 subtitleedit.desktop -t %buildroot%_datadir/applications
|
||||
install -Dm644 %{S:1} %buildroot%_datadir/pixmaps/subtitleedit.png
|
||||
|
||||
|
||||
%files
|
||||
%pkgdir
|
||||
%_bindir/%realname
|
||||
%_datadir/applications/%realname.desktop
|
||||
%_datadir/pixmaps/%realname.png
|
||||
@@ -1 +0,0 @@
|
||||
rpm.version(gh("SubtitleEdit/subtitleedit"));
|
||||
@@ -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
|
||||
|
||||
@@ -3,6 +3,6 @@ project pkg {
|
||||
spec = "switcheroo-control.spec"
|
||||
}
|
||||
labels {
|
||||
subrepo = "extras"
|
||||
extra = 1
|
||||
}
|
||||
}
|
||||
|
||||
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