mirror of
https://github.com/terrapkg/packages.git
synced 2026-05-31 17:11:56 +00:00
Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| bf9dacd94b | |||
| 3169248716 | |||
| 2502f899f2 | |||
| 79fc4684d5 | |||
| de8a87051d | |||
| a0047a6bdc | |||
| 1d9bb99914 |
@@ -1,4 +1,4 @@
|
||||
ARG VARIANT="38"
|
||||
ARG VARIANT="37"
|
||||
FROM fedora:${VARIANT}
|
||||
|
||||
RUN useradd -m vscode
|
||||
@@ -7,4 +7,4 @@ RUN usermod -aG mock vscode
|
||||
RUN echo vscode ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/vscode
|
||||
RUN dnf -y install git 'dnf-command(config-manager)' mock createrepo_c
|
||||
RUN dnf config-manager --add-repo='https://raw.githubusercontent.com/terrapkg/subatomic-repos/main/terra.repo'
|
||||
RUN dnf -y install anda terra-mock-configs
|
||||
RUN dnf -y install anda anda-mock-configs
|
||||
|
||||
@@ -2,17 +2,10 @@
|
||||
"name": "Fedora",
|
||||
"build": {
|
||||
"dockerfile": "Dockerfile",
|
||||
"args": { "VARIANT": "38" }
|
||||
"args": { "VARIANT": "37" }
|
||||
},
|
||||
"settings": {},
|
||||
"extensions": [],
|
||||
"remoteUser": "vscode",
|
||||
"runArgs": [
|
||||
"--privileged"
|
||||
],
|
||||
"customizations": {
|
||||
"vscode": {
|
||||
"extensions": [
|
||||
"rhaiscript.vscode-rhai"
|
||||
]
|
||||
}
|
||||
}
|
||||
"runArgs": ["--privileged"]
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: Report an issue with a package (or Terra itself)
|
||||
about: Report an issue with a package (or Terra itsself)
|
||||
title: '[BUG] '
|
||||
labels: bug
|
||||
assignees: ''
|
||||
|
||||
+36
-111
@@ -6,13 +6,7 @@ on:
|
||||
paths:
|
||||
- anda/**
|
||||
branches:
|
||||
- f38
|
||||
pull_request:
|
||||
branches:
|
||||
- f38
|
||||
merge_group:
|
||||
branches:
|
||||
- f38
|
||||
- main
|
||||
workflow_dispatch:
|
||||
workflow_call:
|
||||
|
||||
@@ -23,134 +17,65 @@ jobs:
|
||||
outputs:
|
||||
build_matrix: ${{ steps.generate_build_matrix.outputs.build_matrix }}
|
||||
container:
|
||||
image: ghcr.io/terrapkg/builder:f38
|
||||
image: ghcr.io/terrapkg/builder:main
|
||||
options: --cap-add=SYS_ADMIN --privileged
|
||||
# check out the repo
|
||||
steps:
|
||||
- name: Set workspace as safe
|
||||
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
fetch-depth: 2
|
||||
- run: git pull
|
||||
#- run: git checkout HEAD^
|
||||
|
||||
# - name: Generate Build matrix
|
||||
# id: generate_build_matrix
|
||||
# # generate build matrix by checking out changes in anda/
|
||||
# run: |
|
||||
# # get the list of changed folders in the current commit, including subfolders
|
||||
# changed_folders=$(git diff --name-only HEAD^ | grep -oP 'anda\/(.+)(\/|\$)' | sort -u )
|
||||
# echo "Changed folders: $changed_folders"
|
||||
# # if changed_folders is empty then set is empty to true
|
||||
# if [ -z "$changed_folders" ]; then
|
||||
# echo "::set-output name=is_empty::true"
|
||||
# else
|
||||
# echo "::set-output name=is_empty::false"
|
||||
# fi
|
||||
# # turn it into a json array
|
||||
# build_matrix=$(echo "$changed_folders" | jq -R . | jq -s . | jq -c .)
|
||||
|
||||
# echo "::set-output name=build_matrix::$build_matrix"
|
||||
# #echo "::set-output name=build_matrix::$build_matrix"
|
||||
|
||||
- name: Generate build matrix
|
||||
id: generate_build_matrix
|
||||
run: anda ci >> $GITHUB_OUTPUT
|
||||
run: |
|
||||
anda ci >> $GITHUB_OUTPUT
|
||||
build:
|
||||
needs: manifest
|
||||
strategy:
|
||||
matrix:
|
||||
pkg: ${{ fromJson(needs.manifest.outputs.build_matrix) }}
|
||||
version: ["38"]
|
||||
version: ["37"]
|
||||
fail-fast: false
|
||||
#if: ${{ matrix.changed_folders != '' }}
|
||||
runs-on: ${{ matrix.pkg.arch == 'aarch64' && 'ARM64' || 'ubuntu-latest' }}
|
||||
container:
|
||||
image: ghcr.io/terrapkg/builder:f38
|
||||
image: ghcr.io/terrapkg/builder:main
|
||||
options: --cap-add=SYS_ADMIN --privileged
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
- uses: terrapkg/anda-build@main
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Set up git repository
|
||||
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
|
||||
|
||||
- name: Cache buildroot
|
||||
id: br-cache
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: /var/cache
|
||||
key: ${{ runner.os }}-br-${{ matrix.version }}-${{ matrix.pkg.arch }}-${{ matrix.pkg.pkg }}
|
||||
|
||||
- name: Include custom build template instead of package default
|
||||
run: |
|
||||
cp -v anda/mock-configs/terra.tpl /etc/mock/templates/terra.tpl
|
||||
|
||||
- name: Build with Andaman
|
||||
run: anda build ${{ matrix.pkg.pkg }} --package rpm -c anda/mock-configs/terra-${{ matrix.version }}-${{ matrix.pkg.arch }}.cfg
|
||||
|
||||
- name: Generating artifact name
|
||||
id: art
|
||||
run: |
|
||||
NAME=${{ matrix.pkg.pkg }}-${{ matrix.pkg.arch }}-${{ matrix.version }}
|
||||
x=${NAME//\//@}
|
||||
echo "name=$x" >> $GITHUB_OUTPUT
|
||||
|
||||
- uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: ${{ steps.art.outputs.name }}
|
||||
path: anda-build/rpm/rpms/*
|
||||
name: "${{ matrix.pkg.pkg }}"
|
||||
mockConfig: anda-${{ matrix.version }}-${{ matrix.pkg.arch }}
|
||||
extraArgs: -D "sccache_bucket ${{secrets.SCCACHE_BUCKET}}" -D "sccache_endpoint ${{secrets.SCCACHE_ENDPOINT}}" -D "sccache_secret ${{secrets.SCCACHE_SECRET}}" -D "sccache_accesskey ${{secrets.SCCACHE_ACCESSKEY}}"
|
||||
andaRepo: https://github.com/terrapkg/subatomic-repos/raw/main/terra${{ matrix.version }}.repo
|
||||
|
||||
- name: Upload packages to subatomic
|
||||
if: github.event_name == 'push'
|
||||
run: |
|
||||
subatomic-cli upload --prune \
|
||||
--server https://subatomic.fyralabs.com \
|
||||
--token ${{ secrets.SUBATOMIC_TOKEN }} \
|
||||
terra${{ matrix.version }} anda-build/rpm/rpms/*
|
||||
|
||||
- name: Notify Madoguchi (Success)
|
||||
if: success() && github.event_name == 'push'
|
||||
run: ./.github/workflows/mg.sh true ${{matrix.pkg.pkg}} ${{matrix.version}} ${{matrix.pkg.arch}} ${{github.run_id}} ${{secrets.MADOGUCHI_JWT}}
|
||||
- name: Notify Madoguchi (Failure)
|
||||
if: ( cancelled() || failure() ) && github.event_name == 'push'
|
||||
run: ./.github/workflows/mg.sh false ${{matrix.pkg.pkg}} ${{matrix.version}} ${{matrix.pkg.arch}} ${{github.run_id}} ${{secrets.MADOGUCHI_JWT}}
|
||||
|
||||
- name: Lint RPMs and SRPMs
|
||||
id: lint
|
||||
if: success()
|
||||
run: |
|
||||
echo 'LINT_ERR=false' >> $GITHUB_ENV
|
||||
rpmlint anda-build/ > rpmlint.txt || f=1
|
||||
if [[ $f -eq 1 ]]; then
|
||||
EOF=$(dd if=/dev/urandom bs=15 count=1 status=none | base64)
|
||||
echo "ESC_LINT_OUT<<$EOF" >> $GITHUB_ENV
|
||||
cat rpmlint.txt | sed 's/`/\\`/g' >> $GITHUB_ENV
|
||||
echo $EOF >> $GITHUB_ENV
|
||||
echo "lint_out<<$EOF" >> $GITHUB_ENV
|
||||
echo '```' >> $GITHUB_ENV
|
||||
cat rpmlint.txt >> $GITHUB_ENV
|
||||
echo '```' >> $GITHUB_ENV
|
||||
echo $EOF >> $GITHUB_ENV
|
||||
echo 'LINT_ERR=true' >> $GITHUB_ENV
|
||||
fi
|
||||
|
||||
- name: Try to install package
|
||||
id: dnf
|
||||
if: success()
|
||||
run: |
|
||||
echo 'INSTALL_ERR=false' >> $GITHUB_ENV
|
||||
touch out
|
||||
for f in anda-build/rpm/rpms/*.rpm; do
|
||||
dnf in --downloadonly -y $f > $f.dnfout.txt 2>&1 || fail=1
|
||||
if [[ $fail -eq 1 ]]; then
|
||||
echo "### $f" >> out
|
||||
echo '```' >> out
|
||||
cat $f.dnfout.txt >> out
|
||||
echo '```' >> out
|
||||
echo >> out
|
||||
echo 'INSTALL_ERR=true' >> $GITHUB_ENV
|
||||
fi
|
||||
done
|
||||
cat out
|
||||
EOF=$(dd if=/dev/urandom bs=15 count=1 status=none | base64)
|
||||
echo "ESC_DNF_OUT<<$EOF" >> $GITHUB_ENV
|
||||
cat out | sed 's/`/\\`/g' >> $GITHUB_ENV
|
||||
echo $EOF >> $GITHUB_ENV
|
||||
echo "dnf_out<<$EOF" >> $GITHUB_ENV
|
||||
cat out >> $GITHUB_ENV
|
||||
echo $EOF >> $GITHUB_ENV
|
||||
|
||||
- name: Generate RPMLint/DNF summary
|
||||
if: success()
|
||||
run: |
|
||||
# Remind me to make all of this not weird later ~ lleyton
|
||||
|
||||
if [[ $LINT_ERR == "true" ]]; then
|
||||
echo -e "## ❌ Lint: [${{matrix.pkg.pkg}} (${{matrix.pkg.arch}})](https://github.com/terrapkg/packages/actions/runs/${{github.run_id}})\n" >> $GITHUB_STEP_SUMMARY
|
||||
echo -e "```\n${{ env.ESC_LINT_OUT }}\n```\n" >> $GITHUB_STEP_SUMMARY
|
||||
fi
|
||||
|
||||
if [[ $INSTALL_ERR == "true" ]]; then
|
||||
echo -e "## ❌ DNF: [${{matrix.pkg.pkg}} (${{matrix.pkg.arch}})](https://github.com/terrapkg/packages/actions/runs/${{github.run_id}})\n" >> $GITHUB_STEP_SUMMARY
|
||||
echo "${{ env.ESC_DNF_OUT }}" >> $GITHUB_STEP_SUMMARY
|
||||
fi
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
name: Bootstrap anda
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
bootstrap:
|
||||
strategy:
|
||||
matrix:
|
||||
version: ["37"]
|
||||
arch: ["x86_64", "aarch64"]
|
||||
fail-fast: true
|
||||
runs-on: ${{ matrix.arch == 'aarch64' && 'ARM64' || 'ubuntu-latest' }}
|
||||
container:
|
||||
image: fedora:37
|
||||
options: --cap-add=SYS_ADMIN --privileged
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
repository: FyraLabs/anda
|
||||
|
||||
# - name: Run shell commands
|
||||
# run: |
|
||||
# git config --global url.https://github.com/.insteadOf git://github.com/
|
||||
# git clone https://github.com/FyraLabs/anda.git
|
||||
- uses: actions/setup-go@v3
|
||||
with:
|
||||
go-version: "^1.19"
|
||||
|
||||
- name: Install repositories
|
||||
run: |
|
||||
sudo dnf install -y dnf-plugins-core
|
||||
sudo dnf config-manager --add-repo https://github.com/terrapkg/subatomic-repos/raw/main/terra${{ matrix.version }}.repo
|
||||
- run: sudo dnf install -y mock createrepo_c rpm-build anda-mock-configs gcc curl wget git-core openssl-devel
|
||||
- uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
toolchain: stable
|
||||
- name: Install Anda
|
||||
uses: actions-rs/cargo@v1
|
||||
with:
|
||||
command: install
|
||||
args: anda
|
||||
|
||||
- name: Install Subatomic
|
||||
run: go install github.com/FyraLabs/subatomic/subatomic-cli@latest
|
||||
|
||||
- name: Build
|
||||
run: anda build -c anda-37-${{ matrix.arch }} anda -p rpm
|
||||
|
||||
- run: |
|
||||
subatomic-cli upload --prune \
|
||||
--server https://subatomic.fyralabs.com \
|
||||
--token ${{ secrets.SUBATOMIC_TOKEN }} \
|
||||
terra${{ matrix.version }} anda-build/rpm/rpms/*
|
||||
@@ -1,4 +1,4 @@
|
||||
name: Bootstrap Andaman and Subatomic
|
||||
name: Bootstrap Andaman and Subatomic (Fedora 38)
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
@@ -23,14 +23,11 @@ jobs:
|
||||
run: |
|
||||
sudo dnf install -y dnf-plugins-core
|
||||
sudo dnf config-manager --add-repo https://github.com/terrapkg/subatomic-repos/raw/main/terra${{ matrix.version }}.repo
|
||||
sudo dnf install -y mock createrepo_c rpm-build terra-mock-configs gcc curl wget git-core openssl-devel
|
||||
|
||||
sudo dnf install -y mock createrepo_c rpm-build anda-mock-configs gcc curl wget git-core openssl-devel
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
repository: FyraLabs/subatomic
|
||||
set-safe-directory: true
|
||||
fetch-depth: 1
|
||||
|
||||
ref: bootstrap
|
||||
- uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
toolchain: stable
|
||||
@@ -41,9 +38,7 @@ jobs:
|
||||
args: anda
|
||||
|
||||
- name: Build Subatomic
|
||||
run: |
|
||||
git config --global --add safe.directory "$GITHUB_WORKSPACE"
|
||||
anda build -c terra-${{ matrix.version }}-${{ matrix.arch }} subatomic -p rpm -D "autogitcommit $(git log -1 --format='%H')"
|
||||
run: anda build -c anda-38-${{ matrix.arch }} subatomic -p rpm
|
||||
- name: Install Subatomic
|
||||
run: sudo dnf install -y ./anda-build/rpm/rpms/subatomic-*.rpm
|
||||
|
||||
@@ -52,7 +47,7 @@ jobs:
|
||||
repository: FyraLabs/anda
|
||||
|
||||
- name: Build Andaman
|
||||
run: anda build -c terra-${{ matrix.version }}-${{ matrix.arch }} anda -p rpm
|
||||
run: anda build -c anda-38-${{ matrix.arch }} anda -p rpm
|
||||
|
||||
- name: Upload to Subatomic
|
||||
run: |
|
||||
@@ -0,0 +1,58 @@
|
||||
name: Bootstrap subatomic
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
bootstrap:
|
||||
strategy:
|
||||
matrix:
|
||||
version: ["37"]
|
||||
arch: ["x86_64", "aarch64"]
|
||||
fail-fast: true
|
||||
runs-on: ${{ matrix.arch == 'aarch64' && 'ARM64' || 'ubuntu-latest' }}
|
||||
container:
|
||||
image: fedora:37
|
||||
options: --cap-add=SYS_ADMIN --privileged
|
||||
steps:
|
||||
# - name: Run shell commands
|
||||
# run: |
|
||||
# git config --global url.https://github.com/.insteadOf git://github.com/
|
||||
# git clone https://github.com/FyraLabs/anda.git
|
||||
|
||||
- uses: actions/setup-go@v3
|
||||
with:
|
||||
go-version: "^1.19"
|
||||
|
||||
- name: Install repositories
|
||||
run: |
|
||||
sudo dnf install -y dnf-plugins-core
|
||||
sudo dnf config-manager --add-repo https://github.com/terrapkg/subatomic-repos/raw/main/terra${{ matrix.version }}.repo
|
||||
- run: sudo dnf install -y mock createrepo_c rpm-build anda-mock-configs gcc curl wget git-core openssl-devel
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
repository: FyraLabs/subatomic
|
||||
set-safe-directory: true
|
||||
fetch-depth: 1
|
||||
- name: Set up git repository
|
||||
run: |
|
||||
git config --global --add safe.directory "$GITHUB_WORKSPACE"
|
||||
- uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
toolchain: stable
|
||||
- name: Install Anda
|
||||
uses: actions-rs/cargo@v1
|
||||
with:
|
||||
command: install
|
||||
args: anda
|
||||
|
||||
- name: Install Subatomic
|
||||
run: go install github.com/FyraLabs/subatomic/subatomic-cli@latest
|
||||
|
||||
- name: Build
|
||||
run: anda build -c anda-37-${{ matrix.arch }} subatomic -p rpm
|
||||
- run: |
|
||||
subatomic-cli upload --prune \
|
||||
--server https://subatomic.fyralabs.com \
|
||||
--token ${{ secrets.SUBATOMIC_TOKEN }} \
|
||||
terra${{ matrix.version }} anda-build/rpm/rpms/*
|
||||
@@ -1,9 +1,9 @@
|
||||
name: Manual Builds
|
||||
name: Build Packages
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
packages:
|
||||
description: "Packages to Build"
|
||||
description: "Packages to Build (pkg-a, pkg-b, ...)"
|
||||
required: true
|
||||
|
||||
jobs:
|
||||
@@ -15,48 +15,25 @@ jobs:
|
||||
- name: Parse Input
|
||||
id: parsing
|
||||
run: echo "${{ inputs.packages }}" | sed 's/ /\n/g' | sed 's/$/\//g' | jq -R . | jq -s . | jq -c . | sed 's/^/pkgs=/' >> $GITHUB_OUTPUT
|
||||
|
||||
build:
|
||||
needs: parse
|
||||
strategy:
|
||||
matrix:
|
||||
pkg: ${{ fromJson(needs.parse.outputs.pkgs) }}
|
||||
version: ["38"]
|
||||
version: ["37"]
|
||||
arch: ["x86_64", "aarch64"]
|
||||
fail-fast: false
|
||||
runs-on: ${{ matrix.arch == 'aarch64' && 'ARM64' || 'ubuntu-latest' }}
|
||||
container:
|
||||
image: ghcr.io/terrapkg/builder:f38
|
||||
image: ghcr.io/terrapkg/builder:main
|
||||
options: --cap-add=SYS_ADMIN --privileged
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
- uses: terrapkg/anda-build@main
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Set up git repository
|
||||
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
|
||||
|
||||
- name: Cache buildroot
|
||||
id: br-cache
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: /var/cache
|
||||
key: ${{ runner.os }}-br-${{ matrix.version }}-${{ matrix.pkg.arch }}-${{ matrix.pkg.pkg }}
|
||||
|
||||
- name: Build with Andaman
|
||||
run: anda build ${{ matrix.pkg.pkg }} --package rpm -c anda/mock-configs/terra-${{ matrix.version }}-${{ matrix.pkg.arch }}.cfg
|
||||
|
||||
- name: Generating artifact name
|
||||
id: art
|
||||
run: |
|
||||
NAME=${{ matrix.pkg }}-${{ matrix.arch }}-${{ matrix.version }}
|
||||
x=${NAME//\//@}
|
||||
echo "name=$x" >> $GITHUB_OUTPUT
|
||||
|
||||
- uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: ${{ steps.art.outputs.name }}
|
||||
path: anda-build/rpm/rpms/*
|
||||
name: "${{ matrix.pkg }}pkg"
|
||||
mockConfig: anda-37-${{ matrix.arch }}
|
||||
extraArgs: -D "sccache_bucket ${{secrets.SCCACHE_BUCKET}}" -D "sccache_endpoint ${{secrets.SCCACHE_ENDPOINT}}" -D "sccache_secret ${{secrets.SCCACHE_SECRET}}" -D "sccache_accesskey ${{secrets.SCCACHE_ACCESSKEY}}"
|
||||
andaRepo: https://github.com/terrapkg/subatomic-repos/raw/main/terra.repo
|
||||
|
||||
- name: Upload packages to subatomic
|
||||
run: |
|
||||
@@ -64,10 +41,3 @@ jobs:
|
||||
--server https://subatomic.fyralabs.com \
|
||||
--token ${{ secrets.SUBATOMIC_TOKEN }} \
|
||||
terra${{ matrix.version }} anda-build/rpm/rpms/*
|
||||
|
||||
- name: Notify Madoguchi (Success)
|
||||
if: success() && github.event_name == 'push'
|
||||
run: ./.github/workflows/mg.sh true ${{matrix.pkg}} ${{matrix.version}} ${{matrix.arch}} ${{github.run_id}} ${{secrets.MADOGUCHI_JWT}}
|
||||
- name: Notify Madoguchi (Failure)
|
||||
if: ( cancelled() || failure() ) && github.event_name == 'push'
|
||||
run: ./.github/workflows/mg.sh false ${{matrix.pkg}} ${{matrix.version}} ${{matrix.arch}} ${{github.run_id}} ${{secrets.MADOGUCHI_JWT}}
|
||||
|
||||
@@ -1,62 +0,0 @@
|
||||
name: JSON Build
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
packages:
|
||||
description: "Packages to Build"
|
||||
required: true
|
||||
|
||||
jobs:
|
||||
build:
|
||||
strategy:
|
||||
matrix:
|
||||
pkg: ${{ fromJson(inputs.packages) }}
|
||||
version: ["38"]
|
||||
fail-fast: false
|
||||
runs-on: ${{ matrix.pkg.arch == 'aarch64' && 'ARM64' || 'ubuntu-latest' }}
|
||||
container:
|
||||
image: ghcr.io/terrapkg/builder:f38
|
||||
options: --cap-add=SYS_ADMIN --privileged
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Set up git repository
|
||||
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
|
||||
|
||||
- name: Cache buildroot
|
||||
id: br-cache
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: /var/cache
|
||||
key: ${{ runner.os }}-br-${{ matrix.version }}-${{ matrix.pkg.arch }}-${{ matrix.pkg.pkg }}
|
||||
|
||||
- name: Build with Andaman
|
||||
run: anda build ${{ matrix.pkg.pkg }} --package rpm -c anda/mock-configs/terra-${{ matrix.version }}-${{ matrix.pkg.arch }}.cfg
|
||||
|
||||
- name: Generating artifact name
|
||||
id: art
|
||||
run: |
|
||||
NAME=${{ matrix.pkg.pkg }}-${{ matrix.pkg.arch }}-${{ matrix.version }}
|
||||
x=${NAME//\//@}
|
||||
echo "name=$x" >> $GITHUB_OUTPUT
|
||||
|
||||
- uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: ${{ steps.art.outputs.name }}
|
||||
path: anda-build/rpm/rpms/*
|
||||
|
||||
- name: Upload packages to subatomic
|
||||
run: |
|
||||
subatomic-cli upload --prune \
|
||||
--server https://subatomic.fyralabs.com \
|
||||
--token ${{ secrets.SUBATOMIC_TOKEN }} \
|
||||
terra${{ matrix.version }} anda-build/rpm/rpms/*
|
||||
|
||||
- name: Notify Madoguchi (Success)
|
||||
if: success() && github.event_name == 'push'
|
||||
run: ./.github/workflows/mg.sh true ${{matrix.pkg.pkg}} ${{matrix.version}} ${{matrix.pkg.arch}} ${{github.run_id}} ${{secrets.MADOGUCHI_JWT}}
|
||||
- name: Notify Madoguchi (Failure)
|
||||
if: ( cancelled() || failure() ) && github.event_name == 'push'
|
||||
run: ./.github/workflows/mg.sh false ${{matrix.pkg.pkg}} ${{matrix.version}} ${{matrix.pkg.arch}} ${{github.run_id}} ${{secrets.MADOGUCHI_JWT}}
|
||||
@@ -1,20 +1,12 @@
|
||||
name: Lint
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- f38
|
||||
pull_request:
|
||||
branches:
|
||||
- f38
|
||||
merge_group:
|
||||
branches:
|
||||
- f38
|
||||
on: [push, pull_request]
|
||||
|
||||
jobs:
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: ghcr.io/terrapkg/builder:f38
|
||||
image: ghcr.io/terrapkg/builder:main
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
# for each folder in anda/
|
||||
# generate a new workflow for each folder in anda/
|
||||
name: Mass Rebuild
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
manifest:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
outputs:
|
||||
build_matrix: ${{ steps.generate_build_matrix.outputs.build_matrix }}
|
||||
is_empty: ${{ steps.generate_build_matrix.outputs.is_empty }}
|
||||
|
||||
# check out the repo
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 2
|
||||
- run: git fetch
|
||||
#- run: git checkout HEAD^
|
||||
|
||||
- name: Generate Build matrix
|
||||
id: generate_build_matrix
|
||||
# generate build matrix by checking out changes in anda/
|
||||
run: |
|
||||
build_matrix=$(find anda/ | grep -oP 'anda\/(.+)(\/|\$)' | sort -u | jq -R -s -c 'split("\n")[:-1]')
|
||||
# create build matrix with { changed_folders: [ "folder1", "folder2" ] }
|
||||
echo "build_matrix=$build_matrix" >> $GITHUB_OUTPUT
|
||||
#echo "::set-output name=build_matrix::$build_matrix"
|
||||
build:
|
||||
needs: manifest
|
||||
strategy:
|
||||
matrix:
|
||||
pkg: ${{ fromJson(needs.manifest.outputs.build_matrix) }}
|
||||
version: ["37"]
|
||||
arch: ["x86_64", "aarch64"]
|
||||
fail-fast: false
|
||||
#if: ${{ matrix.changed_folders != '' }}
|
||||
runs-on: ${{ matrix.arch == 'aarch64' && 'ARM64' || 'ubuntu-latest' }}
|
||||
container:
|
||||
image: ghcr.io/terrapkg/builder:main
|
||||
options: --cap-add=SYS_ADMIN --privileged
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 2
|
||||
- name: Check file existence
|
||||
id: check_files
|
||||
run: |
|
||||
if test -f "${{ matrix.pkg }}anda.hcl"; then
|
||||
echo "EXISTS=true" >> $GITHUB_OUTPUT
|
||||
else
|
||||
echo "EXISTS=false" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
|
||||
- uses: terrapkg/anda-build@main
|
||||
if: steps.check_files.outputs.EXISTS == 'true'
|
||||
with:
|
||||
name: "${{ matrix.pkg }}pkg"
|
||||
mockConfig: anda-37-${{ matrix.arch }}
|
||||
extraArgs: -D "sccache_bucket ${{secrets.SCCACHE_BUCKET}}" -D "sccache_endpoint ${{secrets.SCCACHE_ENDPOINT}}" -D "sccache_secret ${{secrets.SCCACHE_SECRET}}" -D "sccache_accesskey ${{secrets.SCCACHE_ACCESSKEY}}"
|
||||
andaRepo: https://github.com/terrapkg/subatomic-repos/raw/main/terra.repo
|
||||
|
||||
- name: Upload packages to subatomic
|
||||
if: steps.check_files.outputs.EXISTS == 'true'
|
||||
run: |
|
||||
subatomic-cli upload --prune \
|
||||
--server https://subatomic.fyralabs.com \
|
||||
--token ${{ secrets.SUBATOMIC_TOKEN }} \
|
||||
terra${{ matrix.version }} anda-build/rpm/rpms/*
|
||||
@@ -1,21 +0,0 @@
|
||||
set -x
|
||||
|
||||
dirs=$2
|
||||
dirs=${dirs/\/pkg/}
|
||||
export p="{\"id\":\"$5\",\"ver\":\"%v\",\"rel\":\"%r\",\"arch\":\"$4\",\"dirs\":\"$dirs\",\"succ\":$1}"
|
||||
|
||||
if [[ $1 == false ]]; then
|
||||
d=${p/\%v/?}
|
||||
d=${d/\%r/?}
|
||||
curl -H "Authorization: Bearer $6" https://madoguchi.fyralabs.com/ci/terra$3/builds/f -X PUT -H "Content-Type: application/json" -d $d --fail-with-body
|
||||
exit 0
|
||||
fi
|
||||
|
||||
for f in anda-build/rpm/rpms/*; do
|
||||
n=$(lesspipe.sh $f | grep -E "Name\s*: " | sed "s@Name\s*: @@")
|
||||
v=$(lesspipe.sh $f | grep -E "Version\s*: " | sed "s@Version\s*: @@")
|
||||
r=$(lesspipe.sh $f | grep -E "Release\s*: " | sed "s@Release\s*: @@")
|
||||
d=${p/\%v/$v}
|
||||
d=${d/\%r/$r}
|
||||
curl -H "Authorization: Bearer $6" https://madoguchi.fyralabs.com/ci/terra$3/builds/$n -X PUT -H "Content-Type: application/json" -d $d --fail-with-body
|
||||
done
|
||||
@@ -1,38 +0,0 @@
|
||||
name: Sync PR to other branches
|
||||
on:
|
||||
pull_request:
|
||||
types:
|
||||
- closed
|
||||
branches:
|
||||
- f38
|
||||
|
||||
jobs:
|
||||
sync:
|
||||
strategy:
|
||||
matrix:
|
||||
branch: ["f37"]
|
||||
fail-fast: false
|
||||
if: github.event.pull_request.merged == true && !contains(github.event.pull_request.labels.*.name, 'nosync')
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
ssh-key: ${{ secrets.SSH_AUTHENTICATION_KEY }}
|
||||
ref: ${{ matrix.branch }}
|
||||
- name: Install SSH key and Setup Git
|
||||
run: |
|
||||
mkdir -p ${{ runner.temp }}
|
||||
echo "${{ secrets.SSH_SIGNING_KEY }}" > ${{ runner.temp }}/signing_key
|
||||
chmod 0700 ${{ runner.temp }}/signing_key
|
||||
git config --global --add safe.directory "$GITHUB_WORKSPACE"
|
||||
git config user.name "Raboneko"
|
||||
git config user.email "raboneko@fyralabs.com"
|
||||
git config gpg.format "ssh"
|
||||
git config user.signingkey "${{ runner.temp }}/signing_key"
|
||||
- name: Apply patches and Push
|
||||
run: |
|
||||
curl https://github.com/terrapkg/packages/pull/${{ github.event.pull_request.number }}.patch > pr.patch
|
||||
git am -S --keep-cr --signoff < pr.patch
|
||||
git push -u origin --all
|
||||
@@ -3,8 +3,7 @@ name: Push comps updates
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- f38
|
||||
- f37
|
||||
- main
|
||||
paths:
|
||||
- comps.xml
|
||||
workflow_dispatch:
|
||||
@@ -13,16 +12,12 @@ jobs:
|
||||
update-comps:
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: ghcr.io/terrapkg/builder:38
|
||||
image: ghcr.io/terrapkg/builder:main
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- id: get-branch
|
||||
uses: grandmasterdev/github-action-get-branch@latest
|
||||
- name: Push to subatomic
|
||||
run: |
|
||||
branch=${{steps.get-branch.outputs.branch-name}}
|
||||
ver=${branch/f/}
|
||||
subatomic-cli upload-comps \
|
||||
--server https://subatomic.fyralabs.com \
|
||||
--token ${{ secrets.SUBATOMIC_TOKEN }} \
|
||||
"terra${ver}" comps.xml
|
||||
terra37 comps.xml
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
name: Nightly Update
|
||||
name: Automatic Nightly Update
|
||||
on:
|
||||
schedule:
|
||||
- cron: "0 0 * * *"
|
||||
@@ -8,13 +8,13 @@ jobs:
|
||||
autoupdate:
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: ghcr.io/terrapkg/builder:f38
|
||||
image: ghcr.io/terrapkg/builder:main
|
||||
options: --cap-add=SYS_ADMIN --privileged
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
fetch-depth: 2
|
||||
ssh-key: ${{ secrets.SSH_AUTHENTICATION_KEY }}
|
||||
|
||||
- name: Install SSH signing key
|
||||
@@ -36,15 +36,6 @@ jobs:
|
||||
git config user.email "raboneko@fyralabs.com"
|
||||
git config gpg.format "ssh"
|
||||
git config user.signingkey "${{ runner.temp }}/signing_key"
|
||||
msg="bump(nightly): $(git status | grep modified | sed -r 's@.+/([^/]+)/[^/]+\n?@\1 @g' | tr -d '\n')"
|
||||
git commit -S -a -m "$msg"
|
||||
f37 () {
|
||||
git format-patch HEAD^
|
||||
git checkout f37
|
||||
git apply *.patch || true
|
||||
git add *
|
||||
git commit -S -a -m "$msg"
|
||||
}
|
||||
f37 || true
|
||||
git push -u origin --all
|
||||
git commit -S -a -m "Automatic Update: $(git status | grep modified | sed -r 's@.+/([^/]+)/[^/]+\n?@\1 @g' | tr -d '\n')"
|
||||
git push -u origin main
|
||||
fi
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
name: Update
|
||||
# for each folder in ultramarine/
|
||||
# if there is chkupdate.py
|
||||
# run it every 2 hours
|
||||
name: Automatically check for updates
|
||||
on:
|
||||
schedule:
|
||||
- cron: "*/30 * * * *"
|
||||
@@ -8,13 +11,13 @@ jobs:
|
||||
autoupdate:
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: ghcr.io/terrapkg/builder:f38
|
||||
image: ghcr.io/terrapkg/builder:main
|
||||
options: --cap-add=SYS_ADMIN --privileged
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
fetch-depth: 2
|
||||
ssh-key: ${{ secrets.SSH_AUTHENTICATION_KEY }}
|
||||
|
||||
- name: Install SSH signing key
|
||||
@@ -27,7 +30,6 @@ jobs:
|
||||
run: anda update -vv
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
RUST_BACKTRACE: full
|
||||
|
||||
- name: Save
|
||||
run: |
|
||||
@@ -37,15 +39,6 @@ jobs:
|
||||
git config user.email "raboneko@fyralabs.com"
|
||||
git config gpg.format "ssh"
|
||||
git config user.signingkey "${{ runner.temp }}/signing_key"
|
||||
msg="bump: $(git status | grep modified | sed -r 's@.+/([^/]+)/[^/]+\n?@\1 @g' | tr -d '\n')"
|
||||
git commit -S -a -m "$msg"
|
||||
f37 () {
|
||||
git format-patch HEAD^
|
||||
git checkout f37
|
||||
git apply *.patch || true
|
||||
git add *
|
||||
git commit -S -a -m "$msg"
|
||||
}
|
||||
f37 || true
|
||||
git push -u origin --all
|
||||
git commit -S -a -m "Automatic Update: $(git status | grep modified | sed -r 's@.+/([^/]+)/[^/]+\n?@\1 @g' | tr -d '\n')"
|
||||
git push -u origin main
|
||||
fi
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
anda-build/
|
||||
anda-build/
|
||||
Vendored
-5
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"recommendations": [
|
||||
"rhaiscript.vscode-rhai"
|
||||
]
|
||||
}
|
||||
@@ -1,10 +1,10 @@
|
||||
# Terra Sources
|
||||
|
||||
[](https://repology.org/repository/terra_37)
|
||||
[](https://repology.org/repository/terra_38)
|
||||
[](https://repology.org/repository/terra_37)
|
||||
|
||||
Terra is a rolling-release Fedora repository for all the software you need.
|
||||
With Terra, you can install the latest packages knowing that quality and security are assured.
|
||||
[Contributions](https://github.com/terrapkg/packages/wiki/Contribute) are always welcome, but please read our [documentation](https://github.com/terrapkg/packages/wiki) first.
|
||||
|
||||
This monorepo contains the package manifests for all packages in Terra.
|
||||
|
||||
@@ -14,7 +14,8 @@ sudo dnf config-manager --add-repo https://github.com/terrapkg/subatomic-repos/r
|
||||
```
|
||||
|
||||
## Documentation
|
||||
Our documentation can be found on our [Devdocs](https://developer.fyralabs.com/terra/). Alternatively, the GitHub Wiki contains older versions of the documentations.
|
||||
Our documentation can be found on our [GitHub Wiki](https://github.com/terrapkg/packages/wiki).
|
||||
|
||||
## Questions?
|
||||
Feel free to reach out on [Discord](https://discord.gg/5fdPuxTg5Q). We're always happy to help!
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
config {
|
||||
strip_prefix = "anda/"
|
||||
strip_suffix = "/pkg"
|
||||
strip_prefix = "anda/"
|
||||
strip_suffix = "/pkg"
|
||||
}
|
||||
|
||||
project {}
|
||||
project {}
|
||||
@@ -1,6 +1,5 @@
|
||||
project pkg {
|
||||
arches = ["x86_64"]
|
||||
rpm {
|
||||
spec = "anki-bin.spec"
|
||||
}
|
||||
rpm {
|
||||
spec = "anki-bin.spec"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
Name: anki-bin
|
||||
Version: 2.1.65
|
||||
Version: 2.1.57
|
||||
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
|
||||
License: AGPLv3+ and GPLv3+ and LGPLv3 and MIT and BSD and ASL 2.0 and CC-BY-SA and CC-BY
|
||||
URL: https://apps.ankiweb.net/
|
||||
BuildRequires: python3-installer python3.11 rpm_macro(fdupes)
|
||||
BuildRequires: python3-installer python3.11
|
||||
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
|
||||
Requires: python3-flask-cors python3-protobuf python3-requests python3-waitress
|
||||
ExclusiveArch: x86_64
|
||||
BuildArch: noarch
|
||||
Conflicts: anki
|
||||
Source0: https://files.pythonhosted.org/packages/cp39/a/anki/anki-%{version}-cp39-abi3-manylinux_2_28_%{_arch}.whl
|
||||
Source1: https://files.pythonhosted.org/packages/py3/a/aqt/aqt-%{version}-py3-none-any.whl
|
||||
@@ -19,9 +19,9 @@ Source5: https://raw.githubusercontent.com/ankitects/anki/%{version}/LICENSE
|
||||
Source6: https://raw.githubusercontent.com/ankitects/anki/%{version}/README.md
|
||||
|
||||
%description
|
||||
Anki is a program designed to help you remember facts (such as words and
|
||||
phrases in a foreign language) as easily, quickly and efficiently as possible.
|
||||
Anki is based on a theory called spaced repetition.
|
||||
Anki is a program designed to help you remember facts (such as words
|
||||
and phrases in a foreign language) as easily, quickly and efficiently
|
||||
as possible. Anki is based on a theory called spaced repetition.
|
||||
|
||||
%prep
|
||||
|
||||
@@ -36,8 +36,6 @@ install -Dm644 %{SOURCE4} "%{buildroot}/usr/share/pixmaps/anki.png"
|
||||
install -Dm644 %{SOURCE5} "%{buildroot}/%{_datadir}/licenses/%{name}/LICENSE"
|
||||
install -Dm644 %{SOURCE6} "%{buildroot}/%{_datadir}/doc/%{name}/README.md"
|
||||
|
||||
%fdupes %_libdir/python*/site-packages/_aqt/data/
|
||||
|
||||
|
||||
%files
|
||||
%license LICENSE
|
||||
@@ -52,5 +50,5 @@ install -Dm644 %{SOURCE6} "%{buildroot}/%{_datadir}/doc/%{name}/README.md"
|
||||
/usr/share/pixmaps/anki.png
|
||||
|
||||
%changelog
|
||||
* Wed Jan 11 2023 windowsboy111 <windowsboy111@fyralabs.com> - 2.1.60
|
||||
* Wed Jan 11 2023 windowsboy111 <windowsboy111@fyralabs.com>
|
||||
- Initial package
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
project pkg {
|
||||
arches = ["x86_64"]
|
||||
rpm {
|
||||
spec = "anki-qt5.spec"
|
||||
}
|
||||
rpm {
|
||||
spec = "anki-qt5.spec"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,27 +1,27 @@
|
||||
Name: anki-qt5
|
||||
Version: 2.1.65
|
||||
Version: 2.1.57
|
||||
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
|
||||
License: AGPLv3+ and GPLv3+ and LGPLv3 and MIT and BSD and ASL 2.0 and CC-BY-SA and CC-BY
|
||||
URL: https://apps.ankiweb.net/
|
||||
BuildRequires: python3-devel python3-setuptools python3-waitress python3-protobuf python3-pysocks rpm_macro(fdupes)
|
||||
BuildRequires: python3-devel python3-setuptools python3-waitress python3-protobuf python3-pysocks
|
||||
BuildRequires: python3-distro python3-flask-cors python3-jsonschema python3-send2trash python3-certifi python3-simplejson python3-pyqt5-sip
|
||||
BuildRequires: python3-installer make mold cargo git rsync ninja-build libxcrypt-compat nodejs python3.9 python-unversioned-command gcc
|
||||
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
|
||||
ExclusiveArch: x86_64
|
||||
BuildArch: noarch
|
||||
Conflicts: anki
|
||||
Patch0: 0001-No-update.patch
|
||||
Patch1: 0001-Force-qt5.patch
|
||||
|
||||
%description
|
||||
Anki is a program designed to help you remember facts (such as words and
|
||||
phrases in a foreign language) as easily, quickly and efficiently as possible.
|
||||
Anki is based on a theory called spaced repetition.
|
||||
Anki is a program designed to help you remember facts (such as words
|
||||
and phrases in a foreign language) as easily, quickly and efficiently
|
||||
as possible. Anki is based on a theory called spaced repetition.
|
||||
|
||||
%prep
|
||||
git clone https://github.com/ankitects/anki .
|
||||
git checkout %version
|
||||
git checkout %{version}
|
||||
%patch0 -p1
|
||||
%patch1 -p1
|
||||
|
||||
@@ -46,8 +46,6 @@ chmod 755 %{buildroot}%{_bindir}/anki
|
||||
find %{buildroot} -iname __pycache__ | xargs -r rm -rf
|
||||
find %{buildroot} -iname direct_url.json | xargs -r rm -rf
|
||||
|
||||
%fdupes %_libdir/python*/site-packages/_aqt/data/
|
||||
|
||||
|
||||
%files
|
||||
%license LICENSE*
|
||||
@@ -62,5 +60,5 @@ find %{buildroot} -iname direct_url.json | xargs -r rm -rf
|
||||
/usr/lib64/python*/site-packages/anki-%{version}.dist-info/
|
||||
|
||||
%changelog
|
||||
* Tue Jan 3 2023 windowsboy111 <windowsboy111@fyralabs.com> - 2.1.60
|
||||
* Tue Jan 3 2023 windowsboy111 <windowsboy111@fyralabs.com>
|
||||
- Initial package
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "anki.spec"
|
||||
}
|
||||
rpm {
|
||||
spec = "anki.spec"
|
||||
}
|
||||
}
|
||||
|
||||
+16
-20
@@ -1,34 +1,32 @@
|
||||
Name: anki
|
||||
Version: 2.1.65
|
||||
Version: 2.1.57
|
||||
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
|
||||
License: AGPLv3+ and GPLv3+ and LGPLv3 and MIT and BSD and ASL 2.0 and CC-BY-SA and CC-BY
|
||||
URL: https://apps.ankiweb.net/
|
||||
BuildRequires: python3-devel python3-setuptools python3-waitress python3-protobuf python3-pysocks rpm_macro(fdupes)
|
||||
BuildRequires: python3-devel python3-setuptools python3-waitress python3-protobuf python3-pysocks
|
||||
BuildRequires: python3-distro python3-flask-cors python3-jsonschema python3-send2trash python3-certifi python3-simplejson
|
||||
BuildRequires: python3-installer make mold cargo git rsync ninja-build libxcrypt-compat nodejs python3.9 python-unversioned-command gcc python3-pyqt6-devel python3-pyqt6
|
||||
BuildRequires: python3-installer make mold cargo git rsync ninja-build libxcrypt-compat nodejs python3.9 python-unversioned-command gcc
|
||||
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-qt5-webengine python3-pyqt6
|
||||
Recommends: mpv
|
||||
Requires: python3-requests python3-pygame python3-beautifulsoup4 python3-httplib2 python3-pyaudio python3-jsonschema sox libxcrypt-compat
|
||||
Obsoletes: anki <= 2.1.15
|
||||
BuildArch: noarch
|
||||
Conflicts: anki-qt5
|
||||
Patch0: 0001-No-update.patch
|
||||
|
||||
%description
|
||||
Anki is a program designed to help you remember facts (such as words and
|
||||
phrases in a foreign language) as easily, quickly and efficiently as possible.
|
||||
Anki is based on a theory called spaced repetition.
|
||||
Anki is a program designed to help you remember facts (such as words
|
||||
and phrases in a foreign language) as easily, quickly and efficiently
|
||||
as possible. Anki is based on a theory called spaced repetition.
|
||||
|
||||
%prep
|
||||
git clone https://github.com/ankitects/anki .
|
||||
git checkout %{version}
|
||||
%patch 0 -p1
|
||||
%patch0 -p1
|
||||
|
||||
# See https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=anki
|
||||
|
||||
%build
|
||||
export RELEASE=1
|
||||
export PYTHONPATH=%_libdir/python3/dist-packages
|
||||
mold -run ./tools/build
|
||||
|
||||
|
||||
@@ -49,8 +47,6 @@ find %{buildroot} -iname direct_url.json | xargs -r rm -rf
|
||||
|
||||
chmod 755 %{buildroot}%{_bindir}/anki
|
||||
|
||||
%fdupes %_libdir/python*/site-packages/_aqt/data/
|
||||
|
||||
|
||||
%files
|
||||
%license LICENSE*
|
||||
@@ -58,13 +54,13 @@ chmod 755 %{buildroot}%{_bindir}/anki
|
||||
%{_bindir}/anki
|
||||
%{_datadir}/applications/anki.desktop
|
||||
%{_datadir}/pixmaps/anki.png
|
||||
%_libdir/python*/site-packages/aqt/
|
||||
%_libdir/python*/site-packages/aqt-%{version}.dist-info/
|
||||
%_libdir/python*/site-packages/_aqt/
|
||||
%_libdir/python*/site-packages/anki/
|
||||
%_libdir/python*/site-packages/anki-%{version}.dist-info/
|
||||
/usr/lib64/python*/site-packages/aqt/
|
||||
/usr/lib64/python*/site-packages/aqt-%{version}.dist-info/
|
||||
/usr/lib64/python*/site-packages/_aqt/
|
||||
/usr/lib64/python*/site-packages/anki/
|
||||
/usr/lib64/python*/site-packages/anki-%{version}.dist-info/
|
||||
|
||||
|
||||
%changelog
|
||||
* Tue Jan 3 2023 windowsboy111 <windowsboy111@fyralabs.com> - 2.1.60
|
||||
* Tue Jan 3 2023 windowsboy111 <windowsboy111@fyralabs.com>
|
||||
- Initial package
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "armcord-bin.spec"
|
||||
}
|
||||
}
|
||||
@@ -1,72 +0,0 @@
|
||||
%define debug_package %nil
|
||||
|
||||
%ifarch x86_64
|
||||
%global src ArmCord-%version
|
||||
%elifarch aarch64
|
||||
%global src ArmCord-%version-arm64
|
||||
%elifarch armv7l
|
||||
%global src ArmCord-%version-armv7l
|
||||
%endif
|
||||
|
||||
Name: armcord-bin
|
||||
Version: 3.2.0
|
||||
Release: 2%{?dist}
|
||||
License: OSL-3.0
|
||||
Summary: Custom lightweight Discord client designed to enhance your experience
|
||||
URL: https://github.com/ArmCord/ArmCord
|
||||
Group: Applications/Internet
|
||||
Source0: %url/releases/download/v%version/%src.tar.gz
|
||||
Source1: armcord.png
|
||||
Source2: https://raw.githubusercontent.com/ArmCord/ArmCord/v%version/README.md
|
||||
Requires: electron xdg-utils
|
||||
ExclusiveArch: x86_64 aarch64 armv7l
|
||||
Conflicts: armcord
|
||||
|
||||
%description
|
||||
ArmCord is a custom client designed to enhance your Discord experience
|
||||
while keeping everything lightweight.
|
||||
|
||||
%prep
|
||||
%autosetup -n %src
|
||||
|
||||
cat <<EOF > .armcord.desktop
|
||||
[Desktop Entry]
|
||||
Name=ArmCord
|
||||
Comment=%summary
|
||||
GenericName=Internet Messenger
|
||||
Type=Application
|
||||
Exec=%_bindir/armcord
|
||||
Icon=armcord
|
||||
Categories=Network;InstantMessaging;
|
||||
StartupWMClass=armcord
|
||||
Keywords=discord;armcord;vencord;shelter;electron;
|
||||
EOF
|
||||
|
||||
%build
|
||||
|
||||
%install
|
||||
mkdir -p %buildroot%_bindir %buildroot%_datadir/applications %buildroot%_datadir/pixmaps %buildroot%_datadir/armcord %buildroot%_docdir/%name
|
||||
cp -a * %buildroot%_datadir/armcord/
|
||||
ln -s %_datadir/armcord/armcord %buildroot%_bindir/armcord
|
||||
chmod +x -R %buildroot%_datadir/armcord/*
|
||||
chmod 755 %buildroot%_datadir/armcord/armcord
|
||||
install -Dm644 .armcord.desktop %buildroot%_datadir/applications/ArmCord.desktop
|
||||
install -Dm644 %SOURCE1 %buildroot%_datadir/pixmaps/armcord.png
|
||||
install -Dm644 %SOURCE2 %buildroot%_docdir/%name/
|
||||
|
||||
%files
|
||||
%doc README.md
|
||||
%_datadir/armcord
|
||||
%_bindir/armcord
|
||||
%_datadir/applications/ArmCord.desktop
|
||||
%_datadir/pixmaps/armcord.png
|
||||
|
||||
%changelog
|
||||
* Sat Jun 17 2023 windowsboy111 <windowsboy111@fyralabs.com> - 3.2.0-2
|
||||
- Remove libnotify dependency.
|
||||
- Fix desktop entry.
|
||||
- Set as noarch package because there are not binary files.
|
||||
- Use /usr/share/ instead of /opt/
|
||||
|
||||
* Sat May 6 2023 windowsboy111 <windowsboy111@fyralabs.com> - 3.1.7-1
|
||||
- Initial package
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 81 KiB |
@@ -1 +0,0 @@
|
||||
rpm.version(gh("ArmCord/ArmCord"));
|
||||
@@ -1,6 +0,0 @@
|
||||
project pkg {
|
||||
arches = ["x86_64"]
|
||||
rpm {
|
||||
spec = "armcord.spec"
|
||||
}
|
||||
}
|
||||
@@ -1,66 +0,0 @@
|
||||
%define debug_package %nil
|
||||
|
||||
Name: armcord
|
||||
Version: 3.2.0
|
||||
Release: 2%{?dist}
|
||||
License: OSL-3.0
|
||||
Summary: Custom lightweight Discord client designed to enhance your experience
|
||||
URL: https://github.com/ArmCord/ArmCord
|
||||
Group: Applications/Internet
|
||||
Source0: %url/archive/refs/tags/v%version.tar.gz
|
||||
Source1: launch.sh
|
||||
Requires: electron xdg-utils
|
||||
BuildRequires: nodejs-npm
|
||||
Conflicts: armcord-bin
|
||||
BuildArch: noarch
|
||||
|
||||
%description
|
||||
ArmCord is a custom client designed to enhance your Discord experience
|
||||
while keeping everything lightweight.
|
||||
|
||||
%prep
|
||||
%autosetup -n ArmCord-%version
|
||||
|
||||
cat <<EOF > armcord.desktop
|
||||
[Desktop Entry]
|
||||
Name=ArmCord
|
||||
Comment=%summary
|
||||
GenericName=Internet Messenger
|
||||
Type=Application
|
||||
Exec=/usr/bin/armcord
|
||||
Icon=armcord
|
||||
Categories=Network;InstantMessaging;
|
||||
StartupWMClass=armcord
|
||||
Keywords=discord;armcord;vencord;shelter;electron;
|
||||
EOF
|
||||
|
||||
|
||||
%build
|
||||
npx pnpm@7 install --frozen-lockfile --ignore-scripts
|
||||
npm run packageQuick
|
||||
|
||||
|
||||
%install
|
||||
install -Dm644 dist/*-unpacked/resources/app.asar %buildroot/usr/share/armcord/app.asar
|
||||
|
||||
install -Dm755 %SOURCE1 %buildroot/usr/bin/armcord
|
||||
install -Dm644 armcord.desktop %buildroot/usr/share/applications/ArmCord.desktop
|
||||
install -Dm644 build/icon.png %buildroot/usr/share/pixmaps/armcord.png
|
||||
|
||||
%files
|
||||
%doc README.md
|
||||
%license LICENSE
|
||||
/usr/bin/armcord
|
||||
/usr/share/applications/ArmCord.desktop
|
||||
/usr/share/pixmaps/armcord.png
|
||||
/usr/share/armcord/app.asar
|
||||
|
||||
%changelog
|
||||
* Sat Jun 17 2023 windowsboy111 <windowsboy111@fyralabs.com> - 3.2.0-2
|
||||
- Remove libnotify dependency.
|
||||
- Fix desktop entry.
|
||||
- Set as noarch package because there are not binary files.
|
||||
|
||||
* Sat May 6 2023 windowsboy111 <windowsboy111@fyralabs.com> - 3.1.7-1
|
||||
- Initial package
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
#!/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 +0,0 @@
|
||||
rpm.version(gh("ArmCord/ArmCord"));
|
||||
@@ -1,5 +1,5 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "authy.spec"
|
||||
}
|
||||
rpm {
|
||||
spec = "authy.spec"
|
||||
}
|
||||
}
|
||||
|
||||
+17
-23
@@ -1,13 +1,13 @@
|
||||
Name: authy
|
||||
Version: 2.3.0
|
||||
Version: 2.2.2
|
||||
Release: 2%{?dist}
|
||||
Summary: Two factor authentication desktop application
|
||||
License: Unlicense
|
||||
License: Unknown
|
||||
URL: https://authy.com/
|
||||
Source0: https://api.snapcraft.io/api/v1/snaps/download/H8ZpNgIoPyvmkgxOWw5MSzsXK1wRZiHn_19.snap
|
||||
Source0: https://api.snapcraft.io/api/v1/snaps/download/H8ZpNgIoPyvmkgxOWw5MSzsXK1wRZiHn_12.snap
|
||||
Requires: gtk3
|
||||
Requires: nss
|
||||
BuildRequires: squashfs-tools desktop-file-utils
|
||||
BuildRequires: squashfs-tools
|
||||
|
||||
%description
|
||||
%{summary}.
|
||||
@@ -18,30 +18,24 @@ unsquashfs -q -f -d snap %{SOURCE0}
|
||||
%build
|
||||
|
||||
%install
|
||||
install -d %buildroot%_datadir/authy
|
||||
cp -r snap/. %buildroot%_datadir/authy
|
||||
install -d "%{buildroot}/opt/authy"
|
||||
cp -r "snap/." "%{buildroot}/opt/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
|
||||
sed -i 's|${SNAP}/meta/gui/icon.png|authy|g' "%{buildroot}/opt/authy/meta/gui/authy.desktop"
|
||||
install -Dm644 "%{buildroot}/opt/authy/meta/gui/authy.desktop" -t "%{buildroot}/usr/share/applications"
|
||||
install -Dm644 "%{buildroot}/opt/authy/meta/gui/icon.png" "%{buildroot}/usr/share/pixmaps/authy.png"
|
||||
|
||||
rm -rf %buildroot%_datadir/authy/{data-dir,gnome-platform,lib,meta,scripts,usr,*.sh}
|
||||
rm -rf "%{buildroot}/opt/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
|
||||
install -d "%{buildroot}/usr/bin"
|
||||
ln -s "/opt/authy/authy" "%{buildroot}/usr/bin"
|
||||
|
||||
%files
|
||||
%_datadir/authy/
|
||||
%_bindir/authy
|
||||
%_datadir/applications/authy.desktop
|
||||
%_datadir/pixmaps/authy.png
|
||||
/opt/authy/
|
||||
/usr/bin/authy
|
||||
/usr/share/applications/authy.desktop
|
||||
/usr/share/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
|
||||
* Sat Oct 15 2022 windowsboy111 <windowsboy111@fyralabs.com>
|
||||
- Initial release
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
project pkg {
|
||||
arches = ["x86_64"]
|
||||
rpm {
|
||||
spec = "discord-canary-openasar.spec"
|
||||
}
|
||||
rpm {
|
||||
spec = "discord-canary-openasar.spec"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,24 +1,19 @@
|
||||
%define debug_package %{nil}
|
||||
|
||||
Name: discord-canary-openasar
|
||||
Version: 0.0.161
|
||||
Version: 0.0.147
|
||||
Release: 1%{?dist}
|
||||
Summary: A snappier Discord rewrite with features like further customization and theming
|
||||
License: MIT AND https://discord.com/terms
|
||||
Summary: OpenAsar is a rewrite of part of Discord's desktop code, making it snappier and include more features like further customization and theming
|
||||
License: MIT and https://discord.com/terms
|
||||
URL: https://github.com/GooseMod/OpenAsar
|
||||
Source0: https://dl-canary.discordapp.net/apps/linux/%{version}/discord-canary-%{version}.tar.gz
|
||||
Source1: %{url}/releases/download/nightly/app.asar
|
||||
Group: Applications/Internet
|
||||
Requires: glibc GConf2
|
||||
Requires: nspr >= 4.13
|
||||
Requires: nss >= 3.27
|
||||
Requires: libX11 >= 1.6
|
||||
Requires: libXtst >= 1.2
|
||||
Requires: libatomic, glibc, alsa-lib, GConf2, libnotify, nspr >= 4.13, nss >= 3.27, libstdc++, libX11 >= 1.6, libXtst >= 1.2, libappindicator, libcxx, libXScrnSaver
|
||||
ExclusiveArch: x86_64
|
||||
|
||||
%description
|
||||
OpenAsar is a rewrite of part of Discord's desktop code, making it snappier and
|
||||
include more features like further customization and theming.
|
||||
%{summary}.
|
||||
|
||||
%prep
|
||||
%autosetup -n DiscordCanary
|
||||
@@ -33,8 +28,8 @@ mkdir -p %{buildroot}%{_datadir}/discord-canary-openasar
|
||||
cp -rv * %{buildroot}%{_datadir}/discord-canary-openasar
|
||||
mkdir -p %{buildroot}%{_datadir}/applications/
|
||||
mkdir -p %{buildroot}%{_datadir}/pixmaps
|
||||
ln -s %_datadir/discord-canary-openasar/discord-canary.desktop %{buildroot}%{_datadir}/applications/discord-canary-openasar.desktop
|
||||
ln -s %_datadir/discord-canary-openasar/discord.png %{buildroot}%{_datadir}/pixmaps/discord-canary-openasar.png
|
||||
install discord-canary.desktop %{buildroot}%{_datadir}/applications/discord-canary-openasar.desktop
|
||||
install discord.png %{buildroot}%{_datadir}/pixmaps/discord-canary-openasar.png
|
||||
cp -v %{SOURCE1} %{buildroot}%{_datadir}/discord-canary-openasar/resources/app.asar
|
||||
chmod o+w %{buildroot}%{_datadir}/discord-canary-openasar/resources -R
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
project pkg {
|
||||
arches = ["x86_64"]
|
||||
rpm {
|
||||
spec = "discord-canary.spec"
|
||||
}
|
||||
rpm {
|
||||
spec = "discord-canary.spec"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,33 +1,32 @@
|
||||
%define debug_package %{nil}
|
||||
|
||||
Name: discord-canary
|
||||
Version: 0.0.161
|
||||
Version: 0.0.147
|
||||
Release: 1%{?dist}
|
||||
Summary: Free Voice and Text Chat for Gamers
|
||||
Summary: Free Voice and Text Chat for Gamers.
|
||||
URL: discord.com
|
||||
Source0: https://dl-canary.discordapp.net/apps/linux/%{version}/discord-canary-%{version}.tar.gz
|
||||
License: https://discord.com/terms
|
||||
Requires: glibc GConf2 nspr >= 4.13 nss >= 3.27 libX11 >= 1.6 libXtst >= 1.2
|
||||
Requires: libatomic, glibc, alsa-lib, GConf2, libnotify, nspr >= 4.13, nss >= 3.27, libstdc++, libX11 >= 1.6, libXtst >= 1.2, libappindicator, libcxx, libXScrnSaver
|
||||
Group: Applications/Internet
|
||||
ExclusiveArch: x86_64
|
||||
%description
|
||||
Imagine a place where you can belong to a school club, a gaming group, or a
|
||||
worldwide art community. Where just you and a handful of friends can spend time
|
||||
together. A place that makes it easy to talk every day and hang out more often.
|
||||
Imagine a place where you can belong to a school club, a gaming group, or a worldwide art community. Where just you and a handful of friends can spend time together. A place that makes it easy to talk every day and hang out more often.
|
||||
|
||||
%prep
|
||||
%autosetup -n DiscordCanary
|
||||
|
||||
%build
|
||||
|
||||
|
||||
%install
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
mkdir -p %{buildroot}%{_datadir}/discord-canary
|
||||
cp -rv * %{buildroot}%{_datadir}/discord-canary
|
||||
mkdir -p %{buildroot}%{_datadir}/applications/
|
||||
mkdir -p %{buildroot}%{_datadir}/pixmaps
|
||||
ln -s %_datadir/discord-canary/discord-canary.desktop %{buildroot}%{_datadir}/applications/
|
||||
ln -s %_datadir/discord-canary/discord.png %{buildroot}%{_datadir}/pixmaps/discord-canary.png
|
||||
install discord-canary.desktop %{buildroot}%{_datadir}/applications/discord-canary.desktop
|
||||
install discord.png %{buildroot}%{_datadir}/pixmaps/discord-canary.png
|
||||
|
||||
%files
|
||||
%{_datadir}/discord-canary/
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
project pkg {
|
||||
arches = ["x86_64"]
|
||||
rpm {
|
||||
spec = "discord-openasar.spec"
|
||||
}
|
||||
|
||||
@@ -1,24 +1,19 @@
|
||||
%define debug_package %{nil}
|
||||
|
||||
Name: discord-openasar
|
||||
Version: 0.0.27
|
||||
Release: 2%{?dist}
|
||||
Summary: A snappier Discord rewrite with features like further customization and theming
|
||||
License: MIT AND https://discord.com/terms
|
||||
Version: 0.0.24
|
||||
Release: 1%{?dist}
|
||||
Summary: OpenAsar is a rewrite of part of Discord's desktop code, making it snappier and include more features like further customization and theming
|
||||
License: MIT and https://discord.com/terms
|
||||
URL: https://github.com/GooseMod/OpenAsar
|
||||
Source0: https://dl.discordapp.net/apps/linux/%{version}/discord-%{version}.tar.gz
|
||||
Source1: %{url}/releases/download/nightly/app.asar
|
||||
Group: Applications/Internet
|
||||
Requires: glibc GConf2
|
||||
Requires: nspr >= 4.13
|
||||
Requires: nss >= 3.27
|
||||
Requires: libX11 >= 1.6
|
||||
Requires: libXtst >= 1.2
|
||||
Requires: libatomic, glibc, alsa-lib, GConf2, libnotify, nspr >= 4.13, nss >= 3.27, libstdc++, libX11 >= 1.6, libXtst >= 1.2, libappindicator, libcxx, libXScrnSaver
|
||||
ExclusiveArch: x86_64
|
||||
|
||||
%description
|
||||
OpenAsar is a rewrite of part of Discord's desktop code, making it snappier and
|
||||
include more features like further customization and theming.
|
||||
%{summary}.
|
||||
|
||||
%prep
|
||||
%autosetup -n Discord
|
||||
@@ -33,8 +28,8 @@ mkdir -p %{buildroot}%{_datadir}/discord-openasar
|
||||
cp -rv * %{buildroot}%{_datadir}/discord-openasar
|
||||
mkdir -p %{buildroot}%{_datadir}/applications/
|
||||
mkdir -p %{buildroot}%{_datadir}/pixmaps
|
||||
ln -s %_datadir/discord-openasar/discord.desktop %{buildroot}%{_datadir}/applications/discord-openasar.desktop
|
||||
ln -s %_datadir/discord-openasar/discord.png %{buildroot}%{_datadir}/pixmaps/discord-openasar.png
|
||||
install discord.desktop %{buildroot}%{_datadir}/applications/discord-openasar.desktop
|
||||
install discord.png %{buildroot}%{_datadir}/pixmaps/discord-openasar.png
|
||||
cp -v %{SOURCE1} %{buildroot}%{_datadir}/discord-openasar/resources/app.asar
|
||||
chmod o+w %{buildroot}%{_datadir}/discord-openasar/resources -R
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
project pkg {
|
||||
arches = ["x86_64"]
|
||||
rpm {
|
||||
spec = "discord-ptb-openasar.spec"
|
||||
}
|
||||
rpm {
|
||||
spec = "discord-ptb-openasar.spec"
|
||||
update = ""
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,24 +1,19 @@
|
||||
%define debug_package %{nil}
|
||||
|
||||
Name: discord-ptb-openasar
|
||||
Version: 0.0.43
|
||||
Version: 0.0.39
|
||||
Release: 1%{?dist}
|
||||
Summary: A snappier Discord rewrite with features like further customization and theming
|
||||
License: MIT AND https://discord.com/terms
|
||||
Summary: OpenAsar is a rewrite of part of Discord's desktop code, making it snappier and include more features like further customization and theming
|
||||
License: MIT and https://discord.com/terms
|
||||
URL: https://github.com/GooseMod/OpenAsar
|
||||
Source0: https://dl-ptb.discordapp.net/apps/linux/%{version}/discord-ptb-%{version}.tar.gz
|
||||
Source1: %{url}/releases/download/nightly/app.asar
|
||||
Group: Applications/Internet
|
||||
Requires: glibc GConf2
|
||||
Requires: nspr >= 4.13
|
||||
Requires: nss >= 3.27
|
||||
Requires: libX11 >= 1.6
|
||||
Requires: libXtst >= 1.2
|
||||
Requires: libatomic, glibc, alsa-lib, GConf2, libnotify, nspr >= 4.13, nss >= 3.27, libstdc++, libX11 >= 1.6, libXtst >= 1.2, libappindicator, libcxx, libXScrnSaver
|
||||
ExclusiveArch: x86_64
|
||||
|
||||
%description
|
||||
OpenAsar is a rewrite of part of Discord's desktop code, making it snappier and
|
||||
include more features like further customization and theming.
|
||||
%{summary}.
|
||||
|
||||
%prep
|
||||
%autosetup -n DiscordPTB
|
||||
@@ -33,8 +28,6 @@ mkdir -p %{buildroot}%{_datadir}/discord-ptb-openasar
|
||||
cp -rv * %{buildroot}%{_datadir}/discord-ptb-openasar
|
||||
mkdir -p %{buildroot}%{_datadir}/applications/
|
||||
mkdir -p %{buildroot}%{_datadir}/pixmaps
|
||||
ln -s %_datadir/discord-ptb-openasar/discord-ptb.desktop %{buildroot}%{_datadir}/applications/discord-ptb-openasar.desktop
|
||||
ln -s %_datadir/discord-ptb-openasar/discord.png %{buildroot}%{_datadir}/pixmaps/discord-ptb-openasar.png
|
||||
install discord-ptb.desktop %{buildroot}%{_datadir}/applications/discord-ptb-openasar.desktop
|
||||
install discord.png %{buildroot}%{_datadir}/pixmaps/discord-ptb-openasar.png
|
||||
cp -v %{SOURCE1} %{buildroot}%{_datadir}/discord-ptb-openasar/resources/app.asar
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
project pkg {
|
||||
arches = ["x86_64"]
|
||||
rpm {
|
||||
spec = "discord-ptb.spec"
|
||||
}
|
||||
rpm {
|
||||
spec = "discord-ptb.spec"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,23 +1,17 @@
|
||||
%define debug_package %{nil}
|
||||
|
||||
Name: discord-ptb
|
||||
Version: 0.0.43
|
||||
Version: 0.0.39
|
||||
Release: 1%{?dist}
|
||||
Summary: Free Voice and Text Chat for Gamers.
|
||||
URL: https://discord.com
|
||||
URL: discord.com
|
||||
Source0: https://dl-ptb.discordapp.net/apps/linux/%{version}/discord-ptb-%{version}.tar.gz
|
||||
License: https://discord.com/terms
|
||||
Requires: glibc GConf2
|
||||
Requires: nspr >= 4.13
|
||||
Requires: nss >= 3.27
|
||||
Requires: libX11 >= 1.6
|
||||
Requires: libXtst >= 1.2
|
||||
Requires: libatomic, glibc, alsa-lib, GConf2, libnotify, nspr >= 4.13, nss >= 3.27, libstdc++, libX11 >= 1.6, libXtst >= 1.2, libappindicator, libcxx, libXScrnSaver
|
||||
Group: Applications/Internet
|
||||
ExclusiveArch: x86_64
|
||||
%description
|
||||
Imagine a place where you can belong to a school club, a gaming group, or a
|
||||
worldwide art community. Where just you and a handful of friends can spend time
|
||||
together. A place that makes it easy to talk every day and hang out more often.
|
||||
Imagine a place where you can belong to a school club, a gaming group, or a worldwide art community. Where just you and a handful of friends can spend time together. A place that makes it easy to talk every day and hang out more often.
|
||||
|
||||
%prep
|
||||
%autosetup -n DiscordPTB
|
||||
@@ -30,8 +24,8 @@ mkdir -p %{buildroot}%{_datadir}/discord-ptb
|
||||
cp -rv * %{buildroot}%{_datadir}/discord-ptb
|
||||
mkdir -p %{buildroot}%{_datadir}/applications/
|
||||
mkdir -p %{buildroot}%{_datadir}/pixmaps
|
||||
ln -s %_datadir/discord-ptb/discord-ptb.desktop %{buildroot}%{_datadir}/applications/
|
||||
ln -s %_datadir/discord-ptb/discord.png %{buildroot}%{_datadir}/pixmaps/discord-ptb.png
|
||||
install discord-ptb.desktop %{buildroot}%{_datadir}/applications/discord-ptb.desktop
|
||||
install discord.png %{buildroot}%{_datadir}/pixmaps/discord-ptb.png
|
||||
|
||||
%files
|
||||
%{_datadir}/discord-ptb/
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
project pkg {
|
||||
arches = ["x86_64"]
|
||||
rpm {
|
||||
spec = "discord.spec"
|
||||
}
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
%define debug_package %{nil}
|
||||
|
||||
Name: discord
|
||||
Version: 0.0.27
|
||||
Release: 2%{?dist}
|
||||
Summary: Free Voice and Text Chat for Gamers
|
||||
URL: https://discord.com
|
||||
Version: 0.0.24
|
||||
Release: 1%{?dist}
|
||||
Summary: Free Voice and Text Chat for Gamers.
|
||||
URL: discord.com
|
||||
Source0: https://dl.discordapp.net/apps/linux/%{version}/discord-%{version}.tar.gz
|
||||
License: https://discord.com/terms
|
||||
Requires: glibc GConf2
|
||||
Requires: libatomic glibc alsa-lib GConf2 libnotify libstdc++ libappindicator libcxx libXScrnSaver
|
||||
Requires: nspr >= 4.13
|
||||
Requires: nss >= 3.27
|
||||
Requires: libX11 >= 1.6
|
||||
@@ -15,9 +15,10 @@ Requires: libXtst >= 1.2
|
||||
Group: Applications/Internet
|
||||
ExclusiveArch: x86_64
|
||||
%description
|
||||
Imagine a place where you can belong to a school club, a gaming group, or a
|
||||
worldwide art community. Where just you and a handful of friends can spend time
|
||||
together. A place that makes it easy to talk every day and hang out more often.
|
||||
Imagine a place where you can belong to a school club, a gaming group,
|
||||
or a worldwide art community. Where just you and a handful of friends
|
||||
can spend time together. A place that makes it easy to talk every day
|
||||
and hang out more often.
|
||||
|
||||
%prep
|
||||
%autosetup -n Discord
|
||||
@@ -30,8 +31,8 @@ mkdir -p %{buildroot}%{_datadir}/discord
|
||||
cp -rv * %{buildroot}%{_datadir}/discord
|
||||
mkdir -p %{buildroot}%{_datadir}/applications/
|
||||
mkdir -p %{buildroot}%{_datadir}/pixmaps
|
||||
ln -s %_datadir/discord/discord.desktop %{buildroot}%{_datadir}/applications/discord.desktop
|
||||
ln -s %_datadir/discord/discord.png %{buildroot}%{_datadir}/pixmaps/discord.png
|
||||
install discord.desktop %{buildroot}%{_datadir}/applications/discord.desktop
|
||||
install discord.png %{buildroot}%{_datadir}/pixmaps/discord.png
|
||||
|
||||
%files
|
||||
%{_datadir}/discord/
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "lomiri-system-settings.spec"
|
||||
}
|
||||
}
|
||||
@@ -1,94 +0,0 @@
|
||||
%global forgeurl https://gitlab.com/ubports/development/core/lomiri-system-settings
|
||||
%global commit 890b72e8689a90289522f374534b06f85cde9ddb
|
||||
%forgemeta
|
||||
|
||||
Name: lomiri-system-settings
|
||||
Version: 1.0.1
|
||||
Release: %autorelease
|
||||
Summary: The system settings application for Lomiri
|
||||
License: GPLv3
|
||||
URL: https://gitlab.com/ubports/development/core/lomiri-system-settings
|
||||
Source0: %{url}/-/archive/%commit/lomiri-system-settings-%commit.tar.gz
|
||||
Patch0: https://sources.debian.org/data/main/l/lomiri-system-settings/1.0.1-2/debian/patches/1001_use-maliit-keyboard-for-language-plugin.patch
|
||||
Patch1: https://sources.debian.org/data/main/l/lomiri-system-settings/1.0.1-2/debian/patches/2001_disable-current-language-switching.patch
|
||||
|
||||
BuildRequires: cmake
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: pkgconfig(upower-glib)
|
||||
BuildRequires: pkgconfig(accountsservice)
|
||||
BuildRequires: pkgconfig(geonames)
|
||||
BuildRequires: pkgconfig(icu-i18n)
|
||||
#BuildRequires: pkgconfig(libandroid-properties)
|
||||
BuildRequires: pkgconfig(click-0.4)
|
||||
BuildRequires: pkgconfig(gsettings-qt)
|
||||
BuildRequires: pkgconfig(QtGui)
|
||||
BuildRequires: pkgconfig(gnome-desktop-3.0)
|
||||
BuildRequires: pkgconfig(libqtdbusmock-1)
|
||||
BuildRequires: pkgconfig(libqtdbustest-1)
|
||||
BuildRequires: cmake(QmlPlugins)
|
||||
BuildRequires: cmake(Qt5Concurrent)
|
||||
BuildRequires: cmake(Qt5Qml)
|
||||
BuildRequires: qt5-qtbase-private-devel
|
||||
Recommends: suru-icon-theme
|
||||
Requires: maliit-keyboard
|
||||
Requires: ayatana-indicator-datetime
|
||||
Requires: lomiri-settings-components
|
||||
|
||||
%description
|
||||
The system settings application (and library) for the Lomiri desktop enviroment.
|
||||
|
||||
%package devel
|
||||
Summary: Development files for %{name}
|
||||
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||
|
||||
%description devel
|
||||
The %{name}-devel package contains libraries and header files for
|
||||
developing applications that use %{name}.
|
||||
|
||||
%prep
|
||||
%autosetup -n lomiri-system-settings-%commit -p1
|
||||
|
||||
%build
|
||||
%cmake
|
||||
%cmake_build
|
||||
|
||||
%install
|
||||
%cmake_install
|
||||
%find_lang %{name}
|
||||
|
||||
%files -f %{name}.lang
|
||||
%doc README.md
|
||||
%license COPYING
|
||||
%{_bindir}/lomiri-system-settings
|
||||
%{_libdir}/libLomiriSystemSettings.so.*
|
||||
%{_libdir}/libLomiriSystemSettingsPrivate.so.*
|
||||
%dir %{_libdir}/lomiri-system-settings
|
||||
%{_libdir}/lomiri-system-settings/*.so
|
||||
%dir %{_libdir}/lomiri-system-settings/private
|
||||
%dir %{_libdir}/lomiri-system-settings/private/Lomiri
|
||||
%{_libdir}/lomiri-system-settings/private/Lomiri/SystemSettings/
|
||||
%{_datadir}/applications/lomiri-system-settings.desktop
|
||||
%{_datadir}/glib-2.0/schemas/com.lomiri.lomiri-system-settings.gschema.xml
|
||||
%dir %{_datadir}/lomiri-system-settings
|
||||
%{_datadir}/lomiri-system-settings/*.settings
|
||||
%{_datadir}/lomiri-system-settings/*.svg
|
||||
%{_datadir}/lomiri-system-settings/*.png
|
||||
%{_datadir}/lomiri-system-settings/url-map.ini
|
||||
%dir %{_datadir}/lomiri-system-settings/icons
|
||||
%{_datadir}/lomiri-system-settings/icons/*.svg
|
||||
%{_datadir}/lomiri-system-settings/qml-plugins/
|
||||
%{_datadir}/lomiri-url-dispatcher/urls/lomiri-system-settings.url-dispatcher
|
||||
|
||||
%files devel
|
||||
%dir %{_includedir}/LomiriSystemSettings
|
||||
%{_includedir}/LomiriSystemSettings/*.h
|
||||
%{_includedir}/LomiriSystemSettings/ItemBase
|
||||
%{_includedir}/LomiriSystemSettings/PluginInterface
|
||||
%dir %{_includedir}/LomiriSystemSettings/private
|
||||
%{_includedir}/LomiriSystemSettings/private/*.h
|
||||
%{_libdir}/libLomiriSystemSettings.so
|
||||
%{_libdir}/libLomiriSystemSettingsPrivate.so
|
||||
%{_libdir}/pkgconfig/LomiriSystemSettings.pc
|
||||
|
||||
%changelog
|
||||
%autochangelog
|
||||
@@ -1,3 +0,0 @@
|
||||
let o = get("https://gitlab.com/api/v4/projects/25770177/repository/tags").json_arr()[0];
|
||||
rpm.version(o.name);
|
||||
rpm.global("commit", get("https://gitlab.com/api/v4/projects/25770177/repository/commits").json_arr()[0].id);
|
||||
@@ -1,103 +0,0 @@
|
||||
From 04d3a21c6e72cd5574f7333adf548012d912c1ee Mon Sep 17 00:00:00 2001
|
||||
From: Neal Gompa <neal@gompa.dev>
|
||||
Date: Sat, 7 Jan 2023 23:15:13 -0500
|
||||
Subject: [PATCH 1/3] UI: Consistently reference the software H264 encoder
|
||||
properly
|
||||
|
||||
The code here assumes that the only software encoder is the x264-based
|
||||
H.264 encoder. That may not always remain true. This change adjusts
|
||||
the encoder string to indicate that it's an H.264 encoder from x264.
|
||||
---
|
||||
UI/data/locale/en-US.ini | 4 ++--
|
||||
UI/window-basic-auto-config-test.cpp | 6 +++---
|
||||
UI/window-basic-settings-stream.cpp | 2 +-
|
||||
UI/window-basic-settings.cpp | 7 ++++---
|
||||
4 files changed, 10 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/UI/data/locale/en-US.ini b/UI/data/locale/en-US.ini
|
||||
index 4c03aa7db..e44d99660 100644
|
||||
--- a/UI/data/locale/en-US.ini
|
||||
+++ b/UI/data/locale/en-US.ini
|
||||
@@ -980,7 +980,7 @@ Basic.Settings.Output.Simple.Warn.Encoder="Warning: Recording with a software en
|
||||
Basic.Settings.Output.Simple.Warn.Lossless="Warning: Lossless quality generates tremendously large file sizes! Lossless quality can use upward of 7 gigabytes of disk space per minute at high resolutions and framerates. Lossless is not recommended for long recordings unless you have a very large amount of disk space available."
|
||||
Basic.Settings.Output.Simple.Warn.Lossless.Msg="Are you sure you want to use lossless quality?"
|
||||
Basic.Settings.Output.Simple.Warn.Lossless.Title="Lossless quality warning!"
|
||||
-Basic.Settings.Output.Simple.Encoder.Software="Software (x264)"
|
||||
+Basic.Settings.Output.Simple.Encoder.Software.X264.H264="Software (x264)"
|
||||
Basic.Settings.Output.Simple.Encoder.Hardware.QSV.H264="Hardware (QSV, H.264)"
|
||||
Basic.Settings.Output.Simple.Encoder.Hardware.QSV.AV1="Hardware (QSV, AV1)"
|
||||
Basic.Settings.Output.Simple.Encoder.Hardware.AMD.H264="Hardware (AMD, H.264)"
|
||||
@@ -991,7 +991,7 @@ Basic.Settings.Output.Simple.Encoder.Hardware.NVENC.AV1="Hardware (NVENC, AV1)"
|
||||
Basic.Settings.Output.Simple.Encoder.Hardware.NVENC.HEVC="Hardware (NVENC, HEVC)"
|
||||
Basic.Settings.Output.Simple.Encoder.Hardware.Apple.H264="Hardware (Apple, H.264)"
|
||||
Basic.Settings.Output.Simple.Encoder.Hardware.Apple.HEVC="Hardware (Apple, HEVC)"
|
||||
-Basic.Settings.Output.Simple.Encoder.SoftwareLowCPU="Software (x264 low CPU usage preset, increases file size)"
|
||||
+Basic.Settings.Output.Simple.Encoder.SoftwareLowCPU.X264.H264="Software (x264 low CPU usage preset, increases file size)"
|
||||
Basic.Settings.Output.Simple.Codec.AAC="AAC"
|
||||
Basic.Settings.Output.Simple.Codec.AAC.Default="AAC (Default)"
|
||||
Basic.Settings.Output.Simple.Codec.Opus="Opus"
|
||||
diff --git a/UI/window-basic-auto-config-test.cpp b/UI/window-basic-auto-config-test.cpp
|
||||
index 2d89d7347..09979c031 100644
|
||||
--- a/UI/window-basic-auto-config-test.cpp
|
||||
+++ b/UI/window-basic-auto-config-test.cpp
|
||||
@@ -993,7 +993,7 @@ void AutoConfigTestPage::TestRecordingEncoderThread()
|
||||
}
|
||||
|
||||
#define ENCODER_TEXT(x) "Basic.Settings.Output.Simple.Encoder." x
|
||||
-#define ENCODER_SOFTWARE ENCODER_TEXT("Software")
|
||||
+#define ENCODER_X264 ENCODER_TEXT("Software.X264.H264")
|
||||
#define ENCODER_NVENC ENCODER_TEXT("Hardware.NVENC.H264")
|
||||
#define ENCODER_QSV ENCODER_TEXT("Hardware.QSV.H264")
|
||||
#define ENCODER_AMD ENCODER_TEXT("Hardware.AMD.H264")
|
||||
@@ -1033,7 +1033,7 @@ void AutoConfigTestPage::FinalizeResults()
|
||||
auto encName = [](AutoConfig::Encoder enc) -> QString {
|
||||
switch (enc) {
|
||||
case AutoConfig::Encoder::x264:
|
||||
- return QTStr(ENCODER_SOFTWARE);
|
||||
+ return QTStr(ENCODER_X264);
|
||||
case AutoConfig::Encoder::NVENC:
|
||||
return QTStr(ENCODER_NVENC);
|
||||
case AutoConfig::Encoder::QSV:
|
||||
@@ -1046,7 +1046,7 @@ void AutoConfigTestPage::FinalizeResults()
|
||||
return QTStr(QUALITY_SAME);
|
||||
}
|
||||
|
||||
- return QTStr(ENCODER_SOFTWARE);
|
||||
+ return QTStr(ENCODER_X264);
|
||||
};
|
||||
|
||||
auto newLabel = [this](const char *str) -> QLabel * {
|
||||
diff --git a/UI/window-basic-settings-stream.cpp b/UI/window-basic-settings-stream.cpp
|
||||
index f6e0817a0..b056938e7 100644
|
||||
--- a/UI/window-basic-settings-stream.cpp
|
||||
+++ b/UI/window-basic-settings-stream.cpp
|
||||
@@ -1585,7 +1585,7 @@ void OBSBasicSettings::ResetEncoders(bool streamOnly)
|
||||
|
||||
#define ENCODER_STR(str) QTStr("Basic.Settings.Output.Simple.Encoder." str)
|
||||
|
||||
- ui->simpleOutStrEncoder->addItem(ENCODER_STR("Software"),
|
||||
+ ui->simpleOutStrEncoder->addItem(ENCODER_STR("Software.X264.H264"),
|
||||
QString(SIMPLE_ENCODER_X264));
|
||||
if (service_supports_encoder(vcodecs, "obs_qsv11"))
|
||||
ui->simpleOutStrEncoder->addItem(
|
||||
diff --git a/UI/window-basic-settings.cpp b/UI/window-basic-settings.cpp
|
||||
index fb170bfc1..48bb4bac6 100644
|
||||
--- a/UI/window-basic-settings.cpp
|
||||
+++ b/UI/window-basic-settings.cpp
|
||||
@@ -5286,10 +5286,11 @@ void OBSBasicSettings::FillSimpleRecordingValues()
|
||||
ADD_QUALITY("HQ");
|
||||
ADD_QUALITY("Lossless");
|
||||
|
||||
- ui->simpleOutRecEncoder->addItem(ENCODER_STR("Software"),
|
||||
+ ui->simpleOutRecEncoder->addItem(ENCODER_STR("Software.X264.H264"),
|
||||
QString(SIMPLE_ENCODER_X264));
|
||||
- ui->simpleOutRecEncoder->addItem(ENCODER_STR("SoftwareLowCPU"),
|
||||
- QString(SIMPLE_ENCODER_X264_LOWCPU));
|
||||
+ ui->simpleOutRecEncoder->addItem(
|
||||
+ ENCODER_STR("SoftwareLowCPU.X264.H264"),
|
||||
+ QString(SIMPLE_ENCODER_X264_LOWCPU));
|
||||
if (EncoderAvailable("obs_qsv11"))
|
||||
ui->simpleOutRecEncoder->addItem(
|
||||
ENCODER_STR("Hardware.QSV.H264"),
|
||||
--
|
||||
2.39.2
|
||||
@@ -1,345 +0,0 @@
|
||||
From 4517d8d8bb4c43af1f5b757773a5f9550bd23d37 Mon Sep 17 00:00:00 2001
|
||||
From: Neal Gompa <neal@gompa.dev>
|
||||
Date: Sun, 26 Mar 2023 06:06:31 -0400
|
||||
Subject: [PATCH 2/3] obs-ffmpeg: Add initial support for the OpenH264 H.264
|
||||
software codec
|
||||
|
||||
This allows users to leverage the OpenH264 codec from Cisco to encode
|
||||
H.264 video content. It is significantly reduced in capability from
|
||||
alternatives, but it does the job.
|
||||
|
||||
This also provides a framework for adding support for other H.264
|
||||
software codecs provided through FFmpeg.
|
||||
---
|
||||
plugins/obs-ffmpeg/CMakeLists.txt | 1 +
|
||||
plugins/obs-ffmpeg/cmake/legacy.cmake | 1 +
|
||||
plugins/obs-ffmpeg/data/locale/en-US.ini | 3 +
|
||||
plugins/obs-ffmpeg/obs-ffmpeg-h264.c | 260 +++++++++++++++++++++++
|
||||
plugins/obs-ffmpeg/obs-ffmpeg.c | 2 +
|
||||
5 files changed, 267 insertions(+)
|
||||
create mode 100644 plugins/obs-ffmpeg/obs-ffmpeg-h264.c
|
||||
|
||||
diff --git a/plugins/obs-ffmpeg/CMakeLists.txt b/plugins/obs-ffmpeg/CMakeLists.txt
|
||||
index 3eba00932..f97622c22 100644
|
||||
--- a/plugins/obs-ffmpeg/CMakeLists.txt
|
||||
+++ b/plugins/obs-ffmpeg/CMakeLists.txt
|
||||
@@ -34,6 +34,7 @@ target_sources(
|
||||
obs-ffmpeg-video-encoders.c
|
||||
obs-ffmpeg-audio-encoders.c
|
||||
obs-ffmpeg-av1.c
|
||||
+ obs-ffmpeg-h264.c
|
||||
obs-ffmpeg-nvenc.c
|
||||
obs-ffmpeg-output.c
|
||||
obs-ffmpeg-mux.c
|
||||
diff --git a/plugins/obs-ffmpeg/cmake/legacy.cmake b/plugins/obs-ffmpeg/cmake/legacy.cmake
|
||||
index 5540676ea..62f2cc7a1 100644
|
||||
--- a/plugins/obs-ffmpeg/cmake/legacy.cmake
|
||||
+++ b/plugins/obs-ffmpeg/cmake/legacy.cmake
|
||||
@@ -40,6 +40,7 @@ target_sources(
|
||||
obs-ffmpeg-video-encoders.c
|
||||
obs-ffmpeg-audio-encoders.c
|
||||
obs-ffmpeg-av1.c
|
||||
+ obs-ffmpeg-h264.c
|
||||
obs-ffmpeg-nvenc.c
|
||||
obs-ffmpeg-output.c
|
||||
obs-ffmpeg-mux.c
|
||||
diff --git a/plugins/obs-ffmpeg/data/locale/en-US.ini b/plugins/obs-ffmpeg/data/locale/en-US.ini
|
||||
index 55bbe919d..0363ed82b 100644
|
||||
--- a/plugins/obs-ffmpeg/data/locale/en-US.ini
|
||||
+++ b/plugins/obs-ffmpeg/data/locale/en-US.ini
|
||||
@@ -109,4 +109,7 @@ NVENC.CheckDrivers="Try installing the latest <a href=\"https://obsproject.com/g
|
||||
|
||||
AV1.8bitUnsupportedHdr="OBS does not support 8-bit output of Rec. 2100."
|
||||
|
||||
+H264.UnsupportedVideoFormat="Only video formats using 8-bit color are supported."
|
||||
+H264.UnsupportedColorSpace="Only the Rec. 709 color space is supported."
|
||||
+
|
||||
ReconnectDelayTime="Reconnect Delay"
|
||||
diff --git a/plugins/obs-ffmpeg/obs-ffmpeg-h264.c b/plugins/obs-ffmpeg/obs-ffmpeg-h264.c
|
||||
new file mode 100644
|
||||
index 000000000..179a61ccf
|
||||
--- /dev/null
|
||||
+++ b/plugins/obs-ffmpeg/obs-ffmpeg-h264.c
|
||||
@@ -0,0 +1,260 @@
|
||||
+/******************************************************************************
|
||||
+ Copyright (C) 2023 by Neal Gompa <neal@gompa.dev>
|
||||
+ Partly derived from obs-ffmpeg-av1.c by Hugh Bailey <obs.jim@gmail.com>
|
||||
+
|
||||
+ This program is free software: you can redistribute it and/or modify
|
||||
+ it under the terms of the GNU General Public License as published by
|
||||
+ the Free Software Foundation, either version 2 of the License, or
|
||||
+ (at your option) any later version.
|
||||
+
|
||||
+ This program is distributed in the hope that it will be useful,
|
||||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ GNU General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License
|
||||
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
+******************************************************************************/
|
||||
+
|
||||
+#include "obs-ffmpeg-video-encoders.h"
|
||||
+
|
||||
+#define do_log(level, format, ...) \
|
||||
+ blog(level, "[H.264 encoder: '%s'] " format, \
|
||||
+ obs_encoder_get_name(enc->ffve.encoder), ##__VA_ARGS__)
|
||||
+
|
||||
+#define error(format, ...) do_log(LOG_ERROR, format, ##__VA_ARGS__)
|
||||
+#define warn(format, ...) do_log(LOG_WARNING, format, ##__VA_ARGS__)
|
||||
+#define info(format, ...) do_log(LOG_INFO, format, ##__VA_ARGS__)
|
||||
+#define debug(format, ...) do_log(LOG_DEBUG, format, ##__VA_ARGS__)
|
||||
+
|
||||
+enum h264_encoder_type {
|
||||
+ H264_ENCODER_TYPE_OH264,
|
||||
+};
|
||||
+
|
||||
+struct h264_encoder {
|
||||
+ struct ffmpeg_video_encoder ffve;
|
||||
+ enum h264_encoder_type type;
|
||||
+
|
||||
+ DARRAY(uint8_t) header;
|
||||
+};
|
||||
+
|
||||
+static const char *oh264_getname(void *unused)
|
||||
+{
|
||||
+ UNUSED_PARAMETER(unused);
|
||||
+ return "OpenH264";
|
||||
+}
|
||||
+
|
||||
+static void h264_video_info(void *data, struct video_scale_info *info)
|
||||
+{
|
||||
+ UNUSED_PARAMETER(data);
|
||||
+
|
||||
+ // OpenH264 only supports I420
|
||||
+ info->format = VIDEO_FORMAT_I420;
|
||||
+}
|
||||
+
|
||||
+static bool h264_update(struct h264_encoder *enc, obs_data_t *settings)
|
||||
+{
|
||||
+ const char *profile = obs_data_get_string(settings, "profile");
|
||||
+ int bitrate = (int)obs_data_get_int(settings, "bitrate");
|
||||
+ int keyint_sec = 0; // This is not supported by OpenH264
|
||||
+ const char *rc_mode = "quality"; // We only want to use quality mode
|
||||
+ int allow_skip_frames = 1; // This is required for quality mode
|
||||
+
|
||||
+ video_t *video = obs_encoder_video(enc->ffve.encoder);
|
||||
+ const struct video_output_info *voi = video_output_get_info(video);
|
||||
+ struct video_scale_info info;
|
||||
+
|
||||
+ info.format = voi->format;
|
||||
+ info.colorspace = voi->colorspace;
|
||||
+ info.range = voi->range;
|
||||
+
|
||||
+ enc->ffve.context->thread_count = 0;
|
||||
+
|
||||
+ h264_video_info(enc, &info);
|
||||
+
|
||||
+ av_opt_set(enc->ffve.context->priv_data, "rc_mode", rc_mode, 0);
|
||||
+ av_opt_set(enc->ffve.context->priv_data, "profile", profile, 0);
|
||||
+ av_opt_set_int(enc->ffve.context->priv_data, "allow_skip_frames",
|
||||
+ allow_skip_frames, 0);
|
||||
+
|
||||
+ const char *ffmpeg_opts = obs_data_get_string(settings, "ffmpeg_opts");
|
||||
+ ffmpeg_video_encoder_update(&enc->ffve, bitrate, keyint_sec, voi, &info,
|
||||
+ ffmpeg_opts);
|
||||
+ info("settings:\n"
|
||||
+ "\tencoder: %s\n"
|
||||
+ "\trc_mode: %s\n"
|
||||
+ "\tbitrate: %d\n"
|
||||
+ "\tprofile: %s\n"
|
||||
+ "\twidth: %d\n"
|
||||
+ "\theight: %d\n"
|
||||
+ "\tffmpeg opts: %s\n",
|
||||
+ enc->ffve.enc_name, rc_mode, bitrate, profile,
|
||||
+ enc->ffve.context->width, enc->ffve.height, ffmpeg_opts);
|
||||
+
|
||||
+ enc->ffve.context->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
|
||||
+ return ffmpeg_video_encoder_init_codec(&enc->ffve);
|
||||
+}
|
||||
+
|
||||
+static void h264_destroy(void *data)
|
||||
+{
|
||||
+ struct h264_encoder *enc = data;
|
||||
+
|
||||
+ ffmpeg_video_encoder_free(&enc->ffve);
|
||||
+ da_free(enc->header);
|
||||
+ bfree(enc);
|
||||
+}
|
||||
+
|
||||
+static void on_first_packet(void *data, AVPacket *pkt, struct darray *da)
|
||||
+{
|
||||
+ struct h264_encoder *enc = data;
|
||||
+
|
||||
+ da_copy_array(enc->header, enc->ffve.context->extradata,
|
||||
+ enc->ffve.context->extradata_size);
|
||||
+
|
||||
+ darray_copy_array(1, da, pkt->data, pkt->size);
|
||||
+}
|
||||
+
|
||||
+static void *h264_create_internal(obs_data_t *settings, obs_encoder_t *encoder,
|
||||
+ const char *enc_lib, const char *enc_name)
|
||||
+{
|
||||
+ video_t *video = obs_encoder_video(encoder);
|
||||
+ const struct video_output_info *voi = video_output_get_info(video);
|
||||
+
|
||||
+ switch (voi->format) {
|
||||
+ // planar 4:2:0 formats
|
||||
+ case VIDEO_FORMAT_I420: // three-plane
|
||||
+ case VIDEO_FORMAT_NV12: // two-plane, luma and packed chroma
|
||||
+ // packed 4:2:2 formats
|
||||
+ case VIDEO_FORMAT_YVYU:
|
||||
+ case VIDEO_FORMAT_YUY2: // YUYV
|
||||
+ case VIDEO_FORMAT_UYVY:
|
||||
+ // packed uncompressed formats
|
||||
+ case VIDEO_FORMAT_RGBA:
|
||||
+ case VIDEO_FORMAT_BGRA:
|
||||
+ case VIDEO_FORMAT_BGRX:
|
||||
+ case VIDEO_FORMAT_BGR3:
|
||||
+ case VIDEO_FORMAT_Y800: // grayscale
|
||||
+ // planar 4:4:4
|
||||
+ case VIDEO_FORMAT_I444:
|
||||
+ // planar 4:2:2
|
||||
+ case VIDEO_FORMAT_I422:
|
||||
+ // planar 4:2:0 with alpha
|
||||
+ case VIDEO_FORMAT_I40A:
|
||||
+ // planar 4:2:2 with alpha
|
||||
+ case VIDEO_FORMAT_I42A:
|
||||
+ // planar 4:4:4 with alpha
|
||||
+ case VIDEO_FORMAT_YUVA:
|
||||
+ // packed 4:4:4 with alpha
|
||||
+ case VIDEO_FORMAT_AYUV:
|
||||
+ break;
|
||||
+ default:; // Make the compiler do the right thing
|
||||
+ const char *const text =
|
||||
+ obs_module_text("H264.UnsupportedVideoFormat");
|
||||
+ obs_encoder_set_last_error(encoder, text);
|
||||
+ blog(LOG_ERROR, "[H.264 encoder] %s", text);
|
||||
+ return NULL;
|
||||
+ }
|
||||
+
|
||||
+ switch (voi->colorspace) {
|
||||
+ case VIDEO_CS_DEFAULT:
|
||||
+ case VIDEO_CS_709:
|
||||
+ break;
|
||||
+ default:; // Make the compiler do the right thing
|
||||
+ const char *const text =
|
||||
+ obs_module_text("H264.UnsupportedColorSpace");
|
||||
+ obs_encoder_set_last_error(encoder, text);
|
||||
+ blog(LOG_ERROR, "[H.264 encoder] %s", text);
|
||||
+ return NULL;
|
||||
+ }
|
||||
+
|
||||
+ struct h264_encoder *enc = bzalloc(sizeof(*enc));
|
||||
+
|
||||
+ if (strcmp(enc_lib, "libopenh264") == 0)
|
||||
+ enc->type = H264_ENCODER_TYPE_OH264;
|
||||
+
|
||||
+ if (!ffmpeg_video_encoder_init(&enc->ffve, enc, encoder, enc_lib, NULL,
|
||||
+ enc_name, NULL, on_first_packet))
|
||||
+ goto fail;
|
||||
+ if (!h264_update(enc, settings))
|
||||
+ goto fail;
|
||||
+
|
||||
+ return enc;
|
||||
+
|
||||
+fail:
|
||||
+ h264_destroy(enc);
|
||||
+ return NULL;
|
||||
+}
|
||||
+
|
||||
+static void *oh264_create(obs_data_t *settings, obs_encoder_t *encoder)
|
||||
+{
|
||||
+ return h264_create_internal(settings, encoder, "libopenh264",
|
||||
+ "OpenH264");
|
||||
+}
|
||||
+
|
||||
+static bool h264_encode(void *data, struct encoder_frame *frame,
|
||||
+ struct encoder_packet *packet, bool *received_packet)
|
||||
+{
|
||||
+ struct h264_encoder *enc = data;
|
||||
+ return ffmpeg_video_encode(&enc->ffve, frame, packet, received_packet);
|
||||
+}
|
||||
+
|
||||
+void h264_defaults(obs_data_t *settings)
|
||||
+{
|
||||
+ obs_data_set_default_int(settings, "bitrate", 2500);
|
||||
+ obs_data_set_default_string(settings, "profile", "main");
|
||||
+}
|
||||
+
|
||||
+obs_properties_t *h264_properties(enum h264_encoder_type type)
|
||||
+{
|
||||
+ UNUSED_PARAMETER(type); // Only one encoder right now...
|
||||
+ obs_properties_t *props = obs_properties_create();
|
||||
+ obs_property_t *p;
|
||||
+
|
||||
+ p = obs_properties_add_list(props, "profile",
|
||||
+ obs_module_text("Profile"),
|
||||
+ OBS_COMBO_TYPE_LIST,
|
||||
+ OBS_COMBO_FORMAT_STRING);
|
||||
+ obs_property_list_add_string(p, "constrained_baseline",
|
||||
+ "constrained_baseline");
|
||||
+ obs_property_list_add_string(p, "main", "main");
|
||||
+ obs_property_list_add_string(p, "high", "high");
|
||||
+
|
||||
+ p = obs_properties_add_int(props, "bitrate", obs_module_text("Bitrate"),
|
||||
+ 50, 300000, 50);
|
||||
+ obs_property_int_set_suffix(p, " Kbps");
|
||||
+
|
||||
+ obs_properties_add_text(props, "ffmpeg_opts",
|
||||
+ obs_module_text("FFmpegOpts"),
|
||||
+ OBS_TEXT_DEFAULT);
|
||||
+
|
||||
+ return props;
|
||||
+}
|
||||
+
|
||||
+obs_properties_t *oh264_properties(void *unused)
|
||||
+{
|
||||
+ UNUSED_PARAMETER(unused);
|
||||
+ return h264_properties(H264_ENCODER_TYPE_OH264);
|
||||
+}
|
||||
+
|
||||
+static bool h264_extra_data(void *data, uint8_t **extra_data, size_t *size)
|
||||
+{
|
||||
+ struct h264_encoder *enc = data;
|
||||
+
|
||||
+ *extra_data = enc->header.array;
|
||||
+ *size = enc->header.num;
|
||||
+ return true;
|
||||
+}
|
||||
+
|
||||
+struct obs_encoder_info oh264_encoder_info = {
|
||||
+ .id = "ffmpeg_openh264",
|
||||
+ .type = OBS_ENCODER_VIDEO,
|
||||
+ .codec = "h264",
|
||||
+ .get_name = oh264_getname,
|
||||
+ .create = oh264_create,
|
||||
+ .destroy = h264_destroy,
|
||||
+ .encode = h264_encode,
|
||||
+ .get_defaults = h264_defaults,
|
||||
+ .get_properties = oh264_properties,
|
||||
+ .get_extra_data = h264_extra_data,
|
||||
+ .get_video_info = h264_video_info,
|
||||
+};
|
||||
diff --git a/plugins/obs-ffmpeg/obs-ffmpeg.c b/plugins/obs-ffmpeg/obs-ffmpeg.c
|
||||
index da0b2c2b4..a01a729c8 100644
|
||||
--- a/plugins/obs-ffmpeg/obs-ffmpeg.c
|
||||
+++ b/plugins/obs-ffmpeg/obs-ffmpeg.c
|
||||
@@ -39,6 +39,7 @@ extern struct obs_encoder_info pcm24_encoder_info;
|
||||
extern struct obs_encoder_info pcm32_encoder_info;
|
||||
extern struct obs_encoder_info alac_encoder_info;
|
||||
extern struct obs_encoder_info flac_encoder_info;
|
||||
+extern struct obs_encoder_info oh264_encoder_info;
|
||||
extern struct obs_encoder_info h264_nvenc_encoder_info;
|
||||
#ifdef ENABLE_HEVC
|
||||
extern struct obs_encoder_info hevc_nvenc_encoder_info;
|
||||
@@ -387,6 +388,7 @@ bool obs_module_load(void)
|
||||
obs_register_output(&ffmpeg_hls_muxer);
|
||||
obs_register_output(&replay_buffer);
|
||||
obs_register_encoder(&aac_encoder_info);
|
||||
+ register_encoder_if_available(&oh264_encoder_info, "libopenh264");
|
||||
register_encoder_if_available(&svt_av1_encoder_info, "libsvtav1");
|
||||
register_encoder_if_available(&aom_av1_encoder_info, "libaom-av1");
|
||||
obs_register_encoder(&opus_encoder_info);
|
||||
--
|
||||
2.39.2
|
||||
@@ -1,544 +0,0 @@
|
||||
From 30f84455969071ff9aa826a44438a0402dd15123 Mon Sep 17 00:00:00 2001
|
||||
From: Neal Gompa <neal@gompa.dev>
|
||||
Date: Tue, 28 Mar 2023 05:08:49 -0400
|
||||
Subject: [PATCH 3/3] UI: Add support for OpenH264 as the worst-case fallback
|
||||
|
||||
OpenH264 exists as the codec of last resort, so it is implemented
|
||||
such that it is only used as the software codec if x264 is not
|
||||
available.
|
||||
---
|
||||
UI/data/locale/en-US.ini | 1 +
|
||||
UI/window-basic-auto-config-test.cpp | 50 +++++++++++++++++++---------
|
||||
UI/window-basic-auto-config.cpp | 15 ++++++++-
|
||||
UI/window-basic-auto-config.hpp | 3 ++
|
||||
UI/window-basic-main-outputs.cpp | 6 ++--
|
||||
UI/window-basic-main-profiles.cpp | 34 +++++++++++--------
|
||||
UI/window-basic-main.cpp | 20 +++++++----
|
||||
UI/window-basic-main.hpp | 3 +-
|
||||
UI/window-basic-settings-stream.cpp | 16 ++++++---
|
||||
UI/window-basic-settings.cpp | 23 ++++++++++---
|
||||
10 files changed, 123 insertions(+), 48 deletions(-)
|
||||
|
||||
diff --git a/UI/data/locale/en-US.ini b/UI/data/locale/en-US.ini
|
||||
index e44d99660..a5ba5d661 100644
|
||||
--- a/UI/data/locale/en-US.ini
|
||||
+++ b/UI/data/locale/en-US.ini
|
||||
@@ -980,6 +980,7 @@ Basic.Settings.Output.Simple.Warn.Encoder="Warning: Recording with a software en
|
||||
Basic.Settings.Output.Simple.Warn.Lossless="Warning: Lossless quality generates tremendously large file sizes! Lossless quality can use upward of 7 gigabytes of disk space per minute at high resolutions and framerates. Lossless is not recommended for long recordings unless you have a very large amount of disk space available."
|
||||
Basic.Settings.Output.Simple.Warn.Lossless.Msg="Are you sure you want to use lossless quality?"
|
||||
Basic.Settings.Output.Simple.Warn.Lossless.Title="Lossless quality warning!"
|
||||
+Basic.Settings.Output.Simple.Encoder.Software.OpenH264.H264="Software (OpenH264)"
|
||||
Basic.Settings.Output.Simple.Encoder.Software.X264.H264="Software (x264)"
|
||||
Basic.Settings.Output.Simple.Encoder.Hardware.QSV.H264="Hardware (QSV, H.264)"
|
||||
Basic.Settings.Output.Simple.Encoder.Hardware.QSV.AV1="Hardware (QSV, AV1)"
|
||||
diff --git a/UI/window-basic-auto-config-test.cpp b/UI/window-basic-auto-config-test.cpp
|
||||
index 09979c031..c791c8b8b 100644
|
||||
--- a/UI/window-basic-auto-config-test.cpp
|
||||
+++ b/UI/window-basic-auto-config-test.cpp
|
||||
@@ -199,7 +199,8 @@ void AutoConfigTestPage::TestBandwidthThread()
|
||||
: "rtmp_common";
|
||||
|
||||
OBSEncoderAutoRelease vencoder = obs_video_encoder_create(
|
||||
- "obs_x264", "test_x264", nullptr, nullptr);
|
||||
+ (wiz->x264Available ? "obs_x264" : "ffmpeg_openh264"),
|
||||
+ "test_h264", nullptr, nullptr);
|
||||
OBSEncoderAutoRelease aencoder = obs_audio_encoder_create(
|
||||
"ffmpeg_aac", "test_aac", nullptr, 0, nullptr);
|
||||
OBSServiceAutoRelease service = obs_service_create(
|
||||
@@ -238,10 +239,11 @@ void AutoConfigTestPage::TestBandwidthThread()
|
||||
obs_data_set_string(service_settings, "key", key.c_str());
|
||||
|
||||
obs_data_set_int(vencoder_settings, "bitrate", wiz->startingBitrate);
|
||||
- obs_data_set_string(vencoder_settings, "rate_control", "CBR");
|
||||
- obs_data_set_string(vencoder_settings, "preset", "veryfast");
|
||||
- obs_data_set_int(vencoder_settings, "keyint_sec", 2);
|
||||
-
|
||||
+ if (wiz->x264Available) {
|
||||
+ obs_data_set_string(vencoder_settings, "rate_control", "CBR");
|
||||
+ obs_data_set_string(vencoder_settings, "preset", "veryfast");
|
||||
+ obs_data_set_int(vencoder_settings, "keyint_sec", 2);
|
||||
+ }
|
||||
obs_data_set_int(aencoder_settings, "bitrate", 32);
|
||||
|
||||
OBSBasic *main = reinterpret_cast<OBSBasic *>(App()->GetMainWindow());
|
||||
@@ -567,7 +569,8 @@ bool AutoConfigTestPage::TestSoftwareEncoding()
|
||||
/* create obs objects */
|
||||
|
||||
OBSEncoderAutoRelease vencoder = obs_video_encoder_create(
|
||||
- "obs_x264", "test_x264", nullptr, nullptr);
|
||||
+ (wiz->x264Available ? "obs_x264" : "ffmpeg_openh264"),
|
||||
+ "test_h264", nullptr, nullptr);
|
||||
OBSEncoderAutoRelease aencoder = obs_audio_encoder_create(
|
||||
"ffmpeg_aac", "test_aac", nullptr, 0, nullptr);
|
||||
OBSOutputAutoRelease output =
|
||||
@@ -581,17 +584,25 @@ bool AutoConfigTestPage::TestSoftwareEncoding()
|
||||
obs_data_set_int(aencoder_settings, "bitrate", 32);
|
||||
|
||||
if (wiz->type != AutoConfig::Type::Recording) {
|
||||
- obs_data_set_int(vencoder_settings, "keyint_sec", 2);
|
||||
+ if (wiz->x264Available) {
|
||||
+ obs_data_set_int(vencoder_settings, "keyint_sec", 2);
|
||||
+ obs_data_set_string(vencoder_settings, "rate_control",
|
||||
+ "CBR");
|
||||
+ obs_data_set_string(vencoder_settings, "preset",
|
||||
+ "veryfast");
|
||||
+ }
|
||||
obs_data_set_int(vencoder_settings, "bitrate",
|
||||
wiz->idealBitrate);
|
||||
- obs_data_set_string(vencoder_settings, "rate_control", "CBR");
|
||||
obs_data_set_string(vencoder_settings, "profile", "main");
|
||||
- obs_data_set_string(vencoder_settings, "preset", "veryfast");
|
||||
} else {
|
||||
- obs_data_set_int(vencoder_settings, "crf", 20);
|
||||
- obs_data_set_string(vencoder_settings, "rate_control", "CRF");
|
||||
+ if (wiz->x264Available) {
|
||||
+ obs_data_set_int(vencoder_settings, "crf", 20);
|
||||
+ obs_data_set_string(vencoder_settings, "rate_control",
|
||||
+ "CRF");
|
||||
+ obs_data_set_string(vencoder_settings, "preset",
|
||||
+ "veryfast");
|
||||
+ }
|
||||
obs_data_set_string(vencoder_settings, "profile", "high");
|
||||
- obs_data_set_string(vencoder_settings, "preset", "veryfast");
|
||||
}
|
||||
|
||||
/* -----------------------------------*/
|
||||
@@ -944,7 +955,10 @@ void AutoConfigTestPage::TestStreamEncoderThread()
|
||||
else
|
||||
wiz->streamingEncoder = AutoConfig::Encoder::AMD;
|
||||
} else {
|
||||
- wiz->streamingEncoder = AutoConfig::Encoder::x264;
|
||||
+ if (wiz->x264Available)
|
||||
+ wiz->streamingEncoder = AutoConfig::Encoder::x264;
|
||||
+ else
|
||||
+ wiz->streamingEncoder = AutoConfig::Encoder::OpenH264;
|
||||
}
|
||||
|
||||
if (preferHardware && !softwareTested && wiz->hardwareEncodingAvailable)
|
||||
@@ -979,7 +993,10 @@ void AutoConfigTestPage::TestRecordingEncoderThread()
|
||||
else
|
||||
wiz->recordingEncoder = AutoConfig::Encoder::AMD;
|
||||
} else {
|
||||
- wiz->recordingEncoder = AutoConfig::Encoder::x264;
|
||||
+ if (wiz->x264Available)
|
||||
+ wiz->streamingEncoder = AutoConfig::Encoder::x264;
|
||||
+ else
|
||||
+ wiz->streamingEncoder = AutoConfig::Encoder::OpenH264;
|
||||
}
|
||||
|
||||
if (wiz->recordingEncoder != AutoConfig::Encoder::NVENC) {
|
||||
@@ -993,6 +1010,7 @@ void AutoConfigTestPage::TestRecordingEncoderThread()
|
||||
}
|
||||
|
||||
#define ENCODER_TEXT(x) "Basic.Settings.Output.Simple.Encoder." x
|
||||
+#define ENCODER_OPENH264 ENCODER_TEXT("Software.OpenH264.H264")
|
||||
#define ENCODER_X264 ENCODER_TEXT("Software.X264.H264")
|
||||
#define ENCODER_NVENC ENCODER_TEXT("Hardware.NVENC.H264")
|
||||
#define ENCODER_QSV ENCODER_TEXT("Hardware.QSV.H264")
|
||||
@@ -1032,6 +1050,8 @@ void AutoConfigTestPage::FinalizeResults()
|
||||
|
||||
auto encName = [](AutoConfig::Encoder enc) -> QString {
|
||||
switch (enc) {
|
||||
+ case AutoConfig::Encoder::OpenH264:
|
||||
+ return QTStr(ENCODER_OPENH264);
|
||||
case AutoConfig::Encoder::x264:
|
||||
return QTStr(ENCODER_X264);
|
||||
case AutoConfig::Encoder::NVENC:
|
||||
@@ -1046,7 +1066,7 @@ void AutoConfigTestPage::FinalizeResults()
|
||||
return QTStr(QUALITY_SAME);
|
||||
}
|
||||
|
||||
- return QTStr(ENCODER_X264);
|
||||
+ return QTStr(ENCODER_OPENH264);
|
||||
};
|
||||
|
||||
auto newLabel = [this](const char *str) -> QLabel * {
|
||||
diff --git a/UI/window-basic-auto-config.cpp b/UI/window-basic-auto-config.cpp
|
||||
index 3e9c36685..eace18067 100644
|
||||
--- a/UI/window-basic-auto-config.cpp
|
||||
+++ b/UI/window-basic-auto-config.cpp
|
||||
@@ -961,6 +961,7 @@ AutoConfig::AutoConfig(QWidget *parent) : QWizard(parent)
|
||||
streamPage->ui->bitrate->setValue(bitrate);
|
||||
streamPage->ServiceChanged();
|
||||
|
||||
+ TestSoftwareEncoding();
|
||||
TestHardwareEncoding();
|
||||
if (!hardwareEncodingAvailable) {
|
||||
delete streamPage->ui->preferHardware;
|
||||
@@ -989,6 +990,16 @@ AutoConfig::~AutoConfig()
|
||||
EnableThreadedMessageBoxes(false);
|
||||
}
|
||||
|
||||
+void AutoConfig::TestSoftwareEncoding()
|
||||
+{
|
||||
+ size_t idx = 0;
|
||||
+ const char *id;
|
||||
+ while (obs_enum_encoder_types(idx++, &id)) {
|
||||
+ if (strcmp(id, "obs_x264") == 0)
|
||||
+ x264Available = true;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
void AutoConfig::TestHardwareEncoding()
|
||||
{
|
||||
size_t idx = 0;
|
||||
@@ -1061,8 +1072,10 @@ inline const char *AutoConfig::GetEncoderId(Encoder enc)
|
||||
return SIMPLE_ENCODER_AMD;
|
||||
case Encoder::Apple:
|
||||
return SIMPLE_ENCODER_APPLE_H264;
|
||||
- default:
|
||||
+ case Encoder::x264:
|
||||
return SIMPLE_ENCODER_X264;
|
||||
+ default:
|
||||
+ return SIMPLE_ENCODER_OPENH264;
|
||||
}
|
||||
};
|
||||
|
||||
diff --git a/UI/window-basic-auto-config.hpp b/UI/window-basic-auto-config.hpp
|
||||
index eb50701ff..e581791dd 100644
|
||||
--- a/UI/window-basic-auto-config.hpp
|
||||
+++ b/UI/window-basic-auto-config.hpp
|
||||
@@ -43,6 +43,7 @@ class AutoConfig : public QWizard {
|
||||
};
|
||||
|
||||
enum class Encoder {
|
||||
+ OpenH264,
|
||||
x264,
|
||||
NVENC,
|
||||
QSV,
|
||||
@@ -91,6 +92,7 @@ class AutoConfig : public QWizard {
|
||||
bool qsvAvailable = false;
|
||||
bool vceAvailable = false;
|
||||
bool appleAvailable = false;
|
||||
+ bool x264Available = false;
|
||||
|
||||
int startingBitrate = 2500;
|
||||
bool customServer = false;
|
||||
@@ -106,6 +108,7 @@ class AutoConfig : public QWizard {
|
||||
int specificFPSNum = 0;
|
||||
int specificFPSDen = 0;
|
||||
|
||||
+ void TestSoftwareEncoding();
|
||||
void TestHardwareEncoding();
|
||||
bool CanTestServer(const char *server);
|
||||
|
||||
diff --git a/UI/window-basic-main-outputs.cpp b/UI/window-basic-main-outputs.cpp
|
||||
index 737ab966d..a4df630c4 100644
|
||||
--- a/UI/window-basic-main-outputs.cpp
|
||||
+++ b/UI/window-basic-main-outputs.cpp
|
||||
@@ -515,7 +515,9 @@ void SimpleOutput::LoadStreamingPreset_Lossy(const char *encoderId)
|
||||
/* mistakes have been made to lead us to this. */
|
||||
const char *get_simple_output_encoder(const char *encoder)
|
||||
{
|
||||
- if (strcmp(encoder, SIMPLE_ENCODER_X264) == 0) {
|
||||
+ if (strcmp(encoder, SIMPLE_ENCODER_OPENH264) == 0) {
|
||||
+ return "ffmpeg_openh264";
|
||||
+ } else if (strcmp(encoder, SIMPLE_ENCODER_X264) == 0) {
|
||||
return "obs_x264";
|
||||
} else if (strcmp(encoder, SIMPLE_ENCODER_X264_LOWCPU) == 0) {
|
||||
return "obs_x264";
|
||||
@@ -549,7 +551,7 @@ const char *get_simple_output_encoder(const char *encoder)
|
||||
#endif
|
||||
}
|
||||
|
||||
- return "obs_x264";
|
||||
+ return "ffmpeg_openh264";
|
||||
}
|
||||
|
||||
void SimpleOutput::LoadRecordingPreset()
|
||||
diff --git a/UI/window-basic-main-profiles.cpp b/UI/window-basic-main-profiles.cpp
|
||||
index 4941359ea..1f3ffdc1d 100644
|
||||
--- a/UI/window-basic-main-profiles.cpp
|
||||
+++ b/UI/window-basic-main-profiles.cpp
|
||||
@@ -794,7 +794,7 @@ void OBSBasic::ChangeProfile()
|
||||
|
||||
Auth::Load();
|
||||
|
||||
- CheckForSimpleModeX264Fallback();
|
||||
+ CheckForSimpleModeH264Fallback();
|
||||
|
||||
blog(LOG_INFO, "Switched to profile '%s' (%s)", newName, newDir);
|
||||
blog(LOG_INFO, "------------------------------------------------");
|
||||
@@ -815,12 +815,13 @@ void OBSBasic::ChangeProfile()
|
||||
}
|
||||
}
|
||||
|
||||
-void OBSBasic::CheckForSimpleModeX264Fallback()
|
||||
+void OBSBasic::CheckForSimpleModeH264Fallback()
|
||||
{
|
||||
const char *curStreamEncoder =
|
||||
config_get_string(basicConfig, "SimpleOutput", "StreamEncoder");
|
||||
const char *curRecEncoder =
|
||||
config_get_string(basicConfig, "SimpleOutput", "RecEncoder");
|
||||
+ bool x264_supported = false;
|
||||
bool qsv_supported = false;
|
||||
bool qsv_av1_supported = false;
|
||||
bool amd_supported = false;
|
||||
@@ -837,7 +838,9 @@ void OBSBasic::CheckForSimpleModeX264Fallback()
|
||||
const char *id;
|
||||
|
||||
while (obs_enum_encoder_types(idx++, &id)) {
|
||||
- if (strcmp(id, "amd_amf_h264") == 0)
|
||||
+ if (strcmp(id, "obs_x264") == 0)
|
||||
+ x264_supported = true;
|
||||
+ else if (strcmp(id, "amd_amf_h264") == 0)
|
||||
amd_supported = true;
|
||||
else if (strcmp(id, "obs_qsv11") == 0)
|
||||
qsv_supported = true;
|
||||
@@ -865,68 +868,73 @@ void OBSBasic::CheckForSimpleModeX264Fallback()
|
||||
#endif
|
||||
}
|
||||
|
||||
+ // Check to see whether x264 is available
|
||||
+ const char *fallback_encoder_name = (x264_supported
|
||||
+ ? SIMPLE_ENCODER_X264
|
||||
+ : SIMPLE_ENCODER_OPENH264);
|
||||
+
|
||||
auto CheckEncoder = [&](const char *&name) {
|
||||
if (strcmp(name, SIMPLE_ENCODER_QSV) == 0) {
|
||||
if (!qsv_supported) {
|
||||
changed = true;
|
||||
- name = SIMPLE_ENCODER_X264;
|
||||
+ name = fallback_encoder_name;
|
||||
return false;
|
||||
}
|
||||
} else if (strcmp(name, SIMPLE_ENCODER_QSV_AV1) == 0) {
|
||||
if (!qsv_av1_supported) {
|
||||
changed = true;
|
||||
- name = SIMPLE_ENCODER_X264;
|
||||
+ name = fallback_encoder_name;
|
||||
return false;
|
||||
}
|
||||
} else if (strcmp(name, SIMPLE_ENCODER_NVENC) == 0) {
|
||||
if (!nve_supported) {
|
||||
changed = true;
|
||||
- name = SIMPLE_ENCODER_X264;
|
||||
+ name = fallback_encoder_name;
|
||||
return false;
|
||||
}
|
||||
} else if (strcmp(name, SIMPLE_ENCODER_NVENC_AV1) == 0) {
|
||||
if (!nve_supported) {
|
||||
changed = true;
|
||||
- name = SIMPLE_ENCODER_X264;
|
||||
+ name = fallback_encoder_name;
|
||||
return false;
|
||||
}
|
||||
#ifdef ENABLE_HEVC
|
||||
} else if (strcmp(name, SIMPLE_ENCODER_AMD_HEVC) == 0) {
|
||||
if (!amd_hevc_supported) {
|
||||
changed = true;
|
||||
- name = SIMPLE_ENCODER_X264;
|
||||
+ name = fallback_encoder_name;
|
||||
return false;
|
||||
}
|
||||
} else if (strcmp(name, SIMPLE_ENCODER_NVENC_HEVC) == 0) {
|
||||
if (!nve_hevc_supported) {
|
||||
changed = true;
|
||||
- name = SIMPLE_ENCODER_X264;
|
||||
+ name = fallback_encoder_name;
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
} else if (strcmp(name, SIMPLE_ENCODER_AMD) == 0) {
|
||||
if (!amd_supported) {
|
||||
changed = true;
|
||||
- name = SIMPLE_ENCODER_X264;
|
||||
+ name = fallback_encoder_name;
|
||||
return false;
|
||||
}
|
||||
} else if (strcmp(name, SIMPLE_ENCODER_AMD_AV1) == 0) {
|
||||
if (!amd_av1_supported) {
|
||||
changed = true;
|
||||
- name = SIMPLE_ENCODER_X264;
|
||||
+ name = fallback_encoder_name;
|
||||
return false;
|
||||
}
|
||||
} else if (strcmp(name, SIMPLE_ENCODER_APPLE_H264) == 0) {
|
||||
if (!apple_supported) {
|
||||
changed = true;
|
||||
- name = SIMPLE_ENCODER_X264;
|
||||
+ name = fallback_encoder_name;
|
||||
return false;
|
||||
}
|
||||
#ifdef ENABLE_HEVC
|
||||
} else if (strcmp(name, SIMPLE_ENCODER_APPLE_HEVC) == 0) {
|
||||
if (!apple_hevc_supported) {
|
||||
changed = true;
|
||||
- name = SIMPLE_ENCODER_X264;
|
||||
+ name = fallback_encoder_name;
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
diff --git a/UI/window-basic-main.cpp b/UI/window-basic-main.cpp
|
||||
index 6d9375eb4..c6aae8c7b 100644
|
||||
--- a/UI/window-basic-main.cpp
|
||||
+++ b/UI/window-basic-main.cpp
|
||||
@@ -1379,6 +1379,8 @@ extern void CheckExistingCookieId();
|
||||
#define DEFAULT_CONTAINER "fragmented_mp4"
|
||||
#endif
|
||||
|
||||
+extern bool EncoderAvailable(const char *encoder);
|
||||
+
|
||||
bool OBSBasic::InitBasicConfigDefaults()
|
||||
{
|
||||
QList<QScreen *> screens = QGuiApplication::screens();
|
||||
@@ -1549,7 +1551,10 @@ bool OBSBasic::InitBasicConfigDefaults()
|
||||
config_set_default_bool(basicConfig, "AdvOut", "UseRescale", false);
|
||||
config_set_default_uint(basicConfig, "AdvOut", "TrackIndex", 1);
|
||||
config_set_default_uint(basicConfig, "AdvOut", "VodTrackIndex", 2);
|
||||
- config_set_default_string(basicConfig, "AdvOut", "Encoder", "obs_x264");
|
||||
+
|
||||
+ bool useX264 = EncoderAvailable("obs_x264");
|
||||
+ config_set_default_string(basicConfig, "AdvOut", "Encoder",
|
||||
+ (useX264 ? "obs_x264" : "ffmpeg_openh264"));
|
||||
|
||||
config_set_default_string(basicConfig, "AdvOut", "RecType", "Standard");
|
||||
|
||||
@@ -1672,7 +1677,6 @@ bool OBSBasic::InitBasicConfigDefaults()
|
||||
return true;
|
||||
}
|
||||
|
||||
-extern bool EncoderAvailable(const char *encoder);
|
||||
extern bool update_nvenc_presets(ConfigFile &config);
|
||||
|
||||
void OBSBasic::InitBasicConfigDefaults2()
|
||||
@@ -1681,12 +1685,14 @@ void OBSBasic::InitBasicConfigDefaults2()
|
||||
"Pre23Defaults");
|
||||
bool useNV = EncoderAvailable("ffmpeg_nvenc") && !oldEncDefaults;
|
||||
|
||||
+ bool useX264 = EncoderAvailable("obs_x264");
|
||||
+ const char *h264_fallback =
|
||||
+ (useX264 ? SIMPLE_ENCODER_X264 : SIMPLE_ENCODER_OPENH264);
|
||||
+
|
||||
config_set_default_string(basicConfig, "SimpleOutput", "StreamEncoder",
|
||||
- useNV ? SIMPLE_ENCODER_NVENC
|
||||
- : SIMPLE_ENCODER_X264);
|
||||
+ useNV ? SIMPLE_ENCODER_NVENC : h264_fallback);
|
||||
config_set_default_string(basicConfig, "SimpleOutput", "RecEncoder",
|
||||
- useNV ? SIMPLE_ENCODER_NVENC
|
||||
- : SIMPLE_ENCODER_X264);
|
||||
+ useNV ? SIMPLE_ENCODER_NVENC : h264_fallback);
|
||||
|
||||
const char *aac_default = "ffmpeg_aac";
|
||||
if (EncoderAvailable("CoreAudio_AAC"))
|
||||
@@ -1967,7 +1973,7 @@ void OBSBasic::OBSInit()
|
||||
|
||||
InitBasicConfigDefaults2();
|
||||
|
||||
- CheckForSimpleModeX264Fallback();
|
||||
+ CheckForSimpleModeH264Fallback();
|
||||
|
||||
blog(LOG_INFO, STARTUP_SEPARATOR);
|
||||
|
||||
diff --git a/UI/window-basic-main.hpp b/UI/window-basic-main.hpp
|
||||
index cbce69832..74c6eb144 100644
|
||||
--- a/UI/window-basic-main.hpp
|
||||
+++ b/UI/window-basic-main.hpp
|
||||
@@ -66,6 +66,7 @@ class OBSBasicVCamConfig;
|
||||
|
||||
#define SIMPLE_ENCODER_X264 "x264"
|
||||
#define SIMPLE_ENCODER_X264_LOWCPU "x264_lowcpu"
|
||||
+#define SIMPLE_ENCODER_OPENH264 "ffmpeg_openh264"
|
||||
#define SIMPLE_ENCODER_QSV "qsv"
|
||||
#define SIMPLE_ENCODER_QSV_AV1 "qsv_av1"
|
||||
#define SIMPLE_ENCODER_NVENC "nvenc"
|
||||
@@ -434,7 +435,7 @@ private:
|
||||
void DeleteProfile(const char *profile_name, const char *profile_dir);
|
||||
void RefreshProfiles();
|
||||
void ChangeProfile();
|
||||
- void CheckForSimpleModeX264Fallback();
|
||||
+ void CheckForSimpleModeH264Fallback();
|
||||
|
||||
void SaveProjectNow();
|
||||
|
||||
diff --git a/UI/window-basic-settings-stream.cpp b/UI/window-basic-settings-stream.cpp
|
||||
index b056938e7..548e5f45f 100644
|
||||
--- a/UI/window-basic-settings-stream.cpp
|
||||
+++ b/UI/window-basic-settings-stream.cpp
|
||||
@@ -1362,7 +1362,9 @@ static QString get_adv_fallback(const QString &enc)
|
||||
return "com.apple.videotoolbox.videoencoder.ave.avc";
|
||||
if (enc == "obs_qsv11_av1")
|
||||
return "obs_qsv11";
|
||||
- return "obs_x264";
|
||||
+ if (EncoderAvailable("obs_x264"))
|
||||
+ return "obs_x264";
|
||||
+ return "ffmpeg_openh264";
|
||||
}
|
||||
|
||||
static QString get_adv_audio_fallback(const QString &enc)
|
||||
@@ -1391,7 +1393,9 @@ static QString get_simple_fallback(const QString &enc)
|
||||
return SIMPLE_ENCODER_APPLE_H264;
|
||||
if (enc == SIMPLE_ENCODER_QSV_AV1)
|
||||
return SIMPLE_ENCODER_QSV;
|
||||
- return SIMPLE_ENCODER_X264;
|
||||
+ if (EncoderAvailable("obs_x264"))
|
||||
+ return SIMPLE_ENCODER_X264;
|
||||
+ return SIMPLE_ENCODER_OPENH264;
|
||||
}
|
||||
|
||||
bool OBSBasicSettings::ServiceSupportsCodecCheck()
|
||||
@@ -1585,8 +1589,12 @@ void OBSBasicSettings::ResetEncoders(bool streamOnly)
|
||||
|
||||
#define ENCODER_STR(str) QTStr("Basic.Settings.Output.Simple.Encoder." str)
|
||||
|
||||
- ui->simpleOutStrEncoder->addItem(ENCODER_STR("Software.X264.H264"),
|
||||
- QString(SIMPLE_ENCODER_X264));
|
||||
+ ui->simpleOutStrEncoder->addItem(ENCODER_STR("Software.OpenH264.H264"),
|
||||
+ QString(SIMPLE_ENCODER_OPENH264));
|
||||
+ if (service_supports_encoder(vcodecs, "obs_x264"))
|
||||
+ ui->simpleOutStrEncoder->addItem(
|
||||
+ ENCODER_STR("Software.X264.H264"),
|
||||
+ QString(SIMPLE_ENCODER_X264));
|
||||
if (service_supports_encoder(vcodecs, "obs_qsv11"))
|
||||
ui->simpleOutStrEncoder->addItem(
|
||||
ENCODER_STR("Hardware.QSV.H264"),
|
||||
diff --git a/UI/window-basic-settings.cpp b/UI/window-basic-settings.cpp
|
||||
index 48bb4bac6..51fe280db 100644
|
||||
--- a/UI/window-basic-settings.cpp
|
||||
+++ b/UI/window-basic-settings.cpp
|
||||
@@ -3831,6 +3831,11 @@ void OBSBasicSettings::SaveOutputSettings()
|
||||
do. This only exists to make sure that the x264 preset doesn't
|
||||
get overwritten with empty data. */
|
||||
presetType = "ApplePreset";
|
||||
+ else if (encoder == SIMPLE_ENCODER_OPENH264)
|
||||
+ /* The OpenH264 encoder does not have presets like the other encoders
|
||||
+ do. This only exists to make sure that the x264 preset doesn't
|
||||
+ get overwritten with empty data. */
|
||||
+ presetType = "OpenH264Preset";
|
||||
else
|
||||
presetType = "Preset";
|
||||
|
||||
@@ -5286,11 +5291,16 @@ void OBSBasicSettings::FillSimpleRecordingValues()
|
||||
ADD_QUALITY("HQ");
|
||||
ADD_QUALITY("Lossless");
|
||||
|
||||
- ui->simpleOutRecEncoder->addItem(ENCODER_STR("Software.X264.H264"),
|
||||
- QString(SIMPLE_ENCODER_X264));
|
||||
- ui->simpleOutRecEncoder->addItem(
|
||||
- ENCODER_STR("SoftwareLowCPU.X264.H264"),
|
||||
- QString(SIMPLE_ENCODER_X264_LOWCPU));
|
||||
+ ui->simpleOutRecEncoder->addItem(ENCODER_STR("Software.OpenH264.H264"),
|
||||
+ QString(SIMPLE_ENCODER_OPENH264));
|
||||
+ if (EncoderAvailable("obs_x264")) {
|
||||
+ ui->simpleOutRecEncoder->addItem(
|
||||
+ ENCODER_STR("Software.X264.H264"),
|
||||
+ QString(SIMPLE_ENCODER_X264));
|
||||
+ ui->simpleOutRecEncoder->addItem(
|
||||
+ ENCODER_STR("SoftwareLowCPU.X264.H264"),
|
||||
+ QString(SIMPLE_ENCODER_X264_LOWCPU));
|
||||
+ }
|
||||
if (EncoderAvailable("obs_qsv11"))
|
||||
ui->simpleOutRecEncoder->addItem(
|
||||
ENCODER_STR("Hardware.QSV.H264"),
|
||||
@@ -5463,6 +5473,9 @@ void OBSBasicSettings::SimpleStreamingEncoderChanged()
|
||||
|
||||
defaultPreset = "balanced";
|
||||
preset = curAMDAV1Preset;
|
||||
+ } else if (encoder == SIMPLE_ENCODER_OPENH264) {
|
||||
+ ui->simpleOutPreset->setVisible(false);
|
||||
+ ui->simpleOutPresetLabel->setVisible(false);
|
||||
} else {
|
||||
|
||||
#define PRESET_STR(val) \
|
||||
--
|
||||
2.39.2
|
||||
@@ -1,5 +0,0 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "obs-studio.spec"
|
||||
}
|
||||
}
|
||||
@@ -1,106 +0,0 @@
|
||||
From 1e2fc3ade587a7a7c24e4238996ca382c4c0f719 Mon Sep 17 00:00:00 2001
|
||||
From: Neal Gompa <ngompa@fedoraproject.org>
|
||||
Date: Tue, 27 Dec 2022 09:15:08 -0500
|
||||
Subject: [PATCH] CMake: Use the system version of QRCodeGenCPP dependency
|
||||
|
||||
---
|
||||
CMakeLists.txt | 9 +++++++--
|
||||
cmake/legacy.cmake | 12 ++++++++----
|
||||
src/forms/ConnectInfo.cpp | 2 +-
|
||||
3 files changed, 16 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/plugins/obs-websocket/CMakeLists.txt b/plugins/obs-websocket/CMakeLists.txt
|
||||
index 871f92b..288cc87 100644
|
||||
--- a/plugins/obs-websocket/CMakeLists.txt
|
||||
+++ b/plugins/obs-websocket/CMakeLists.txt
|
||||
@@ -13,7 +13,7 @@ endif()
|
||||
|
||||
# Submodule deps check
|
||||
if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/deps/qr/cpp/QrCode.hpp")
|
||||
- message(FATAL_ERROR "obs-websocket submodule deps not available.")
|
||||
+ message(INFO "obs-websocket submodule deps not available.")
|
||||
endif()
|
||||
|
||||
# Find Qt
|
||||
@@ -22,6 +22,9 @@ find_qt(COMPONENTS Core Widgets Svg Network)
|
||||
# Find nlohmann JSON
|
||||
find_package(nlohmann_json 3 REQUIRED)
|
||||
|
||||
+# Find qrcodegencpp
|
||||
+find_package(qrcodegencpp REQUIRED)
|
||||
+
|
||||
# Find WebSocket++
|
||||
find_package(Websocketpp 0.8 REQUIRED)
|
||||
|
||||
@@ -157,7 +160,9 @@ target_link_libraries(
|
||||
Qt::Network
|
||||
nlohmann_json::nlohmann_json
|
||||
Websocketpp::Websocketpp
|
||||
- Asio::Asio)
|
||||
+ Asio::Asio
|
||||
+ qrcodegencpp
|
||||
+ )
|
||||
|
||||
set_target_properties_obs(
|
||||
obs-websocket
|
||||
diff --git a/plugins/obs-websocket/cmake/legacy.cmake b/plugins/obs-websocket/cmake/legacy.cmake
|
||||
index ab25ec7..98ca704 100644
|
||||
--- a/plugins/obs-websocket/cmake/legacy.cmake
|
||||
+++ b/plugins/obs-websocket/cmake/legacy.cmake
|
||||
@@ -10,7 +10,7 @@ endif()
|
||||
|
||||
# Submodule deps check
|
||||
if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/deps/qr/cpp/QrCode.hpp)
|
||||
- obs_status(FATAL_ERROR "obs-websocket submodule deps not available.")
|
||||
+ obs_status(INFO "obs-websocket submodule deps not available.")
|
||||
endif()
|
||||
|
||||
# Plugin tests flag
|
||||
@@ -22,6 +22,9 @@ find_qt(COMPONENTS Core Widgets Svg Network)
|
||||
# Find nlohmann JSON
|
||||
find_package(nlohmann_json 3 REQUIRED)
|
||||
|
||||
+# Find qrcodegencpp
|
||||
+find_package(qrcodegencpp REQUIRED)
|
||||
+
|
||||
# Find WebSocket++
|
||||
find_package(Websocketpp 0.8 REQUIRED)
|
||||
|
||||
@@ -129,8 +132,7 @@ target_sources(
|
||||
src/utils/Compat.cpp
|
||||
src/utils/Compat.h
|
||||
src/utils/Utils.h
|
||||
- deps/qr/cpp/QrCode.cpp
|
||||
- deps/qr/cpp/QrCode.hpp)
|
||||
+ )
|
||||
|
||||
target_link_libraries(
|
||||
obs-websocket
|
||||
@@ -142,7 +144,9 @@ target_link_libraries(
|
||||
Qt::Network
|
||||
nlohmann_json::nlohmann_json
|
||||
Websocketpp::Websocketpp
|
||||
- Asio::Asio)
|
||||
+ Asio::Asio
|
||||
+ qrcodegencpp
|
||||
+ )
|
||||
|
||||
target_compile_features(obs-websocket PRIVATE cxx_std_17)
|
||||
|
||||
diff --git a/plugins/obs-websocket/src/forms/ConnectInfo.cpp b/plugins/obs-websocket/src/forms/ConnectInfo.cpp
|
||||
index ddb979d..89a04c4 100644
|
||||
--- a/plugins/obs-websocket/src/forms/ConnectInfo.cpp
|
||||
+++ b/plugins/obs-websocket/src/forms/ConnectInfo.cpp
|
||||
@@ -21,9 +21,9 @@ with this program. If not, see <https://www.gnu.org/licenses/>
|
||||
#include <QPainter>
|
||||
#include <QUrl>
|
||||
#include <obs-module.h>
|
||||
+#include <qrcodegencpp/QrCode.hpp>
|
||||
|
||||
#include "ConnectInfo.h"
|
||||
-#include "../../deps/qr/cpp/QrCode.hpp"
|
||||
#include "../obs-websocket.h"
|
||||
#include "../Config.h"
|
||||
#include "../utils/Platform.h"
|
||||
--
|
||||
2.39.2
|
||||
@@ -1,151 +0,0 @@
|
||||
%global obswebsocketver 5.2.2
|
||||
|
||||
Name: obs-studio
|
||||
Version: 29.1.1
|
||||
Release: 1%?dist
|
||||
Summary: Open Broadcaster Software Studio
|
||||
License: GPL-2.0-or-later and ISC and MIT and BSD-1-Clause and BSD-2-Clause and BSD-3-Clause and BSL-1.0 and LGPL-2.1-or-later and CC0-1.0 and (CC0-1.0 or OpenSSL or Apache-2.0) and LicenseRef-Fedora-Public-Domain and (BSD-3-Clause or GPL-2.0-only)
|
||||
URL: https://obsproject.com/
|
||||
Source0: https://github.com/obsproject/obs-studio/archive/refs/tags/%version.tar.gz
|
||||
Source1: https://github.com/obsproject/obs-websocket/archive/%obswebsocketver/obs-websocket-%obswebsocketver.tar.gz
|
||||
|
||||
BuildRequires: gcc
|
||||
BuildRequires: cmake >= 3.16
|
||||
BuildRequires: ninja-build
|
||||
BuildRequires: libappstream-glib
|
||||
BuildRequires: desktop-file-utils
|
||||
|
||||
BuildRequires: alsa-lib-devel
|
||||
BuildRequires: asio-devel
|
||||
BuildRequires: fdk-aac-free-devel
|
||||
BuildRequires: fontconfig-devel
|
||||
BuildRequires: freetype-devel
|
||||
BuildRequires: jansson-devel >= 2.5
|
||||
BuildRequires: json-devel
|
||||
BuildRequires: libcurl-devel
|
||||
BuildRequires: libdrm-devel
|
||||
BuildRequires: libGL-devel
|
||||
BuildRequires: libglvnd-devel
|
||||
BuildRequires: librist-devel
|
||||
BuildRequires: srt-devel
|
||||
BuildRequires: libuuid-devel
|
||||
BuildRequires: libv4l-devel
|
||||
BuildRequires: libva-devel
|
||||
BuildRequires: libX11-devel
|
||||
BuildRequires: libxcb-devel
|
||||
BuildRequires: libXcomposite-devel
|
||||
BuildRequires: libXinerama-devel
|
||||
BuildRequires: libxkbcommon-devel
|
||||
BuildRequires: luajit-devel
|
||||
BuildRequires: mbedtls-devel
|
||||
BuildRequires: pciutils-devel
|
||||
BuildRequires: pipewire-devel
|
||||
BuildRequires: pipewire-jack-audio-connection-kit-devel
|
||||
BuildRequires: pulseaudio-libs-devel
|
||||
BuildRequires: python3-devel
|
||||
BuildRequires: libqrcodegencpp-devel
|
||||
BuildRequires: qt6-qtbase-devel
|
||||
BuildRequires: qt6-qtbase-private-devel
|
||||
BuildRequires: qt6-qtsvg-devel
|
||||
BuildRequires: qt6-qtwayland-devel
|
||||
BuildRequires: speexdsp-devel
|
||||
BuildRequires: swig
|
||||
BuildRequires: systemd-devel
|
||||
BuildRequires: wayland-devel
|
||||
BuildRequires: websocketpp-devel
|
||||
BuildRequires: ffmpeg-free-devel
|
||||
BuildRequires: x264-devel
|
||||
BuildRequires: vlc-devel
|
||||
# websocket deps
|
||||
BuildRequires: nlohmann-json-devel websocketpp-devel asio-devel
|
||||
|
||||
# Ensure QtWayland is installed when libwayland-client is installed
|
||||
Requires: (qt6-qtwayland%{?_isa} if libwayland-client%{?_isa})
|
||||
# For icon folder heirarchy
|
||||
Requires: hicolor-icon-theme
|
||||
# Virtual camera support
|
||||
Recommends: kmod-v4l2loopback
|
||||
# NVIDIA Hardware accelerated encoding: CUDA
|
||||
Suggests: xorg-x11-drv-nvidia-cuda
|
||||
# obs-studio-plugin-vlc-video
|
||||
# We dlopen() libvlc
|
||||
Requires: libvlc.so.%{libvlc_soversion}%{?lib64_suffix}
|
||||
|
||||
|
||||
# These are modified sources that can't be easily unbundled
|
||||
## License: MIT and CC0-1.0
|
||||
## Newer version in Fedora with the same licensing
|
||||
## Request filed upstream for fixing it: https://github.com/simd-everywhere/simde/issues/999
|
||||
Provides: bundled(simde) = 0.7.1
|
||||
## License: BSL-1.0
|
||||
Provides: bundled(decklink-sdk)
|
||||
## License: CC0-1.0 or OpenSSL or Apache-2.0
|
||||
Provides: bundled(blake2)
|
||||
## License: MIT
|
||||
Provides: bundled(json11)
|
||||
## License: MIT
|
||||
Provides: bundled(libcaption)
|
||||
## License: ISC
|
||||
Provides: bundled(libff)
|
||||
## License: BSD-1-Clause
|
||||
Provides: bundled(uthash)
|
||||
## License: BSD-3-Clause
|
||||
Provides: bundled(rnnoise)
|
||||
## License: LGPL-2.1-or-later and LicenseRef-Fedora-Public-Domain
|
||||
Provides: bundled(librtmp)
|
||||
## License: MIT
|
||||
Provides: bundled(libnsgif)
|
||||
## License: MIT
|
||||
## Windows only dependency
|
||||
## Support for Linux will also unbundle it
|
||||
## Cf. https://github.com/obsproject/obs-studio/pull/8327
|
||||
Provides: bundled(intel-mediasdk)
|
||||
|
||||
%description
|
||||
Open Broadcaster Software is free and open source
|
||||
software for video recording and live streaming.
|
||||
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n obs-studio-%{?snapdate:%{commit}}%{!?snapdate:%{version_no_tilde}}
|
||||
# Prepare plugins/obs-websocket
|
||||
tar -xf %SOURCE1 --strip-components=1 -C plugins/obs-websocket/
|
||||
ls plugins/obs-websocket/
|
||||
sed -e 's|OBS_MULTIARCH_SUFFIX|LIB_SUFFIX|g' -i cmake/Modules/ObsHelpers.cmake
|
||||
# Kill rpath settings
|
||||
sed -e '\|set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${OBS_LIBRARY_DESTINATION}")|d' -i cmake/Modules/ObsHelpers_Linux.cmake
|
||||
# touch the missing submodules
|
||||
touch plugins/obs-browser/CMakeLists.txt
|
||||
# remove -Werror flag to mitigate FTBFS with ffmpeg 5.1
|
||||
sed -e 's|-Werror-implicit-function-declaration||g' -i cmake/Modules/CompilerConfig.cmake
|
||||
sed -e '/-Werror/d' -i cmake/Modules/CompilerConfig.cmake
|
||||
|
||||
|
||||
%build
|
||||
%cmake -B build -S . \
|
||||
-DUNIX_STRUCTURE=1 -GNinja \
|
||||
-DCMAKE_SKIP_RPATH=1 \
|
||||
-DBUILD_BROWSER=OFF \
|
||||
-DENABLE_JACK=ON \
|
||||
-DENABLE_LIBFDK=ON \
|
||||
-DENABLE_AJA=OFF \
|
||||
-DOBS_VERSION_OVERRIDE="%version-%release" \
|
||||
-Wno-dev \
|
||||
-DOpenGL_GL_PREFERENCE=GLVND
|
||||
%cmake_build
|
||||
|
||||
|
||||
%install
|
||||
%cmake_install
|
||||
|
||||
|
||||
%files
|
||||
%doc README.rst
|
||||
%license COPYING plugins/{{enc-amf,obs-websocket}/LICENSE,obs-{browser,filters,outputs}/COPYING}
|
||||
|
||||
|
||||
%changelog
|
||||
* Tue May 23 2023 windowsboy111 <windowsboy111@fyralabs.com> - 29.1.1-1
|
||||
- Initial package
|
||||
- Ref: https://pkgs.rpmfusion.org/cgit/free/obs-studio-freeworld.git/tree/obs-studio-freeworld.spec
|
||||
- Ref: https://gitlab.archlinux.org/archlinux/packaging/packages/obs-studio/-/blob/main/PKGBUILD
|
||||
@@ -1,2 +0,0 @@
|
||||
rpm.version(gh("obsproject/obs-studio"));
|
||||
rpm.global("obswebsocketver", gh("obsproject/obs-websocket"));
|
||||
@@ -0,0 +1,5 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "tectonic.spec"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
%define debug_package %{nil}
|
||||
|
||||
Name: tectonic
|
||||
Version: 0.12.0
|
||||
Release: 2%{?dist}
|
||||
Summary: A modernized, complete, self-contained TeX/LaTeX engine, powered by XeTeX and TeXLive
|
||||
URL: https://github.com/tectonic-typesetting/tectonic
|
||||
License: MIT
|
||||
Source0: %{url}/archive/refs/tags/tectonic@%{version}.tar.gz
|
||||
Requires: openssl harfbuzz-icu libpng freetype graphite2 zlib fontconfig
|
||||
BuildRequires: cargo gcc gcc-c++ mold openssl-devel libpng-devel freetype graphite2-devel zlib-devel fontconfig-devel pkgconfig(icu-uc)
|
||||
|
||||
%description
|
||||
Tectonic is a modernized, complete, self-contained TeX/LaTeX engine, powered by XeTeX and TeXLive.
|
||||
|
||||
%prep
|
||||
%autosetup -n tectonic-tectonic-%{version}
|
||||
|
||||
|
||||
%build
|
||||
# cargo build --features external-harfbuzz
|
||||
|
||||
|
||||
%install
|
||||
cargo install --path . --features external-harfbuzz
|
||||
|
||||
|
||||
%files
|
||||
%doc README.md
|
||||
%license LICENSE
|
||||
|
||||
|
||||
%changelog
|
||||
* Tue Nov 1 2022 windowsboy111 <windowsboy111@fyralabs.com>
|
||||
- Repackaged for Terra
|
||||
@@ -0,0 +1,3 @@
|
||||
let v = gh("tectonic-typesetting/tectonic");
|
||||
v.crop(9);
|
||||
rpm.version(v);
|
||||
@@ -1,5 +0,0 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "vala-panel-appmenu.spec"
|
||||
}
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
let o = get("https://gitlab.com/api/v4/projects/6865053/repository/tags").json_arr()[0];
|
||||
rpm.version(o.name);
|
||||
rpm.global("commit", get("https://gitlab.com/api/v4/projects/6865053/repository/commits").json_arr()[0].id);
|
||||
@@ -1,141 +0,0 @@
|
||||
%global forgeurl https://gitlab.com/vala-panel-project/vala-panel-appmenu
|
||||
%global commit 76442be6195385193cb5931d0004122310d40c95
|
||||
%forgemeta
|
||||
|
||||
Name: vala-panel-appmenu
|
||||
Version: 0.7.6
|
||||
Release: 2%?dist
|
||||
License: LGPL-3.0-or-later
|
||||
Summary: Application Menu plugin for vala-panel
|
||||
URL: %{forgeurl}
|
||||
Source: %{forgesource}
|
||||
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: bamf-daemon
|
||||
BuildRequires: meson
|
||||
BuildRequires: ninja-build
|
||||
BuildRequires: gettext
|
||||
BuildRequires: cmake
|
||||
BuildRequires: vala
|
||||
BuildRequires: systemd-rpm-macros
|
||||
BuildRequires: pkgconfig(libxfce4panel-2.0)
|
||||
BuildRequires: pkgconfig(gtk+-2.0)
|
||||
BuildRequires: pkgconfig(gtk+-3.0)
|
||||
BuildRequires: pkgconfig(libxfconf-0)
|
||||
BuildRequires: pkgconfig(budgie-1.0)
|
||||
BuildRequires: pkgconfig(systemd)
|
||||
BuildRequires: pkgconfig(libbamf3)
|
||||
BuildRequires: pkgconfig(libxfce4panel-2.0)
|
||||
BuildRequires: pkgconfig(libxfconf-0)
|
||||
BuildRequires: pkgconfig(libwnck-3.0) >= 3.4.0
|
||||
BuildRequires: pkgconfig(x11)
|
||||
BuildRequires: pkgconfig(dbusmenu-glib-0.4)
|
||||
BuildRequires: pkgconfig(vala-panel)
|
||||
BuildRequires: pkgconfig(libmatepanelapplet-4.0)
|
||||
Provides: vala-panel-appmenu-plugin = %{version}
|
||||
Requires: bamf-daemon
|
||||
|
||||
%description
|
||||
Vala Panel Application Menu is a Global Menu applet for use with Vala Panel,
|
||||
xfce4-panel and mate-panel (Budgie 10.x is also planned).
|
||||
Unity-gtk-module is used as a backend
|
||||
|
||||
%package -n xfce4-vala-panel-appmenu-plugin
|
||||
Summary: Application Menu plugin for xfce4-panel
|
||||
Requires: xfce4-panel
|
||||
Requires: vala-panel-appmenu-gtk-module%{?_isa} == %{version}-%{release}
|
||||
|
||||
%description -n xfce4-vala-panel-appmenu-plugin
|
||||
XFCE4 desktop plugin for %{name}.
|
||||
|
||||
|
||||
%package -n mate-vala-panel-appmenu-plugin
|
||||
Summary: Application Menu plugin for xfce4-panel
|
||||
Requires: mate-panel
|
||||
Requires: vala-panel-appmenu-gtk-module%{?_isa} == %{version}-%{release}
|
||||
|
||||
%description -n mate-vala-panel-appmenu-plugin
|
||||
Mate desktop plugin for %{name}.
|
||||
|
||||
|
||||
%package -n budgie-vala-panel-appmenu-plugin
|
||||
Summary: Application Menu plugin for xfce4-panel
|
||||
Requires: budgie-desktop
|
||||
Requires: vala-panel-appmenu-gtk-module%{?_isa} == %{version}-%{release}
|
||||
|
||||
%description -n budgie-vala-panel-appmenu-plugin
|
||||
Budgie desktop plugin for %{name}.
|
||||
|
||||
|
||||
%package devel
|
||||
Summary: Development package for budgie-desktop
|
||||
Requires: vala-panel-appmenu-gtk-module%{?_isa} = %{version}-%{release}
|
||||
|
||||
%description devel
|
||||
Header files, libraries, and other files for developing %{name}.
|
||||
|
||||
|
||||
%package -n vala-panel-appmenu-gtk-module
|
||||
Summary: Gtk3MenuShell D-Bus exporter
|
||||
|
||||
%description -n vala-panel-appmenu-gtk-module
|
||||
GTK (2, 3) module that exports GtkMenuShells over D-Bus.
|
||||
|
||||
%prep
|
||||
%forgeautosetup
|
||||
|
||||
%build
|
||||
%meson -Dxfce=enabled -Dvalapanel=enabled -Djayatana=enabled \
|
||||
-Dbudgie=enabled -Dmate=enabled
|
||||
%meson_build
|
||||
|
||||
%install
|
||||
%meson_install
|
||||
%fdupes %buildroot%_datadir/locale/
|
||||
%find_lang vala-panel-appmenu
|
||||
|
||||
%files -f vala-panel-appmenu.lang
|
||||
%doc README.md
|
||||
%license LICENSE
|
||||
%dir %{_libdir}/vala-panel
|
||||
%dir %{_libdir}/vala-panel/applets
|
||||
%{_libdir}/vala-panel/applets/libappmenu.so
|
||||
%dir %{_libexecdir}/vala-panel
|
||||
%{_libexecdir}/vala-panel/appmenu-registrar
|
||||
%{_docdir}/appmenu-gtk-module/
|
||||
%dir %{_datadir}/licenses/appmenu-gtk-module
|
||||
%{_datadir}/licenses/appmenu-gtk-module/LICENSE
|
||||
%{_datadir}/dbus-1/services/com.canonical.AppMenu.Registrar.service
|
||||
%{_datadir}/glib-2.0/schemas/org.valapanel.appmenu.gschema.xml
|
||||
%{_datadir}/vala-panel/applets/org.valapanel.appmenu.plugin
|
||||
|
||||
%files -n vala-panel-appmenu-gtk-module
|
||||
%{_userunitdir}/appmenu-gtk-module.service
|
||||
%{_libdir}/libappmenu-gtk2-parser.so.*
|
||||
%{_libdir}/libappmenu-gtk3-parser.so.*
|
||||
%{_libdir}/gtk-2.0/modules/libappmenu-gtk-module.so
|
||||
%{_libdir}/gtk-3.0/modules/libappmenu-gtk-module.so
|
||||
%{_datadir}/glib-2.0/schemas/org.appmenu.gtk-module.gschema.xml
|
||||
|
||||
%files -n xfce4-vala-panel-appmenu-plugin
|
||||
%{_libdir}/xfce4/panel/plugins/libappmenu-xfce.so
|
||||
%{_datadir}/xfce4/panel/plugins/appmenu.desktop
|
||||
|
||||
%files -n mate-vala-panel-appmenu-plugin
|
||||
%{_libdir}/mate-panel/libappmenu-mate.so
|
||||
%{_datadir}/mate-panel/applets/org.vala-panel.appmenu.mate-panel-applet
|
||||
|
||||
%files -n budgie-vala-panel-appmenu-plugin
|
||||
%dir %{_libdir}/budgie-desktop/plugins/budgie-appmenu-plugin
|
||||
%{_libdir}/budgie-desktop/plugins/budgie-appmenu-plugin/appmenu-budgie.plugin
|
||||
%{_libdir}/budgie-desktop/plugins/budgie-appmenu-plugin/libappmenu-budgie.so
|
||||
|
||||
%files devel
|
||||
%dir %{_includedir}/appmenu-gtk-parser
|
||||
%{_includedir}/appmenu-gtk-parser/*.h
|
||||
%{_libdir}/libappmenu-gtk2-parser.so
|
||||
%{_libdir}/libappmenu-gtk3-parser.so
|
||||
%{_libdir}/pkgconfig/*.pc
|
||||
|
||||
%changelog
|
||||
%autochangelog
|
||||
@@ -1,5 +0,0 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "vala-panel.spec"
|
||||
}
|
||||
}
|
||||
@@ -1,87 +0,0 @@
|
||||
%global forgeurl https://gitlab.com/vala-panel-project/vala-panel
|
||||
%global commit ead4e7a36b0e4b0a2ac43c5d9ca17eb753461afe
|
||||
|
||||
%forgemeta
|
||||
|
||||
Name: vala-panel
|
||||
Version: 0.5.0
|
||||
Release: 2%?dist
|
||||
License: LGPL-3.0-or-later
|
||||
Summary: This package provides Application Menu plugin for vala-panel
|
||||
URL: %{forgeurl}
|
||||
Source: %{forgesource}
|
||||
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: meson
|
||||
BuildRequires: vala
|
||||
BuildRequires: desktop-file-utils
|
||||
BuildRequires: libappstream-glib
|
||||
BuildRequires: pkgconfig(gtk+-3.0)
|
||||
BuildRequires: pkgconfig(gmodule-2.0)
|
||||
BuildRequires: pkgconfig(libwnck-3.0)
|
||||
BuildRequires: pkgconfig(x11)
|
||||
BuildRequires: pkgconfig(libpeas-gtk-1.0)
|
||||
BuildRequires: gtk-layer-shell-devel
|
||||
|
||||
%description
|
||||
This is Application Menu (Global Menu) plugin.
|
||||
It built using Unity protocol and libraries,
|
||||
and share all Unity limitations and advancements.
|
||||
|
||||
%package devel
|
||||
Summary: Development files for %{name}
|
||||
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||
%description devel
|
||||
%{summary}.
|
||||
|
||||
%prep
|
||||
%forgeautosetup
|
||||
|
||||
%build
|
||||
%meson -Dwnck=enabled -Dplatforms='layer-shell,x11'
|
||||
%meson_build
|
||||
|
||||
%install
|
||||
%meson_install
|
||||
%fdupes %buildroot%_datadir/locale/
|
||||
%find_lang %{name}
|
||||
# Already packaged
|
||||
rm -rf %{buildroot}%{_datadir}/vala-panel/doc
|
||||
|
||||
%check
|
||||
desktop-file-validate %{buildroot}%{_datadir}/applications/org.valapanel.application.desktop
|
||||
# Seems to succeed with other appstream checkers and works but fails
|
||||
#appstream-util validate-relax --nonet {buildroot}{_datadir}/appdata/org.valapanel.application.appdata.xml
|
||||
|
||||
%files -f %{name}.lang
|
||||
%doc README.md
|
||||
%license LICENSE
|
||||
%config %{_sysconfdir}/xdg/vala-panel/
|
||||
%{_bindir}/vala-*
|
||||
%{_libdir}/libvalapanel.so.*
|
||||
%dir %{_libdir}/vala-panel
|
||||
%dir %{_libdir}/vala-panel/applets
|
||||
%{_libdir}/vala-panel/applets/*.so
|
||||
%{_datadir}/appdata/org.valapanel.application.appdata.xml
|
||||
%{_datadir}/applications/org.valapanel.application.desktop
|
||||
%{_datadir}/glib-2.0/schemas/*.xml
|
||||
%{_datadir}/icons/hicolor/96x96/apps/vala-panel.png
|
||||
%{_datadir}/icons/hicolor/scalable/apps/vala-panel.svg
|
||||
%{_datadir}/man/man1/*.1.gz
|
||||
%dir %{_datadir}/vala-panel
|
||||
%dir %{_datadir}/vala-panel/applets
|
||||
%{_datadir}/vala-panel/applets/*.plugin
|
||||
%dir %{_datadir}/vala-panel/images
|
||||
%{_datadir}/vala-panel/images/background.png
|
||||
|
||||
%files devel
|
||||
%doc README.md
|
||||
%license LICENSE
|
||||
%dir %{_includedir}/vala-panel
|
||||
%{_includedir}/vala-panel/*.h
|
||||
%{_libdir}/libvalapanel.so
|
||||
%{_libdir}/pkgconfig/vala-panel.pc
|
||||
%{_datadir}/vala/vapi/vala-panel.*
|
||||
|
||||
%changelog
|
||||
%autochangelog
|
||||
@@ -1,5 +1,5 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "distrho.spec"
|
||||
}
|
||||
rpm {
|
||||
spec = "distrho.spec"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ Version: 0
|
||||
Release: 0.1.%{rel_tag}%{?dist}
|
||||
Summary: Linux audio plugins ports
|
||||
URL: https://distrho.sourceforge.io/ports.php
|
||||
License: GPL-2.0 AND GPL-3.0 AND MIT
|
||||
License: GPLv2 and GPLv3 and MIT
|
||||
|
||||
Source0: https://github.com/DISTRHO/DISTRHO-Ports/archive/refs/tags/2021-03-15.tar.gz
|
||||
|
||||
@@ -26,36 +26,37 @@ BuildRequires: pkgconfig(xcursor)
|
||||
%description
|
||||
Misc audio production plugins ported to linux lv2 plugins by DISTRHO
|
||||
|
||||
# Dexed
|
||||
|
||||
%package dexed
|
||||
Summary: A multi platform, multi format plugin synth closely modeled on the Yamaha DX7
|
||||
Summary: Dexed is a multi platform, multi format plugin synth that is closely modeled on the Yamaha DX7
|
||||
|
||||
%description dexed
|
||||
Dexed is a multi platform, multi format plugin synth that is closely modeled on
|
||||
the Yamaha DX7. Dexed is also a midi cartridge librarian/manager for the DX7.
|
||||
Dexed is a multi platform, multi format plugin synth that is closely modeled on the Yamaha DX7.
|
||||
Dexed is also a midi cartridge librarian/manager for the DX7
|
||||
|
||||
# Vitalium
|
||||
|
||||
%package vitalium
|
||||
Summary: A spectral warping wavetable synthesizer
|
||||
Summary: vitalium is a spectral warping wavetable synthesizer
|
||||
Provides: vitalium-vst = %{version}-%{release}
|
||||
Provides: vitalium-lv2 = %{version}-%{release}
|
||||
Provides: vitalium = %{version}-%{release}
|
||||
|
||||
%description vitalium
|
||||
vitalium is the Open Source version of the Vital spectral warping wavetable
|
||||
synthesizer.
|
||||
|
||||
vitalium is the Open Source version of the Vital spectral warping wavetable synthesizer
|
||||
|
||||
%package TAL
|
||||
Summary: Misc Plugins for TAL
|
||||
Summary: Misc Plugins for TAL (tal-filter, tal-filter-2, tal-noisemaker, tal-reverb, tal-reverb-2, tal-reverb-3, tal-vocoder-2)
|
||||
|
||||
# TAL
|
||||
|
||||
%description TAL
|
||||
Misc Plugins for TAL (tal-filter, tal-filter-2, tal-noisemaker, tal-reverb,
|
||||
tal-reverb-2, tal-reverb-3, tal-vocoder-2).
|
||||
|
||||
Misc Plugins for TAL (tal-filter, tal-filter-2, tal-noisemaker, tal-reverb, tal-reverb-2, tal-reverb-3, tal-vocoder-2)
|
||||
|
||||
%package dRowAudio
|
||||
Summary: Plugins from dRowAudio
|
||||
Summary: Plugins from dRowAudio (distortion, distortionshaper, flanger, reverb, tremolo)
|
||||
|
||||
# dRowAudio
|
||||
|
||||
%description dRowAudio
|
||||
Plugins from dRowAudio (distortion, distortionshaper, flanger, reverb, tremolo)
|
||||
@@ -67,132 +68,132 @@ Summary: Arctican lv2 plugins
|
||||
%description Arctican
|
||||
Plugins from Arctican (The Functiom & The Pilgrim)
|
||||
|
||||
# LUFS
|
||||
|
||||
%package LUFS
|
||||
Summary: Klangfreund metering plugins (Multimeter + LUFS Meter)
|
||||
|
||||
%description LUFS
|
||||
Klangfreund metering plugins (Multimeter + LUFS Meter).
|
||||
Klangfreund metering plugins (Multimeter + LUFS Meter)
|
||||
|
||||
# EasySSP
|
||||
|
||||
%package EasySSP
|
||||
Summary: A small and lightweight audio visualization tool
|
||||
Summary: Easy Sound Space Perception is a small and lightweight audio visualization tool
|
||||
|
||||
%description EasySSP
|
||||
Easy Sound Space Perception is a small and lightweight audio visualization tool
|
||||
that currently provides spectrometer and goniometer views.
|
||||
Easy Sound Space Perception is a small and lightweight audio visualization tool, which currently provides spectrometer and goniometer views.
|
||||
|
||||
# JuceOPL
|
||||
|
||||
%package JuceOPL
|
||||
Summary: Classic game sounds in Plugin form, as heard in late 80s / early 90s sound cards
|
||||
|
||||
%description JuceOPL
|
||||
Classic game sounds in Plugin form,
|
||||
as heard in late 80s / early 90s sound cards.
|
||||
Classic game sounds in Plugin form, as heard in late 80s / early 90s sound cards.
|
||||
|
||||
# KlangFalter
|
||||
|
||||
%package KlangFalter
|
||||
Summary: A convolution audio plugin
|
||||
Summary: KlangFalter is a convolution audio plugin
|
||||
|
||||
%description KlangFalter
|
||||
KlangFalter is a convolution audio plugin
|
||||
|
||||
# Luftikus
|
||||
|
||||
%package Luftikus
|
||||
Summary: Luftikus plugin
|
||||
|
||||
%description Luftikus
|
||||
Luftikus is a digital adaptation of an analog EQ with fixed half-octave bands
|
||||
and additional high frequency boost. As an improvement to the hardware it
|
||||
allows deeper cuts and supports a keep-gain mode where overall gain changes are
|
||||
avoided.
|
||||
Luftikus is a digital adaptation of an analog EQ with fixed half-octave bands and additional high frequency boost.
|
||||
As an improvement to the hardware it allows deeper cuts and supports a keep-gain mode where overall gain changes are avoided.
|
||||
|
||||
# Obxd
|
||||
|
||||
%package Obxd
|
||||
Summary: Emulation of famous ob-x, ob-xa and ob8 synths
|
||||
Summary: Obxd is emulation of famous ob-x, ob-xa and ob8 synths
|
||||
|
||||
%description Obxd
|
||||
Obxd is emulation of famous ob-x, ob-xa and ob8 synths.
|
||||
|
||||
# Refine
|
||||
|
||||
%package ReFine
|
||||
Summary: ReFine plugin
|
||||
|
||||
%description ReFine
|
||||
ReFine is a plugin that allows to add a final polishing to your tracks, busses
|
||||
and masters. It extracts psycho-acoustic parameters from the source and thus
|
||||
allows to add warmth, space and punch to your mixes.
|
||||
ReFine is a plugin that allows to add a final polishing to your tracks, busses and masters.
|
||||
It extracts psycho-acoustic parameters from the source and thus allows to add warmth, space and punch to your mixes.
|
||||
|
||||
# Wolpertinger
|
||||
|
||||
%package Wolpertinger
|
||||
Summary: A subtractive, antialiased polyphonic software synthesizer
|
||||
Summary: Wolpertinger is a subtractive, antialiased polyphonic software synthesizer
|
||||
|
||||
%description Wolpertinger
|
||||
Wolpertinger is a subtractive, antialiased polyphonic software synthesizer.
|
||||
|
||||
# Vex
|
||||
|
||||
%package Vex
|
||||
Summary: A 3 oscillator subtractive waverom synth
|
||||
Summary: Vex is a 3 oscillator subtractive waverom synth
|
||||
|
||||
%description Vex
|
||||
Vex is a 3 oscillator subtractive waverom synth
|
||||
|
||||
|
||||
# Temper
|
||||
%package Temper
|
||||
Summary: A modern digital distortion plugin
|
||||
Summary: Temper is a modern digital distortion plugin
|
||||
|
||||
%description Temper
|
||||
Temper is a modern digital distortion plugin featuring a rich saturation stage
|
||||
and a unique phase distortion. Use the variable saturation curve to add warmth
|
||||
and edge to your sound, and let the phase distortion bring character and
|
||||
clarity through your mix. Temper also features a simple resonant lowpass filter
|
||||
and a feedback path to drive the intensity of the tone.
|
||||
|
||||
Temper is a modern digital distortion plugin featuring a rich saturation stage and a unique phase distortion.
|
||||
Use the variable saturation curve to add warmth and edge to your sound, and let the phase distortion bring character and clarity through your mix.
|
||||
Temper also features a simple resonant lowpass filter and a feedback path to drive the intensity of the tone.
|
||||
|
||||
# SwankyAmp
|
||||
%package SwankyAmp
|
||||
Summary: A tube amplifier emulation plug-in
|
||||
Summary: Swanky Amp is a tube amplifier emulation plug-in
|
||||
|
||||
%description SwankyAmp
|
||||
Swanky Amp is a tube amplifier emulation plug-in based on detailed simulations
|
||||
of tube amplification. Discover new tones effortlessly with intuitive controls,
|
||||
harnessing the coveted sounds of dynamic tube amplification.
|
||||
|
||||
Swanky Amp is a tube amplifier emulation plug-in which is based on detailed simulations of tube amplification.
|
||||
Discover new tones effortlessly with intuitive controls, harnessing the coveted sounds of dynamic tube amplification.
|
||||
|
||||
# PitchedDelay
|
||||
%package PitchedDelay
|
||||
Summary: PitchedDelay is a delay that allows the pitching the delayed signal
|
||||
|
||||
%description PitchedDelay
|
||||
PitchedDelay is a delay that allows the pitching the delayed signal, within or
|
||||
outside the feedback loop.
|
||||
|
||||
PitchedDelay is a delay that allows the pitching the delayed signal, within or outside the feedback loop.
|
||||
|
||||
# StereoSourceSeparation
|
||||
%package StereoSourceSeparation
|
||||
Summary: Stereo Source Separation plugin
|
||||
|
||||
%description StereoSourceSeparation
|
||||
This is a plugin that uses the spatial information hidden in the stereo signal
|
||||
to accomplish source separation.
|
||||
This is a plugin that uses the spatial information hidden in the stereo signal to accomplish source separation.
|
||||
|
||||
# HiReSam
|
||||
|
||||
%package HiReSam
|
||||
Summary: Klangfreund High Resolution Spectrum Analyse Meter
|
||||
|
||||
%description HiReSam
|
||||
%summary.
|
||||
|
||||
Klangfreund High Resolution Spectrum Analyse Meter
|
||||
|
||||
# eqinox
|
||||
%package eqinox
|
||||
Summary: EQinox equaliser plugin
|
||||
|
||||
%description eqinox
|
||||
EQinox equaliser plugin.
|
||||
|
||||
EQinox equaliser plugin
|
||||
|
||||
# drumsynth
|
||||
%package drumsynth
|
||||
Summary: Plugin for drumsynth
|
||||
Summary: drumsynth plugin
|
||||
|
||||
%description drumsynth
|
||||
%summary.
|
||||
drumsynth plugin
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n DISTRHO-Ports-%{github_release}
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
From 6b8c81d1d4ac0ac562b69e7f8164c8a92dafe13a Mon Sep 17 00:00:00 2001
|
||||
From: windowsboy111 <wboy111@outlook.com>
|
||||
Date: Mon, 19 Jun 2023 10:33:20 +0800
|
||||
Subject: [PATCH] feat: add repository entry in package.json
|
||||
|
||||
---
|
||||
package.json | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/package.json b/package.json
|
||||
index 622756a..b3d3dfa 100644
|
||||
--- a/package.json
|
||||
+++ b/package.json
|
||||
@@ -1,4 +1,5 @@
|
||||
{
|
||||
+ "repository": "github:VOICEVOX/voicevox",
|
||||
"name": "voicevox",
|
||||
"version": "999.999.999",
|
||||
"author": "Hiroshiba Kazuyuki",
|
||||
--
|
||||
2.40.1
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "voicevox.spec"
|
||||
}
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
// let v = gh("VOICEVOX/voicevox");
|
||||
// rpm.version(v);
|
||||
// let engines = get(`https://raw.githubusercontent.com/VOICEVOX/voicevox/${v}/package.json`).json().engines;
|
||||
// rpm.define("nodev", find(">=([\\d.]+)", engines.node, 1));
|
||||
// rpm.define("nodev", find(">=([\\d.]+)", engines.npm, 1));
|
||||
let v = "0.14.7";
|
||||
let engines = get(`https://raw.githubusercontent.com/VOICEVOX/voicevox/${v}/package.json`).json().engines;
|
||||
print(find(">=([\\d.]+)", engines.node, 1));
|
||||
print(find(">=([\\d.]+)", engines.npm, 1));
|
||||
@@ -1,60 +0,0 @@
|
||||
%global nodev 16.17.0
|
||||
%global npmv 8.11.0
|
||||
%define debug_package %nil
|
||||
|
||||
Name: voicevox
|
||||
Version: 0.14.7
|
||||
Release: 1%?dist
|
||||
Summary: Free Japanese text-to-speech editor
|
||||
License: LGPL-3.0
|
||||
URL: https://voicevox.hiroshiba.jp
|
||||
Source0: https://github.com/VOICEVOX/voicevox/archive/refs/tags/%version.tar.gz
|
||||
# requires specific node and npm version
|
||||
%ifarch x86_64
|
||||
%global a x64
|
||||
%elifarch aarch64
|
||||
%global a arm64
|
||||
%endif
|
||||
Source1: https://nodejs.org/download/release/v%nodev/node-v%nodev-linux-%a.tar.xz
|
||||
Patch0: 0001-feat-add-repository-entry-in-package.json.patch
|
||||
|
||||
%description
|
||||
VOICEVOX is a free Japanese text-to-speech software with medium output quality.
|
||||
|
||||
%package doc
|
||||
Summary: Documentation files for voicevox (Japanese)
|
||||
|
||||
%description doc
|
||||
%summary.
|
||||
|
||||
%prep
|
||||
%autosetup -p1
|
||||
tar xf %SOURCE1
|
||||
PATH="$PATH:$PWD/node-v%nodev-linux-%a/bin/"
|
||||
npx npm@%npmv i
|
||||
|
||||
%build
|
||||
PATH="$PATH:$PWD/node-v%nodev-linux-%a/bin/"
|
||||
npx browserslist@latest --update-db
|
||||
PATH="$PATH:$PWD/node-v%nodev-linux-%a/bin/"
|
||||
npm run electron:build
|
||||
|
||||
%install
|
||||
rm dist_electron/linux-unpacked/README.txt # dummy
|
||||
mkdir -p %buildroot%_datadir/%name %buildroot%_bindir %buildroot%_docdir/%name/res
|
||||
mv dist_electron/linux-unpacked/* %buildroot%_datadir/%name/
|
||||
ln -s %_datadir/%name/%name %buildroot%_bindir/%name
|
||||
install -Dm644 docs/*.md %buildroot%_docdir/%name/
|
||||
install -Dm644 docs/res/* %buildroot%_docdir/%name/res/
|
||||
|
||||
%files
|
||||
%doc README.md
|
||||
%license LICENSE LGPL_LICENSE
|
||||
%_bindir/%name
|
||||
%_datadir/%name/
|
||||
|
||||
%files doc
|
||||
%doc %_docdir/%name/
|
||||
|
||||
%changelog
|
||||
%autochangelog
|
||||
@@ -1,6 +0,0 @@
|
||||
project pkg {
|
||||
arches = ["x86_64"]
|
||||
rpm {
|
||||
spec = "blahaj.spec"
|
||||
}
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
%define debug_package %nil
|
||||
|
||||
Name: blahaj
|
||||
Version: 2.0.2
|
||||
Release: 1%{?dist}
|
||||
Summary: Gay sharks at your local terminal - lolcat-like CLI tool
|
||||
License: BSD-2-Clause
|
||||
URL: https://blahaj.queer.software
|
||||
Source0: https://github.com/GeopJr/BLAHAJ/archive/refs/tags/v%version.tar.gz
|
||||
BuildRequires: crystal gcc libyaml-devel pcre-devel
|
||||
ExclusiveArch: x86_64
|
||||
|
||||
%description
|
||||
Apart from a cute cuddly shark plushie from IKEA, BLÅHAJ is a lolcat-like CLI
|
||||
tool that colorizes your input, shows flags and prints colorful sharks!
|
||||
It has a wide variety of flags/colors to choose from and many options from flag
|
||||
size to whether to colorize by line, word or character.
|
||||
|
||||
%prep
|
||||
%autosetup -n BLAHAJ-%{version}
|
||||
|
||||
%build
|
||||
shards build --production --release -D "-fPIE" --link-flags "-pie"
|
||||
|
||||
%install
|
||||
mkdir -p %buildroot%_bindir
|
||||
install -Dm755 bin/blahaj %buildroot%_bindir/
|
||||
|
||||
%check
|
||||
crystal spec --order random -Dpreview_mt
|
||||
|
||||
%files
|
||||
%doc README.md
|
||||
%license LICENSE
|
||||
%_bindir/blahaj
|
||||
|
||||
%changelog
|
||||
* Sat Apr 15 2023 windowsboy111 <windowsboy111@fyralabs.com> - 2.0.1-1
|
||||
- Initial package.
|
||||
@@ -1 +0,0 @@
|
||||
rpm.version(gh("GeopJr/BLAHAJ"));
|
||||
@@ -1,6 +0,0 @@
|
||||
project pkg {
|
||||
arches = ["x86_64"]
|
||||
rpm {
|
||||
spec = "crystal.spec"
|
||||
}
|
||||
}
|
||||
@@ -1,60 +0,0 @@
|
||||
%define debug_package %nil
|
||||
|
||||
Name: crystal
|
||||
Version: 1.8.2
|
||||
Release: 2%{?dist}
|
||||
Summary: The Crystal Programming Language
|
||||
License: Apache-2.0
|
||||
URL: https://crystal-lang.org/
|
||||
Source0: https://github.com/crystal-lang/crystal/releases/download/%version/crystal-%version-1-linux-x86_64-bundled.tar.gz
|
||||
ExclusiveArch: x86_64
|
||||
BuildRequires: rpm_macro(fdupes)
|
||||
|
||||
%description
|
||||
%summary.
|
||||
|
||||
%package devel
|
||||
Summary: Development files for the crystal package
|
||||
|
||||
%description devel
|
||||
%summary.
|
||||
|
||||
%prep
|
||||
%autosetup -n crystal-%version-1
|
||||
|
||||
%build
|
||||
|
||||
%install
|
||||
mkdir -p %buildroot/usr/bin
|
||||
mkdir -p %buildroot/usr/share
|
||||
mkdir -p %buildroot/usr/lib/crystal
|
||||
install -Dm755 bin/* %buildroot/usr/bin/
|
||||
cp -r share/* %buildroot/usr/share/
|
||||
cp -r lib/crystal/* %buildroot/usr/lib/crystal/
|
||||
|
||||
%fdupes %buildroot%_datadir/crystal/src/lib_c/
|
||||
|
||||
|
||||
%files
|
||||
%license /usr/share/licenses/crystal/LICENSE
|
||||
/usr/bin/crystal
|
||||
/usr/share/zsh/site-functions/_crystal
|
||||
/usr/share/man/man1/crystal.1.gz
|
||||
/usr/share/crystal/
|
||||
/usr/share/fish/vendor_completions.d/crystal.fish
|
||||
/usr/share/bash-completion/completions/crystal
|
||||
|
||||
/usr/bin/shards
|
||||
/usr/share/man/man1/shards.1.gz
|
||||
/usr/share/man/man5/shard.yml.5.gz
|
||||
|
||||
%files devel
|
||||
/usr/lib/crystal/
|
||||
|
||||
%changelog
|
||||
* Sat Jun 17 2023 windowsboy111 <windowsboy111@fyralabs.com> - 1.8.2-2
|
||||
- Add devel package.
|
||||
|
||||
* Sat Apr 15 2023 windowsboy111 <windowsboy111@fyralabs.com> - 1.8.0-1
|
||||
- Initial package.
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
let html = get("https://crystal-lang.org/");
|
||||
rpm.version(find("Latest release <.+>(.+)</a>", html, 1))
|
||||
+3
-3
@@ -1,5 +1,5 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "dart.spec"
|
||||
}
|
||||
rpm {
|
||||
spec = "dart.spec"
|
||||
}
|
||||
}
|
||||
|
||||
+2
-6
@@ -1,7 +1,7 @@
|
||||
%define debug_package %{nil}
|
||||
|
||||
Name: dart
|
||||
Version: 3.0.5
|
||||
Version: 2.19.1
|
||||
Release: 1%{?dist}
|
||||
Summary: The Dart Language
|
||||
License: BSD-3-Clause
|
||||
@@ -18,11 +18,9 @@ URL: https://dart.dev/
|
||||
%endif
|
||||
|
||||
Source0: https://storage.googleapis.com/dart-archive/channels/stable/release/%{version}/sdk/dartsdk-linux-%{arch}-release.zip
|
||||
BuildRequires: fdupes
|
||||
|
||||
%description
|
||||
Dart is a client-optimized language for fast apps on any platform.
|
||||
This package contains the SDK used to develop and compile Dart applications.
|
||||
Dart is a client-optimized language for fast apps on any platform. This package contains the SDK used to develop and compile Dart applications.
|
||||
|
||||
%prep
|
||||
%setup -q -n dart-sdk
|
||||
@@ -39,8 +37,6 @@ cp -rv ./* %{buildroot}%{_libdir}/dart
|
||||
ln -sf %{_libdir}/dart/bin/dart %{buildroot}%{_bindir}/dart
|
||||
ln -sf %{_libdir}/dart/bin/dartaotruntime %{buildroot}%{_bindir}/dartaotruntime
|
||||
|
||||
%fdupes %buildroot%_libdir/dart/bin/
|
||||
|
||||
%files
|
||||
%{_libdir}/dart/
|
||||
%{_bindir}/dart
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
*.tar.*
|
||||
build/
|
||||
@@ -1,5 +1,5 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "budgie-extras.spec"
|
||||
}
|
||||
rpm {
|
||||
spec = "budgie-extras.spec"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
Name: budgie-extras
|
||||
Version: 1.6.0
|
||||
Release: 2%{?dist}
|
||||
|
||||
License: GPL-3.0
|
||||
Name: budgie-extras
|
||||
Version: 1.5.0
|
||||
Release: 1%{dist}
|
||||
|
||||
License: GPLv3
|
||||
Summary: Additional Budgie Desktop enhancements for user experience
|
||||
URL: https://ubuntubudgie.org/
|
||||
|
||||
Source0: https://github.com/UbuntuBudgie/budgie-extras/releases/download/v%{version}/budgie-extras-%{version}.tar.xz
|
||||
Patch0: 0001-fix-weathershow-desktop-widget-icon-path.patch
|
||||
|
||||
BuildRequires: rpm_macro(fdupes)
|
||||
BuildRequires: cmake
|
||||
BuildRequires: meson
|
||||
BuildRequires: vala
|
||||
@@ -69,7 +69,6 @@ The applets can be used individually or as a set.
|
||||
%package common
|
||||
Requires: budgie-desktop
|
||||
Summary: Shared component of budgie-extras applets
|
||||
BuildArch: noarch
|
||||
%description common
|
||||
The shared component provides for capabilities that are utilised between
|
||||
budgie-extra applets.
|
||||
@@ -283,8 +282,6 @@ workspaces.
|
||||
# Remove absolute symlink and replace with relative symlink
|
||||
rm -f %{buildroot}%{_bindir}/quickchar
|
||||
|
||||
%fdupes %_libdir/budgie-desktop/plugins/budgie-weathershow/weather_icons
|
||||
|
||||
%post
|
||||
|
||||
%{__ln_s} -fv %{_bindir}/quickchar %{_libdir}/quickchar/quickchar
|
||||
@@ -297,7 +294,7 @@ rm -f %{buildroot}%{_bindir}/quickchar
|
||||
%{_datadir}/glib-2.0/schemas/20_budgie-extras.gschema.override
|
||||
|
||||
%files daemon
|
||||
%config %{_sysconfdir}/xdg/autostart/budgie-extras-daemon.desktop
|
||||
%{_sysconfdir}/xdg/autostart/budgie-extras-daemon.desktop
|
||||
%{_bindir}/budgie-extras-daemon
|
||||
%{_libdir}/budgie-extras-daemon/invoke.py
|
||||
%{_datadir}/budgie-desktop/layouts/*.layout
|
||||
@@ -338,15 +335,8 @@ rm -f %{buildroot}%{_bindir}/quickchar
|
||||
|
||||
%files -n budgie-applet-hotcorners
|
||||
%{_libdir}/budgie-desktop/plugins/budgie-hotcorners
|
||||
%config %{_sysconfdir}/xdg/autostart/org.ubuntubudgie.budgie-extras.HotCorners-autostart.desktop
|
||||
%{_datadir}/glib-2.0/schemas/org.ubuntubudgie.budgie-extras.HotCorners.gschema.xml
|
||||
%{_datadir}/applications/org.ubuntubudgie.budgie-extras.HotCorners.desktop
|
||||
%{_datadir}/budgie-hotcorners
|
||||
/usr/libexec/budgie-hotcorners/
|
||||
|
||||
%{_datadir}/glib-2.0/schemas/org.ubuntubudgie.plugins.budgie-hotcorners.gschema.xml
|
||||
%{_datadir}/pixmaps/budgie-hotcorners-symbolic.svg
|
||||
%{_datadir}/pixmaps/budgie-hotcgui-*.svg
|
||||
%{_datadir}/icons/hicolor/scalable/apps/org.ubuntubudgie.budgie-extras.hotcorners.svg
|
||||
|
||||
%files -n budgie-applet-kangaroo
|
||||
%{_libdir}/budgie-desktop/plugins/budgie-kangaroo
|
||||
@@ -360,7 +350,7 @@ rm -f %{buildroot}%{_bindir}/quickchar
|
||||
%{_libdir}/budgie-desktop/plugins/budgie-network-manager
|
||||
|
||||
%files -n budgie-applet-quickchar
|
||||
%config %{_sysconfdir}/xdg/autostart/quickchar-autostart.desktop
|
||||
%{_sysconfdir}/xdg/autostart/quickchar-autostart.desktop
|
||||
%ghost %{_bindir}/quickchar
|
||||
%{_libdir}/quickchar
|
||||
%{_datadir}/applications/org.ubuntubudgie.quickchar.desktop
|
||||
@@ -397,13 +387,13 @@ rm -f %{buildroot}%{_bindir}/quickchar
|
||||
%{_libdir}/budgie-desktop/plugins/budgie-trash
|
||||
|
||||
%files -n budgie-applet-visualspace
|
||||
%config %{_sysconfdir}/xdg/autostart/visualspace-autostart.desktop
|
||||
%{_sysconfdir}/xdg/autostart/visualspace-autostart.desktop
|
||||
%{_libdir}/budgie-desktop/plugins/budgie-visualspace
|
||||
%{_datadir}/glib-2.0/schemas/org.ubuntubudgie.plugins.budgie-visualspace.gschema.xml
|
||||
%{_datadir}/pixmaps/visualspace-symbolic.svg
|
||||
|
||||
%files -n budgie-applet-wallstreet
|
||||
%config %{_sysconfdir}/xdg/autostart/wallstreet-autostart.desktop
|
||||
%{_sysconfdir}/xdg/autostart/wallstreet-autostart.desktop
|
||||
%{_libdir}/budgie-wallstreet/wallstreet*
|
||||
%{_datadir}/applications/org.ubuntubudgie.wallstreetcontrol.desktop
|
||||
%{_datadir}/glib-2.0/schemas/org.ubuntubudgie.budgie-wallstreet.gschema.xml
|
||||
@@ -416,9 +406,8 @@ rm -f %{buildroot}%{_bindir}/quickchar
|
||||
%{_datadir}/pixmaps/budgie-wticon-symbolic.svg
|
||||
|
||||
%files -n budgie-applet-window-shuffler
|
||||
%config %{_sysconfdir}/xdg/autostart/layoutspopup-autostart.desktop
|
||||
%config %{_sysconfdir}/xdg/autostart/dragsnap-autostart.desktop
|
||||
%config %{_sysconfdir}/xdg/autostart/shuffler*.desktop
|
||||
%{_sysconfdir}/xdg/autostart/layoutspopup-autostart.desktop
|
||||
%{_sysconfdir}/xdg/autostart/shuffler*.desktop
|
||||
%{_libdir}/budgie-window-shuffler
|
||||
%{_datadir}/applications/org.ubuntubudgie.shufflercontrol.desktop
|
||||
%{_datadir}/icons/hicolor/scalable/apps/org.ubuntubudgie.shuffler-control.svg
|
||||
@@ -426,7 +415,6 @@ rm -f %{buildroot}%{_bindir}/quickchar
|
||||
%{_datadir}/glib-2.0/schemas/org.ubuntubudgie.plugins.budgie-shufflerapplet.gschema.xml
|
||||
%{_datadir}/pixmaps/shuffler-*.svg
|
||||
%{_datadir}/pixmaps/shufflerapplet-*.svg
|
||||
%{_datadir}/pixmaps/dragsnapimg*.svg
|
||||
%{_libdir}/budgie-desktop/plugins/budgie-window-shuffler/ShufflerAPplet.plugin
|
||||
%{_libdir}/budgie-desktop/plugins/budgie-window-shuffler/libshufflerapplet.so
|
||||
%{_datadir}/metainfo/org.ubuntubudgie.shufflercontrol.metainfo.xml
|
||||
@@ -436,7 +424,7 @@ rm -f %{buildroot}%{_bindir}/quickchar
|
||||
%{_datadir}/pixmaps/budgie-wstopwatch-symbolic.svg
|
||||
|
||||
%files -n budgie-applet-wpreviews
|
||||
%config %{_sysconfdir}/xdg/autostart/previews-*.desktop
|
||||
%{_sysconfdir}/xdg/autostart/previews-*.desktop
|
||||
%{_libdir}/budgie-previews
|
||||
%{_datadir}/applications/org.ubuntubudgie.previewscontrols.desktop
|
||||
%{_datadir}/metainfo/org.ubuntubudgie.previewscontrols.metainfo.xml
|
||||
@@ -454,5 +442,6 @@ rm -f %{buildroot}%{_bindir}/quickchar
|
||||
- Updated to 1.4.0
|
||||
- Added requirements for Workspace Overview
|
||||
|
||||
|
||||
* Fri Apr 16 2021 Thomas Batten <stenstorpmc@gmail.com> - 1.2.0-1
|
||||
- Initial Build
|
||||
|
||||
@@ -1 +1 @@
|
||||
rpm.version(gh_tag("UbuntuBudgie/budgie-extras"));
|
||||
rpm.version(gh("UbuntuBudgie/budgie-extras"));
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "compiz9.spec"
|
||||
}
|
||||
}
|
||||
@@ -1,170 +0,0 @@
|
||||
%define _ubuntu_rel 22.10.20220822-0ubuntu3
|
||||
%global _hardened_build 0
|
||||
|
||||
Name: compiz9
|
||||
Version: 0.9.14.2
|
||||
Release: 3%?dist
|
||||
Summary: OpenGL window and compositing manager 0.9.X.X series
|
||||
|
||||
License: GPL-2.0-or-later AND LGPL-2.0-or-later AND MIT
|
||||
URL: https://launchpad.net/compiz
|
||||
Source0: http://archive.ubuntu.com/ubuntu/pool/universe/c/compiz/compiz_%{version}+%{_ubuntu_rel}.tar.xz
|
||||
Patch0: https://raw.githubusercontent.com/cat-master21/unityDE-specs/main/patches/compiz-cmake-install-path.patch
|
||||
Patch1: gtk-extents.patch
|
||||
Patch2: focus-prevention-disable.patch
|
||||
|
||||
Conflicts: compiz
|
||||
BuildRequires: rpm_macro(fdupes)
|
||||
BuildRequires: libX11-devel
|
||||
BuildRequires: libdrm-devel
|
||||
BuildRequires: libXcursor-devel
|
||||
BuildRequires: libXfixes-devel
|
||||
BuildRequires: libXrandr-devel
|
||||
BuildRequires: libXrender-devel
|
||||
BuildRequires: libXcomposite-devel
|
||||
BuildRequires: libXdamage-devel
|
||||
BuildRequires: libXext-devel
|
||||
BuildRequires: libXt-devel
|
||||
BuildRequires: libSM-devel
|
||||
BuildRequires: libICE-devel
|
||||
BuildRequires: libXmu-devel
|
||||
BuildRequires: desktop-file-utils
|
||||
BuildRequires: intltool
|
||||
BuildRequires: gettext
|
||||
BuildRequires: librsvg2-devel
|
||||
BuildRequires: mesa-libGLU-devel
|
||||
BuildRequires: fuse-devel
|
||||
BuildRequires: cairo-devel
|
||||
BuildRequires: libjpeg-turbo-devel
|
||||
BuildRequires: libxslt-devel
|
||||
BuildRequires: glib2-devel
|
||||
BuildRequires: libwnck3-devel
|
||||
BuildRequires: cmake
|
||||
BuildRequires: gcc
|
||||
BuildRequires: g++
|
||||
BuildRequires: glibmm24-devel
|
||||
BuildRequires: python3-devel
|
||||
BuildRequires: python3-setuptools
|
||||
BuildRequires: boost-devel
|
||||
BuildRequires: libnotify-devel
|
||||
BuildRequires: python3-Cython
|
||||
BuildRequires: metacity-devel
|
||||
BuildRequires: libglvnd-devel
|
||||
BuildRequires: mesa-libEGL-devel
|
||||
BuildRequires: glib2-devel
|
||||
BuildRequires: xorg-x11-server-devel
|
||||
Requires: xorg-x11-server-Xorg
|
||||
Requires: metacity
|
||||
Requires: glx-utils
|
||||
|
||||
%package devel
|
||||
Summary: Development files for %{name}
|
||||
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||
|
||||
%description devel
|
||||
This package contains the development files for %{name}.
|
||||
|
||||
%package -n python3-ccsm
|
||||
Summary: Compiz Config Manager
|
||||
Conflicts: ccsm
|
||||
BuildArch: noarch
|
||||
Requires: %{name}%{?_isa}
|
||||
|
||||
%description -n python3-ccsm
|
||||
Compiz Config Manager helps configure Compiz Window Manager, version 0.9 series
|
||||
|
||||
%description
|
||||
Compiz 9 branch, which is newer then what Fedora packages and required by Unity 7.6 and higher.
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n compiz
|
||||
|
||||
%build
|
||||
# The driver blacklist hack is obselete
|
||||
sed -i 's/(nouveau|Intel).*Mesa 8.0//' plugins/opengl/opengl.xml.in
|
||||
%cmake -DCOMPIZ_DISABLE_GS_SCHEMAS_INSTALL=OFF -DBUILD_GTK=ON -DBUILD_METACITY=ON -DCOMPIZ_BUILD_TESTING=OFF -DBUILD_GLES=OFF -DCOMPIZ_PACKAGING_ENABLED=TRUE -DBUILD_XORG_GTEST=OFF -DCOMPIZ_BUILD_WITH_RPATH=FALSE -DCOMPIZ_WERROR=OFF
|
||||
%cmake_build
|
||||
|
||||
%install
|
||||
%cmake_install
|
||||
|
||||
desktop-file-install \
|
||||
--delete-original \
|
||||
--dir=%{buildroot}%{_datadir}/applications \
|
||||
%{buildroot}%{_datadir}/applications/*.desktop
|
||||
|
||||
find %{buildroot} -name '*.la' -exec rm -f {} ';'
|
||||
|
||||
%find_lang ccsm
|
||||
%find_lang compiz
|
||||
|
||||
%py3_shebang_fix $RPM_BUILD_ROOT%{_bindir}/ccsm
|
||||
|
||||
# placeholder for local icons
|
||||
mkdir -p %{buildroot}%{_datadir}/compiz/icons/hicolor/{scalable/{apps,\
|
||||
categories},22x22/{categories,devices,mimetypes}}
|
||||
|
||||
%fdupes %buildroot%_datadir/glib-2.0/schemas/
|
||||
%fdupes %buildroot%_datadir/ccsm/icons/hicolor/scalable/apps/
|
||||
|
||||
|
||||
%files -f compiz.lang
|
||||
%doc AUTHORS README NEWS
|
||||
%license COPYING COPYING.GPL COPYING.LGPL COPYING.MIT
|
||||
%config(noreplace) %{_sysconfdir}/compizconfig/config.conf
|
||||
%{_bindir}/compiz
|
||||
%{_bindir}/compiz-decorator
|
||||
%{_bindir}/gtk-window-decorator
|
||||
%{_libdir}/libcompizconfig.so.*
|
||||
%{_libdir}/libcompizconfig_gsettings_backend.so
|
||||
%{_libdir}/libcompiz_core.so.*
|
||||
%{_libdir}/libdecoration.so.*
|
||||
%dir %{_libdir}/compiz
|
||||
%{_libdir}/compiz/*.so
|
||||
%dir %{_libdir}/compizconfig
|
||||
%dir %{_libdir}/compizconfig/backends
|
||||
%{_libdir}/compizconfig/backends/*.so
|
||||
%{python3_sitearch}/*
|
||||
%{_datadir}/applications/compiz.desktop
|
||||
%dir %{_datadir}/compiz
|
||||
%{_datadir}/compiz/*.xml
|
||||
%{_datadir}/compiz/*.png
|
||||
%{_datadir}/compiz/colorfilter/
|
||||
%{_datadir}/compiz/cube/
|
||||
%{_datadir}/compiz/cubeaddon/
|
||||
%{_datadir}/compiz/icons/
|
||||
%{_datadir}/compiz/mag/
|
||||
%{_datadir}/compiz/notification/
|
||||
%{_datadir}/compiz/scale/
|
||||
%{_datadir}/compiz/showmouse/
|
||||
%{_datadir}/compiz/splash/
|
||||
%{_datadir}/compiz/xslt/
|
||||
%{_datadir}/glib-2.0/schemas/org.compiz*.gschema.xml
|
||||
%{_datadir}/gnome-control-center/keybindings/50-compiz-*.xml
|
||||
|
||||
%files devel
|
||||
%{_includedir}/compiz/
|
||||
%dir %{_includedir}/compizconfig
|
||||
%{_includedir}/compizconfig/*.h
|
||||
%{_libdir}/libcompizconfig.so
|
||||
%{_libdir}/libcompiz_core.so
|
||||
%{_libdir}/libdecoration.so
|
||||
%{_libdir}/pkgconfig/*.pc
|
||||
%{_datadir}/compiz/cmake/
|
||||
%{_datadir}/cmake/Modules/*.cmake
|
||||
|
||||
%files -n python3-ccsm -f ccsm.lang
|
||||
%doc AUTHORS NEWS
|
||||
%license COPYING
|
||||
%{_bindir}/ccsm
|
||||
%{_datadir}/applications/ccsm.desktop
|
||||
%dir %{_datadir}/ccsm
|
||||
%{_datadir}/ccsm/*
|
||||
%{_datadir}/icons/hicolor/*/apps/ccsm.png
|
||||
%{_datadir}/icons/hicolor/*/apps/ccsm.svg
|
||||
%dir %{python3_sitelib}/ccm
|
||||
%{python3_sitelib}/ccm/*
|
||||
%{python3_sitelib}/ccsm-%{version}-py%{python3_version}.egg-info
|
||||
|
||||
%changelog
|
||||
%autochangelog
|
||||
@@ -1,12 +0,0 @@
|
||||
diff -Naur original/metadata/core.xml.in modified/metadata/core.xml.in
|
||||
--- original/metadata/core.xml.in 2013-07-23 20:58:03.000000000 +0100
|
||||
+++ modified/metadata/core.xml.in 2014-06-11 09:06:53.839302487 +0100
|
||||
@@ -114,7 +114,7 @@
|
||||
<_long>Level of focus stealing prevention</_long>
|
||||
<min>0</min>
|
||||
<max>4</max>
|
||||
- <default>1</default>
|
||||
+ <default>0</default>
|
||||
<desc>
|
||||
<value>0</value>
|
||||
<_name>Off</_name>
|
||||
@@ -1,13 +0,0 @@
|
||||
# Diff from https://code.launchpad.net/~albertsmuktupavels/compiz/add-gtk-frame-extents-to-net-supported/+merge/257303
|
||||
=== modified file 'src/screen.cpp'
|
||||
--- a/src/screen.cpp 2014-12-02 19:37:10 +0000
|
||||
+++ b/src/screen.cpp 2015-04-23 20:41:24 +0000
|
||||
@@ -2362,6 +2362,7 @@
|
||||
|
||||
atoms.push_back (Atoms::wmUserTime);
|
||||
atoms.push_back (Atoms::frameExtents);
|
||||
+ atoms.push_back (Atoms::frameGtkExtents);
|
||||
atoms.push_back (Atoms::frameWindow);
|
||||
|
||||
atoms.push_back (Atoms::winState);
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
let html = get("http://archive.ubuntu.com/ubuntu/pool/universe/c/compiz/?C=N;O=D");
|
||||
let v = find("compiz_([\\d.]+)\\+(.+?).tar.xz", html, 1);
|
||||
let r = find("compiz_([\\d.]+)\\+(.+?).tar.xz", html, 2);
|
||||
rpm.version(v);
|
||||
rpm.define("_ubuntu_rel", r);
|
||||
@@ -1,5 +1,5 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "contractor.spec"
|
||||
}
|
||||
rpm {
|
||||
spec = "contractor.spec"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "elementary-calculator.spec"
|
||||
}
|
||||
rpm {
|
||||
spec = "elementary-calculator.spec"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
|
||||
Name: elementary-calculator
|
||||
Summary: Calculator app designed for elementary
|
||||
Version: 2.0.2
|
||||
Release: 2%{?dist}
|
||||
License: GPL-3.0-or-later
|
||||
Version: 2.0.1
|
||||
Release: %autorelease
|
||||
License: GPLv3+
|
||||
|
||||
URL: https://github.com/elementary/%{srcname}
|
||||
Source0: %{url}/archive/%{version}/%{srcname}-%{version}.tar.gz
|
||||
@@ -18,7 +18,6 @@ BuildRequires: vala
|
||||
|
||||
BuildRequires: pkgconfig(granite-7) >= 7.0.0
|
||||
BuildRequires: pkgconfig(gtk4)
|
||||
BuildRequires: fdupes
|
||||
|
||||
Requires: hicolor-icon-theme
|
||||
|
||||
@@ -46,15 +45,13 @@ functions (sin, cos, and tan).
|
||||
|
||||
%find_lang %{appname}
|
||||
|
||||
%fdupes %buildroot/%_datadir/icons/hicolor
|
||||
|
||||
|
||||
%check
|
||||
desktop-file-validate \
|
||||
%{buildroot}/%{_datadir}/applications/%{appname}.desktop
|
||||
|
||||
appstream-util validate-relax --nonet \
|
||||
%{buildroot}/%{_datadir}/metainfo/%{appname}.metainfo.xml
|
||||
%{buildroot}/%{_datadir}/metainfo/%{appname}.appdata.xml
|
||||
|
||||
|
||||
%files -f %{appname}.lang
|
||||
@@ -66,9 +63,9 @@ appstream-util validate-relax --nonet \
|
||||
%{_datadir}/applications/%{appname}.desktop
|
||||
%{_datadir}/glib-2.0/schemas/%{appname}.gschema.xml
|
||||
%{_datadir}/icons/hicolor/*/apps/%{appname}.svg
|
||||
%{_datadir}/metainfo/%{appname}.metainfo.xml
|
||||
%{_datadir}/metainfo/%{appname}.appdata.xml
|
||||
|
||||
|
||||
%changelog
|
||||
* Sat Oct 15 2022 windowsboy111 <windowsboy111@fyralabs.com> - 1.7.2-1
|
||||
* Sat Oct 15 2022 windowsboy111 <windowsboy111@fyralabs.com>
|
||||
- Repackaged for Terra
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "elementary-calendar.spec"
|
||||
}
|
||||
rpm {
|
||||
spec = "elementary-calendar.spec"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,8 +6,8 @@
|
||||
Name: elementary-calendar
|
||||
Summary: Desktop calendar app designed for elementary
|
||||
Version: 6.1.2
|
||||
Release: 2%{?dist}
|
||||
License: GPL-3.0-or-later
|
||||
Release: 1%{?dist}
|
||||
License: GPLv3+
|
||||
|
||||
URL: https://github.com/elementary/calendar
|
||||
Source0: %{url}/archive/%{version}/%{srcname}-%{version}.tar.gz
|
||||
@@ -32,7 +32,6 @@ BuildRequires: libhandy >= 0.90.0
|
||||
BuildRequires: meson
|
||||
BuildRequires: vala
|
||||
BuildRequires: evolution-data-server-devel
|
||||
BuildRequires: fdupes
|
||||
|
||||
Requires: hicolor-icon-theme
|
||||
|
||||
@@ -65,8 +64,6 @@ This package contains the development files.
|
||||
|
||||
%find_lang %{appname}
|
||||
|
||||
%fdupes %buildroot/%_datadir/icons/hicolor
|
||||
|
||||
|
||||
%check
|
||||
desktop-file-validate \
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "elementary-camera.spec"
|
||||
}
|
||||
rpm {
|
||||
spec = "elementary-camera.spec"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
|
||||
Name: elementary-camera
|
||||
Summary: Camera app designed for elementary
|
||||
Version: 6.2.2
|
||||
Release: 2%{?dist}
|
||||
License: GPL-3.0
|
||||
Version: 6.2.1
|
||||
Release: 1%{?dist}
|
||||
License: GPLv3
|
||||
|
||||
URL: https://github.com/elementary/camera
|
||||
Source0: %{url}/archive/%{version}/%{srcname}-%{version}.tar.gz
|
||||
@@ -15,7 +15,6 @@ BuildRequires: gettext
|
||||
BuildRequires: libappstream-glib
|
||||
BuildRequires: meson >= 0.46
|
||||
BuildRequires: vala
|
||||
BuildRequires: fdupes
|
||||
|
||||
BuildRequires: pkgconfig(gee-0.8)
|
||||
BuildRequires: pkgconfig(gio-2.0)
|
||||
@@ -47,16 +46,13 @@ Camera is a simple app to take photos with a webcam.
|
||||
|
||||
%find_lang %{appname}
|
||||
|
||||
%fdupes %buildroot/%_datadir/icons/hicolor
|
||||
|
||||
|
||||
|
||||
%check
|
||||
desktop-file-validate \
|
||||
%{buildroot}/%{_datadir}/applications/%{appname}.desktop
|
||||
|
||||
appstream-util validate-relax --nonet \
|
||||
%{buildroot}/%{_datadir}/metainfo/%{appname}.metainfo.xml
|
||||
%{buildroot}/%{_datadir}/metainfo/%{appname}.appdata.xml
|
||||
|
||||
|
||||
%files -f %{appname}.lang
|
||||
@@ -68,7 +64,7 @@ appstream-util validate-relax --nonet \
|
||||
%{_datadir}/applications/%{appname}.desktop
|
||||
%{_datadir}/glib-2.0/schemas/%{appname}.gschema.xml
|
||||
%{_datadir}/icons/hicolor/*/apps/%{appname}.svg
|
||||
%{_datadir}/metainfo/%{appname}.metainfo.xml
|
||||
%{_datadir}/metainfo/%{appname}.appdata.xml
|
||||
|
||||
|
||||
%changelog
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "elementary-capnet-assist.spec"
|
||||
}
|
||||
rpm {
|
||||
spec = "elementary-capnet-assist.spec"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
|
||||
Name: elementary-capnet-assist
|
||||
Summary: Captive Portal Assistant for elementary
|
||||
Version: 2.4.4
|
||||
Version: 2.4.3
|
||||
Release: 2%{?dist}
|
||||
License: GPL-3.0-or-later
|
||||
License: GPLv3+
|
||||
|
||||
URL: https://github.com/elementary/capnet-assist
|
||||
Source0: %{url}/archive/%{version}/%{srcname}-%{version}.tar.gz
|
||||
@@ -25,7 +25,6 @@ BuildRequires: pkgconfig(granite)
|
||||
BuildRequires: pkgconfig(gtk+-3.0)
|
||||
BuildRequires: pkgconfig(libhandy-1) >= 1.0.0
|
||||
BuildRequires: pkgconfig(webkit2gtk-4.1)
|
||||
BuildRequires: fdupes
|
||||
|
||||
Requires: NetworkManager
|
||||
Requires: hicolor-icon-theme
|
||||
@@ -55,15 +54,13 @@ Written in Vala and using WebkitGtk+.
|
||||
|
||||
%find_lang %{appname}
|
||||
|
||||
%fdupes %buildroot%_datadir/icons/hicolor/
|
||||
|
||||
|
||||
%check
|
||||
desktop-file-validate \
|
||||
%{buildroot}/%{_datadir}/applications/%{appname}.desktop
|
||||
|
||||
appstream-util validate-relax --nonet \
|
||||
%{buildroot}/%{_datadir}/metainfo/%{appname}.metainfo.xml
|
||||
%{buildroot}/%{_datadir}/metainfo/%{appname}.appdata.xml
|
||||
|
||||
|
||||
%files -f %{appname}.lang
|
||||
@@ -75,9 +72,9 @@ appstream-util validate-relax --nonet \
|
||||
%{_datadir}/applications/%{appname}.desktop
|
||||
%{_datadir}/glib-2.0/schemas/%{appname}.gschema.xml
|
||||
%{_datadir}/icons/hicolor/*/apps/%{appname}.svg
|
||||
%{_datadir}/metainfo/%{appname}.metainfo.xml
|
||||
%{_datadir}/metainfo/%{appname}.appdata.xml
|
||||
|
||||
|
||||
%changelog
|
||||
* Sat Oct 15 2022 windowsboy111 <windowsboy111@fyralabs.com> - 2.4.2-1
|
||||
* Sat Oct 15 2022 windowsboy111 <windowsboy111@fyralabs.com>
|
||||
- Repackaged for Terra
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "elementary-code.spec"
|
||||
}
|
||||
rpm {
|
||||
spec = "elementary-code.spec"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,8 +6,8 @@
|
||||
Name: elementary-code
|
||||
Summary: Code editor from elementary
|
||||
Version: 7.0.0
|
||||
Release: 3%{?dist}
|
||||
License: GPL-3.0
|
||||
Release: 2%{?dist}
|
||||
License: GPLv3
|
||||
|
||||
URL: https://github.com/elementary/%{srcname}
|
||||
Source0: %{url}/archive/%{version}/%{srcname}-%{version}.tar.gz
|
||||
@@ -38,7 +38,6 @@ BuildRequires: pkgconfig(libpeas-gtk-1.0)
|
||||
BuildRequires: pkgconfig(libsoup-2.4)
|
||||
BuildRequires: pkgconfig(pangoft2)
|
||||
BuildRequires: pkgconfig(vte-2.91)
|
||||
BuildRequires: fdupes
|
||||
|
||||
Requires: hicolor-icon-theme
|
||||
|
||||
@@ -69,8 +68,6 @@ This package contains the development headers.
|
||||
|
||||
%find_lang %{appname}
|
||||
|
||||
%fdupes %buildroot%_datadir/icons/hicolor/
|
||||
|
||||
|
||||
%files -f %{appname}.lang
|
||||
%doc README.md
|
||||
@@ -102,5 +99,5 @@ This package contains the development headers.
|
||||
|
||||
|
||||
%changelog
|
||||
* Sat Oct 15 2022 windowsboy111 <windowsboy111@fyralabs.com> - 6.2.0-1
|
||||
* Sat Oct 15 2022 windowsboy111 <windowsboy111@fyralabs.com>
|
||||
- Repackaged for Terra
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user