mirror of
https://github.com/terrapkg/packages.git
synced 2026-05-31 09:01:55 +00:00
Compare commits
20 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| e926c6dd41 | |||
| c8091f850a | |||
| 192497390c | |||
| 8fcb83275c | |||
| 8971a68ee9 | |||
| c76938e62d | |||
| 61bfdcbf06 | |||
| 5b33aa3bca | |||
| c1040c660a | |||
| ab0db08561 | |||
| 5964ab9bdf | |||
| 83abd7038a | |||
| 2cfe9082a4 | |||
| f99b4b57d4 | |||
| 70ef28b702 | |||
| 126235dc70 | |||
| c699fad604 | |||
| 4ccf14150e | |||
| 2859fb526e | |||
| 35c0d89a6c |
@@ -1,9 +0,0 @@
|
||||
{
|
||||
"repoOwner": "terrapkg",
|
||||
"repoName": "packages",
|
||||
"resetAuthor": true,
|
||||
"targetBranchChoices": ["f39", "f40", "frawhide"],
|
||||
"branchLabelMapping": {
|
||||
"^sync-(.+)$": "$1"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
ARG VARIANT="38"
|
||||
FROM fedora:${VARIANT}
|
||||
|
||||
RUN useradd -m vscode
|
||||
RUN groupadd mock
|
||||
RUN usermod -aG mock vscode
|
||||
RUN echo vscode ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/vscode
|
||||
RUN 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
|
||||
@@ -1,19 +1,18 @@
|
||||
{
|
||||
"name": "Terra Devcontainer",
|
||||
"image": "ghcr.io/terrapkg/builder:frawhide",
|
||||
"name": "Fedora",
|
||||
"build": {
|
||||
"dockerfile": "Dockerfile",
|
||||
"args": { "VARIANT": "38" }
|
||||
},
|
||||
"remoteUser": "vscode",
|
||||
"runArgs": [
|
||||
"--privileged"
|
||||
],
|
||||
"features": {
|
||||
"ghcr.io/devcontainers/features/common-utils:2": {}
|
||||
},
|
||||
"customizations": {
|
||||
"vscode": {
|
||||
"extensions": [
|
||||
"rhaiscript.vscode-rhai"
|
||||
]
|
||||
}
|
||||
},
|
||||
"remoteUser": "vscode",
|
||||
"onCreateCommand": "sudo usermod -a -G mock vscode"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,29 +6,30 @@ on:
|
||||
paths:
|
||||
- anda/**
|
||||
branches:
|
||||
- frawhide
|
||||
- f38
|
||||
pull_request:
|
||||
branches:
|
||||
- frawhide
|
||||
- f38
|
||||
merge_group:
|
||||
branches:
|
||||
- frawhide
|
||||
- f38
|
||||
workflow_dispatch:
|
||||
workflow_call:
|
||||
|
||||
jobs:
|
||||
manifest:
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
outputs:
|
||||
build_matrix: ${{ steps.generate_build_matrix.outputs.build_matrix }}
|
||||
container:
|
||||
image: ghcr.io/terrapkg/builder:frawhide
|
||||
image: ghcr.io/terrapkg/builder:f38
|
||||
options: --cap-add=SYS_ADMIN --privileged
|
||||
steps:
|
||||
- name: Set workspace as safe
|
||||
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Generate build matrix
|
||||
@@ -39,37 +40,33 @@ jobs:
|
||||
strategy:
|
||||
matrix:
|
||||
pkg: ${{ fromJson(needs.manifest.outputs.build_matrix) }}
|
||||
version: ["rawhide"]
|
||||
version: ["38"]
|
||||
fail-fast: false
|
||||
runs-on: ${{ (matrix.pkg.arch == 'aarch64' && matrix.pkg.labels['large']) && 'arm64-lg' || matrix.pkg.arch == 'aarch64' && 'ubuntu-22.04-arm' || matrix.pkg.labels['large'] && 'x86-64-lg' || 'ubuntu-22.04' }}
|
||||
runs-on: ${{ matrix.pkg.arch == 'aarch64' && 'ARM64' || 'ubuntu-latest' }}
|
||||
container:
|
||||
image: ghcr.io/terrapkg/builder:f${{ matrix.version }}
|
||||
image: ghcr.io/terrapkg/builder:f38
|
||||
options: --cap-add=SYS_ADMIN --privileged
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Set up git repository
|
||||
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
|
||||
|
||||
- name: CI Setup Script
|
||||
if: ${{ matrix.pkg.labels.mock != '1' }}
|
||||
run: |
|
||||
dir=$(dirname ${{ matrix.pkg.pkg }})
|
||||
if [ -f $dir/ci_setup.rhai ]; then
|
||||
anda run $dir/ci_setup.rhai --labels script_path=$dir/ci_setup.rhai
|
||||
fi
|
||||
- name: 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: Install Build Dependencies
|
||||
if: ${{ matrix.pkg.labels.mock != '1' }}
|
||||
- name: Include custom build template instead of package default
|
||||
run: |
|
||||
dir=$(dirname ${{ matrix.pkg.pkg }})
|
||||
dnf5 builddep -y ${dir}/*.spec
|
||||
cp -v anda/mock-configs/terra.tpl /etc/mock/templates/terra.tpl
|
||||
|
||||
- name: Build with Andaman
|
||||
run: anda build ${{ matrix.pkg.pkg }} -c terra-${{ matrix.version }}-${{ matrix.pkg.arch }} ${{ !matrix.pkg.labels.mock == '1' && '-rrpmbuild' || '' }}
|
||||
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
|
||||
@@ -78,35 +75,82 @@ jobs:
|
||||
x=${NAME//\//@}
|
||||
echo "name=$x" >> $GITHUB_OUTPUT
|
||||
|
||||
- uses: actions/upload-artifact@v4
|
||||
- uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: ${{ steps.art.outputs.name }}
|
||||
compression-level: 0 # The RPMs are already compressed :p
|
||||
path: |
|
||||
anda-build/rpm/rpms/*
|
||||
anda-build/rpm/srpm/*
|
||||
path: anda-build/rpm/rpms/*
|
||||
|
||||
- name: Upload packages to subatomic
|
||||
if: github.event_name == 'push'
|
||||
run: |
|
||||
subrepo="${{ matrix.pkg.labels.subrepo }}"
|
||||
subatomic-cli upload --prune \
|
||||
--server https://subatomic.fyralabs.com \
|
||||
--token ${{ secrets.SUBATOMIC_TOKEN }} \
|
||||
terra${{ matrix.version }}${{ matrix.pkg.labels['subrepo'] && '-$subrepo' || '' }} anda-build/rpm/rpms/*
|
||||
|
||||
- name: Upload source packages to subatomic
|
||||
if: github.event_name == 'push'
|
||||
run: |
|
||||
subrepo="${{ matrix.pkg.labels.subrepo }}"
|
||||
subatomic-cli upload --prune \
|
||||
--server https://subatomic.fyralabs.com \
|
||||
--token ${{ secrets.SUBATOMIC_TOKEN }} \
|
||||
terra${{ matrix.version }}${{ matrix.pkg.labels['subrepo'] && '-$subrepo' || '' }}-source anda-build/rpm/srpm/*
|
||||
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}} $GITHUB_SHA
|
||||
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}} $GITHUB_SHA
|
||||
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
|
||||
|
||||
@@ -7,71 +7,56 @@ jobs:
|
||||
bootstrap:
|
||||
strategy:
|
||||
matrix:
|
||||
version: ["rawhide"]
|
||||
version: ["38"]
|
||||
arch: ["x86_64", "aarch64"]
|
||||
fail-fast: true
|
||||
runs-on: ${{ matrix.arch == 'aarch64' && 'ubuntu-22.04-arm' || 'ubuntu-22.04' }}
|
||||
runs-on: ${{ matrix.arch == 'aarch64' && 'ARM64' || 'ubuntu-latest' }}
|
||||
container:
|
||||
image: registry.fedoraproject.org/fedora-minimal:${{ matrix.version }}
|
||||
image: fedora:38
|
||||
options: --cap-add=SYS_ADMIN --privileged
|
||||
steps:
|
||||
- uses: actions/setup-go@v3
|
||||
with:
|
||||
go-version: "^1.19"
|
||||
|
||||
- name: Install repositories
|
||||
run: |
|
||||
dnf5 swap -y --setopt=install_weak_deps=False systemd-standalone-sysusers systemd
|
||||
dnf5 install -y --setopt=install_weak_deps=False curl wget git-core openssl-devel cargo podman fuse-overlayfs dnf5-plugins rpmbuild script
|
||||
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
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
ref: f${{ matrix.version }}
|
||||
repository: FyraLabs/subatomic
|
||||
set-safe-directory: true
|
||||
fetch-depth: 1
|
||||
|
||||
- name: Build anda-srpm-macros
|
||||
run: |
|
||||
mkdir -p anda-build/rpm/rpms
|
||||
rpmbuild -bb anda/terra/srpm-macros/*.spec --undefine=_disable_source_fetch -D "_sourcedir $(pwd)/anda/terra/srpm-macros/" -D "_rpmdir $(pwd)/anda-build/rpm/rpms/"
|
||||
mv ./anda-build/rpm/rpms/*/anda-*.rpm ./anda-build/rpm/rpms/
|
||||
dnf5 install -y ./anda-build/rpm/rpms/anda-*.rpm
|
||||
|
||||
- name: Install build dependencies
|
||||
run: dnf5 builddep -y anda/terra/{mock-configs,srpm-macros}/*.spec anda/tools/buildsys/{anda,subatomic}/*.spec
|
||||
|
||||
- uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
toolchain: stable
|
||||
- name: Install Anda
|
||||
run: |
|
||||
rpmbuild -bb anda/tools/buildsys/anda/*.spec --undefine=_disable_source_fetch -D "_sourcedir $(pwd)/anda/tools/buildsys/anda/" -D "_rpmdir $(pwd)/anda-build/rpm/rpms/"
|
||||
mv ./anda-build/rpm/rpms/*/anda-*.rpm ./anda-build/rpm/rpms/
|
||||
dnf5 install -y ./anda-build/rpm/rpms/anda-*.rpm
|
||||
|
||||
- name: Build terra-mock-configs
|
||||
run: |
|
||||
echo "PATH=$PATH:/github/home/.cargo/bin" >> $GITHUB_ENV
|
||||
export PATH=$PATH:/github/home/.cargo/bin
|
||||
git config --global --add safe.directory "$GITHUB_WORKSPACE"
|
||||
anda build -rrpmbuild anda/terra/mock-configs/pkg
|
||||
- name: Install terra-mock-configs
|
||||
run: dnf5 install -y anda-build/rpm/rpms/terra-mock-configs*.rpm
|
||||
|
||||
- name: Build trra-release
|
||||
run: anda build -rrpmbuild anda/terra/release/pkg
|
||||
uses: actions-rs/cargo@v1
|
||||
with:
|
||||
command: install
|
||||
args: anda
|
||||
|
||||
- name: Build Subatomic
|
||||
run: anda build -rrpmbuild anda/tools/buildsys/subatomic/pkg
|
||||
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')"
|
||||
- name: Install Subatomic
|
||||
run: dnf5 install -y ./anda-build/rpm/rpms/subatomic-*.rpm
|
||||
run: sudo dnf install -y ./anda-build/rpm/rpms/subatomic-*.rpm
|
||||
|
||||
- name: Tidy up output directory
|
||||
run: rmdir anda-build/rpm/rpms/{noarch,aarch64,x86_64} | true
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
repository: FyraLabs/anda
|
||||
|
||||
- name: Upload packages to subatomic
|
||||
- name: Build Andaman
|
||||
run: anda build -c terra-${{ matrix.version }}-${{ matrix.arch }} anda -p rpm
|
||||
|
||||
- name: Upload to Subatomic
|
||||
run: |
|
||||
subatomic-cli upload --prune \
|
||||
--server https://subatomic.fyralabs.com \
|
||||
--token ${{ secrets.SUBATOMIC_TOKEN }} \
|
||||
terra${{ matrix.version }} anda-build/rpm/rpms/*
|
||||
|
||||
- name: Upload source 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 }}-source anda-build/rpm/srpm/*
|
||||
|
||||
+22
-50
@@ -5,63 +5,46 @@ on:
|
||||
packages:
|
||||
description: "Packages to Build"
|
||||
required: true
|
||||
custom_builder:
|
||||
description: "Custom Builder"
|
||||
required: false
|
||||
default: ""
|
||||
architecture:
|
||||
description: "Architecture"
|
||||
required: false
|
||||
default: all
|
||||
type: string
|
||||
|
||||
jobs:
|
||||
parse:
|
||||
outputs:
|
||||
pkgs: ${{ steps.parsing.outputs.pkgs }}
|
||||
builder: ${{ inputs.custom_builder }}
|
||||
arch: ${{ steps.parsing.outputs.arch }}
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: "ubuntu-latest"
|
||||
steps:
|
||||
- name: Parse Input
|
||||
id: parsing
|
||||
run: |
|
||||
echo "${{ inputs.packages }}" | sed 's/ /\n/g' | sed 's/$/\//g' | jq -R . | jq -s . | jq -c . | sed 's/^/pkgs=/' >> $GITHUB_OUTPUT
|
||||
echo "builder=${{ inputs.custom_builder }}" >> $GITHUB_OUTPUT
|
||||
arch="${{ inputs.architecture }}"
|
||||
# Convert to json array using jq
|
||||
# if arch is not all, convert to array
|
||||
if [ "$arch" != "all" ]; then
|
||||
# jq, array with single element as string
|
||||
arch=$(echo $arch | sed 's/,/\n/g')
|
||||
echo "arch=$(echo $arch | jq -Rs 'split("\n")' | jq 'map(select(length > 0))' | jq -c .)" >> $GITHUB_OUTPUT
|
||||
else
|
||||
echo "arch=$(echo '["aarch64", "x86_64"]' | jq -c .)" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
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: ["rawhide"]
|
||||
arch: ${{ fromJson(needs.parse.outputs.arch) }}
|
||||
version: ["38"]
|
||||
arch: ["x86_64", "aarch64"]
|
||||
fail-fast: false
|
||||
runs-on: ${{ matrix.arch == 'aarch64' && 'ubuntu-22.04-arm' || needs.parse.outputs.builder && needs.parse.outputs.builder || 'ubuntu-22.04' }}
|
||||
runs-on: ${{ matrix.arch == 'aarch64' && 'ARM64' || 'ubuntu-latest' }}
|
||||
container:
|
||||
image: ghcr.io/terrapkg/builder:f${{ matrix.version }}
|
||||
image: ghcr.io/terrapkg/builder:f38
|
||||
options: --cap-add=SYS_ADMIN --privileged
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
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 -c terra-${{ matrix.version }}-${{ matrix.arch }} anda/${{ matrix.pkg }}pkg
|
||||
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
|
||||
@@ -69,33 +52,22 @@ jobs:
|
||||
NAME=${{ matrix.pkg }}-${{ matrix.arch }}-${{ matrix.version }}
|
||||
x=${NAME//\//@}
|
||||
echo "name=$x" >> $GITHUB_OUTPUT
|
||||
echo "labels=$(anda run andax/get_proj_label.rhai -l project=anda/${{ matrix.pkg }}anda.hcl)" >> $GITHUB_OUTPUT
|
||||
|
||||
- uses: actions/upload-artifact@v4
|
||||
- uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: ${{ steps.art.outputs.name }}
|
||||
compression-level: 0 # The RPMs are already compressed :p
|
||||
path: |
|
||||
anda-build/rpm/rpms/*
|
||||
anda-build/rpm/srpm/*
|
||||
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 }}${{ fromJson(steps.art.outputs.labels)['extra'] && '-extras' }} anda-build/rpm/rpms/*
|
||||
|
||||
- name: Upload source packages to subatomic
|
||||
run: |
|
||||
subatomic-cli upload --prune \
|
||||
--server https://subatomic.fyralabs.com \
|
||||
--token ${{ secrets.SUBATOMIC_TOKEN }} \
|
||||
terra${{ matrix.version }}${{ fromJson(steps.art.outputs.labels)['extra'] && '-extras' }}-source anda-build/rpm/srpm/*
|
||||
terra${{ matrix.version }} anda-build/rpm/rpms/*
|
||||
|
||||
- name: Notify Madoguchi (Success)
|
||||
if: success()
|
||||
run: ./.github/workflows/mg.sh true ${{matrix.pkg}} ${{matrix.version}} ${{matrix.arch}} ${{github.run_id}} ${{secrets.MADOGUCHI_JWT}} $GITHUB_SHA
|
||||
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()
|
||||
run: ./.github/workflows/mg.sh false ${{matrix.pkg}} ${{matrix.version}} ${{matrix.arch}} ${{github.run_id}} ${{secrets.MADOGUCHI_JWT}} $GITHUB_SHA
|
||||
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}}
|
||||
|
||||
@@ -11,37 +11,29 @@ jobs:
|
||||
strategy:
|
||||
matrix:
|
||||
pkg: ${{ fromJson(inputs.packages) }}
|
||||
version: ["rawhide"]
|
||||
version: ["38"]
|
||||
fail-fast: false
|
||||
runs-on: ${{ (matrix.pkg.arch == 'aarch64' && matrix.pkg.labels['large']) && 'arm64-lg' || matrix.pkg.arch == 'aarch64' && 'ubuntu-22.04-arm' || matrix.pkg.labels['large'] && 'x86-64-lg' || 'ubuntu-22.04' }}
|
||||
runs-on: ${{ matrix.pkg.arch == 'aarch64' && 'ARM64' || 'ubuntu-latest' }}
|
||||
container:
|
||||
image: ghcr.io/terrapkg/builder:f${{ matrix.version }}
|
||||
image: ghcr.io/terrapkg/builder:f38
|
||||
options: --cap-add=SYS_ADMIN --privileged
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Set up git repository
|
||||
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
|
||||
|
||||
- name: CI Setup Script
|
||||
if: ${{ !contains(matrix.pkg.labels, 'mock') }}
|
||||
run: |
|
||||
dir=$(dirname ${{ matrix.pkg.pkg }})
|
||||
if [ -f $dir/ci_setup.rhai ]; then
|
||||
anda run $dir/ci_setup.rhai --labels script_path=$dir/ci_setup.rhai
|
||||
fi
|
||||
|
||||
- name: Install Build Dependencies
|
||||
if: ${{ !contains(matrix.pkg.labels, 'mock') }}
|
||||
run: |
|
||||
dir=$(dirname ${{ matrix.pkg.pkg }})
|
||||
dnf5 builddep -y ${dir}/*.spec
|
||||
- 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 }} -c terra-${{ matrix.version }}-${{ matrix.pkg.arch }} ${{ contains(matrix.pkg.labels, 'mock') && '' || '-rrpmbuild' }}
|
||||
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
|
||||
@@ -50,33 +42,21 @@ jobs:
|
||||
x=${NAME//\//@}
|
||||
echo "name=$x" >> $GITHUB_OUTPUT
|
||||
|
||||
- uses: actions/upload-artifact@v4
|
||||
- uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: ${{ steps.art.outputs.name }}
|
||||
compression-level: 0 # The RPMs are already compressed :p
|
||||
path: |
|
||||
anda-build/rpm/rpms/*
|
||||
anda-build/rpm/srpm/*
|
||||
path: anda-build/rpm/rpms/*
|
||||
|
||||
- name: Upload packages to subatomic
|
||||
run: |
|
||||
subrepo="${{ matrix.pkg.labels.subrepo }}"
|
||||
subatomic-cli upload --prune \
|
||||
--server https://subatomic.fyralabs.com \
|
||||
--token ${{ secrets.SUBATOMIC_TOKEN }} \
|
||||
terra${{ matrix.version }}${{ matrix.pkg.labels['subrepo'] && '-$subrepo' || '' }} anda-build/rpm/rpms/*
|
||||
|
||||
- name: Upload source packages to subatomic
|
||||
run: |
|
||||
subrepo="${{ matrix.pkg.labels.subrepo }}"
|
||||
subatomic-cli upload --prune \
|
||||
--server https://subatomic.fyralabs.com \
|
||||
--token ${{ secrets.SUBATOMIC_TOKEN }} \
|
||||
terra${{ matrix.version }}${{ matrix.pkg.labels['subrepo'] && '-$subrepo' || '' }}-source anda-build/rpm/srpm/*
|
||||
terra${{ matrix.version }} anda-build/rpm/rpms/*
|
||||
|
||||
- name: Notify Madoguchi (Success)
|
||||
if: success()
|
||||
run: ./.github/workflows/mg.sh true ${{matrix.pkg.pkg}} ${{matrix.version}} ${{matrix.pkg.arch}} ${{github.run_id}} ${{secrets.MADOGUCHI_JWT}} $GITHUB_SHA
|
||||
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()
|
||||
run: ./.github/workflows/mg.sh false ${{matrix.pkg.pkg}} ${{matrix.version}} ${{matrix.pkg.arch}} ${{github.run_id}} ${{secrets.MADOGUCHI_JWT}} $GITHUB_SHA
|
||||
if: ( cancelled() || failure() ) && github.event_name == 'push'
|
||||
run: ./.github/workflows/mg.sh false ${{matrix.pkg.pkg}} ${{matrix.version}} ${{matrix.pkg.arch}} ${{github.run_id}} ${{secrets.MADOGUCHI_JWT}}
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
name: Lint
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- f38
|
||||
pull_request:
|
||||
branches:
|
||||
- f38
|
||||
merge_group:
|
||||
branches:
|
||||
- f38
|
||||
jobs:
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: ghcr.io/terrapkg/builder:f38
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
- name: Lint spec files
|
||||
run: rpmlint $(find anda -type f -name "*.spec" -type f)
|
||||
@@ -2,7 +2,7 @@ set -x
|
||||
|
||||
dirs=$2
|
||||
dirs=${dirs/\/pkg/}
|
||||
export p="{\"id\":\"$5\",\"ver\":\"%v\",\"rel\":\"%r\",\"arch\":\"$4\",\"dirs\":\"$dirs\",\"succ\":$1,\"commit\":\"$7\"}"
|
||||
export p="{\"id\":\"$5\",\"ver\":\"%v\",\"rel\":\"%r\",\"arch\":\"$4\",\"dirs\":\"$dirs\",\"succ\":$1}"
|
||||
|
||||
if [[ $1 == false ]]; then
|
||||
d=${p/\%v/?}
|
||||
@@ -17,5 +17,5 @@ for f in anda-build/rpm/rpms/*; do
|
||||
r=$(lesspipe.sh $f | grep -E "Release\s*: " | sed "s@Release\s*: @@")
|
||||
d=${p/\%v/$v}
|
||||
d=${d/\%r/$r}
|
||||
curl -H "Authorization: Bearer $6" https://madoguchi.fyralabs.com/ci5/terra$3/builds/$n -X PUT -H "Content-Type: application/json" -d $d --fail-with-body
|
||||
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,37 +0,0 @@
|
||||
name: Automatic backport/sync action
|
||||
|
||||
on:
|
||||
pull_request_target:
|
||||
types: ["labeled", "closed"]
|
||||
|
||||
jobs:
|
||||
backport:
|
||||
name: Backport/sync PR
|
||||
runs-on: ubuntu-22.04
|
||||
if: github.event.pull_request.merged
|
||||
steps:
|
||||
- name: Install SSH signing key
|
||||
run: |
|
||||
mkdir -p ${{ runner.temp }}
|
||||
echo "${{ secrets.SSH_SIGNING_KEY }}" > ${{ runner.temp }}/signing_key
|
||||
chmod 0700 ${{ runner.temp }}/signing_key
|
||||
|
||||
- name: Setup Raboneko Signing
|
||||
run: |
|
||||
git config --global gpg.format "ssh"
|
||||
git config --global user.signingkey "${{ runner.temp }}/signing_key"
|
||||
git config --global commit.gpgsign true
|
||||
|
||||
- name: Backport Action
|
||||
uses: sorenlouv/backport-github-action@v9.3.0
|
||||
with:
|
||||
github_token: ${{ secrets.RABONEKO_BACKPORT_GITHUB_TOKEN }}
|
||||
auto_backport_label_prefix: sync-
|
||||
|
||||
- name: Info log
|
||||
if: ${{ success() }}
|
||||
run: cat ~/.backport/backport.info.log
|
||||
|
||||
- name: Debug log
|
||||
if: ${{ failure() }}
|
||||
run: cat ~/.backport/backport.debug.log
|
||||
@@ -0,0 +1,38 @@
|
||||
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
|
||||
@@ -1,55 +0,0 @@
|
||||
name: Update per branch
|
||||
on:
|
||||
schedule:
|
||||
- cron: "*/30 * * * *"
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
autoupdate:
|
||||
runs-on: ubuntu-22.04
|
||||
strategy:
|
||||
matrix:
|
||||
branch:
|
||||
- frawhide
|
||||
- f40
|
||||
- f41
|
||||
- f42
|
||||
- el10
|
||||
container:
|
||||
image: ghcr.io/terrapkg/builder:frawhide
|
||||
options: --cap-add=SYS_ADMIN --privileged
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: ${{ matrix.branch }}
|
||||
fetch-depth: 0
|
||||
ssh-key: ${{ secrets.SSH_AUTHENTICATION_KEY }}
|
||||
|
||||
- name: Install SSH signing key & Set up git repository
|
||||
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"
|
||||
|
||||
- name: Run Update
|
||||
run: |
|
||||
nbranch="${{ matrix.branch }}"
|
||||
[ "$nbranch" = 'frawhide' ] && nbranch='f42'
|
||||
anda update --filters updbranch=1 --labels branch=${{ matrix.branch }},nbranch=$nbranch
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
RUST_BACKTRACE: full
|
||||
|
||||
- name: Save
|
||||
run: |
|
||||
if [[ `git status --porcelain` ]]; then
|
||||
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"
|
||||
msg="bump(branch): $(git status | grep modified | sed -r 's@.+/([^/]+)/[^/]+\n?@\1 @g' | tr -d '\n')"
|
||||
git commit -S -a -m "$msg"
|
||||
git push -u origin --all
|
||||
fi
|
||||
@@ -3,25 +3,24 @@ name: Push comps updates
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- frawhide
|
||||
- f42
|
||||
- f41
|
||||
- f40
|
||||
- el10
|
||||
- f38
|
||||
- f37
|
||||
paths:
|
||||
- comps.xml
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
update-comps:
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: ghcr.io/terrapkg/builder:frawhide
|
||||
image: ghcr.io/terrapkg/builder:38
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v3
|
||||
- id: get-branch
|
||||
uses: grandmasterdev/github-action-get-branch@latest
|
||||
- name: Push to subatomic
|
||||
run: |
|
||||
branch=${{ github.ref_name }}
|
||||
branch=${{steps.get-branch.outputs.branch-name}}
|
||||
ver=${branch/f/}
|
||||
subatomic-cli upload-comps \
|
||||
--server https://subatomic.fyralabs.com \
|
||||
|
||||
@@ -6,32 +6,31 @@ on:
|
||||
|
||||
jobs:
|
||||
autoupdate:
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: ghcr.io/terrapkg/builder:frawhide
|
||||
image: ghcr.io/terrapkg/builder:f38
|
||||
options: --cap-add=SYS_ADMIN --privileged
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
ssh-key: ${{ secrets.SSH_AUTHENTICATION_KEY }}
|
||||
|
||||
- name: Install SSH signing key & Set up git repository
|
||||
- name: Install SSH signing key
|
||||
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"
|
||||
|
||||
- name: Run Nightly Update
|
||||
run: anda update --filters nightly=1
|
||||
run: anda update -vv --filters nightly=1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
RUST_BACKTRACE: full
|
||||
|
||||
- name: Save
|
||||
run: |
|
||||
git config --global --add safe.directory "*"
|
||||
if [[ `git status --porcelain` ]]; then
|
||||
git config user.name "Raboneko"
|
||||
git config user.email "raboneko@fyralabs.com"
|
||||
@@ -39,16 +38,13 @@ jobs:
|
||||
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"
|
||||
git format-patch HEAD^
|
||||
copy_over () {
|
||||
git checkout $1
|
||||
f37 () {
|
||||
git format-patch HEAD^
|
||||
git checkout f37
|
||||
git apply *.patch || true
|
||||
git add anda
|
||||
git add *
|
||||
git commit -S -a -m "$msg"
|
||||
}
|
||||
copy_over f40 || true
|
||||
copy_over f41 || true
|
||||
copy_over f42 || true
|
||||
copy_over el10 || true
|
||||
f37 || true
|
||||
git push -u origin --all
|
||||
fi
|
||||
|
||||
@@ -1,54 +0,0 @@
|
||||
name: Weekly Update
|
||||
on:
|
||||
schedule:
|
||||
- cron: "0 0 * * *"
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
autoupdate:
|
||||
runs-on: ubuntu-22.04
|
||||
container:
|
||||
image: ghcr.io/terrapkg/builder:frawhide
|
||||
options: --cap-add=SYS_ADMIN --privileged
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
ssh-key: ${{ secrets.SSH_AUTHENTICATION_KEY }}
|
||||
|
||||
- name: Install SSH signing key & Set up git repository
|
||||
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"
|
||||
|
||||
- name: Run Weekly Update
|
||||
run: anda update --filters weekly=$(date "+%w")
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
RUST_BACKTRACE: full
|
||||
|
||||
- name: Save
|
||||
run: |
|
||||
if [[ `git status --porcelain` ]]; then
|
||||
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"
|
||||
msg="bump(weekly): $(git status | grep modified | sed -r 's@.+/([^/]+)/[^/]+\n?@\1 @g' | tr -d '\n')"
|
||||
git commit -S -a -m "$msg"
|
||||
git format-patch HEAD^
|
||||
copy_over () {
|
||||
git checkout $1
|
||||
git apply *.patch || true
|
||||
git add anda
|
||||
git commit -S -a -m "$msg"
|
||||
}
|
||||
copy_over f40 || true
|
||||
copy_over f41 || true
|
||||
copy_over f42 || true
|
||||
copy_over el10 || true
|
||||
git push -u origin --all
|
||||
fi
|
||||
@@ -1,37 +1,37 @@
|
||||
name: Update
|
||||
on:
|
||||
schedule:
|
||||
- cron: "*/10 * * * *"
|
||||
- cron: "*/30 * * * *"
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
autoupdate:
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: ghcr.io/terrapkg/builder:frawhide
|
||||
image: ghcr.io/terrapkg/builder:f38
|
||||
options: --cap-add=SYS_ADMIN --privileged
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
ssh-key: ${{ secrets.SSH_AUTHENTICATION_KEY }}
|
||||
|
||||
- name: Install SSH signing key & Set up git repository
|
||||
- name: Install SSH signing key
|
||||
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"
|
||||
|
||||
- name: Run Update
|
||||
run: anda update --excludes nightly=1 --excludes weekly=1 --excludes updbranch=1
|
||||
run: anda update -vv
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.AUTOUPDATE_GH_TOKEN }}
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
RUST_BACKTRACE: full
|
||||
|
||||
- name: Save
|
||||
run: |
|
||||
git config --global --add safe.directory "*"
|
||||
if [[ `git status --porcelain` ]]; then
|
||||
git config user.name "Raboneko"
|
||||
git config user.email "raboneko@fyralabs.com"
|
||||
@@ -39,16 +39,13 @@ jobs:
|
||||
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"
|
||||
git format-patch HEAD^
|
||||
copy_over () {
|
||||
git checkout $1
|
||||
f37 () {
|
||||
git format-patch HEAD^
|
||||
git checkout f37
|
||||
git apply *.patch || true
|
||||
git add anda
|
||||
git add *
|
||||
git commit -S -a -m "$msg"
|
||||
}
|
||||
copy_over f40 || true
|
||||
copy_over f41 || true
|
||||
copy_over f42 || true
|
||||
copy_over el10 || true
|
||||
f37 || true
|
||||
git push -u origin --all
|
||||
fi
|
||||
|
||||
@@ -1,2 +1 @@
|
||||
anda-build/
|
||||
**/*.tar*
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
https://fyralabs.com/funding.json
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
# Repository
|
||||
/.github @lleyton
|
||||
/.devcontainer @lleyton
|
||||
/.gitignore @windowsboy111
|
||||
/CODE_OF_CONDUCT.md @lleyton
|
||||
/CONTRIBUTING.md @lleyton
|
||||
/LICENSE @lleyton
|
||||
/README.md @windowsboy111
|
||||
/SECURITY.md @lleyton
|
||||
/anda.hcl @lleyton
|
||||
/comps.xml @lleyton
|
||||
|
||||
# Package maintainers
|
||||
/anda/lib/libbismuth @lainsce
|
||||
/anda/lib/libhelium @lainsce
|
||||
/anda/others/tau-helium @lainsce
|
||||
/anda/others/tau-hydrogen @lainsce
|
||||
|
||||
/anda/tools/melody @lleyton
|
||||
/anda/go/curlie @lleyton
|
||||
|
||||
/anda/games/prismlauncher @getchoo
|
||||
/anda/games/prismlauncher-nightly @getchoo
|
||||
/anda/games/prismlauncher-qt5-nightly @getchoo
|
||||
/anda/games/prismlauncher-qt5 @getchoo
|
||||
|
||||
/anda/srpm-macros @korewaChino
|
||||
/anda/rust/starship @korewaChino
|
||||
/anda/rust/zellij @korewaChino
|
||||
/anda/audio/distrho @korewaChino
|
||||
+4
-4
@@ -1,7 +1,7 @@
|
||||
# Contributing
|
||||
|
||||
First of all, thanks for being interested in contributing to Terra! If you have any questions about contributing, please [join our chats](https://wiki.ultramarine-linux.org/en/community/community/).
|
||||
First of all, thanks for being interested in contributing to Terra! If you have any questions about contributing, please contact us on [Discord](https://discord.gg/5fdPuxTg5Q). Since we use a GitHub Wiki for [documention](https://github.com/terrapkg/packages/wiki), our guidelines may be found there. See the links below:
|
||||
|
||||
- [Contribution Guide](https://developer.fyralabs.com/terra/contributing)
|
||||
- [FAQ](https://developer.fyralabs.com/terra/faq)
|
||||
- [Policy](https://developer.fyralabs.com/terra/policy)
|
||||
* [Contribution Guide](https://github.com/terrapkg/packages/wiki/Contribute)
|
||||
* [FAQ](https://github.com/terrapkg/packages/wiki/FAQ)
|
||||
* [Policy](https://github.com/terrapkg/packages/wiki/Policy)
|
||||
@@ -1,37 +1,20 @@
|
||||
# Terra Sources
|
||||
|
||||
[](https://repology.org/repository/terra_40)
|
||||
[](https://repology.org/repository/terra_41)
|
||||
[](https://repology.org/repository/terra_rawhide)
|
||||
[](https://repology.org/repository/terra_37)
|
||||
[](https://repology.org/repository/terra_38)
|
||||
|
||||
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.
|
||||
|
||||
See the introduction at [our website](https://terra.fyralabs.com).
|
||||
|
||||
This monorepo contains the package manifests for all packages in Terra.
|
||||
|
||||
## Installation
|
||||
|
||||
```bash
|
||||
sudo dnf install --nogpgcheck --repofrompath 'terra,https://repos.fyralabs.com/terra$releasever' terra-release
|
||||
```
|
||||
|
||||
If you are using immutable/atomic editions of Fedora, run the following commands instead:
|
||||
|
||||
```bash
|
||||
curl -fsSL https://github.com/terrapkg/subatomic-repos/raw/main/terra.repo | pkexec tee /etc/yum.repos.d/terra.repo
|
||||
sudo rpm-ostree install terra-release
|
||||
sudo dnf config-manager --add-repo https://github.com/terrapkg/subatomic-repos/raw/main/terra.repo
|
||||
```
|
||||
|
||||
## Documentation
|
||||
|
||||
Our documentation can be found on our [Devdocs](https://developer.fyralabs.com/terra/).
|
||||
Our documentation can be found on our [Devdocs](https://developer.fyralabs.com/terra/). Alternatively, the GitHub Wiki contains older versions of the documentations.
|
||||
|
||||
## Questions?
|
||||
|
||||
Feel free to reach out by [joining our community](https://wiki.ultramarine-linux.org/en/community/community/). We're always happy to help!
|
||||
|
||||
- [Contribution Guide](https://developer.fyralabs.com/terra/contributing)
|
||||
- [FAQ](https://developer.fyralabs.com/terra/faq)
|
||||
- [Policy](https://developer.fyralabs.com/terra/policy)
|
||||
Feel free to reach out on [Discord](https://discord.gg/5fdPuxTg5Q). We're always happy to help!
|
||||
|
||||
+2
-2
@@ -3,7 +3,7 @@
|
||||
## Our Process
|
||||
|
||||
Fyra Labs is committed to ensuring user security and privacy.
|
||||
As such, we constantly try our best to ensure that our infrastructure and process are secure, which you may read about in our [FAQ](https://developer.fyralabs.com/terra/faq#technical-details).
|
||||
As such, we constantly try our best to ensure that our infrastructure and process are secure, which you may read about in our [FAQ](https://github.com/terrapkg/packages/wiki/FAQ#technical-details).
|
||||
|
||||
As a part of Fyra Labs's transparency measures, we will publicize details of any known breaches. This information will include, but will not be limited to:
|
||||
* Affected users, infrastructure, and data.
|
||||
@@ -11,7 +11,7 @@ As a part of Fyra Labs's transparency measures, we will publicize details of any
|
||||
* An in-depth explanation of how the breach occurred, including relevant security vulnerabilities.
|
||||
* How Fyra Labs will better protect user data in the future, ensuring our commitment to security and privacy.
|
||||
|
||||
We will publish these updates on our [Twitter](https://twitter.com/TeamFyraLabs), [Fedi](https://fedi.fyralabs.com/@hq), and [Discord](https://discord.gg/5fdPuxTg5Q).
|
||||
We will publish these updates on our [Twitter](https://twitter.com/TeamFyraLabs) and [Discord](https://discord.gg/5fdPuxTg5Q).
|
||||
|
||||
## Reporting a Vulnerability
|
||||
|
||||
|
||||
@@ -3,7 +3,4 @@ project pkg {
|
||||
rpm {
|
||||
spec = "anki-bin.spec"
|
||||
}
|
||||
labels {
|
||||
subrepo = "extras"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,32 +1,20 @@
|
||||
%global xurl https://files.pythonhosted.org/packages/68/9c/7685bd012e597332f8ce379a31b0d58dd4eae960da96ff43e9fcd978c93f/anki-25.02-cp39-abi3-manylinux_2_35_x86_64.whl
|
||||
%global aurl https://files.pythonhosted.org/packages/da/36/741cef7b7fce943d187784549fd8de8152986067d9226f384959c07770a7/anki-25.02-cp39-abi3-manylinux_2_35_aarch64.whl
|
||||
%global qurl https://files.pythonhosted.org/packages/2c/bc/763589b97aa5c91acf3d834beaa473c25ca7f335c7b40954fd0d5fd41ddc/aqt-25.02-py3-none-any.whl
|
||||
|
||||
Name: anki-bin
|
||||
Version: 25.02
|
||||
Release: 1%?dist
|
||||
Version: 2.1.65
|
||||
Release: 1%{?dist}
|
||||
Summary: Flashcard program for using space repetition learning (Installed with wheel)
|
||||
License: AGPL-3.0-or-later AND GPL-3.0-or-later AND LGPL-3.0-or-later AND MIT AND BSD-3-Clause AND CC-BY-SA-3.0 AND CC-BY-3.0 AND Apache-2.0 AND CC-BY-2.5
|
||||
URL: https://apps.ankiweb.net/
|
||||
BuildRequires: python3-pip rpm_macro(fdupes) cargo
|
||||
Requires: python3-sqlalchemy python3-simplejson python3-matplotlib python3-decorator python3-markdown python3-orjson
|
||||
Requires: python3-requests python3-pygame python3-beautifulsoup4 python3-httplib2 python3-pyaudio python3-jsonschema
|
||||
Requires: python3-flask-cors python3-protobuf python3-requests python3-waitress python3-pyqt6-webengine python3-send2trash
|
||||
Requires: python3-protobuf >= 4.21
|
||||
Requires: libxcrypt-compat hicolor-icon-theme sox
|
||||
Requires: (mpv or mpv-nightly)
|
||||
|
||||
ExclusiveArch: x86_64
|
||||
BuildRequires: python3-installer python3.11 rpm_macro(fdupes)
|
||||
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
|
||||
Conflicts: anki
|
||||
%ifarch x86_64
|
||||
Source0: %xurl
|
||||
%elifarch aarch64
|
||||
Source0: %aurl
|
||||
%endif
|
||||
Source1: %qurl
|
||||
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
|
||||
Source2: https://raw.githubusercontent.com/ankitects/anki/%{version}/qt/runanki.py
|
||||
Source3: https://raw.githubusercontent.com/ankitects/anki/%{version}/qt/bundle/lin/anki.desktop
|
||||
Source4: https://raw.githubusercontent.com/ankitects/anki/%{version}/qt/bundle/lin/anki.png
|
||||
Source4: https://raw.githubusercontent.com/ankitects/anki/%{version}/qt/bundle/lin/anki.png
|
||||
Source5: https://raw.githubusercontent.com/ankitects/anki/%{version}/LICENSE
|
||||
Source6: https://raw.githubusercontent.com/ankitects/anki/%{version}/README.md
|
||||
|
||||
@@ -40,39 +28,29 @@ Anki is based on a theory called spaced repetition.
|
||||
%build
|
||||
|
||||
%install
|
||||
pip3 install --root=%{buildroot} %SOURCE0 %SOURCE1
|
||||
python3.11 -m installer --destdir="%{buildroot}" %{SOURCE0}
|
||||
python3.11 -m installer --destdir="%{buildroot}" %{SOURCE1}
|
||||
install -Dm755 %{SOURCE2} "%{buildroot}/usr/bin/anki"
|
||||
install -Dm644 %{SOURCE3} "%{buildroot}/usr/share/applications/anki.desktop"
|
||||
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"
|
||||
|
||||
cp -r %buildroot%_libdir/python3*/site-packages/{_aqt,anki*,aqt*} .
|
||||
rm -rf %buildroot{%_libdir,/usr/lib}/python3*/site-packages/*
|
||||
cp -r ./{_aqt,anki*,aqt*} %buildroot/usr/lib/python3*/site-packages/
|
||||
|
||||
rm -rf %buildroot%_bindir/{distro,flask,jsonschema,markdown_py,normalizer,send2trash,waitress-serve}
|
||||
|
||||
%fdupes %buildroot%_libdir/python*/site-packages/_aqt/data/
|
||||
%fdupes %_libdir/python*/site-packages/_aqt/data/
|
||||
|
||||
|
||||
%files
|
||||
%license LICENSE
|
||||
%doc README.md
|
||||
%_bindir/anki
|
||||
%_bindir/pyuic6
|
||||
%_bindir/pylupdate6
|
||||
/usr/lib/python*/site-packages/_aqt/
|
||||
/usr/lib/python*/site-packages/anki-%{version}.dist-info/
|
||||
/usr/lib/python*/site-packages/anki/
|
||||
/usr/lib/python*/site-packages/aqt-%{version}.dist-info/
|
||||
/usr/lib/python*/site-packages/aqt/
|
||||
%_datadir/applications/anki.desktop
|
||||
%_datadir/pixmaps/anki.png
|
||||
/usr/bin/anki
|
||||
/usr/lib64/python*/site-packages/_aqt/
|
||||
/usr/lib64/python*/site-packages/anki-%{version}.dist-info/
|
||||
/usr/lib64/python*/site-packages/anki/
|
||||
/usr/lib64/python*/site-packages/aqt-%{version}.dist-info/
|
||||
/usr/lib64/python*/site-packages/aqt/
|
||||
/usr/share/applications/anki.desktop
|
||||
/usr/share/pixmaps/anki.png
|
||||
|
||||
%changelog
|
||||
* Fri Nov 10 2023 hazel-bunny <dabiswas112@gmail.com> - 23.10-2
|
||||
- Add python3-orjson and mpv as dependencies
|
||||
|
||||
* Wed Jan 11 2023 windowsboy111 <windowsboy111@fyralabs.com> - 2.1.60
|
||||
- Initial package
|
||||
|
||||
@@ -1,15 +1 @@
|
||||
let aarch64_regex = `<a href="https://files\.pythonhosted\.org/packages/(..)/(..)/(.{60})/anki-([\d.]+)-cp(\d+)-abi3-manylinux_.+?_aarch64.whl">`;
|
||||
let html = get("https://pypi.org/project/anki/");
|
||||
let relevant = find(aarch64_regex, html, 0);
|
||||
let ver = find(aarch64_regex, relevant, 4);
|
||||
rpm.version(ver);
|
||||
if rpm.changed() {
|
||||
rpm.release();
|
||||
rpm.global("aurl", find(`"(.+)"`, relevant, 1));
|
||||
let cp = find(aarch64_regex, relevant, 5);
|
||||
let x86_64_regex = `<a href="https://files\.pythonhosted\.org/packages/(..)/(..)/(.{60})/anki-${ver}-cp${cp}-abi3-manylinux_.+?_x86_64.whl">`;
|
||||
let relevant1 = find(x86_64_regex, html, 0);
|
||||
rpm.global("xurl", find(`"(.+)"`, relevant1, 1));
|
||||
let qhtml = get("https://pypi.org/project/aqt/");
|
||||
rpm.global("qurl", find(`<a href="(https://files\.pythonhosted\.org/packages/../../.{60}/aqt-${ver}-py3-none.any.whl)">`, qhtml, 1));
|
||||
}
|
||||
rpm.version(gh("ankitects/anki"));
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
--- a/qt/aqt/qt/__init__.py
|
||||
+++ b/qt/aqt/qt/__init__.py
|
||||
@@ -9,16 +9,7 @@ import sys
|
||||
diff -uNr anki-2.1.55.old/qt/aqt/qt/__init__.py anki-2.1.55/qt/aqt/qt/__init__.py
|
||||
--- anki-2.1.55.old/qt/aqt/qt/__init__.py 2023-01-02 18:34:13.716216913 +0800
|
||||
+++ anki-2.1.55/qt/aqt/qt/__init__.py 2023-01-02 18:34:00.410033708 +0800
|
||||
@@ -9,16 +9,7 @@
|
||||
import traceback
|
||||
from typing import Callable, TypeVar, Union
|
||||
|
||||
|
||||
-try:
|
||||
- import PyQt6
|
||||
-except:
|
||||
- from .qt5 import * # type: ignore
|
||||
-else:
|
||||
- if os.getenv("ENABLE_QT5_COMPAT"):
|
||||
- if not os.getenv("DISABLE_QT5_COMPAT"):
|
||||
- print("Running with temporary Qt5 compatibility shims.")
|
||||
- print("Run with DISABLE_QT5_COMPAT=1 to confirm compatibility with Qt6.")
|
||||
- from . import qt5_compat # needs to be imported first
|
||||
- from .qt6 import *
|
||||
-
|
||||
+from .qt5 import * # type: ignore
|
||||
|
||||
from anki.utils import is_mac, is_win
|
||||
|
||||
# fix buggy ubuntu12.04 display of language selector
|
||||
|
||||
@@ -1,13 +1,17 @@
|
||||
diff --git a/qt/aqt/update.py b/qt/aqt/update.py
|
||||
index 212ddf93d..6f716cc04 100644
|
||||
--- a/qt/aqt/update.py
|
||||
+++ b/qt/aqt/update.py
|
||||
@@ -11,6 +11,8 @@ from aqt.utils import openLink, show_warning, showText, tr
|
||||
diff -uNr anki-2.1.55.old/qt/aqt/profiles.py anki-2.1.55/qt/aqt/profiles.py
|
||||
--- anki-2.1.55.old/qt/aqt/profiles.py 2023-01-02 18:35:44.574467892 +0800
|
||||
+++ anki-2.1.55/qt/aqt/profiles.py 2023-01-02 18:34:00.412033736 +0800
|
||||
@@ -77,11 +77,11 @@
|
||||
|
||||
|
||||
def check_for_update() -> None:
|
||||
+ return
|
||||
+
|
||||
from aqt import mw
|
||||
|
||||
def do_check(_col: Collection) -> CheckForUpdateResponse:
|
||||
metaConf = dict(
|
||||
ver=0,
|
||||
- updates=True,
|
||||
+ updates=False,
|
||||
created=int_time(),
|
||||
id=random.randrange(0, 2**63),
|
||||
lastMsg=-1,
|
||||
- suppressUpdate=False,
|
||||
+ suppressUpdate=True,
|
||||
firstRun=True,
|
||||
defaultLang=None,
|
||||
)
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
Name: anki-qt5
|
||||
Version: 25.02
|
||||
Release: 1%?dist
|
||||
Version: 2.1.65
|
||||
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
|
||||
URL: https://apps.ankiweb.net/
|
||||
BuildRequires: python3-devel python3-setuptools python3-waitress python3-protobuf python3-pysocks rpm_macro(fdupes)
|
||||
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 python3-orjson mpv python3-qt5-webengine
|
||||
Requires: python3-requests python3-pygame python3-beautifulsoup4 python3-httplib2 python3-pyaudio python3-jsonschema sox libxcrypt-compat python3-pyqt5-sip
|
||||
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
|
||||
Conflicts: anki
|
||||
Patch0: 0001-No-update.patch
|
||||
@@ -20,10 +20,10 @@ phrases in a foreign language) as easily, quickly and efficiently as possible.
|
||||
Anki is based on a theory called spaced repetition.
|
||||
|
||||
%prep
|
||||
rm -rf ./*
|
||||
git clone https://github.com/ankitects/anki .
|
||||
git checkout %version
|
||||
%patch 1 -p1
|
||||
%patch0 -p1
|
||||
%patch1 -p1
|
||||
|
||||
# See https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=anki-qt5
|
||||
|
||||
|
||||
@@ -1,13 +1,17 @@
|
||||
diff --git a/qt/aqt/update.py b/qt/aqt/update.py
|
||||
index 212ddf93d..6f716cc04 100644
|
||||
--- a/qt/aqt/update.py
|
||||
+++ b/qt/aqt/update.py
|
||||
@@ -11,6 +11,8 @@ from aqt.utils import openLink, show_warning, showText, tr
|
||||
diff -uNr anki-2.1.55.old/qt/aqt/profiles.py anki-2.1.55/qt/aqt/profiles.py
|
||||
--- anki-2.1.55.old/qt/aqt/profiles.py 2023-01-02 18:35:44.574467892 +0800
|
||||
+++ anki-2.1.55/qt/aqt/profiles.py 2023-01-02 18:34:00.412033736 +0800
|
||||
@@ -77,11 +77,11 @@
|
||||
|
||||
|
||||
def check_for_update() -> None:
|
||||
+ return
|
||||
+
|
||||
from aqt import mw
|
||||
|
||||
def do_check(_col: Collection) -> CheckForUpdateResponse:
|
||||
metaConf = dict(
|
||||
ver=0,
|
||||
- updates=True,
|
||||
+ updates=False,
|
||||
created=int_time(),
|
||||
id=random.randrange(0, 2**63),
|
||||
lastMsg=-1,
|
||||
- suppressUpdate=False,
|
||||
+ suppressUpdate=True,
|
||||
firstRun=True,
|
||||
defaultLang=None,
|
||||
)
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
project pkg {
|
||||
arches = ["x86_64"]
|
||||
rpm {
|
||||
spec = "anki.spec"
|
||||
}
|
||||
labels {
|
||||
subrepo = "extras"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
Name: anki
|
||||
Version: 25.02
|
||||
Release: 1%?dist
|
||||
Version: 2.1.65
|
||||
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
|
||||
URL: https://apps.ankiweb.net/
|
||||
BuildRequires: python3-devel python3-setuptools python3-waitress python3-protobuf python3-pysocks rpm_macro(fdupes)
|
||||
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-webengine
|
||||
BuildRequires: python3-installer make mold cargo git rsync ninja-build libxcrypt-compat nodejs python3.9 python-unversioned-command gcc python3-pyqt6-devel python3-pyqt6
|
||||
Requires: hicolor-icon-theme python3-sqlalchemy python3-simplejson python3-matplotlib python3-decorator python3-markdown python3-send2trash
|
||||
Requires: python3-requests python3-pygame python3-beautifulsoup4 python3-httplib2 python3-pyaudio python3-jsonschema sox libxcrypt-compat python3-pyqt6-webengine
|
||||
Recommends: (mpv or mpv-nightly)
|
||||
Requires: python3-requests python3-pygame python3-beautifulsoup4 python3-httplib2 python3-pyaudio python3-jsonschema sox libxcrypt-compat python3-qt5-webengine python3-pyqt6
|
||||
Recommends: mpv
|
||||
Obsoletes: anki <= 2.1.15
|
||||
Conflicts: anki-qt5
|
||||
Patch0: 0001-No-update.patch
|
||||
@@ -20,7 +20,6 @@ phrases in a foreign language) as easily, quickly and efficiently as possible.
|
||||
Anki is based on a theory called spaced repetition.
|
||||
|
||||
%prep
|
||||
rm -rf *
|
||||
git clone https://github.com/ankitects/anki .
|
||||
git checkout %{version}
|
||||
%patch 0 -p1
|
||||
@@ -30,7 +29,6 @@ git checkout %{version}
|
||||
%build
|
||||
export RELEASE=1
|
||||
export PYTHONPATH=%_libdir/python3/dist-packages
|
||||
cargo update
|
||||
mold -run ./tools/build
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "armcord-bin.spec"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
%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
|
||||
|
Before Width: | Height: | Size: 81 KiB After Width: | Height: | Size: 81 KiB |
@@ -0,0 +1 @@
|
||||
rpm.version(gh("ArmCord/ArmCord"));
|
||||
@@ -1,6 +1,6 @@
|
||||
project pkg {
|
||||
arches = ["x86_64"]
|
||||
rpm {
|
||||
spec = "neovide.spec"
|
||||
spec = "armcord.spec"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
%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
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
rpm.version(gh("ArmCord/ArmCord"));
|
||||
@@ -1,5 +0,0 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "audacity-freeworld.spec"
|
||||
}
|
||||
}
|
||||
@@ -1,752 +0,0 @@
|
||||
%global __requires_exclude ^lib-.*.so
|
||||
%global __provides_exclude ^lib-.*.so
|
||||
|
||||
%global ver Audacity 3.7.1
|
||||
%global sanitized_ver %(sed 's/ *//;s/Audacity//' <<< "%{ver}")
|
||||
|
||||
Name: audacity-freeworld
|
||||
Version: %{sanitized_ver}
|
||||
Release: 1%?dist
|
||||
Summary: Multitrack audio editor
|
||||
License: GPLv2
|
||||
URL: https://www.audacityteam.org/
|
||||
|
||||
%define realname audacity
|
||||
Conflicts: %{realname}
|
||||
|
||||
Source0: https://github.com/audacity/audacity/releases/download/Audacity-%{version}/audacity-sources-%{version}.tar.gz
|
||||
|
||||
# manual can be installed from the base Fedora Audacity package.
|
||||
|
||||
BuildRequires: cmake
|
||||
BuildRequires: gettext-devel
|
||||
BuildRequires: chrpath
|
||||
BuildRequires: gcc
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: alsa-lib-devel
|
||||
BuildRequires: desktop-file-utils
|
||||
BuildRequires: expat-devel
|
||||
BuildRequires: flac-devel
|
||||
BuildRequires: git
|
||||
BuildRequires: gtk3-devel
|
||||
BuildRequires: jack-audio-connection-kit-devel
|
||||
BuildRequires: ladspa-devel
|
||||
BuildRequires: lame-devel
|
||||
BuildRequires: libid3tag-devel
|
||||
BuildRequires: libjpeg-turbo-devel turbojpeg
|
||||
BuildRequires: libmad-devel
|
||||
BuildRequires: taglib-devel
|
||||
BuildRequires: twolame-devel
|
||||
BuildRequires: libogg-devel
|
||||
BuildRequires: libsndfile-devel
|
||||
BuildRequires: libuuid-devel
|
||||
BuildRequires: libvorbis-devel
|
||||
BuildRequires: libX11-devel
|
||||
BuildRequires: libXext-devel
|
||||
BuildRequires: lilv-devel
|
||||
BuildRequires: lv2-devel
|
||||
BuildRequires: mpg123-devel
|
||||
BuildRequires: opusfile-devel
|
||||
BuildRequires: portaudio-devel >= 19-16
|
||||
BuildRequires: portmidi-devel
|
||||
BuildRequires: rapidjson-devel
|
||||
BuildRequires: serd-devel
|
||||
BuildRequires: shared-mime-info
|
||||
BuildRequires: sord-devel
|
||||
BuildRequires: soundtouch-devel
|
||||
BuildRequires: soxr-devel
|
||||
# Use local sqlite as system fails
|
||||
BuildRequires: sqlite-devel
|
||||
BuildRequires: sratom-devel
|
||||
BuildRequires: suil-devel
|
||||
BuildRequires: vamp-plugin-sdk-devel >= 2.0
|
||||
BuildRequires: wavpack-devel
|
||||
BuildRequires: wxGTK-devel
|
||||
BuildRequires: zip
|
||||
BuildRequires: zlib-devel
|
||||
BuildRequires: python3
|
||||
BuildRequires: libappstream-glib
|
||||
|
||||
Recommends: ffmpeg-libs
|
||||
|
||||
# For new symbols in portaudio
|
||||
Requires: portaudio%{?_isa} >= 19-16
|
||||
|
||||
ExcludeArch: s390x
|
||||
|
||||
%description
|
||||
Audacity is a cross-platform multitrack audio editor. It allows you to
|
||||
record sounds directly or to import files in various formats. It features
|
||||
a few s0mple effects, all of the editing features you should need, and
|
||||
unlimited undo. The GUI was built with wxWidgets and the audio I/O
|
||||
supports PulseAudio, OSS and ALSA under Linux.
|
||||
This build has support for mp3 and ffmpeg import/export.
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n %{realname}-sources-%{version}
|
||||
|
||||
# Make sure we use the system versions.
|
||||
rm -rf lib-src/{libvamp,libsoxr}/
|
||||
|
||||
#Included in src/AboutDialog.cpp but not supplied
|
||||
touch include/RevisionIdent.h
|
||||
|
||||
%build
|
||||
%cmake \
|
||||
-DCMAKE_MODULE_LINKER_FLAGS:STRING="$(wx-config --libs)" \
|
||||
-DCMAKE_SHARED_LINKER_FLAGS:STRING="$(wx-config --libs)" \
|
||||
-DAUDACITY_BUILD_LEVEL:STRING=2 \
|
||||
-Daudacity_conan_enabled=Off \
|
||||
-Daudacity_has_networking=Off \
|
||||
-Daudacity_has_crashreports=Off \
|
||||
-Daudacity_has_updates_check=Off \
|
||||
-Daudacity_has_sentry_reporting=Off \
|
||||
-Daudacity_lib_preference:STRING=system \
|
||||
-Daudacity_use_libsndfile=system \
|
||||
-Daudacity_use_soxr=system \
|
||||
-Daudacity_use_lame=system \
|
||||
-Daudacity_use_twolame=system \
|
||||
-Daudacity_use_libflac=system \
|
||||
-Daudacity_use_ladspa=on \
|
||||
-Daudacity_use_libvorbis=system \
|
||||
-Daudacity_use_libid3tag=system \
|
||||
-Daudacity_use_expat=system \
|
||||
-Daudacity_use_soundtouch=system \
|
||||
-Daudacity_use_vamp=system \
|
||||
-Daudacity_use_lv2=system \
|
||||
-Daudacity_use_midi=system \
|
||||
-Daudacity_use_libogg=system \
|
||||
-Daudacity_has_vst3:BOOL=Off \
|
||||
-Daudacity_use_ffmpeg=loaded
|
||||
%cmake_build
|
||||
|
||||
%install
|
||||
%cmake_install
|
||||
|
||||
# Remove the RPATH from all the private libraries provided with Audacity and
|
||||
# make them all executable so that debug symbol extraction happens.
|
||||
# CMake could do this on its own using the install target for the library,
|
||||
# but the Audacity build system manually copies around the libraries so it
|
||||
# doesn't use the install target. This is very involved to fix in the code,
|
||||
# so this work around is easier and more maintainable than patching the build
|
||||
# system.
|
||||
pushd %{buildroot}%{_libdir}/%{realname}
|
||||
for libFile in *;
|
||||
do
|
||||
if [[ ! -d $libFile ]];
|
||||
then
|
||||
chrpath --delete $libFile
|
||||
chmod 755 $libFile
|
||||
fi
|
||||
done
|
||||
popd
|
||||
|
||||
pushd %{buildroot}%{_libdir}/%{realname}/modules
|
||||
for libFile in *;
|
||||
do
|
||||
if [[ ! -d $libFile ]];
|
||||
then
|
||||
chrpath --delete $libFile
|
||||
chmod 755 $libFile
|
||||
fi
|
||||
done
|
||||
popd
|
||||
|
||||
if appstream-util --help | grep -q replace-screenshots ; then
|
||||
appstream-util replace-screenshots %{buildroot}%{_metainfodir}/audacity.appdata.xml \
|
||||
https://raw.githubusercontent.com/hughsie/fedora-appstream/master/screenshots-extra/audacity/a.png
|
||||
fi
|
||||
|
||||
%{find_lang} %{realname}
|
||||
|
||||
desktop-file-install --dir %{buildroot}%{_datadir}/applications \
|
||||
%{buildroot}%{_datadir}/applications/audacity.desktop
|
||||
|
||||
mkdir %{buildroot}%{_datadir}/doc/%{realname}/nyquist
|
||||
cp -pr lib-src/libnyquist/nyquist/license.txt %{buildroot}%{_datadir}/doc/%{realname}/nyquist
|
||||
cp -pr lib-src/libnyquist/nyquist/Readme.txt %{buildroot}%{_datadir}/doc/%{realname}/nyquist
|
||||
rm %{buildroot}%{_datadir}/doc/%{realname}/LICENSE.txt
|
||||
rm -f %{buildroot}%{_prefix}/%{realname}
|
||||
|
||||
%files -f %{realname}.lang
|
||||
%{_bindir}/%{realname}
|
||||
%{_libdir}/%{realname}/
|
||||
%dir %{_datadir}/%{realname}
|
||||
%{_datadir}/%{realname}/EffectsMenuDefaults.xml
|
||||
%{_datadir}/%{realname}/nyquist/
|
||||
%{_datadir}/%{realname}/plug-ins/
|
||||
%{_mandir}/man*/*
|
||||
%{_datadir}/applications/*
|
||||
%{_metainfodir}/%{realname}.appdata.xml
|
||||
%{_datadir}/pixmaps/*
|
||||
%{_datadir}/icons/hicolor/*/%{realname}.png
|
||||
%{_datadir}/icons/hicolor/scalable/apps/%{realname}.svg
|
||||
%{_datadir}/mime/packages/*
|
||||
%{_datadir}/doc/%{realname}
|
||||
%license LICENSE.txt
|
||||
|
||||
%changelog
|
||||
* Thu Jan 03 2025 Owen Zimmerman <owen@fyralabs.com>
|
||||
- Port to Terra
|
||||
|
||||
* Thu Dec 12 2024 Leigh Scott <leigh123linux@gmail.com> - 3.7.1-1
|
||||
- Update to 3.7.1
|
||||
|
||||
* Wed Oct 30 2024 Leigh Scott <leigh123linux@gmail.com> - 3.7.0-1
|
||||
- Update to 3.7.0
|
||||
|
||||
* Sat Sep 14 2024 Leigh Scott <leigh123linux@gmail.com> - 3.6.3-1
|
||||
- Update to 3.6.3
|
||||
|
||||
* Wed Sep 04 2024 Leigh Scott <leigh123linux@gmail.com> - 3.6.2-1
|
||||
- Update to 3.6.2
|
||||
|
||||
* Mon Jul 29 2024 Leigh Scott <leigh123linux@gmail.com> - 3.6.1-1
|
||||
- Update to 3.6.1
|
||||
|
||||
* Wed Jul 17 2024 Leigh Scott <leigh123linux@gmail.com> - 3.6.0-1
|
||||
- Update to 3.6.0
|
||||
|
||||
* Fri Apr 26 2024 Leigh Scott <leigh123linux@gmail.com> - 3.5.1-1
|
||||
- Update to 3.5.1
|
||||
|
||||
* Sat Feb 03 2024 RPM Fusion Release Engineering <sergiomb@rpmfusion.org> - 3.4.2-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||
|
||||
* Fri Nov 17 2023 Leigh Scott <leigh123linux@gmail.com> - 3.4.2-1
|
||||
- 3.4.2
|
||||
|
||||
* Fri Nov 03 2023 Leigh Scott <leigh123linux@gmail.com> - 3.4.0-1
|
||||
- 3.4.0
|
||||
|
||||
* Wed Aug 02 2023 RPM Fusion Release Engineering <sergiomb@rpmfusion.org> - 3.3.3-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
|
||||
|
||||
* Sun Jun 11 2023 Leigh Scott <leigh123linux@gmail.com> - 3.3.3-1
|
||||
- 3.3.3
|
||||
|
||||
* Sun May 07 2023 Leigh Scott <leigh123linux@gmail.com> - 3.3.2-1
|
||||
- 3.3.2
|
||||
|
||||
* Thu May 04 2023 Leigh Scott <leigh123linux@gmail.com> - 3.3.1-2
|
||||
- Fix crash on startup (rfbz#6669)
|
||||
|
||||
* Fri Apr 28 2023 Leigh Scott <leigh123linux@gmail.com> - 3.3.1-1
|
||||
- 3.3.1
|
||||
|
||||
* Mon Apr 24 2023 Leigh Scott <leigh123linux@gmail.com> - 3.3.0-1
|
||||
- 3.3.0
|
||||
|
||||
* Sat Apr 01 2023 Leigh Scott <leigh123linux@gmail.com> - 3.2.5-2
|
||||
- Add ffmpeg-6 support
|
||||
|
||||
* Tue Mar 14 2023 Leigh Scott <leigh123linux@gmail.com> - 3.2.5-1
|
||||
- 3.2.5
|
||||
- Use clang
|
||||
|
||||
* Tue Dec 06 2022 Leigh Scott <leigh123linux@gmail.com> - 3.2.2-1
|
||||
- 3.2.2
|
||||
|
||||
* Thu Oct 06 2022 Leigh Scott <leigh123linux@gmail.com> - 3.2.1-1
|
||||
- 3.2.1
|
||||
|
||||
* Fri Sep 23 2022 Leigh Scott <leigh123linux@gmail.com> - 3.2.0-1
|
||||
- 3.2.0
|
||||
|
||||
* Sat Aug 06 2022 RPM Fusion Release Engineering <sergiomb@rpmfusion.org> - 3.1.3-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild and ffmpeg
|
||||
5.1
|
||||
|
||||
* Thu Feb 24 2022 Leigh Scott <leigh123linux@gmail.com> - 3.1.3-3
|
||||
- Use compat-ffmpeg4 for f36+
|
||||
|
||||
* Wed Feb 09 2022 RPM Fusion Release Engineering <sergiomb@rpmfusion.org> - 3.1.3-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||
|
||||
* Thu Dec 23 2021 Leigh Scott <leigh123linux@gmail.com> - 3.1.3-1
|
||||
- 3.1.3
|
||||
|
||||
* Sun Dec 12 2021 Leigh Scott <leigh123linux@gmail.com> - 3.1.2-1
|
||||
- 3.1.2
|
||||
|
||||
* Sat Nov 13 2021 Leigh Scott <leigh123linux@gmail.com> - 3.1.1-1
|
||||
- 3.1.1
|
||||
|
||||
* Wed Nov 10 2021 Leigh Scott <leigh123linux@gmail.com> - 3.1.0-1
|
||||
- 3.1.0
|
||||
|
||||
* Wed Nov 10 2021 Leigh Scott <leigh123linux@gmail.com> - 3.0.5-5
|
||||
- Rebuilt for new ffmpeg snapshot
|
||||
|
||||
* Tue Oct 26 2021 Leigh Scott <leigh123linux@gmail.com> - 3.0.5-4
|
||||
- Fix build level
|
||||
|
||||
* Tue Oct 26 2021 Leigh Scott <leigh123linux@gmail.com> - 3.0.5-3
|
||||
- Fix lang (rfbz#6117)
|
||||
|
||||
* Tue Oct 19 2021 Leigh Scott <leigh123linux@gmail.com> - 3.0.5-2
|
||||
- Filter internal libs from provides and requires (rfbz#6112)
|
||||
|
||||
* Thu Oct 14 2021 Leigh Scott <leigh123linux@gmail.com> - 3.0.5-1
|
||||
- 3.0.5
|
||||
|
||||
* Sat Oct 02 2021 Leigh Scott <leigh123linux@gmail.com> - 3.0.2-3
|
||||
- Add Fedora patches
|
||||
|
||||
* Mon Aug 02 2021 RPM Fusion Release Engineering <leigh123linux@gmail.com> - 3.0.2-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||
|
||||
* Mon Apr 19 2021 Leigh Scott <leigh123linux@gmail.com> - 3.0.2-1
|
||||
- 3.0.2
|
||||
|
||||
* Sun Mar 21 2021 Leigh Scott <leigh123linux@gmail.com> - 3.0.0-2
|
||||
- Use local sqlite as system fails
|
||||
|
||||
* Thu Mar 18 2021 Leigh Scott <leigh123linux@gmail.com> - 3.0.0-1
|
||||
- 3.0.0
|
||||
- Use local wxwidgets, audacity isn't usable with gtk3
|
||||
|
||||
* Tue Feb 23 2021 Sérgio Basto <sergio@serjux.com> - 2.4.2-4
|
||||
- partial fedora sync
|
||||
|
||||
* Wed Feb 03 2021 RPM Fusion Release Engineering <leigh123linux@gmail.com> - 2.4.2-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||
|
||||
* Fri Jan 1 2021 Leigh Scott <leigh123linux@gmail.com> - 2.4.2-2
|
||||
- Rebuilt for new ffmpeg snapshot
|
||||
|
||||
* Wed Oct 21 2020 Leigh Scott <leigh123linux@gmail.com> - 2.4.2-1
|
||||
- Update to Audacity 2.4.2
|
||||
|
||||
* Wed Sep 02 2020 Leigh Scott <leigh123linux@gmail.com> - 2.3.3-5
|
||||
- Add GDK_BACKEND=x11 to audacity.desktop exec line (rfbz#5551)
|
||||
- Fix incorrect appdata.xml type tag (bug #1810509)
|
||||
|
||||
* Mon Aug 17 2020 RPM Fusion Release Engineering <leigh123linux@gmail.com> - 2.3.3-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||
|
||||
* Thu Mar 26 2020 leigh123linux <leigh123linux@googlemail.com> - 2.3.3-3
|
||||
- Fix gcc-10 compile issue
|
||||
|
||||
* Tue Feb 04 2020 RPM Fusion Release Engineering <leigh123linux@gmail.com> - 2.3.3-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
||||
|
||||
* Sat Nov 23 2019 David Timms <iinet.net.au@dtimms> - 2.3.3-1
|
||||
- Update to Audacity 2.3.3.
|
||||
- Modify wxWidgets build require to wxGTK3 (gtk3 version).
|
||||
- Modify libdir patch for 2.3.3.
|
||||
- Fix -manual file archive dropping the leading help/ in path.
|
||||
- Disable twolame for EPEL-8 as the -devel package isn't available.
|
||||
|
||||
* Wed Aug 07 2019 Leigh Scott <leigh123linux@gmail.com> - 2.3.2-2
|
||||
- Rebuild for new ffmpeg version
|
||||
|
||||
* Tue Jun 4 2019 David Timms <iinet.net.au@dtimms> - 2.3.2-1
|
||||
- Update to Audacity 2.3.2 release.
|
||||
- Rebase audacity-2.3.2-libdir.patch.
|
||||
|
||||
* Mon Mar 18 2019 Leigh Scott <leigh123linux@googlemail.com> - 2.3.1-1
|
||||
- Update to Audacity 2.3.1 release
|
||||
- Fixes Audacity 2.3.0 broken release (rfbz#5077)
|
||||
|
||||
* Mon Mar 04 2019 RPM Fusion Release Engineering <leigh123linux@gmail.com> - 2.3.0-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||
|
||||
* Mon Oct 1 2018 David Timms <iinet.net.au@dtimms> - 2.3.0-1
|
||||
- Update to Audacity 2.3.0 release.
|
||||
- change mp3 capability to be always present rather than a compile option.
|
||||
- Modify audacity-2.2.1-libdir.patch and audacity-2.2.1-libmp3lame-default.patch
|
||||
to apply the rpm macro path directly.
|
||||
- Add grep check to fail if RPMLIB is found in modified source.
|
||||
- Fix libid3tag configure option.
|
||||
|
||||
* Thu Jul 26 2018 RPM Fusion Release Engineering <leigh123linux@gmail.com> - 2.2.2-6
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
|
||||
|
||||
* Fri Apr 27 2018 Leigh Scott <leigh123linux@googlemail.com> - 2.2.2-5
|
||||
- Revert 'Use compat-ffmpeg28 on Fedora 28+'
|
||||
|
||||
* Thu Mar 08 2018 RPM Fusion Release Engineering <leigh123linux@googlemail.com> - 2.2.2-4
|
||||
- Rebuilt for new ffmpeg snapshot
|
||||
|
||||
* Mon Feb 26 2018 Sérgio Basto <sergio@serjux.com> - 2.2.2-3
|
||||
- Restore remove after configure
|
||||
- Remove obsolete scriptlets
|
||||
|
||||
* Sun Feb 25 2018 Sérgio Basto <sergio@serjux.com> - 2.2.2-2
|
||||
- Use compat-ffmpeg28 on Fedora 28+
|
||||
- Also add conditionals to be possible build with local ffmpeg (not in use)
|
||||
- Use autoconf before ./configure
|
||||
- Readd libmp3lame-default.patch and libdir.patch
|
||||
- Readd to configure --disable-dynamic-loading
|
||||
- General review of spec
|
||||
- Comment BR portmidi-devel and remove no-local-includes.patch
|
||||
|
||||
* Thu Feb 22 2018 Sérgio Basto <sergio@serjux.com> - 2.2.2-1
|
||||
- Update to 2.2.2
|
||||
- Readd no-local-includes.patch
|
||||
- Reorganize conditonal with_mp3, now have twolame, lame and libmad
|
||||
- Readd desktop.in.patch
|
||||
- Add to configure --with-lv2 --with-midi --with-portmidi with some commentaries
|
||||
- Temporary fix to portaudio became permanent (--with-portaudio=local)
|
||||
|
||||
* Thu Feb 01 2018 Sérgio Basto <sergio@serjux.com> - 2.2.1-1
|
||||
- Update to 2.2.1
|
||||
|
||||
* Sun Dec 03 2017 Sérgio Basto <sergio@serjux.com> - 2.2.0-1
|
||||
- Update to 2.2.0
|
||||
|
||||
* Mon Oct 16 2017 Leigh Scott <leigh123linux@googlemail.com> - 2.1.3-5
|
||||
- Rebuild for ffmpeg update
|
||||
|
||||
* Sun Oct 08 2017 Sérgio Basto <sergio@serjux.com> - 2.1.3-4
|
||||
- Rebuild for soundtouch 2.0.0
|
||||
- Fix build for new wxBase
|
||||
- Sync with Fedora proper
|
||||
|
||||
* Thu Aug 31 2017 RPM Fusion Release Engineering <kwizart@rpmfusion.org> - 2.1.3-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
|
||||
|
||||
* Sat Apr 29 2017 Leigh Scott <leigh123linux@googlemail.com> - 2.1.3-2
|
||||
- Rebuild for ffmpeg update
|
||||
|
||||
* Fri Mar 24 2017 Leigh Scott <leigh123linux@googlemail.com> - 2.1.3-1
|
||||
- 2.1.3 release.
|
||||
|
||||
* Sat Mar 18 2017 RPM Fusion Release Engineering <kwizart@rpmfusion.org> - 2.1.3-0.10.20161109git53a5c93
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
|
||||
|
||||
* Tue Nov 22 2016 Sérgio Basto <sergio@serjux.com> - 2.1.3-0.9.20161109git53a5c93
|
||||
- Use bcond_without correctly, fix wx-config-3.0-gtk2 detection, also simplify
|
||||
some comments
|
||||
|
||||
* Thu Nov 17 2016 David Timms <iinet.net.au@dtimms> - 2.1.3-0.8.20161109git53a5c93
|
||||
- fix mp3 build parameter by defining mp3importexport conditional.
|
||||
|
||||
* Wed Nov 9 2016 David Timms <iinet.net.au@dtimms> - 2.1.3-0.7.20161109git53a5c93
|
||||
- 2.1.3 Alpha git snapshot 2016-11-09.
|
||||
|
||||
* Sat Jul 30 2016 Julian Sikorski <belegdol@fedoraproject.org> - 2.1.2-3
|
||||
- Rebuilt for ffmpeg-3.1.1
|
||||
|
||||
* Wed Jun 22 2016 Nicolas Chauvet <kwizart@gmail.com> - 2.1.2-2
|
||||
- Backport fix for gcc6
|
||||
|
||||
* Thu Mar 03 2016 Sérgio Basto <sergio@serjux.com> - 2.1.2-1
|
||||
- Update audacity to 2.1.2 final
|
||||
|
||||
* Sun Jul 19 2015 David Timms <iinet.net.au@dtimms> - 2.1.1-1
|
||||
- Release of Audacity 2.1.1.
|
||||
|
||||
* Sun Jun 28 2015 David Timms <iinet.net.au@dtimms> - 2.1.1-0.2.dea351a
|
||||
- remove Source1 reference to manual (available in Fedora audacity build).
|
||||
|
||||
* Wed Jun 24 2015 David Timms <iinet.net.au@dtimms> - 2.1.1-0.1.dea351a
|
||||
- Update to 2.1.1 pre-release git snapshot to prepare for release.
|
||||
- Conditionalize AppData out of EPEL <=7 release.
|
||||
- Use better AppData screenshots.
|
||||
|
||||
* Mon Jan 12 2015 David Timms <iinet.net.au@dtimms> - 2.0.6-1
|
||||
- update to upstream release 2.0.6
|
||||
- update non-dl-ffmpeg.patch to match this version
|
||||
|
||||
* Sat Aug 30 2014 Sérgio Basto <sergio@serjux.com> - 2.0.4-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
|
||||
|
||||
* Mon Sep 30 2013 Nicolas Chauvet <kwizart@gmail.com> - 2.0.4-3
|
||||
- Rebuilt
|
||||
|
||||
* Sun Sep 22 2013 David Timms <iinet.net.au@dtimms> - 2.0.4-2
|
||||
- Add upstream patch to avoid segfault when starting Effects|Equalization
|
||||
|
||||
* Sat Sep 14 2013 David Timms <iinet.net.au@dtimms> - 2.0.4-1
|
||||
- update to upstream release 2.0.4
|
||||
- rebase audacity-2.0.1-libmp3lame-default
|
||||
|
||||
* Sat May 4 2013 Hans de Goede <j.w.r.degoede@gmail.com> - 2.0.3-1
|
||||
- New upstream release 2.0.3
|
||||
- Fix FTBFS by using ffmpeg-compat (rf#2707)
|
||||
- Disable dynamic loading to force proper Requires for the used libs
|
||||
|
||||
* Sun Mar 03 2013 Nicolas Chauvet <kwizart@gmail.com> - 2.0.1-2
|
||||
- Mass rebuilt for Fedora 19 Features
|
||||
|
||||
* Tue Jul 3 2012 David Timms <iinet.net.au@dtimms> - 2.0.1-1
|
||||
- update to 2.0.1 final
|
||||
- rebase libmp3lame-default.patch
|
||||
- rebase desktop.in.patch
|
||||
|
||||
* Tue Jun 26 2012 David Timms <iinet.net.au@dtimms> - 2.0.1-0.1.rc2
|
||||
- update to 2.0.1 release candidate 2
|
||||
|
||||
* Wed Mar 14 2012 David Timms <iinet.net.au@dtimms> - 2.0.0-1
|
||||
- update to 2.0.0 final
|
||||
|
||||
* Sun Mar 11 2012 David Timms <iinet.net.au@dtimms> - 2.0.0-0.9.rc9
|
||||
- update to 2.0.0 release candidate 9
|
||||
- drop upstreamed glib2 include patch
|
||||
|
||||
* Tue Mar 6 2012 David Timms <iinet.net.au@dtimms> - 2.0.0-0.8.rc8
|
||||
- update to 2.0.0 release candidate 8 for testing only
|
||||
|
||||
* Wed Feb 22 2012 David Timms <iinet.net.au@dtimms> - 2.0.0-0.3.rc3
|
||||
- update to 2.0.0 release candidate 3
|
||||
|
||||
* Sat Feb 18 2012 David Timms <iinet.net.au@dtimms> - 2.0.0-0.2.rc1.20120218svn11513
|
||||
- update to release candidate from svn snapshot
|
||||
|
||||
* Sun Feb 5 2012 David Timms <iinet.net.au@dtimms> - 2.0.0-0.1.alpha20120205svn11456
|
||||
- update to 2.0.0 alpha svn snapshot
|
||||
- delete accepted ffmpeg-0.8.y patch
|
||||
|
||||
* Tue Dec 13 2011 David Timms <iinet.net.au@dtimms> - 1.3.14-0.5
|
||||
- fix Source1 help reference (again).
|
||||
|
||||
* Tue Dec 13 2011 David Timms <iinet.net.au@dtimms> - 1.3.14-0.4
|
||||
- update to 1.3.14 beta release
|
||||
|
||||
* Thu Dec 8 2011 David Timms <iinet.net.au@dtimms> - 1.3.14-0.3.alpha20111101svn11296
|
||||
- add ffmpeg-0.8 patch from Leland Lucius
|
||||
- add test patch to workaround gtypes-include problem
|
||||
|
||||
* Tue Nov 1 2011 David Timms <iinet.net.au@dtimms> - 1.3.14-0.1.alpha20111101svn11296
|
||||
- update to 1.3.14 alpha svn snapshot
|
||||
|
||||
* Sat Apr 30 2011 David Timms <iinet.net.au@dtimms> - 1.3.13-0.4.beta
|
||||
- fix files and dir ownership including -manual files in the main package
|
||||
|
||||
* Tue Apr 26 2011 David Timms <iinet.net.au@dtimms> - 1.3.13-0.2.beta
|
||||
- delete help file Source reference; will be done in Fedora instead.
|
||||
|
||||
* Sun Apr 24 2011 David Timms <iinet.net.au@dtimms> - 1.3.13-0.2.beta
|
||||
- upgrade to 1.3.13-beta
|
||||
- drop patches included in upstream release
|
||||
- convert desktop file to a patch against new upstream .desktop file.
|
||||
|
||||
* Wed Nov 10 2010 David Timms <iinet.net.au@dtimms> - 1.3.12-0.11.beta
|
||||
- fix build failure compiling ffmpeg.cpp
|
||||
|
||||
* Wed Nov 10 2010 David Timms <iinet.net.au@dtimms> - 1.3.12-0.10.beta
|
||||
- fix build failure in portmixer due to "Missing support in pa_mac_core.h"
|
||||
Applied svn trunk portmixer configure changes.
|
||||
- del previous patch attempt (unsuccessful)
|
||||
|
||||
* Sun Oct 31 2010 David Timms <iinet.net.au@dtimms> - 1.3.12-0.9.beta
|
||||
- fix build failure due to portmixer configure problems
|
||||
|
||||
* Sun Oct 31 2010 David Timms <iinet.net.au@dtimms> - 1.3.12-0.8.beta
|
||||
- fix hang when play at speed with ratio less than 0.09 is used (#637347)
|
||||
|
||||
* Sat Aug 7 2010 David Timms <iinet.net.au@dtimms> - 1.3.12-0.7.beta
|
||||
- patch to suit APIChange introduced in ffmpeg-0.6. Resolves rfbz #1356.
|
||||
fixes ffmpeg import/export.
|
||||
|
||||
* Thu Jul 15 2010 David Timms <iinet.net.au@dtimms> - 1.3.12-0.6.beta
|
||||
- drop vamp-plugin path patch to suit updated vamp-plugin-sdk-2.1
|
||||
|
||||
* Mon Jun 28 2010 David Timms <iinet.net.au@dtimms> - 1.3.12-0.4.beta
|
||||
- mods to ease diffs between builds for fedora and full
|
||||
|
||||
* Mon Jun 28 2010 David Timms <iinet.net.au@dtimms> - 1.3.12-0.3.beta
|
||||
- really package new icons found in icons/hicolor
|
||||
|
||||
* Mon Jun 28 2010 David Timms <iinet.net.au@dtimms> - 1.3.12-0.2.beta
|
||||
- mod tartopdir to use package version macro
|
||||
|
||||
* Mon Jun 28 2010 David Timms <iinet.net.au@dtimms> - 1.3.12-0.1.3.beta
|
||||
- fix icons glob to use realname
|
||||
- add more supported mimetypes and categories to the desktop file
|
||||
|
||||
* Mon Jun 28 2010 David Timms <iinet.net.au@dtimms> - 1.3.12-0.1.2.beta
|
||||
- upgrade to 1.3.12-beta
|
||||
- package new icons found in icons/hicolor
|
||||
|
||||
* Sat Dec 5 2009 David Timms <iinet.net.au@dtimms> - 1.3.10-0.1.1.beta
|
||||
- upgrade to 1.3.10-beta
|
||||
- re-base spec to fedora devel and patches by mschwendt
|
||||
|
||||
* Thu Dec 3 2009 David Timms <iinet.net.au@dtimms> - 1.3.9-0.4.2.beta
|
||||
- continue with upgrade to f12 version
|
||||
|
||||
* Mon Nov 16 2009 David Timms <iinet.net.au@dtimms> - 1.3.9-0.4.1.beta
|
||||
- upgrade to 1.3.9-beta to match Fedora version.
|
||||
- resync to include new and updated patches from mschwendt
|
||||
- add conditional freeworld to allow minimal change from Fedora version
|
||||
|
||||
* Fri Oct 23 2009 Orcan Ogetbil <oged[DOT]fedora[AT]gmail[DOT]com> - 1.3.7-0.6.2.beta
|
||||
- Update desktop file according to F-12 FedoraStudio feature
|
||||
|
||||
* Tue May 26 2009 David Timms <iinet.net.au@dtimms> - 1.3.7-0.6.1.beta
|
||||
- match the 1.3.7.beta version in fedora proper
|
||||
- include new and updated patches from mschwendt
|
||||
- del no longer required patches
|
||||
|
||||
* Sun Mar 29 2009 Julian Sikorski <belegdol@fedoraproject.org> - 1.3.6-0.4.beta
|
||||
- wxGTK no longer provides wxGTK2 in Fedora 11
|
||||
|
||||
* Sun Mar 29 2009 Thorsten Leemhuis <fedora [AT] leemhuis [DOT] info> - 1.3.6-0.3.beta
|
||||
- rebuild for new F11 features
|
||||
- revert to 1.3.6.beta for now
|
||||
|
||||
* Sat Feb 7 2009 David Timms <iinet.net.au@dtimms> - 1.3.7-0.1.beta
|
||||
- update to new upstream beta release
|
||||
- drop beta release 1.3.2 from package
|
||||
|
||||
* Sun Dec 14 2008 David Timms <iinet.net.au@dtimms> - 1.3.6-0.2.beta
|
||||
- add Kevin Koflers portaudio patch to allow output via pulseaudio
|
||||
|
||||
* Sun Nov 23 2008 David Timms <iinet.net.au@dtimms> - 1.3.6-0.1.beta
|
||||
- update to new upstream beta release
|
||||
- drop libdir patch for now
|
||||
- drop upstreamed fr.po patch
|
||||
- add support for ffmpeg import and export via BR and --with-ffmpeg
|
||||
- add patch to allow selection of ffmpeg library on unix.
|
||||
|
||||
* Fri Aug 22 2008 David Timms <iinet.net.au@dtimms> - 1.3.5-0.4.beta
|
||||
- mod patch2 apply command
|
||||
|
||||
* Fri Aug 22 2008 David Timms <iinet.net.au@dtimms> - 1.3.5-0.3.beta
|
||||
- add Requires lame-libs
|
||||
- update 1.3.4-gcc43.patch to suit 1.3.5, since patch mostly upstreamed.
|
||||
|
||||
* Mon Aug 18 2008 David Timms <iinet.net.au@dtimms> - 1.3.5-0.2.beta
|
||||
- rename spec and Name to audacity-freeworld.
|
||||
- add provides/obsoletes audacity-nonfree.
|
||||
- import livna package into rpmfusion.
|
||||
|
||||
* Sun Jun 8 2008 Michael Schwendt <mschwendt@users.sf.net> - 1.3.5-0.1.beta
|
||||
- fix bad fr.po that makes Fichier>Open dialog too wide
|
||||
- sync with F-9 updates-testing
|
||||
- update to 1.3.5-beta
|
||||
- tmp patch merged upstream
|
||||
- expat2 patch merged upstream
|
||||
- desktop-file: drop deprecated Encoding, drop Icon file extension
|
||||
|
||||
* Fri May 9 2008 Michael Schwendt <mschwendt@users.sf.net>
|
||||
- scriptlets: run update-desktop-database without path
|
||||
- drop scriptlet dependencies
|
||||
|
||||
* Sat May 3 2008 Michael Schwendt <mschwendt@users.sf.net> - 1.3.4-0.7.20080123cvs
|
||||
- check ownership of temporary files directory (#436260) (CVE-2007-6061)
|
||||
|
||||
* Sat Apr 12 2008 Michael Schwendt <mschwendt@users.sf.net> - 1.3.4-0.6.20080123cvs
|
||||
- set a default location for libmp3lame.so.0 again
|
||||
|
||||
* Fri Mar 21 2008 Michael Schwendt <mschwendt@users.sf.net> - 1.3.4-0.5.20080123cvs
|
||||
- package the old 1.3.2-beta and a post 1.3.4-beta snapshot in the
|
||||
same package -- users may stick to the older one, but please help
|
||||
with evaluating the newer one
|
||||
- merge packaging changes from my 1.3.3/1.3.4 test packages:
|
||||
- build newer release with wxGTK 2.8.x
|
||||
- BR soundtouch-devel and --with-soundtouch=system
|
||||
- drop obsolete patches: resample, mp3 export, destdir, FLAC, fr
|
||||
|
||||
* Fri Mar 21 2008 Michael Schwendt <mschwendt@users.sf.net> - 1.3.2-0.9.beta
|
||||
- make soundtouch and allegro build with RPM optflags
|
||||
|
||||
* Sun Feb 10 2008 Michael Schwendt <mschwendt@users.sf.net> - 1.3.2-0.8.beta
|
||||
- rawhide: patch for JACK 0.109.0 API changes (jack_port_lock/unlock removal).
|
||||
- rebuilt for GCC 4.3 as requested by Fedora Release Engineering
|
||||
- subst _libdir in ladspa plugin loader
|
||||
|
||||
* Thu Jan 3 2008 Michael Schwendt <mschwendt@users.sf.net> - 1.3.2-0.7.beta
|
||||
- Patch for GCC 4.3.0 C++.
|
||||
|
||||
* Fri Nov 16 2007 Michael Schwendt <mschwendt@users.sf.net> - 1.3.2-0.6.beta
|
||||
- rebuilt for FLAC 1.1.4 -> 1.2.x upgrade, which broke FLAC import
|
||||
|
||||
* Mon Mar 5 2007 Michael Schwendt <mschwendt@users.sf.net>
|
||||
- add umask 022 to scriptlets
|
||||
|
||||
* Sat Mar 3 2007 Michael Schwendt <mschwendt[ATusers.sf.net> - 1.3.2-0.5.beta
|
||||
- build with wxGTK 2.6 compatibility package
|
||||
|
||||
* Sat Feb 24 2007 Michael Schwendt <mschwendt@users.sf.net> - 1.3.2-0.4.beta
|
||||
- patch for FLAC 1.1.4 API compatibility
|
||||
- patch ExportMP3.cpp (MPEG-2 Layer III bitrates resulted in
|
||||
broken/empty files)
|
||||
|
||||
* Tue Feb 20 2007 Michael Schwendt <mschwendt@users.sf.net> - 1.3.2-0.3.beta
|
||||
- patch app init to set a default location for libmp3lame.so.0
|
||||
- fix the libmp3lame.so.0 subst
|
||||
- subst _libdir in libmp3lame search
|
||||
- use sed instead of perl
|
||||
|
||||
* Sun Feb 18 2007 Michael Schwendt <mschwendt@users.sf.net> - 1.3.2-0.2.beta
|
||||
- patch the source to use libsamplerate actually and fix Resample.cpp
|
||||
|
||||
* Thu Feb 15 2007 Michael Schwendt <mschwendt@users.sf.net> - 1.3.2-0.1.beta
|
||||
- sync with Fedora Extras 6 upgrade to 1.3.2-beta
|
||||
- add BR expat-devel jack-audio-connection-kit-devel alsa-lib-devel
|
||||
- built-in/patched: nyquist soundtouch
|
||||
- built-in/patched, n/a: twolame
|
||||
- adjust configure options accordingly
|
||||
- patches 1-3 unnecessary, add gemi's audacity-1.3.2-destdir.patch
|
||||
- make patch from iconv src/Languages.cpp conversion (ISO Latin-1 to UTF-8)
|
||||
- make patch for locale/fr.po (MAC to ISO Latin-1)
|
||||
|
||||
* Wed Oct 18 2006 Michael Schwendt <mschwendt@users.sf.net> - 1.2.4-0.3.b.2
|
||||
- rename to "audacity-nonfree" and "Conflicts: audacity"
|
||||
|
||||
* Fri Oct 06 2006 Thorsten Leemhuis <fedora [AT] leemhuis [DOT] info>
|
||||
- rebuilt for unwind info generation, broken in gcc-4.1.1-21
|
||||
|
||||
* Sun Sep 24 2006 Michael Schwendt <mschwendt[At]users.sf.net>
|
||||
- rebuild
|
||||
|
||||
* Sat Jun 3 2006 Michael Schwendt <mschwendt@users.sf.net> - 1.2.4-0.2.b
|
||||
- bump and rebuild
|
||||
|
||||
* Fri Mar 17 2006 Michael Schwendt <mschwendt@users.sf.net> - 1.2.4-0.1.b
|
||||
- Update to 1.2.4b (stable release).
|
||||
- Follow upstream recommendation and use the GTK+ 1.x wxGTK.
|
||||
This is because of various issues with fonts/layout/behaviour.
|
||||
- Build with compat-wxGTK-devel.
|
||||
- Modify build section to find wx-2.4-config instead of wx-config.
|
||||
|
||||
* Thu Mar 09 2006 Andreas Bierfert <andreas.bierfert[AT]lowlatency.de>
|
||||
- switch to new release field
|
||||
|
||||
* Tue Feb 28 2006 Andreas Bierfert <andreas.bierfert[AT]lowlatency.de>
|
||||
- add dist
|
||||
|
||||
* Wed Jul 20 2005 Michael Schwendt <mschwendt@users.sf.net> - 1.2.3-5.lvn.1
|
||||
- Sync with minor changes in Fedora Extras 4 package.
|
||||
- Drop Epoch and bump release so this is high enough for an upgrade.
|
||||
|
||||
* Fri May 20 2005 David Woodhouse <dwmw2@infradead.org> - 1.2.3-4
|
||||
- Add more possible MIME types for ogg which may be seen even though
|
||||
they're not standard.
|
||||
|
||||
* Sun Jan 30 2005 Michael Schwendt <mschwendt@users.sf.net> - 0:1.2.3-1.lvn.1
|
||||
- Build with mp3 and wxGTK2 by default,
|
||||
- Make the libmp3lame perl substitution in %%prep more robust.
|
||||
- s/Fedora/Livna/ in desktop file.
|
||||
|
||||
* Sat Nov 20 2004 Gerard Milmeister <gemi@bluewin.ch> - 0:1.2.3-1
|
||||
- New Version 1.2.3
|
||||
|
||||
* Sat Oct 30 2004 Michael Schwendt <mschwendt@users.sf.net> - 0:1.2.2-0.fdr.1
|
||||
- Update to 1.2.2, patch aboutdialog to be readable with wxGTK.
|
||||
|
||||
* Mon May 10 2004 Gerard Milmeister <gemi@bluewin.ch> - 0:1.2.1-0.fdr.1
|
||||
- New Version 1.2.1
|
||||
|
||||
* Sun Apr 11 2004 Gerard Milmeister <gemi@bluewin.ch> - 0:1.2.0-0.fdr.2
|
||||
- Fix for Language.cpp restored
|
||||
|
||||
* Tue Mar 2 2004 Gerard Milmeister <gemi@bluewin.ch> - 0:1.2.0-0.fdr.1
|
||||
- New Version 1.2.0
|
||||
|
||||
* Mon Nov 24 2003 Gerard Milmeister <gemi@bluewin.ch> - 0:1.2.0-0.fdr.4.pre3
|
||||
- Added icon
|
||||
- Separated mp3 plugin
|
||||
|
||||
* Sun Nov 23 2003 Gerard Milmeister <gemi@bluewin.ch> - 0:1.2.0-0.fdr.2.pre3
|
||||
- Changes to specfile
|
||||
|
||||
* Sun Nov 2 2003 Gerard Milmeister <gemi@bluewin.ch> - 0:1.2.0-0.fdr.1.pre3
|
||||
- New upstream version 1.2.0-pre3
|
||||
|
||||
* Sat Oct 25 2003 Gerard Milmeister <gemi@bluewin.ch> - 0:1.2.0-pre2.fdr.1
|
||||
- First Fedora release
|
||||
@@ -1 +0,0 @@
|
||||
rpm.global("ver", gh("audacity/audacity"));
|
||||
@@ -1,5 +1,5 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "sbctl.spec"
|
||||
spec = "authy.spec"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
Name: authy
|
||||
Version: 2.3.0
|
||||
Release: 2%{?dist}
|
||||
Summary: Two factor authentication desktop application
|
||||
License: Unlicense
|
||||
URL: https://authy.com/
|
||||
Source0: https://api.snapcraft.io/api/v1/snaps/download/H8ZpNgIoPyvmkgxOWw5MSzsXK1wRZiHn_19.snap
|
||||
Requires: gtk3
|
||||
Requires: nss
|
||||
BuildRequires: squashfs-tools desktop-file-utils
|
||||
|
||||
%description
|
||||
%{summary}.
|
||||
|
||||
%prep
|
||||
unsquashfs -q -f -d snap %{SOURCE0}
|
||||
|
||||
%build
|
||||
|
||||
%install
|
||||
install -d %buildroot%_datadir/authy
|
||||
cp -r snap/. %buildroot%_datadir/authy
|
||||
|
||||
sed -i 's|${SNAP}/meta/gui/icon.png|authy|g' %buildroot%_datadir/authy/meta/gui/authy.desktop
|
||||
install -Dm644 %buildroot%_datadir/authy/meta/gui/authy.desktop -t %buildroot%_datadir/applications
|
||||
install -Dm644 %buildroot%_datadir/authy/meta/gui/icon.png %buildroot%_datadir/pixmaps/authy.png
|
||||
|
||||
rm -rf %buildroot%_datadir/authy/{data-dir,gnome-platform,lib,meta,scripts,usr,*.sh}
|
||||
|
||||
install -d %buildroot%_bindir
|
||||
ln -s %_datadir/authy/authy %buildroot%_bindir
|
||||
|
||||
%check
|
||||
desktop-file-validate %buildroot%_datadir/applications/authy.desktop
|
||||
|
||||
%files
|
||||
%_datadir/authy/
|
||||
%_bindir/authy
|
||||
%_datadir/applications/authy.desktop
|
||||
%_datadir/pixmaps/authy.png
|
||||
|
||||
%changelog
|
||||
* Sat Jun 17 2023 windowsboy111 <windowsboy111@fyralabs.com> - 2.3.0-2
|
||||
- Use /usr/share/ instead of /opt/
|
||||
|
||||
* Sat Oct 15 2022 windowsboy111 <windowsboy111@fyralabs.com> - 2.2.1-2
|
||||
- Initial release
|
||||
@@ -0,0 +1,5 @@
|
||||
let req = new_req("https://api.snapcraft.io/v2/snaps/info/authy");
|
||||
req.head("Snap-Device-Series", "16");
|
||||
let obj = json(req.get())["channel-map"][0];
|
||||
rpm.version(obj.version);
|
||||
rpm.source(0, obj.download.url);
|
||||
@@ -1,8 +0,0 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "coolercontrol.spec"
|
||||
}
|
||||
labels {
|
||||
large = 1
|
||||
}
|
||||
}
|
||||
@@ -1,159 +0,0 @@
|
||||
%bcond_without mold
|
||||
%global _desc %{expand:
|
||||
CoolerControl is a feature-rich cooling device control application for Linux. It has a system daemon
|
||||
for background device management, as well as a GUI to expertly customize your settings.
|
||||
}
|
||||
%global rdnn org.coolercontrol.CoolerControl
|
||||
# Don't mangle shebangs
|
||||
%global __brp_mangle_shebangs %{nil}
|
||||
|
||||
Name: coolercontrol
|
||||
Version: 1.4.5
|
||||
Release: 1%?dist
|
||||
Summary: Cooling device control for Linux
|
||||
License: GPL-3.0-or-later
|
||||
URL: https://gitlab.com/coolercontrol/coolercontrol
|
||||
Source0: %url/-/archive/%version/coolercontrol-%version.tar.gz
|
||||
Packager: madonuko <mado@fyralabs.com>
|
||||
Provides: coolercontrol-ui
|
||||
Provides: coolercontrol-gui
|
||||
Requires: hicolor-icon-theme
|
||||
Requires: webkit2gtk4.1
|
||||
Requires: libappindicator-gtk3
|
||||
Requires: coolercontrold
|
||||
BuildRequires: git-core make nodejs-npm libdrm-devel curl wget file mold
|
||||
BuildRequires: systemd-rpm-macros anda-srpm-macros cargo >= 1.75.0 cargo-rpm-macros
|
||||
BuildRequires: autoconf automake binutils bison flex gcc gcc-c++ gdb libtool pkgconf strace
|
||||
BuildRequires: pkgconfig(webkit2gtk-4.1) pkgconfig(openssl) pkgconfig(librsvg-2.0)
|
||||
BuildRequires: libappindicator-gtk3-devel
|
||||
BuildRequires: python3-devel python3-wheel python3-liquidctl python3-setproctitle python3-fastapi python3-uvicorn python3-pip
|
||||
BuildRequires: libappstream-glib
|
||||
BuildRequires: desktop-file-utils
|
||||
%description %_desc
|
||||
|
||||
%package liqctld
|
||||
Summary: CoolerControl daemon for interacting with liquidctl devices on a system level
|
||||
Requires: coolercontrold
|
||||
%description liqctld %_desc
|
||||
coolercontrol-liqctld is a CoolerControl daemon for interacting with liquidctl devices on a system level, and is
|
||||
installed as the coolercontrol-liqctld application. Its main purpose is to wrap the underlying
|
||||
liquidctl library providing an API interface that the main coolercontrol daemon interacts with.
|
||||
It also enables parallel device communication and access to specific device properties.
|
||||
|
||||
%package -n coolercontrold
|
||||
Summary: Monitor and control your cooling devices.
|
||||
Requires: coolercontrol-liqctld
|
||||
%description -n coolercontrold %_desc
|
||||
coolercontrold is the main daemon containing the core logic for interfacing with devices, and installed as
|
||||
"coolercontrold". It is meant to run in the background as a system daemon. It handles all device
|
||||
communication and data management, additionally connecting to the liqctld daemon for liquidctl
|
||||
supported devices. It has an API that services client programs like the coolercontrol-gui.
|
||||
|
||||
|
||||
%prep
|
||||
%autosetup
|
||||
|
||||
pushd coolercontrold
|
||||
%cargo_prep_online &
|
||||
popd
|
||||
|
||||
pushd coolercontrol-ui
|
||||
npm ci --prefer-offline &
|
||||
pushd src-tauri
|
||||
%cargo_prep_online &
|
||||
popd
|
||||
popd
|
||||
|
||||
wait
|
||||
|
||||
|
||||
%build
|
||||
pushd coolercontrold
|
||||
%{cargo_license_online} > LICENSE.dependencies &
|
||||
%cargo_build -- &
|
||||
popd
|
||||
|
||||
pushd coolercontrol-liqctld
|
||||
%pyproject_wheel
|
||||
popd
|
||||
|
||||
pushd coolercontrol-ui
|
||||
npm run build &
|
||||
pushd src-tauri
|
||||
%{cargo_license_online} > LICENSE.dependencies &
|
||||
wait
|
||||
%cargo_build -f custom-protocol
|
||||
popd
|
||||
popd
|
||||
|
||||
|
||||
%install
|
||||
pushd coolercontrol-liqctld
|
||||
#define _pyproject_wheeldir .
|
||||
%pyproject_install
|
||||
%pyproject_save_files coolercontrol_liqctld
|
||||
popd
|
||||
|
||||
pushd coolercontrold
|
||||
install -Dpm755 target/rpm/coolercontrold %buildroot%_bindir/coolercontrold
|
||||
install -Dpm644 LICENSE.dependencies %buildroot%_datadir/licenses/coolercontrold/LICENSE.dependencies
|
||||
popd
|
||||
|
||||
pushd coolercontrol-ui/src-tauri
|
||||
install -Dpm755 target/rpm/coolercontrol %buildroot%_bindir/coolercontrol
|
||||
install -Dpm644 LICENSE.dependencies %buildroot%_datadir/licenses/%name/LICENSE.dependencies
|
||||
popd
|
||||
|
||||
install -Dpm644 packaging/systemd/coolercontrol-liqctld.service %buildroot%_unitdir/coolercontrol-liqctld.service
|
||||
desktop-file-install --dir=%buildroot%_datadir/applications packaging/metadata/%rdnn.desktop
|
||||
install -Dpm644 packaging/metadata/%rdnn.svg %buildroot%_iconsdir/hicolor/scalable/apps/%rdnn.svg
|
||||
install -Dpm644 packaging/metadata/%rdnn.png %buildroot%_iconsdir/hicolor/256x256/apps/%rdnn.svg
|
||||
for f in packaging/systemd/*.service; do
|
||||
install -Dpm644 $f %buildroot%_unitdir/$(basename $f)
|
||||
done
|
||||
install -Dpm644 packaging/metadata/%rdnn.metainfo.xml %buildroot%_metainfodir/%rdnn.metainfo.xml
|
||||
|
||||
|
||||
%check
|
||||
appstream-util validate-relax --nonet %buildroot%_metainfodir/%rdnn.metainfo.xml
|
||||
%pyproject_check_import
|
||||
|
||||
|
||||
%post -n coolercontrold
|
||||
%systemd_post coolercontrold.service
|
||||
|
||||
%preun -n coolercontrold
|
||||
%systemd_preun coolercontrold.service
|
||||
|
||||
%postun -n coolercontrold
|
||||
%systemd_postun_with_restart coolercontrold.service
|
||||
|
||||
# coolercontrold.service automatically uses the liqctld service, so there are
|
||||
# no scriptlets for liqctld.
|
||||
|
||||
|
||||
%files
|
||||
%doc README.md
|
||||
%license LICENSE
|
||||
%license LICENSE.dependencies
|
||||
%_bindir/coolercontrol
|
||||
%_datadir/applications/%rdnn.desktop
|
||||
%_datadir/metainfo/%rdnn.metainfo.xml
|
||||
%_iconsdir/hicolor/*/apps/%rdnn.svg
|
||||
|
||||
%files -n coolercontrold
|
||||
%doc coolercontrold/README.md
|
||||
%license LICENSE
|
||||
%license LICENSE.dependencies
|
||||
%_bindir/coolercontrold
|
||||
%_unitdir/coolercontrold.service
|
||||
|
||||
%files liqctld -f %pyproject_files
|
||||
%doc coolercontrol-liqctld/README.md
|
||||
%license LICENSE
|
||||
%_bindir/coolercontrol-liqctld
|
||||
%_unitdir/coolercontrol-liqctld.service
|
||||
|
||||
%changelog
|
||||
* Thu Aug 15 2024 madonuko <mado@fyralabs.com> - 1.4.0-1
|
||||
- Initial package
|
||||
@@ -1 +0,0 @@
|
||||
rpm.version(gitlab("30707566"));
|
||||
@@ -1,13 +1,8 @@
|
||||
%define debug_package %{nil}
|
||||
%global _build_id_links none
|
||||
|
||||
# Exclude private libraries
|
||||
%global __requires_exclude libffmpeg.so
|
||||
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
|
||||
|
||||
Name: discord-canary-openasar
|
||||
Version: 0.0.601
|
||||
Release: 1%?dist
|
||||
Version: 0.0.161
|
||||
Release: 1%{?dist}
|
||||
Summary: A snappier Discord rewrite with features like further customization and theming
|
||||
License: MIT AND https://discord.com/terms
|
||||
URL: https://github.com/GooseMod/OpenAsar
|
||||
@@ -34,7 +29,6 @@ sed "s@Discord Canary@Discord Canary OpenAsar@g" a > discord-canary.desktop
|
||||
|
||||
%install
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
mkdir -p %{buildroot}%{_bindir}
|
||||
mkdir -p %{buildroot}%{_datadir}/discord-canary-openasar
|
||||
cp -rv * %{buildroot}%{_datadir}/discord-canary-openasar
|
||||
mkdir -p %{buildroot}%{_datadir}/applications/
|
||||
@@ -43,11 +37,9 @@ ln -s %_datadir/discord-canary-openasar/discord-canary.desktop %{buildroot}%{_da
|
||||
ln -s %_datadir/discord-canary-openasar/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
|
||||
ln -s %_datadir/discord-canary-openasar/DiscordCanary %buildroot%_bindir/discord-canary-openasar
|
||||
|
||||
|
||||
%files
|
||||
%_bindir/discord-canary-openasar
|
||||
%{_datadir}/discord-canary-openasar/
|
||||
%{_datadir}/applications/discord-canary-openasar.desktop
|
||||
%{_datadir}/pixmaps/discord-canary-openasar.png
|
||||
@@ -60,4 +52,4 @@ ln -s %_datadir/discord-canary-openasar/DiscordCanary %buildroot%_bindir/discord
|
||||
- Bundle discord-canary
|
||||
|
||||
* Thu Oct 20 2022 Cappy Ishihara <cappy@cappuchino.xyz>
|
||||
-
|
||||
-
|
||||
|
||||
@@ -1 +1,3 @@
|
||||
rpm.version(get("https://discord.com/api/canary/updates?platform=linux").json().name);
|
||||
let html = get("https://discordapp.com/api/download/canary?platform=linux&format=tar.gz");
|
||||
let newver = find("https://dl-canary\\.discordapp\\.net/apps/linux/([\\.\\d]+)/", html, 1);
|
||||
rpm.version(newver);
|
||||
|
||||
@@ -1,13 +1,8 @@
|
||||
%define debug_package %{nil}
|
||||
%global _build_id_links none
|
||||
|
||||
# Exclude private libraries
|
||||
%global __requires_exclude libffmpeg.so
|
||||
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
|
||||
|
||||
Name: discord-canary
|
||||
Version: 0.0.601
|
||||
Release: 1%?dist
|
||||
Version: 0.0.161
|
||||
Release: 1%{?dist}
|
||||
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
|
||||
@@ -16,8 +11,9 @@ Requires: glibc GConf2 nspr >= 4.13 nss >= 3.27 libX11 >= 1.6 libXtst >= 1
|
||||
Group: Applications/Internet
|
||||
ExclusiveArch: x86_64
|
||||
%description
|
||||
All-in-one voice and text chat for gamers that's free, secure, and works on
|
||||
both your desktop and phone.
|
||||
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
|
||||
@@ -26,17 +22,14 @@ both your desktop and phone.
|
||||
|
||||
%install
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
mkdir -p %{buildroot}%{_bindir}
|
||||
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
|
||||
ln -s %_datadir/discord/DiscordCanary %buildroot%_bindir/discord-canary
|
||||
|
||||
%files
|
||||
%_bindir/discord-canary
|
||||
%{_datadir}/discord-canary/
|
||||
%{_datadir}/applications/discord-canary.desktop
|
||||
%{_datadir}/pixmaps/discord-canary.png
|
||||
|
||||
@@ -1 +1,3 @@
|
||||
rpm.version(get("https://discord.com/api/canary/updates?platform=linux").json().name);
|
||||
let html = get("https://discordapp.com/api/download/canary?platform=linux&format=tar.gz");
|
||||
let newver = find("https://dl-canary\\.discordapp\\.net/apps/linux/([\\.\\d]+)/", html, 1);
|
||||
rpm.version(newver);
|
||||
|
||||
@@ -1,13 +1,8 @@
|
||||
%define debug_package %{nil}
|
||||
%global _build_id_links none
|
||||
|
||||
# Exclude private libraries
|
||||
%global __requires_exclude libffmpeg.so
|
||||
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
|
||||
|
||||
Name: discord-openasar
|
||||
Version: 0.0.87
|
||||
Release: 1%?dist
|
||||
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
|
||||
URL: https://github.com/GooseMod/OpenAsar
|
||||
@@ -34,7 +29,6 @@ sed "s@Discord@Discord OpenAsar@g" a > discord.desktop
|
||||
|
||||
%install
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
mkdir -p %{buildroot}%{_bindir}
|
||||
mkdir -p %{buildroot}%{_datadir}/discord-openasar
|
||||
cp -rv * %{buildroot}%{_datadir}/discord-openasar
|
||||
mkdir -p %{buildroot}%{_datadir}/applications/
|
||||
@@ -43,11 +37,9 @@ ln -s %_datadir/discord-openasar/discord.desktop %{buildroot}%{_datadir}/applica
|
||||
ln -s %_datadir/discord-openasar/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
|
||||
ln -s %_datadir/discord-openasar/Discord %buildroot%_bindir/discord-openasar
|
||||
|
||||
|
||||
%files
|
||||
%_bindir/discord-openasar
|
||||
%{_datadir}/discord-openasar/
|
||||
%{_datadir}/applications/discord-openasar.desktop
|
||||
%{_datadir}/pixmaps/discord-openasar.png
|
||||
|
||||
@@ -1 +1,3 @@
|
||||
rpm.version(get("https://discord.com/api/stable/updates?platform=linux").json().name);
|
||||
let html = get("https://discordapp.com/api/download?platform=linux&format=tar.gz");
|
||||
let newver = find("https://dl\\.discordapp\\.net/apps/linux/([\\.\\d]+)/", html, 1);
|
||||
rpm.version(newver);
|
||||
|
||||
@@ -1,13 +1,8 @@
|
||||
%define debug_package %{nil}
|
||||
%global _build_id_links none
|
||||
|
||||
# Exclude private libraries
|
||||
%global __requires_exclude libffmpeg.so
|
||||
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
|
||||
|
||||
Name: discord-ptb-openasar
|
||||
Version: 0.0.132
|
||||
Release: 1%?dist
|
||||
Version: 0.0.43
|
||||
Release: 1%{?dist}
|
||||
Summary: A snappier Discord rewrite with features like further customization and theming
|
||||
License: MIT AND https://discord.com/terms
|
||||
URL: https://github.com/GooseMod/OpenAsar
|
||||
@@ -34,7 +29,6 @@ sed "s@Discord Ptb@Discord Ptb OpenAsar@g" a > discord-ptb.desktop
|
||||
|
||||
%install
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
mkdir -p %{buildroot}%{_bindir}
|
||||
mkdir -p %{buildroot}%{_datadir}/discord-ptb-openasar
|
||||
cp -rv * %{buildroot}%{_datadir}/discord-ptb-openasar
|
||||
mkdir -p %{buildroot}%{_datadir}/applications/
|
||||
@@ -45,11 +39,9 @@ install discord-ptb.desktop %{buildroot}%{_datadir}/applications/discord-ptb-ope
|
||||
install discord.png %{buildroot}%{_datadir}/pixmaps/discord-ptb-openasar.png
|
||||
cp -v %{SOURCE1} %{buildroot}%{_datadir}/discord-ptb-openasar/resources/app.asar
|
||||
chmod o+w %{buildroot}%{_datadir}/discord-ptb-openasar/resources -R
|
||||
ln -s %_datadir/discord-ptb-openasar/Discord %buildroot%_bindir/discord-ptb-openasar
|
||||
|
||||
|
||||
%files
|
||||
%_bindir/discord-ptb-openasar
|
||||
%{_datadir}/discord-ptb-openasar/
|
||||
%{_datadir}/applications/discord-ptb-openasar.desktop
|
||||
%{_datadir}/pixmaps/discord-ptb-openasar.png
|
||||
|
||||
@@ -1 +1,3 @@
|
||||
rpm.version(get("https://discord.com/api/ptb/updates?platform=linux").json().name);
|
||||
let html = get("https://discordapp.com/api/download/ptb?platform=linux&format=tar.gz");
|
||||
let newver = find("https://dl-ptb\\.discordapp\\.net/apps/linux/([\\.\\d]+)/", html, 1);
|
||||
rpm.version(newver);
|
||||
|
||||
@@ -1,13 +1,8 @@
|
||||
%define debug_package %{nil}
|
||||
%global _build_id_links none
|
||||
|
||||
# Exclude private libraries
|
||||
%global __requires_exclude libffmpeg.so
|
||||
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
|
||||
|
||||
Name: discord-ptb
|
||||
Version: 0.0.132
|
||||
Release: 1%?dist
|
||||
Version: 0.0.43
|
||||
Release: 1%{?dist}
|
||||
Summary: Free Voice and Text Chat for Gamers.
|
||||
URL: https://discord.com
|
||||
Source0: https://dl-ptb.discordapp.net/apps/linux/%{version}/discord-ptb-%{version}.tar.gz
|
||||
@@ -20,8 +15,9 @@ Requires: libXtst >= 1.2
|
||||
Group: Applications/Internet
|
||||
ExclusiveArch: x86_64
|
||||
%description
|
||||
All-in-one voice and text chat for gamers that's free, secure, and works on
|
||||
both your desktop and phone.
|
||||
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,17 +26,14 @@ both your desktop and phone.
|
||||
|
||||
%install
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
mkdir -p %{buildroot}%{_bindir}
|
||||
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
|
||||
ln -s %_datadir/discord-ptb/Discord %buildroot%_bindir/discord-ptb
|
||||
|
||||
%files
|
||||
%_bindir/discord-ptb
|
||||
%{_datadir}/discord-ptb/
|
||||
%{_datadir}/applications/discord-ptb.desktop
|
||||
%{_datadir}/pixmaps/discord-ptb.png
|
||||
|
||||
@@ -1 +1,3 @@
|
||||
rpm.version(get("https://discord.com/api/ptb/updates?platform=linux").json().name);
|
||||
let html = get("https://discordapp.com/api/download/ptb?platform=linux&format=tar.gz");
|
||||
let newver = find("https://dl-ptb\\.discordapp\\.net/apps/linux/([\\.\\d]+)/", html, 1);
|
||||
rpm.version(newver);
|
||||
|
||||
@@ -1,13 +1,8 @@
|
||||
%define debug_package %{nil}
|
||||
%global _build_id_links none
|
||||
|
||||
# Exclude private libraries
|
||||
%global __requires_exclude libffmpeg.so
|
||||
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
|
||||
|
||||
Name: discord
|
||||
Version: 0.0.87
|
||||
Release: 1%?dist
|
||||
Version: 0.0.27
|
||||
Release: 2%{?dist}
|
||||
Summary: Free Voice and Text Chat for Gamers
|
||||
URL: https://discord.com
|
||||
Source0: https://dl.discordapp.net/apps/linux/%{version}/discord-%{version}.tar.gz
|
||||
@@ -20,8 +15,9 @@ Requires: libXtst >= 1.2
|
||||
Group: Applications/Internet
|
||||
ExclusiveArch: x86_64
|
||||
%description
|
||||
All-in-one voice and text chat for gamers that's free, secure, and works on
|
||||
both your desktop and phone.
|
||||
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,17 +26,14 @@ both your desktop and phone.
|
||||
|
||||
%install
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
mkdir -p %{buildroot}%{_bindir}
|
||||
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
|
||||
ln -s %_datadir/discord/Discord %buildroot%_bindir/discord
|
||||
|
||||
%files
|
||||
%_bindir/discord
|
||||
%{_datadir}/discord/
|
||||
%{_datadir}/applications/discord.desktop
|
||||
%{_datadir}/pixmaps/discord.png
|
||||
|
||||
@@ -1 +1,3 @@
|
||||
rpm.version(get("https://discord.com/api/stable/updates?platform=linux").json().name);
|
||||
let html = get("https://discordapp.com/api/download?platform=linux&format=tar.gz");
|
||||
let newver = find("https://dl\\.discordapp\\.net/apps/linux/([\\.\\d]+)/", html, 1);
|
||||
rpm.version(newver);
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "envision.spec"
|
||||
}
|
||||
labels {
|
||||
nightly = 1
|
||||
}
|
||||
}
|
||||
@@ -1,49 +0,0 @@
|
||||
%global commit 9c6bfe110a50f7f96cd5204205397a9ccd2548d4
|
||||
%global commit_date 20250224
|
||||
%global shortcommit %(c=%{commit}; echo ${c:0:7})
|
||||
|
||||
Name: envision-nightly
|
||||
Version: %commit_date.%shortcommit
|
||||
Release: 1%?dist
|
||||
Summary: UI for building, configuring and running Monado, the open source OpenXR runtime
|
||||
License: AGPL-3.0-or-later
|
||||
URL: https://gitlab.com/gabmus/envision/
|
||||
Source0: %url/-/archive/%commit/envision-%commit.tar.gz
|
||||
BuildRequires: meson ninja-build cargo
|
||||
BuildRequires: pkgconfig(glib-2.0) >= 2.66
|
||||
BuildRequires: pkgconfig(gio-2.0) >= 2.66
|
||||
BuildRequires: pkgconfig(gtk4) >= 4.10.0
|
||||
BuildRequires: pkgconfig(vte-2.91-gtk4) >= 0.72.0
|
||||
BuildRequires: pkgconfig(libadwaita-1)
|
||||
BuildRequires: pkgconfig(libusb-1.0)
|
||||
BuildRequires: openssl-devel-engine
|
||||
BuildRequires: openxr-devel
|
||||
BuildRequires: libappstream-glib
|
||||
BuildRequires: desktop-file-utils
|
||||
BuildRequires: glib2-devel
|
||||
BuildRequires: git-core
|
||||
Recommends: android-tools
|
||||
Conflicts: envision
|
||||
|
||||
%description
|
||||
%summary.
|
||||
|
||||
%prep
|
||||
%autosetup -n envision-%commit
|
||||
|
||||
%build
|
||||
%meson
|
||||
%meson_build
|
||||
|
||||
%install
|
||||
%meson_install
|
||||
|
||||
%files
|
||||
%doc README.md
|
||||
%license LICENSE
|
||||
%_bindir/envision
|
||||
%_datadir/applications/org.gabmus.envision.Devel.desktop
|
||||
%_datadir/envision/
|
||||
%_iconsdir/hicolor/scalable/apps/org.gabmus.envision.Devel.svg
|
||||
%_iconsdir/hicolor/symbolic/apps/org.gabmus.envision.Devel-symbolic.svg
|
||||
%_metainfodir/org.gabmus.envision.Devel.appdata.xml
|
||||
@@ -1,5 +0,0 @@
|
||||
rpm.global("commit", gitlab_commit("gitlab.com", "46446166", "main"));
|
||||
if rpm.changed() {
|
||||
rpm.global("commit_date", date());
|
||||
rpm.release();
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "feishin.spec"
|
||||
}
|
||||
}
|
||||
@@ -1,73 +0,0 @@
|
||||
%define debug_package %nil
|
||||
%global _build_id_links none
|
||||
|
||||
# Exclude private libraries
|
||||
%global __requires_exclude libffmpeg.so
|
||||
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
|
||||
|
||||
Name: feishin
|
||||
Version: 0.12.2
|
||||
Release: 1%?dist
|
||||
Summary: A modern self-hosted music player
|
||||
License: GPL-3.0
|
||||
URL: https://github.com/jeffvli/feishin
|
||||
Source0: %url/archive/refs/tags/v%version.tar.gz
|
||||
Requires: fuse mpv
|
||||
BuildRequires: nodejs20-npm jq libxcrypt-compat
|
||||
|
||||
%description
|
||||
%summary.
|
||||
|
||||
%prep
|
||||
%autosetup
|
||||
|
||||
cat package.json | jq '.author += { "email": "jeffvictorli@gmail.com" }' | jq '.build.linux += { "maintainer": "mado@fyralabs.com", "vendor": "Fyra Labs Terra" }' > a
|
||||
mv a package.json
|
||||
cat package.json
|
||||
|
||||
cat<<EOF > feishin.desktop
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Feishin
|
||||
Comment=Rewrite of Sonixd
|
||||
Exec=/usr/bin/feishin
|
||||
Icon=feishin
|
||||
Terminal=false
|
||||
Categories=Network;Audio;Music
|
||||
Keywords=Music;Jellyfin;Audio;Stream;Sonixd
|
||||
EOF
|
||||
|
||||
%build
|
||||
export PATH="$PATH:$(pwd)/bin"
|
||||
mkdir bin
|
||||
ln -s /usr/bin/node-20 bin/node
|
||||
ln -s /usr/bin/npm-20 bin/npm
|
||||
npm-20 install --legacy-peer-deps
|
||||
npm-20 run postinstall
|
||||
npm-20 run build
|
||||
%ifarch x86_64
|
||||
|
||||
%define a linux
|
||||
%elifarch aarch64
|
||||
%define a arm64
|
||||
%endif
|
||||
|
||||
npx-20 electron-builder --linux dir --%a
|
||||
|
||||
%install
|
||||
mkdir -p %buildroot%_datadir/{pixmaps,applications} %buildroot%_bindir
|
||||
mv release/build/*-unpacked %buildroot%_datadir/feishin
|
||||
install -Dm644 assets/icons/icon.png %buildroot%_datadir/pixmaps/feishin.png
|
||||
ln -s %_datadir/feishin/feishin %buildroot%_bindir/feishin
|
||||
install -Dm644 feishin.desktop %buildroot%_datadir/applications/
|
||||
|
||||
%files
|
||||
%doc README.md CHANGELOG.md
|
||||
%license LICENSE
|
||||
%_bindir/feishin
|
||||
%_datadir/feishin/
|
||||
%_datadir/applications/feishin.desktop
|
||||
%_datadir/pixmaps/feishin.png
|
||||
|
||||
%changelog
|
||||
%autochangelog
|
||||
@@ -1 +0,0 @@
|
||||
rpm.version(gh("jeffvli/feishin"));
|
||||
@@ -1,5 +0,0 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "fontviewer.spec"
|
||||
}
|
||||
}
|
||||
@@ -1,40 +0,0 @@
|
||||
Name: fontviewer
|
||||
Epoch: 1
|
||||
Version: 1.1.0
|
||||
Release: 1%?dist
|
||||
Summary: View and install fonts
|
||||
|
||||
License: GPL-2.0
|
||||
URL: https://github.com/chocolateimage/%{name}
|
||||
Source0: %{url}/archive/v%{version}.tar.gz
|
||||
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: meson
|
||||
BuildRequires: pkgconfig(fontconfig)
|
||||
BuildRequires: pkgconfig(gtkmm-3.0)
|
||||
BuildRequires: pkgconfig(libcurl)
|
||||
BuildRequires: json-glib-devel
|
||||
|
||||
Requires: gtk3 fontconfig
|
||||
|
||||
Packager: sadlerm <sad_lerm@hotmail.com>
|
||||
|
||||
%description
|
||||
A platform-agnostic GTK+ 3 alternative to GNOME's Font Viewer
|
||||
|
||||
%prep
|
||||
%autosetup
|
||||
|
||||
%build
|
||||
%meson
|
||||
%meson_build
|
||||
|
||||
%install
|
||||
%meson_install
|
||||
|
||||
%files
|
||||
%license LICENSE
|
||||
%doc README.md
|
||||
%{_bindir}/%{name}
|
||||
%{_datadir}/applications/%{name}.desktop
|
||||
%{_datadir}/icons/hicolor/scalable/actions/%{name}-google-symbolic.svg
|
||||
@@ -1,4 +0,0 @@
|
||||
rpm.version(gh("chocolateimage/fontviewer"));
|
||||
if rpm.changed() {
|
||||
rpm.release();
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "grayjay.spec"
|
||||
}
|
||||
}
|
||||
@@ -1,61 +0,0 @@
|
||||
%define __strip /bin/true
|
||||
%define debug_package %nil
|
||||
|
||||
Name: grayjay
|
||||
Version: 5
|
||||
Release: 1%?dist
|
||||
Summary: Watch content on your own terms, ensuring you retain full ownership and control over what you watch
|
||||
License: SFL-1.1
|
||||
URL: https://grayjay.app/desktop
|
||||
Source0: https://github.com/futo-org/Grayjay.Desktop/archive/refs/tags/%version.tar.gz
|
||||
BuildRequires: npm dotnet-host dotnet-hostfxr-8.0 dotnet-sdk-8.0
|
||||
BuildRequires: anda-srpm-macros git-core
|
||||
BuildRequires: desktop-file-utils
|
||||
|
||||
%description
|
||||
Grayjay is a multi-platform media application that allows you to watch content from multiple platforms in a single application. Using an extendable plugin system developers can make new integrations with additional platforms. Plugins are cross-compatible between Android and Desktop.
|
||||
|
||||
%prep
|
||||
%autosetup -n Grayjay.Desktop-%version
|
||||
git init
|
||||
git remote add origin https://github.com/futo-org/Grayjay.Desktop
|
||||
git submodule update --init --recursive #{?_smp_mflags}
|
||||
|
||||
%build
|
||||
pushd Grayjay.Desktop.Web
|
||||
npm i
|
||||
rm -rf dist
|
||||
npm run build
|
||||
popd
|
||||
|
||||
pushd Grayjay.Desktop.CEF
|
||||
rm -rf bin
|
||||
dotnet publish -c Release
|
||||
popd
|
||||
|
||||
# Copy wwwroot
|
||||
dir=$(ls Grayjay.Desktop.CEF/bin/Release/net8.0)
|
||||
mkdir -p Grayjay.Desktop.CEF/bin/Release/net8.0/$dir/publish/wwwroot
|
||||
cp -r Grayjay.Desktop.Web/dist Grayjay.Desktop.CEF/bin/Release/net8.0/$dir/publish/wwwroot/web
|
||||
|
||||
gendesk \
|
||||
--name=Grayjay \
|
||||
--pkgname=%name \
|
||||
--pkgdesc='%summary' \
|
||||
--exec=%_bindir/grayjay \
|
||||
--icon=%_datadir/grayjay/logo.ico
|
||||
|
||||
%install
|
||||
mkdir -p %buildroot%_datadir/grayjay %buildroot%_bindir
|
||||
cp -r Grayjay.Desktop.CEF/bin/Release/net8.0/*/publish/* %buildroot%_datadir/grayjay/
|
||||
ln -s %_datadir/Grayjay %buildroot%_bindir/grayjay
|
||||
install -Dm644 %buildroot%_datadir/grayjay/logo.ico %buildroot%_datadir/pixmaps/grayjay.ico
|
||||
install -Dm644 grayjay.desktop -t %buildroot%_datadir/applications
|
||||
|
||||
%files
|
||||
%doc README.md
|
||||
%license LICENSE.md
|
||||
%_bindir/grayjay
|
||||
%_datadir/applications/grayjay.desktop
|
||||
%_datadir/grayjay/
|
||||
%_iconsdir/hicolor/256x256/apps/grayjay.ico
|
||||
@@ -1 +0,0 @@
|
||||
rpm.version(gh_tag("futo-org/Grayjay.Desktop"));
|
||||
@@ -1,5 +0,0 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "komikku.spec"
|
||||
}
|
||||
}
|
||||
@@ -1,109 +0,0 @@
|
||||
%global appname Komikku
|
||||
%global uuid info.febvre.%{appname}
|
||||
%global gtk4_version 4.14.4
|
||||
%global libadwaita_version 1.5.1
|
||||
%global pure_protobuf_version 2.0.0
|
||||
|
||||
Name: komikku
|
||||
Version: 1.70.0
|
||||
%forgemeta
|
||||
Release: 1%?dist
|
||||
Summary: A manga reader for GNOME
|
||||
|
||||
BuildArch: noarch
|
||||
|
||||
License: GPL-3.0-or-later
|
||||
URL: https://valos.gitlab.io/Komikku
|
||||
Source0: https://codeberg.org/valos/%{appname}/archive/v%{version}.tar.gz#/%{name}-v%{version}.tar.gz
|
||||
|
||||
BuildRequires: desktop-file-utils
|
||||
BuildRequires: intltool
|
||||
BuildRequires: libappstream-glib
|
||||
BuildRequires: meson >= 0.59.0
|
||||
BuildRequires: python3-devel >= 3.8
|
||||
BuildRequires: blueprint-compiler
|
||||
|
||||
BuildRequires: pkgconfig(gobject-introspection-1.0) >= 1.35.9
|
||||
BuildRequires: pkgconfig(gtk4) >= %{gtk4_version}
|
||||
BuildRequires: pkgconfig(libadwaita-1) >= %{libadwaita_version}
|
||||
|
||||
Requires: hicolor-icon-theme
|
||||
Requires: gtk4 >= %{gtk4_version}
|
||||
Requires: libadwaita >= %{libadwaita_version}
|
||||
Requires: libnotify
|
||||
Requires: webkitgtk6.0
|
||||
Requires: python3-beautifulsoup4
|
||||
Requires: python3-brotli
|
||||
Requires: python3-colorthief
|
||||
Requires: python3-dateparser %dnl >= 1.1.4 | https://bugzilla.redhat.com/show_bug.cgi?id=2115204
|
||||
Requires: python3-emoji
|
||||
Requires: python3-gobject
|
||||
Requires: python3-keyring >= 21.6.0
|
||||
Requires: python3-lxml
|
||||
Requires: python3-natsort
|
||||
Requires: python3-file-magic
|
||||
Requires: python3-piexif
|
||||
Requires: python3-pillow
|
||||
Requires: python3-pillow-heif
|
||||
Requires: python3-pure-protobuf >= %{pure_protobuf_version}
|
||||
Requires: python3-rarfile
|
||||
Requires: python3-requests
|
||||
Requires: python3-unidecode
|
||||
|
||||
%description
|
||||
Komikku is a manga reader for GNOME. It focuses on providing a clean, intuitive
|
||||
and adaptive interface.
|
||||
|
||||
Keys features
|
||||
|
||||
* Online reading from dozens of servers
|
||||
* Offline reading of downloaded comics
|
||||
* Categories to organize your library
|
||||
* RTL, LTR, Vertical and Webtoon reading modes
|
||||
* Several types of navigation:
|
||||
* Keyboard arrow keys
|
||||
* Right and left navigation layout via mouse click or tapping
|
||||
(touchpad/touch screen)
|
||||
* Mouse wheel
|
||||
* 2-fingers swipe gesture (touchpad)
|
||||
* Swipe gesture (touch screen)
|
||||
* Automatic update of comics
|
||||
* Automatic download of new chapters
|
||||
* Reading history
|
||||
* Light and dark themes
|
||||
|
||||
%prep
|
||||
%autosetup -n %{name} -p1
|
||||
|
||||
|
||||
%build
|
||||
%meson
|
||||
%meson_build
|
||||
|
||||
|
||||
%install
|
||||
%meson_install
|
||||
%find_lang %{name}
|
||||
|
||||
|
||||
%check
|
||||
appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/*.xml
|
||||
desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop
|
||||
|
||||
|
||||
%files -f %{name}.lang
|
||||
%license LICENSE
|
||||
%doc README.md
|
||||
%{_bindir}/%{name}
|
||||
%{_datadir}/%{name}/
|
||||
%{_datadir}/applications/*.desktop
|
||||
%{_datadir}/glib-2.0/schemas/*.gschema.xml
|
||||
%{_datadir}/icons/hicolor/scalable/*/*.svg
|
||||
%{_datadir}/icons/hicolor/symbolic/*/*.svg
|
||||
%{_metainfodir}/*.xml
|
||||
%{python3_sitelib}/%{name}/
|
||||
|
||||
|
||||
%changelog
|
||||
* Thu Jul 11 2024 Trung Lê <8@tle.id.au> - 1.51.1-0
|
||||
- Initial RPM package
|
||||
@@ -1,3 +0,0 @@
|
||||
let latest_tag = get("https://codeberg.org/api/v1/repos/valos/Komikku/tags").json_arr()[0].name;
|
||||
let new_version = find("([\\.\\d]+)", latest_tag, 1);
|
||||
rpm.version(new_version);
|
||||
@@ -1,5 +0,0 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "legcord-bin.spec"
|
||||
}
|
||||
}
|
||||
@@ -1,92 +0,0 @@
|
||||
%define debug_package %nil
|
||||
%global _build_id_links none
|
||||
|
||||
%ifarch x86_64
|
||||
%global src Legcord-%version-linux-x64
|
||||
%elifarch aarch64
|
||||
%global src Legcord-%version-linux-arm64
|
||||
%elifarch armv7l
|
||||
%global src Legcord-%version-linux-armv7l
|
||||
%endif
|
||||
|
||||
# Exclude private libraries
|
||||
%global __requires_exclude libffmpeg.so
|
||||
%global __provides_exclude_from %{_datadir}/(armcord|legcord)/.*\\.so
|
||||
|
||||
Name: legcord-bin
|
||||
Version: 1.1.0
|
||||
Release: 1%?dist
|
||||
License: OSL-3.0
|
||||
Summary: Custom lightweight Discord client designed to enhance your experience
|
||||
URL: https://github.com/Legcord/Legcord
|
||||
Group: Applications/Internet
|
||||
Source0: %url/releases/download/v%version/%src.tar.gz
|
||||
Source1: legcord.png
|
||||
Source2: https://raw.githubusercontent.com/Legcord/Legcord/v%version/README.md
|
||||
Requires: xdg-utils
|
||||
ExclusiveArch: x86_64 aarch64 armv7l
|
||||
Conflicts: legcord
|
||||
Conflicts: legcord-nightly
|
||||
BuildRequires: add-determinism
|
||||
Obsoletes: armcord < 3.3.2-1
|
||||
|
||||
%description
|
||||
Legcord is a custom client designed to enhance your Discord experience
|
||||
while keeping everything lightweight.
|
||||
|
||||
%prep
|
||||
%autosetup -n %src
|
||||
|
||||
cat <<EOF > .legcord.desktop
|
||||
[Desktop Entry]
|
||||
Name=Legcord
|
||||
Comment=%summary
|
||||
GenericName=Internet Messenger
|
||||
Type=Application
|
||||
Exec=%_bindir/legcord
|
||||
Icon=legcord
|
||||
Categories=Network;InstantMessaging;
|
||||
StartupWMClass=legcord
|
||||
Keywords=discord;armcord;legcord;vencord;shelter;electron;
|
||||
EOF
|
||||
|
||||
%build
|
||||
|
||||
%install
|
||||
mkdir -p %buildroot%_bindir %buildroot%_datadir/applications %buildroot%_datadir/pixmaps %buildroot%_datadir/legcord %buildroot%_docdir/%name
|
||||
cp -a * %buildroot%_datadir/legcord/
|
||||
ln -s %_datadir/legcord/legcord %buildroot%_bindir/legcord
|
||||
ln -s %_datadir/legcord %buildroot%_datadir/armcord
|
||||
chmod +x -R %buildroot%_datadir/legcord/*
|
||||
chmod 755 %buildroot%_datadir/legcord/legcord
|
||||
install -Dm644 .legcord.desktop %buildroot%_datadir/applications/LegCord.desktop
|
||||
install -Dm644 %SOURCE1 %buildroot%_datadir/pixmaps/legcord.png
|
||||
install -Dm644 %SOURCE2 %buildroot%_docdir/%name/
|
||||
|
||||
# HACK: rpm bug for unability to replace existing files on system.
|
||||
%pre
|
||||
if [ -d %_datadir/armcord ] && [ ! -L %_datadir/armcord ]; then
|
||||
echo "Found old %_datadir/armcord directory, removing…"
|
||||
rm -rf %_datadir/armcord
|
||||
fi
|
||||
|
||||
%files
|
||||
%doc README.md
|
||||
%_datadir/legcord
|
||||
%_datadir/armcord
|
||||
%_bindir/legcord
|
||||
%_datadir/applications/LegCord.desktop
|
||||
%_datadir/pixmaps/legcord.png
|
||||
|
||||
%changelog
|
||||
* Mon Oct 21 2024 madonuko <mado@fyralabs.com> - 1.0.2-2
|
||||
- Rename to LegCord.
|
||||
|
||||
* Sat Jun 17 2023 madonuko <mado@fyralabs.com> - 3.2.0-2
|
||||
- Remove libnotify dependency.
|
||||
- Fix desktop entry.
|
||||
- Set as noarch package because there are not binary files.
|
||||
- Use /usr/share/ instead of /opt/
|
||||
|
||||
* Sat May 6 2023 madonuko <mado@fyralabs.com> - 3.1.7-1
|
||||
- Initial package
|
||||
@@ -1 +0,0 @@
|
||||
rpm.version(gh("LegCord/LegCord"));
|
||||
@@ -1,9 +0,0 @@
|
||||
project pkg {
|
||||
arches = ["x86_64"]
|
||||
rpm {
|
||||
spec = "legcord-nightly.spec"
|
||||
}
|
||||
labels {
|
||||
nightly = 1
|
||||
}
|
||||
}
|
||||
@@ -1,91 +0,0 @@
|
||||
%global commit 1833760c8be5b5fd4a76bbcd0cf1632d7bff0216
|
||||
%global commit_date 20250215
|
||||
%global shortcommit %(c=%{commit}; echo ${c:0:7})
|
||||
%define debug_package %nil
|
||||
|
||||
Name: legcord-nightly
|
||||
Version: %commit_date.%shortcommit
|
||||
Release: 1%?dist
|
||||
License: OSL-3.0
|
||||
Summary: Custom lightweight Discord client designed to enhance your experience
|
||||
URL: https://github.com/Legcord/Legcord
|
||||
Group: Applications/Internet
|
||||
Source0: %url/archive/%commit/Legcord-%commit.tar.gz
|
||||
Source1: launch.sh
|
||||
Packager: Owen <owen@fyralabs.com>
|
||||
Requires: electron xdg-utils
|
||||
Provides: armcord-nightly
|
||||
Obsoletes: armcord < 3.3.2-1
|
||||
Conflicts: legcord-bin
|
||||
Conflicts: legcord
|
||||
BuildArch: noarch
|
||||
BuildRequires: anda-srpm-macros pnpm
|
||||
|
||||
%description
|
||||
Legcord is a custom client designed to enhance your Discord experience
|
||||
while keeping everything lightweight.
|
||||
|
||||
%prep
|
||||
%autosetup -n Legcord-%commit
|
||||
|
||||
cat <<EOF > legcord.desktop
|
||||
[Desktop Entry]
|
||||
Name=Legcord
|
||||
Comment=%summary
|
||||
GenericName=Internet Messenger
|
||||
Type=Application
|
||||
Exec=/usr/bin/legcord
|
||||
Icon=legcord
|
||||
Categories=Network;InstantMessaging;
|
||||
StartupWMClass=legcord
|
||||
Keywords=discord;armcord;legcord;vencord;shelter;electron;
|
||||
EOF
|
||||
|
||||
|
||||
%build
|
||||
pnpm install --no-frozen-lockfile
|
||||
pnpm run packageQuick
|
||||
|
||||
|
||||
%install
|
||||
install -Dm644 dist/*-unpacked/resources/app.asar %buildroot/usr/share/legcord/app.asar
|
||||
|
||||
install -Dm755 %SOURCE1 %buildroot/usr/bin/legcord
|
||||
install -Dm644 legcord.desktop %buildroot/usr/share/applications/LegCord.desktop
|
||||
install -Dm644 build/icon.png %buildroot/usr/share/pixmaps/legcord.png
|
||||
|
||||
ln -s %_datadir/legcord %buildroot%_datadir/armcord
|
||||
|
||||
# HACK: rpm bug for unability to replace existing files on system.
|
||||
%pre
|
||||
if [ -d %_datadir/armcord ] && [ ! -L %_datadir/armcord ]; then
|
||||
echo "Found old %_datadir/armcord directory, removing…"
|
||||
rm -rf %_datadir/armcord
|
||||
fi
|
||||
|
||||
%files
|
||||
%doc README.md
|
||||
%license license.txt
|
||||
/usr/bin/legcord
|
||||
/usr/share/applications/LegCord.desktop
|
||||
/usr/share/pixmaps/legcord.png
|
||||
/usr/share/legcord/app.asar
|
||||
/usr/share/armcord
|
||||
|
||||
%changelog
|
||||
* Fri Nov 22 2024 owen <owen@fyralabs.com> - 1.0.2-2
|
||||
- Add nightly package.
|
||||
|
||||
* Mon Oct 21 2024 madonuko <mado@fyralabs.com> - 1.0.2-2
|
||||
- Rename to LegCord.
|
||||
|
||||
* Mon Aug 26 2024 madonuko <mado@fyralabs.com> - 3.3.0-1
|
||||
- Update to license.txt
|
||||
|
||||
* 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,5 +0,0 @@
|
||||
rpm.global("commit", gh_commit("Legcord/Legcord"));
|
||||
if rpm.changed() {
|
||||
rpm.release();
|
||||
rpm.global("commit_date", date());
|
||||
}
|
||||
@@ -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,88 +0,0 @@
|
||||
%define debug_package %nil
|
||||
|
||||
# Exclude private libraries
|
||||
%global __requires_exclude libffmpeg.so
|
||||
%global __provides_exclude_from %{_datadir}/(armcord|legcord)/.*\\.so
|
||||
|
||||
Name: legcord
|
||||
Version: 1.1.0
|
||||
Release: 1%?dist
|
||||
License: OSL-3.0
|
||||
Summary: Custom lightweight Discord client designed to enhance your experience
|
||||
URL: https://github.com/Legcord/Legcord
|
||||
Group: Applications/Internet
|
||||
Source1: launch.sh
|
||||
Packager: madonuko <mado@fyralabs.com>
|
||||
Requires: electron xdg-utils
|
||||
Provides: armcord
|
||||
Obsoletes: armcord < 3.3.2-1
|
||||
Conflicts: legcord-bin
|
||||
Conflicts: legcord-nightly
|
||||
BuildArch: noarch
|
||||
BuildRequires: anda-srpm-macros pnpm
|
||||
|
||||
%description
|
||||
Legcord is a custom client designed to enhance your Discord experience
|
||||
while keeping everything lightweight.
|
||||
|
||||
%prep
|
||||
%git_clone %url v%version
|
||||
|
||||
cat <<EOF > legcord.desktop
|
||||
[Desktop Entry]
|
||||
Name=Legcord
|
||||
Comment=%summary
|
||||
GenericName=Internet Messenger
|
||||
Type=Application
|
||||
Exec=/usr/bin/legcord
|
||||
Icon=legcord
|
||||
Categories=Network;InstantMessaging;
|
||||
StartupWMClass=legcord
|
||||
Keywords=discord;armcord;legcord;vencord;shelter;electron;
|
||||
EOF
|
||||
|
||||
|
||||
%build
|
||||
pnpm install --no-frozen-lockfile
|
||||
pnpm run packageQuick
|
||||
|
||||
|
||||
%install
|
||||
install -Dm644 dist/*-unpacked/resources/app.asar %buildroot/usr/share/legcord/app.asar
|
||||
|
||||
install -Dm755 %SOURCE1 %buildroot/usr/bin/legcord
|
||||
install -Dm644 legcord.desktop %buildroot/usr/share/applications/LegCord.desktop
|
||||
install -Dm644 build/icon.png %buildroot/usr/share/pixmaps/legcord.png
|
||||
|
||||
ln -s %_datadir/legcord %buildroot%_datadir/armcord
|
||||
|
||||
# HACK: rpm bug for unability to replace existing files on system.
|
||||
%pre
|
||||
if [ -d %_datadir/armcord ] && [ ! -L %_datadir/armcord ]; then
|
||||
echo "Found old %_datadir/armcord directory, removing…"
|
||||
rm -rf %_datadir/armcord
|
||||
fi
|
||||
|
||||
%files
|
||||
%doc README.md
|
||||
%license license.txt
|
||||
/usr/bin/legcord
|
||||
/usr/share/applications/LegCord.desktop
|
||||
/usr/share/pixmaps/legcord.png
|
||||
/usr/share/legcord/app.asar
|
||||
/usr/share/armcord
|
||||
|
||||
%changelog
|
||||
* Mon Oct 21 2024 madonuko <mado@fyralabs.com> - 1.0.2-2
|
||||
- Rename to LegCord.
|
||||
|
||||
* Mon Aug 26 2024 madonuko <mado@fyralabs.com> - 3.3.0-1
|
||||
- Update to license.txt
|
||||
|
||||
* 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 +0,0 @@
|
||||
rpm.version(gh("LegCord/LegCord"));
|
||||
+3
-4
@@ -1,10 +1,10 @@
|
||||
%global forgeurl https://gitlab.com/ubports/development/core/lomiri-system-settings
|
||||
%global commit 1b3d0ee6c1142d928a2b08a929723dbc41dc7fea
|
||||
%global commit 890b72e8689a90289522f374534b06f85cde9ddb
|
||||
%forgemeta
|
||||
|
||||
Name: lomiri-system-settings
|
||||
Version: 1.3.0
|
||||
Release: 1%?dist
|
||||
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
|
||||
@@ -20,7 +20,6 @@ BuildRequires: pkgconfig(geonames)
|
||||
BuildRequires: pkgconfig(icu-i18n)
|
||||
#BuildRequires: pkgconfig(libandroid-properties)
|
||||
BuildRequires: pkgconfig(click-0.4)
|
||||
BuildRequires: pkgconfig(deviceinfo)
|
||||
BuildRequires: pkgconfig(gsettings-qt)
|
||||
BuildRequires: pkgconfig(QtGui)
|
||||
BuildRequires: pkgconfig(gnome-desktop-3.0)
|
||||
@@ -1,8 +0,0 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "mpv-nightly.spec"
|
||||
}
|
||||
labels {
|
||||
nightly = "1"
|
||||
}
|
||||
}
|
||||
@@ -1,230 +0,0 @@
|
||||
%global commit 5338f4ba70903e7517bbfc7881e10ff13a912ffc
|
||||
%global shortcommit %(c=%{commit}; echo ${c:0:7})
|
||||
%global commit_date 20250227
|
||||
%global ver 0.39.0
|
||||
|
||||
Name: mpv-nightly
|
||||
Version: %ver^%commit_date.%shortcommit
|
||||
Release: 1%?dist
|
||||
|
||||
License: GPL-2.0-or-later AND LGPL-2.1-or-later
|
||||
Summary: Movie player playing most video formats and DVDs
|
||||
URL: https://mpv.io/
|
||||
Source0: https://github.com/mpv-player/mpv/archive/%commit/mpv-%commit.tar.gz
|
||||
Conflicts: mpv
|
||||
|
||||
BuildRequires: desktop-file-utils
|
||||
BuildRequires: gcc
|
||||
BuildRequires: libappstream-glib
|
||||
BuildRequires: libatomic
|
||||
BuildRequires: meson
|
||||
BuildRequires: python3-docutils
|
||||
|
||||
BuildRequires: perl(Encode)
|
||||
BuildRequires: perl(Math::BigInt)
|
||||
BuildRequires: perl(Math::BigRat)
|
||||
BuildRequires: pkgconfig(alsa)
|
||||
BuildRequires: pkgconfig(caca)
|
||||
BuildRequires: pkgconfig(dvdnav)
|
||||
BuildRequires: pkgconfig(egl)
|
||||
BuildRequires: pkgconfig(ffnvcodec)
|
||||
BuildRequires: pkgconfig(gbm)
|
||||
BuildRequires: pkgconfig(gl)
|
||||
BuildRequires: pkgconfig(jack)
|
||||
BuildRequires: pkgconfig(lcms2)
|
||||
BuildRequires: pkgconfig(libarchive) >= 3.4.0
|
||||
BuildRequires: pkgconfig(libass)
|
||||
BuildRequires: pkgconfig(libavcodec) >= 59.27.100
|
||||
BuildRequires: pkgconfig(libavdevice) >= 58.13.100
|
||||
BuildRequires: pkgconfig(libavfilter) >= 7.110.100
|
||||
BuildRequires: pkgconfig(libavformat) >= 59.24.100
|
||||
BuildRequires: pkgconfig(libavutil) >= 57.24.100
|
||||
BuildRequires: pkgconfig(libbluray)
|
||||
BuildRequires: pkgconfig(libcdio)
|
||||
BuildRequires: pkgconfig(libcdio_paranoia)
|
||||
BuildRequires: pkgconfig(libdisplay-info)
|
||||
BuildRequires: pkgconfig(libdrm)
|
||||
BuildRequires: pkgconfig(libjpeg)
|
||||
BuildRequires: pkgconfig(libpipewire-0.3) >= 0.3.19
|
||||
BuildRequires: pkgconfig(libplacebo) >= 6.338.0
|
||||
BuildRequires: pkgconfig(libpulse)
|
||||
BuildRequires: pkgconfig(libswresample) >= 3.9.100
|
||||
BuildRequires: pkgconfig(libswscale) >= 5.9.100
|
||||
BuildRequires: pkgconfig(libva)
|
||||
BuildRequires: pkgconfig(lua-5.1)
|
||||
BuildRequires: pkgconfig(mujs)
|
||||
BuildRequires: pkgconfig(openal)
|
||||
BuildRequires: pkgconfig(rubberband)
|
||||
BuildRequires: pkgconfig(sdl2)
|
||||
BuildRequires: pkgconfig(shaderc)
|
||||
BuildRequires: pkgconfig(uchardet) >= 0.0.5
|
||||
BuildRequires: pkgconfig(vapoursynth)
|
||||
BuildRequires: pkgconfig(vdpau)
|
||||
BuildRequires: pkgconfig(vulkan)
|
||||
BuildRequires: pkgconfig(wayland-client)
|
||||
BuildRequires: pkgconfig(wayland-cursor)
|
||||
BuildRequires: pkgconfig(wayland-egl)
|
||||
BuildRequires: pkgconfig(wayland-protocols)
|
||||
BuildRequires: pkgconfig(wayland-scanner)
|
||||
BuildRequires: pkgconfig(x11)
|
||||
BuildRequires: pkgconfig(xdamage)
|
||||
BuildRequires: pkgconfig(xext)
|
||||
BuildRequires: pkgconfig(xinerama)
|
||||
BuildRequires: pkgconfig(xkbcommon)
|
||||
BuildRequires: pkgconfig(xpresent)
|
||||
BuildRequires: pkgconfig(xrandr)
|
||||
BuildRequires: pkgconfig(xscrnsaver)
|
||||
BuildRequires: pkgconfig(xv)
|
||||
BuildRequires: pkgconfig(zimg) >= 2.9
|
||||
BuildRequires: pkgconfig(zlib)
|
||||
|
||||
Requires: hicolor-icon-theme
|
||||
Provides: mplayer-backend
|
||||
Recommends: (yt-dlp or youtube-dl)
|
||||
Suggests: yt-dlp
|
||||
|
||||
%description
|
||||
Mpv is a movie player based on MPlayer and mplayer2. It supports a wide variety
|
||||
of video file formats, audio and video codecs, and subtitle types. Special
|
||||
input URL types are available to read input from a variety of sources other
|
||||
than disk files. Depending on platform, a variety of different video and audio
|
||||
output methods are supported.
|
||||
|
||||
Mpv has an OpenGL, Vulkan, and D3D11 based video output that is capable of many
|
||||
features loved by videophiles, such as video scaling with popular high quality
|
||||
algorithms, color management, frame timing, interpolation, HDR, and more.
|
||||
|
||||
While mpv strives for minimalism and provides no real GUI, it has a small
|
||||
controller on top of the video for basic control.
|
||||
|
||||
Mpv can leverage most hardware decoding APIs on all platforms. Hardware
|
||||
decoding can be enabled at runtime on demand.
|
||||
|
||||
Powerful scripting capabilities can make the player do almost anything. There
|
||||
is a large selection of user scripts on the wiki.
|
||||
|
||||
A straightforward C API was designed from the ground up to make mpv usable as
|
||||
a library and facilitate easy integration into other applications.
|
||||
|
||||
%package libs
|
||||
Summary: Dynamic library for Mpv frontends
|
||||
|
||||
%description libs
|
||||
This package contains the dynamic library libmpv, which provides access to Mpv.
|
||||
|
||||
%package devel
|
||||
Summary: Development package for libmpv
|
||||
Provides: mpv-libs-devel = %{?epoch:%{epoch}:}%{version}-%{release}
|
||||
Provides: mpv-nightly-libs-devel = %{?epoch:%{epoch}:}%{version}-%{release}
|
||||
Obsoletes: mpv-libs-devel < %{?epoch:%{epoch}:}%{version}-%{release}
|
||||
Obsoletes: mpv-nightly-libs-devel < %{?epoch:%{epoch}:}%{version}-%{release}
|
||||
Requires: mpv-libs%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
|
||||
Requires: mpv-nightly-libs%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
|
||||
|
||||
%description devel
|
||||
This package contains development header files and libraries for Mpv.
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n mpv-%commit
|
||||
sed -e "s|/usr/local/etc|%{_sysconfdir}/mpv|" -i etc/mpv.conf
|
||||
|
||||
%build
|
||||
%meson --auto-features=auto \
|
||||
-Dalsa=enabled \
|
||||
-Dbuild-date=false \
|
||||
-Dcaca=enabled \
|
||||
-Dcdda=enabled \
|
||||
-Dcplayer=true \
|
||||
-Dcplugins=enabled \
|
||||
-Dcuda-hwaccel=enabled \
|
||||
-Dcuda-interop=enabled \
|
||||
-Ddmabuf-wayland=enabled \
|
||||
-Ddrm=enabled \
|
||||
-Ddvbin=enabled \
|
||||
-Ddvdnav=enabled \
|
||||
-Degl-drm=enabled \
|
||||
-Degl-wayland=enabled \
|
||||
-Degl-x11=enabled \
|
||||
-Degl=enabled \
|
||||
-Dgbm=enabled \
|
||||
-Dgl-x11=enabled \
|
||||
-Dgl=enabled \
|
||||
-Dhtml-build=enabled \
|
||||
-Diconv=enabled \
|
||||
-Djack=enabled \
|
||||
-Djavascript=enabled \
|
||||
-Djpeg=enabled \
|
||||
-Dlcms2=enabled \
|
||||
-Dlibarchive=enabled \
|
||||
-Dlibavdevice=enabled \
|
||||
-Dlibbluray=enabled \
|
||||
-Dlibmpv=true \
|
||||
-Dlua=enabled \
|
||||
-Dmanpage-build=enabled \
|
||||
-Dopenal=enabled \
|
||||
-Dopensles=disabled \
|
||||
-Doss-audio=disabled \
|
||||
-Dpipewire=enabled \
|
||||
-Dplain-gl=enabled \
|
||||
-Dpulse=enabled \
|
||||
-Drubberband=enabled \
|
||||
-Dsdl2-audio=enabled \
|
||||
-Dsdl2-gamepad=enabled \
|
||||
-Dsdl2-video=enabled \
|
||||
-Dsdl2=enabled \
|
||||
-Dsndio=disabled \
|
||||
-Dspirv-cross=disabled \
|
||||
-Duchardet=enabled \
|
||||
-Dvaapi-drm=enabled \
|
||||
-Dvaapi-wayland=enabled \
|
||||
-Dvaapi-x11=enabled \
|
||||
-Dvaapi=enabled \
|
||||
-Dvapoursynth=enabled \
|
||||
-Dvdpau-gl-x11=enabled \
|
||||
-Dvdpau=enabled \
|
||||
-Dvector=enabled \
|
||||
-Dvulkan=enabled \
|
||||
-Dwayland=enabled \
|
||||
-Dwerror=false \
|
||||
-Dx11=enabled \
|
||||
-Dxv=enabled \
|
||||
-Dzimg=enabled \
|
||||
-Dzlib=enabled
|
||||
%meson_build
|
||||
|
||||
%install
|
||||
%meson_install
|
||||
|
||||
%check
|
||||
appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/mpv.metainfo.xml
|
||||
desktop-file-validate %{buildroot}%{_datadir}/applications/mpv.desktop
|
||||
|
||||
%files
|
||||
%docdir %{_docdir}/mpv/
|
||||
%license LICENSE.GPL LICENSE.LGPL Copyright
|
||||
%{_docdir}/mpv/
|
||||
%{_bindir}/mpv
|
||||
%{_datadir}/applications/mpv.desktop
|
||||
%dir %{_datadir}/bash-completion/
|
||||
%dir %{_datadir}/bash-completion/completions/
|
||||
%{_datadir}/bash-completion/completions/mpv
|
||||
%{_datadir}/icons/hicolor/*/apps/mpv*.*
|
||||
%dir %{_datadir}/zsh/
|
||||
%dir %{_datadir}/zsh/site-functions/
|
||||
%{_datadir}/zsh/site-functions/_mpv
|
||||
%{_mandir}/man1/mpv.*
|
||||
%{_metainfodir}/mpv.metainfo.xml
|
||||
%dir %{_sysconfdir}/mpv/
|
||||
%config(noreplace) %{_sysconfdir}/mpv/encoding-profiles.conf
|
||||
|
||||
%files libs
|
||||
%license LICENSE.GPL LICENSE.LGPL Copyright
|
||||
%{_libdir}/libmpv.so.2{,.*}
|
||||
|
||||
%files devel
|
||||
%{_includedir}/mpv/
|
||||
%{_libdir}/libmpv.so
|
||||
%{_libdir}/pkgconfig/mpv.pc
|
||||
|
||||
%changelog
|
||||
%autochangelog
|
||||
@@ -1,12 +0,0 @@
|
||||
if filters.contains("nightly") {
|
||||
rpm.global("commit", gh_commit("mpv-player/mpv"));
|
||||
if rpm.changed() {
|
||||
let v = gh("mpv-player/mpv");
|
||||
if v.starts_with("v") {
|
||||
v.crop(1);
|
||||
}
|
||||
rpm.global("ver", v);
|
||||
rpm.global("commit_date", date());
|
||||
rpm.release();
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
project pkg {
|
||||
arches = ["x86_64"]
|
||||
rpm {
|
||||
spec = "mugshot.spec"
|
||||
}
|
||||
}
|
||||
@@ -1,62 +0,0 @@
|
||||
%global app org.bluesabre.Mugshot
|
||||
%global _description %{expand:
|
||||
Mugshot is a lightweight user configuration utility for Linux designed for simplicity and ease of
|
||||
use. Quickly update your personal profile and sync your updates across applications.}
|
||||
|
||||
|
||||
Name: python-mugshot
|
||||
Version: 0.4.3
|
||||
Release: 1%?dist
|
||||
Summary: User Management Utility for Linux
|
||||
License: GPL-3.0
|
||||
URL: https://github.com/bluesabre/mugshot
|
||||
Source0: %url/archive/refs/tags/mugshot-%version.tar.gz
|
||||
BuildArch: noarch
|
||||
BuildRequires: python3-devel
|
||||
BuildRequires: python3-pip
|
||||
BuildRequires: python3-distutils-extra
|
||||
BuildRequires: python3-wheel
|
||||
BuildRequires: python3-setuptools
|
||||
BuildRequires: glib2
|
||||
BuildRequires: desktop-file-utils
|
||||
BuildRequires: libappstream-glib
|
||||
|
||||
%description %_description
|
||||
|
||||
%package -n mugshot
|
||||
Requires: util-linux-user
|
||||
Requires: python3-cairo
|
||||
Requires: python3-pexpect
|
||||
Requires: python3-gobject
|
||||
Summary: User Management Utility for Linux
|
||||
|
||||
%description -n mugshot %_description
|
||||
|
||||
%prep
|
||||
%autosetup -n mugshot-mugshot-%version
|
||||
|
||||
%build
|
||||
%pyproject_wheel
|
||||
|
||||
%install
|
||||
%pyproject_install
|
||||
%pyproject_save_files -L 'mugshot*'
|
||||
install -Dm644 data/glib-2.0/schemas/%{lower:%app}.gschema.xml %buildroot%_datadir/glib-2.0/schemas/
|
||||
|
||||
%find_lang mugshot
|
||||
|
||||
%check
|
||||
#pyproject_check_import
|
||||
desktop-file-validate %buildroot%_datadir/applications/%app.desktop
|
||||
appstream-util validate-relax --nonet %buildroot%_metainfodir/mugshot.appdata.xml
|
||||
|
||||
%files -n mugshot -f %{pyproject_files} -f mugshot.lang
|
||||
%doc README.md NEWS
|
||||
%license COPYING
|
||||
%_bindir/mugshot
|
||||
%_datadir/glib-2.0/schemas/%{lower:%app}.gschema.xml
|
||||
%_datadir/applications/%app.desktop
|
||||
%_datadir/mugshot/
|
||||
%_metainfodir/mugshot.appdata.xml
|
||||
%_mandir/man1/mugshot.1.gz
|
||||
%_iconsdir/hicolor/*/apps/mugshot.svg
|
||||
@@ -1,3 +0,0 @@
|
||||
let v = gh("bluesabre/mugshot");
|
||||
v.crop(8);
|
||||
rpm.version(v);
|
||||
@@ -1,8 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Categories=Utility;
|
||||
Comment=A cross-platform system monitor
|
||||
Exec=NeoHtop
|
||||
Icon=NeoHtop
|
||||
Name=NeoHtop
|
||||
Terminal=false
|
||||
Type=Application
|
||||
@@ -1,5 +0,0 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "neohtop.spec"
|
||||
}
|
||||
}
|
||||
@@ -1,51 +0,0 @@
|
||||
%global __brp_mangle_shebangs %{nil}
|
||||
|
||||
Name: neohtop
|
||||
Version: 1.1.2
|
||||
Release: 1%?dist
|
||||
Summary: System monitoring on steroids
|
||||
License: MIT
|
||||
URL: https://github.com/Abdenasser/neohtop
|
||||
Source0: %url/archive/refs/tags/v%version.tar.gz
|
||||
Source1: NeoHtop.desktop
|
||||
Packager: Owen Zimmerman <owen@fyralabs.com>
|
||||
BuildRequires: rust
|
||||
BuildRequires: nodejs-npm
|
||||
BuildRequires: webkit2gtk4.1-devel
|
||||
BuildRequires: javascriptcoregtk4.1-devel
|
||||
BuildRequires: libsoup3-devel
|
||||
BuildRequires: gtk3-devel
|
||||
BuildRequires: rust-gdk-pixbuf-sys-devel
|
||||
BuildRequires: glib2-devel
|
||||
BuildRequires: openssl-devel
|
||||
|
||||
%description
|
||||
%summary.
|
||||
|
||||
%prep
|
||||
%autosetup -n neohtop-%version
|
||||
|
||||
%build
|
||||
npm install
|
||||
npm run tauri build
|
||||
|
||||
%install
|
||||
install -Dpm755 src-tauri/target/release/NeoHtop %buildroot%_bindir/NeoHtop
|
||||
install -Dpm644 %{SOURCE1} %buildroot%{_datadir}/applications/NeoHtop.desktop
|
||||
# don't mind the numbers not matching, this is how the offical rpm installs these files
|
||||
install -Dpm644 src-tauri/icons/128x128@2x.png %buildroot%{_iconsdir}/hicolor/256x256@2/apps/NeoHtop.png
|
||||
install -Dpm644 src-tauri/icons/32x32.png %buildroot%{_iconsdir}/hicolor/32x32/apps/NeoHtop.png
|
||||
install -Dpm644 src-tauri/icons/128x128.png %buildroot%{_iconsdir}/hicolor/128x128/apps/NeoHtop.png
|
||||
|
||||
%files
|
||||
%doc README.md
|
||||
%license LICENSE
|
||||
%_bindir/NeoHtop
|
||||
%{_datadir}/applications/NeoHtop.desktop
|
||||
%{_iconsdir}/hicolor/256x256@2/apps/NeoHtop.png
|
||||
%{_iconsdir}/hicolor/32x32/apps/NeoHtop.png
|
||||
%{_iconsdir}/hicolor/128x128/apps/NeoHtop.png
|
||||
|
||||
%changelog
|
||||
* Sat Feb 15 2025 Owen Zimmerman <owen@fyralabs.com>
|
||||
- Initial package
|
||||
@@ -1 +0,0 @@
|
||||
rpm.version(gh("Abdenasser/neohtop"));
|
||||
@@ -0,0 +1,103 @@
|
||||
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
|
||||
@@ -0,0 +1,345 @@
|
||||
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
|
||||
@@ -0,0 +1,544 @@
|
||||
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
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user