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 |
@@ -104,7 +104,7 @@ jobs:
|
||||
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' | sed 's/"/\"/g' >> $GITHUB_ENV
|
||||
cat rpmlint.txt | sed 's/`/\\`/g' >> $GITHUB_ENV
|
||||
echo $EOF >> $GITHUB_ENV
|
||||
echo "lint_out<<$EOF" >> $GITHUB_ENV
|
||||
echo '```' >> $GITHUB_ENV
|
||||
@@ -134,7 +134,7 @@ jobs:
|
||||
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' | sed 's/"/\"/g' >> $GITHUB_ENV
|
||||
cat out | sed 's/`/\\`/g' >> $GITHUB_ENV
|
||||
echo $EOF >> $GITHUB_ENV
|
||||
echo "dnf_out<<$EOF" >> $GITHUB_ENV
|
||||
cat out >> $GITHUB_ENV
|
||||
|
||||
@@ -41,10 +41,10 @@ jobs:
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: /var/cache
|
||||
key: ${{ runner.os }}-br-${{ matrix.version }}-${{ matrix.arch }}-${{ matrix.pkg }}
|
||||
key: ${{ runner.os }}-br-${{ matrix.version }}-${{ matrix.pkg.arch }}-${{ matrix.pkg.pkg }}
|
||||
|
||||
- name: Build with Andaman
|
||||
run: anda build anda/${{ matrix.pkg }}pkg --package rpm -c anda/mock-configs/terra-${{ matrix.version }}-${{ matrix.arch }}.cfg
|
||||
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
|
||||
|
||||
@@ -9,8 +9,8 @@
|
||||
%endif
|
||||
|
||||
Name: armcord-bin
|
||||
Version: 3.2.1
|
||||
Release: 1%{?dist}
|
||||
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
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
%define debug_package %nil
|
||||
|
||||
Name: armcord
|
||||
Version: 3.2.1
|
||||
Release: 1%{?dist}
|
||||
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
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
Name: authy
|
||||
Version: 2.4.0
|
||||
Release: 1%{?dist}
|
||||
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_20.snap
|
||||
Source0: https://api.snapcraft.io/api/v1/snaps/download/H8ZpNgIoPyvmkgxOWw5MSzsXK1wRZiHn_19.snap
|
||||
Requires: gtk3
|
||||
Requires: nss
|
||||
BuildRequires: squashfs-tools desktop-file-utils
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
%define debug_package %{nil}
|
||||
|
||||
Name: discord-canary-openasar
|
||||
Version: 0.0.162
|
||||
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
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
%define debug_package %{nil}
|
||||
|
||||
Name: discord-canary
|
||||
Version: 0.0.162
|
||||
Version: 0.0.161
|
||||
Release: 1%{?dist}
|
||||
Summary: Free Voice and Text Chat for Gamers
|
||||
URL: discord.com
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
%define debug_package %{nil}
|
||||
|
||||
Name: discord-openasar
|
||||
Version: 0.0.28
|
||||
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
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
%define debug_package %{nil}
|
||||
|
||||
Name: discord-ptb-openasar
|
||||
Version: 0.0.44
|
||||
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
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
%define debug_package %{nil}
|
||||
|
||||
Name: discord-ptb
|
||||
Version: 0.0.44
|
||||
Version: 0.0.43
|
||||
Release: 1%{?dist}
|
||||
Summary: Free Voice and Text Chat for Gamers.
|
||||
URL: https://discord.com
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
%define debug_package %{nil}
|
||||
|
||||
Name: discord
|
||||
Version: 0.0.28
|
||||
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
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
%global forgeurl https://gitlab.com/ubports/development/core/lomiri-system-settings
|
||||
%global commit 42b4b88db8f6ce1ef1cf085e8fd8de6d4484f5d4
|
||||
%global commit 890b72e8689a90289522f374534b06f85cde9ddb
|
||||
%forgemeta
|
||||
|
||||
Name: lomiri-system-settings
|
||||
|
||||
@@ -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
|
||||
@@ -0,0 +1,5 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "obs-studio.spec"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,106 @@
|
||||
From 1e2fc3ade587a7a7c24e4238996ca382c4c0f719 Mon Sep 17 00:00:00 2001
|
||||
From: Neal Gompa <ngompa@fedoraproject.org>
|
||||
Date: Tue, 27 Dec 2022 09:15:08 -0500
|
||||
Subject: [PATCH] CMake: Use the system version of QRCodeGenCPP dependency
|
||||
|
||||
---
|
||||
CMakeLists.txt | 9 +++++++--
|
||||
cmake/legacy.cmake | 12 ++++++++----
|
||||
src/forms/ConnectInfo.cpp | 2 +-
|
||||
3 files changed, 16 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/plugins/obs-websocket/CMakeLists.txt b/plugins/obs-websocket/CMakeLists.txt
|
||||
index 871f92b..288cc87 100644
|
||||
--- a/plugins/obs-websocket/CMakeLists.txt
|
||||
+++ b/plugins/obs-websocket/CMakeLists.txt
|
||||
@@ -13,7 +13,7 @@ endif()
|
||||
|
||||
# Submodule deps check
|
||||
if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/deps/qr/cpp/QrCode.hpp")
|
||||
- message(FATAL_ERROR "obs-websocket submodule deps not available.")
|
||||
+ message(INFO "obs-websocket submodule deps not available.")
|
||||
endif()
|
||||
|
||||
# Find Qt
|
||||
@@ -22,6 +22,9 @@ find_qt(COMPONENTS Core Widgets Svg Network)
|
||||
# Find nlohmann JSON
|
||||
find_package(nlohmann_json 3 REQUIRED)
|
||||
|
||||
+# Find qrcodegencpp
|
||||
+find_package(qrcodegencpp REQUIRED)
|
||||
+
|
||||
# Find WebSocket++
|
||||
find_package(Websocketpp 0.8 REQUIRED)
|
||||
|
||||
@@ -157,7 +160,9 @@ target_link_libraries(
|
||||
Qt::Network
|
||||
nlohmann_json::nlohmann_json
|
||||
Websocketpp::Websocketpp
|
||||
- Asio::Asio)
|
||||
+ Asio::Asio
|
||||
+ qrcodegencpp
|
||||
+ )
|
||||
|
||||
set_target_properties_obs(
|
||||
obs-websocket
|
||||
diff --git a/plugins/obs-websocket/cmake/legacy.cmake b/plugins/obs-websocket/cmake/legacy.cmake
|
||||
index ab25ec7..98ca704 100644
|
||||
--- a/plugins/obs-websocket/cmake/legacy.cmake
|
||||
+++ b/plugins/obs-websocket/cmake/legacy.cmake
|
||||
@@ -10,7 +10,7 @@ endif()
|
||||
|
||||
# Submodule deps check
|
||||
if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/deps/qr/cpp/QrCode.hpp)
|
||||
- obs_status(FATAL_ERROR "obs-websocket submodule deps not available.")
|
||||
+ obs_status(INFO "obs-websocket submodule deps not available.")
|
||||
endif()
|
||||
|
||||
# Plugin tests flag
|
||||
@@ -22,6 +22,9 @@ find_qt(COMPONENTS Core Widgets Svg Network)
|
||||
# Find nlohmann JSON
|
||||
find_package(nlohmann_json 3 REQUIRED)
|
||||
|
||||
+# Find qrcodegencpp
|
||||
+find_package(qrcodegencpp REQUIRED)
|
||||
+
|
||||
# Find WebSocket++
|
||||
find_package(Websocketpp 0.8 REQUIRED)
|
||||
|
||||
@@ -129,8 +132,7 @@ target_sources(
|
||||
src/utils/Compat.cpp
|
||||
src/utils/Compat.h
|
||||
src/utils/Utils.h
|
||||
- deps/qr/cpp/QrCode.cpp
|
||||
- deps/qr/cpp/QrCode.hpp)
|
||||
+ )
|
||||
|
||||
target_link_libraries(
|
||||
obs-websocket
|
||||
@@ -142,7 +144,9 @@ target_link_libraries(
|
||||
Qt::Network
|
||||
nlohmann_json::nlohmann_json
|
||||
Websocketpp::Websocketpp
|
||||
- Asio::Asio)
|
||||
+ Asio::Asio
|
||||
+ qrcodegencpp
|
||||
+ )
|
||||
|
||||
target_compile_features(obs-websocket PRIVATE cxx_std_17)
|
||||
|
||||
diff --git a/plugins/obs-websocket/src/forms/ConnectInfo.cpp b/plugins/obs-websocket/src/forms/ConnectInfo.cpp
|
||||
index ddb979d..89a04c4 100644
|
||||
--- a/plugins/obs-websocket/src/forms/ConnectInfo.cpp
|
||||
+++ b/plugins/obs-websocket/src/forms/ConnectInfo.cpp
|
||||
@@ -21,9 +21,9 @@ with this program. If not, see <https://www.gnu.org/licenses/>
|
||||
#include <QPainter>
|
||||
#include <QUrl>
|
||||
#include <obs-module.h>
|
||||
+#include <qrcodegencpp/QrCode.hpp>
|
||||
|
||||
#include "ConnectInfo.h"
|
||||
-#include "../../deps/qr/cpp/QrCode.hpp"
|
||||
#include "../obs-websocket.h"
|
||||
#include "../Config.h"
|
||||
#include "../utils/Platform.h"
|
||||
--
|
||||
2.39.2
|
||||
@@ -0,0 +1,151 @@
|
||||
%global obswebsocketver 5.2.2
|
||||
|
||||
Name: obs-studio
|
||||
Version: 29.1.1
|
||||
Release: 1%?dist
|
||||
Summary: Open Broadcaster Software Studio
|
||||
License: GPL-2.0-or-later and ISC and MIT and BSD-1-Clause and BSD-2-Clause and BSD-3-Clause and BSL-1.0 and LGPL-2.1-or-later and CC0-1.0 and (CC0-1.0 or OpenSSL or Apache-2.0) and LicenseRef-Fedora-Public-Domain and (BSD-3-Clause or GPL-2.0-only)
|
||||
URL: https://obsproject.com/
|
||||
Source0: https://github.com/obsproject/obs-studio/archive/refs/tags/%version.tar.gz
|
||||
Source1: https://github.com/obsproject/obs-websocket/archive/%obswebsocketver/obs-websocket-%obswebsocketver.tar.gz
|
||||
|
||||
BuildRequires: gcc
|
||||
BuildRequires: cmake >= 3.16
|
||||
BuildRequires: ninja-build
|
||||
BuildRequires: libappstream-glib
|
||||
BuildRequires: desktop-file-utils
|
||||
|
||||
BuildRequires: alsa-lib-devel
|
||||
BuildRequires: asio-devel
|
||||
BuildRequires: fdk-aac-free-devel
|
||||
BuildRequires: fontconfig-devel
|
||||
BuildRequires: freetype-devel
|
||||
BuildRequires: jansson-devel >= 2.5
|
||||
BuildRequires: json-devel
|
||||
BuildRequires: libcurl-devel
|
||||
BuildRequires: libdrm-devel
|
||||
BuildRequires: libGL-devel
|
||||
BuildRequires: libglvnd-devel
|
||||
BuildRequires: librist-devel
|
||||
BuildRequires: srt-devel
|
||||
BuildRequires: libuuid-devel
|
||||
BuildRequires: libv4l-devel
|
||||
BuildRequires: libva-devel
|
||||
BuildRequires: libX11-devel
|
||||
BuildRequires: libxcb-devel
|
||||
BuildRequires: libXcomposite-devel
|
||||
BuildRequires: libXinerama-devel
|
||||
BuildRequires: libxkbcommon-devel
|
||||
BuildRequires: luajit-devel
|
||||
BuildRequires: mbedtls-devel
|
||||
BuildRequires: pciutils-devel
|
||||
BuildRequires: pipewire-devel
|
||||
BuildRequires: pipewire-jack-audio-connection-kit-devel
|
||||
BuildRequires: pulseaudio-libs-devel
|
||||
BuildRequires: python3-devel
|
||||
BuildRequires: libqrcodegencpp-devel
|
||||
BuildRequires: qt6-qtbase-devel
|
||||
BuildRequires: qt6-qtbase-private-devel
|
||||
BuildRequires: qt6-qtsvg-devel
|
||||
BuildRequires: qt6-qtwayland-devel
|
||||
BuildRequires: speexdsp-devel
|
||||
BuildRequires: swig
|
||||
BuildRequires: systemd-devel
|
||||
BuildRequires: wayland-devel
|
||||
BuildRequires: websocketpp-devel
|
||||
BuildRequires: ffmpeg-free-devel
|
||||
BuildRequires: x264-devel
|
||||
BuildRequires: vlc-devel
|
||||
# websocket deps
|
||||
BuildRequires: nlohmann-json-devel websocketpp-devel asio-devel
|
||||
|
||||
# Ensure QtWayland is installed when libwayland-client is installed
|
||||
Requires: (qt6-qtwayland%{?_isa} if libwayland-client%{?_isa})
|
||||
# For icon folder heirarchy
|
||||
Requires: hicolor-icon-theme
|
||||
# Virtual camera support
|
||||
Recommends: kmod-v4l2loopback
|
||||
# NVIDIA Hardware accelerated encoding: CUDA
|
||||
Suggests: xorg-x11-drv-nvidia-cuda
|
||||
# obs-studio-plugin-vlc-video
|
||||
# We dlopen() libvlc
|
||||
Requires: libvlc.so.%{libvlc_soversion}%{?lib64_suffix}
|
||||
|
||||
|
||||
# These are modified sources that can't be easily unbundled
|
||||
## License: MIT and CC0-1.0
|
||||
## Newer version in Fedora with the same licensing
|
||||
## Request filed upstream for fixing it: https://github.com/simd-everywhere/simde/issues/999
|
||||
Provides: bundled(simde) = 0.7.1
|
||||
## License: BSL-1.0
|
||||
Provides: bundled(decklink-sdk)
|
||||
## License: CC0-1.0 or OpenSSL or Apache-2.0
|
||||
Provides: bundled(blake2)
|
||||
## License: MIT
|
||||
Provides: bundled(json11)
|
||||
## License: MIT
|
||||
Provides: bundled(libcaption)
|
||||
## License: ISC
|
||||
Provides: bundled(libff)
|
||||
## License: BSD-1-Clause
|
||||
Provides: bundled(uthash)
|
||||
## License: BSD-3-Clause
|
||||
Provides: bundled(rnnoise)
|
||||
## License: LGPL-2.1-or-later and LicenseRef-Fedora-Public-Domain
|
||||
Provides: bundled(librtmp)
|
||||
## License: MIT
|
||||
Provides: bundled(libnsgif)
|
||||
## License: MIT
|
||||
## Windows only dependency
|
||||
## Support for Linux will also unbundle it
|
||||
## Cf. https://github.com/obsproject/obs-studio/pull/8327
|
||||
Provides: bundled(intel-mediasdk)
|
||||
|
||||
%description
|
||||
Open Broadcaster Software is free and open source
|
||||
software for video recording and live streaming.
|
||||
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n obs-studio-%{?snapdate:%{commit}}%{!?snapdate:%{version_no_tilde}}
|
||||
# Prepare plugins/obs-websocket
|
||||
tar -xf %SOURCE1 --strip-components=1 -C plugins/obs-websocket/
|
||||
ls plugins/obs-websocket/
|
||||
sed -e 's|OBS_MULTIARCH_SUFFIX|LIB_SUFFIX|g' -i cmake/Modules/ObsHelpers.cmake
|
||||
# Kill rpath settings
|
||||
sed -e '\|set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${OBS_LIBRARY_DESTINATION}")|d' -i cmake/Modules/ObsHelpers_Linux.cmake
|
||||
# touch the missing submodules
|
||||
touch plugins/obs-browser/CMakeLists.txt
|
||||
# remove -Werror flag to mitigate FTBFS with ffmpeg 5.1
|
||||
sed -e 's|-Werror-implicit-function-declaration||g' -i cmake/Modules/CompilerConfig.cmake
|
||||
sed -e '/-Werror/d' -i cmake/Modules/CompilerConfig.cmake
|
||||
|
||||
|
||||
%build
|
||||
%cmake -B build -S . \
|
||||
-DUNIX_STRUCTURE=1 -GNinja \
|
||||
-DCMAKE_SKIP_RPATH=1 \
|
||||
-DBUILD_BROWSER=OFF \
|
||||
-DENABLE_JACK=ON \
|
||||
-DENABLE_LIBFDK=ON \
|
||||
-DENABLE_AJA=OFF \
|
||||
-DOBS_VERSION_OVERRIDE="%version-%release" \
|
||||
-Wno-dev \
|
||||
-DOpenGL_GL_PREFERENCE=GLVND
|
||||
%cmake_build
|
||||
|
||||
|
||||
%install
|
||||
%cmake_install
|
||||
|
||||
|
||||
%files
|
||||
%doc README.rst
|
||||
%license COPYING plugins/{{enc-amf,obs-websocket}/LICENSE,obs-{browser,filters,outputs}/COPYING}
|
||||
|
||||
|
||||
%changelog
|
||||
* Tue May 23 2023 windowsboy111 <windowsboy111@fyralabs.com> - 29.1.1-1
|
||||
- Initial package
|
||||
- Ref: https://pkgs.rpmfusion.org/cgit/free/obs-studio-freeworld.git/tree/obs-studio-freeworld.spec
|
||||
- Ref: https://gitlab.archlinux.org/archlinux/packaging/packages/obs-studio/-/blob/main/PKGBUILD
|
||||
@@ -0,0 +1,2 @@
|
||||
rpm.version(gh("obsproject/obs-studio"));
|
||||
rpm.global("obswebsocketver", gh("obsproject/obs-websocket"));
|
||||
@@ -1,13 +1,13 @@
|
||||
%define debug_package %nil
|
||||
|
||||
Name: blahaj
|
||||
Version: 2.1.0
|
||||
Version: 2.0.2
|
||||
Release: 1%{?dist}
|
||||
Summary: Gay sharks at your local terminal - lolcat-like CLI tool
|
||||
License: BSD-2-Clause
|
||||
URL: https://blahaj.queer.software
|
||||
Source0: https://github.com/GeopJr/BLAHAJ/archive/refs/tags/v%version.tar.gz
|
||||
BuildRequires: crystal gcc libyaml-devel pcre-devel libgc-devel libevent-devel
|
||||
BuildRequires: crystal gcc libyaml-devel pcre-devel
|
||||
ExclusiveArch: x86_64
|
||||
|
||||
%description
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
%define debug_package %nil
|
||||
|
||||
Name: crystal
|
||||
Version: 1.9.2
|
||||
Release: 1%{?dist}
|
||||
Version: 1.8.2
|
||||
Release: 2%{?dist}
|
||||
Summary: The Crystal Programming Language
|
||||
License: Apache-2.0
|
||||
URL: https://crystal-lang.org/
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
%define debug_package %{nil}
|
||||
|
||||
Name: dart
|
||||
Version: 3.0.6
|
||||
Version: 3.0.5
|
||||
Release: 1%{?dist}
|
||||
Summary: The Dart Language
|
||||
License: BSD-3-Clause
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
|
||||
Name: elementary-files
|
||||
Summary: File manager from elementary
|
||||
Version: 6.4.1
|
||||
Release: 1%{?dist}
|
||||
Version: 6.3.1
|
||||
Release: 2%{?dist}
|
||||
License: GPL-3.0
|
||||
|
||||
URL: https://github.com/elementary/%{srcname}
|
||||
@@ -101,7 +101,7 @@ desktop-file-validate \
|
||||
%{buildroot}/%{_datadir}/applications/%{appname}.desktop
|
||||
|
||||
appstream-util validate-relax --nonet \
|
||||
%{buildroot}/%{_datadir}/metainfo/%{appname}.metainfo.xml
|
||||
%{buildroot}/%{_datadir}/metainfo/%{appname}.appdata.xml
|
||||
|
||||
|
||||
%post portal
|
||||
@@ -127,7 +127,7 @@ appstream-util validate-relax --nonet \
|
||||
%{_datadir}/dbus-1/services/%{appname}.service
|
||||
%{_datadir}/dbus-1/services/%{appname}.Filemanager1.service
|
||||
%{_datadir}/glib-2.0/schemas/%{appname}.gschema.xml
|
||||
%{_datadir}/metainfo/%{appname}.metainfo.xml
|
||||
%{_datadir}/metainfo/%{appname}.appdata.xml
|
||||
%{_datadir}/polkit-1/actions/%{appname}.policy
|
||||
|
||||
%files portal
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
|
||||
|
||||
Name: elementary-notifications
|
||||
Version: 7.0.0
|
||||
Release: 1%{?dist}
|
||||
Version: 6.0.3
|
||||
Release: 2%{?dist}
|
||||
Summary: GTK Notification server for Pantheon
|
||||
|
||||
License: GPL-3.0
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
Name: elementary-settings-daemon
|
||||
Version: 1.2.0
|
||||
Release: 1%{?dist}
|
||||
Release: 2%{?dist}
|
||||
Summary: Settings Daemon and Portal for Pantheon
|
||||
License: GPL-3.0-or-later
|
||||
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
|
||||
Name: elementary-sideload
|
||||
Summary: Sideload flatpaks on Pantheon
|
||||
Version: 6.2.1
|
||||
Release: 1%{?dist}
|
||||
Version: 6.2.0
|
||||
Release: 2%{?dist}
|
||||
License: GPL-3.0-or-later
|
||||
|
||||
URL: https://github.com/elementary/sideload
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
|
||||
Name: gala
|
||||
Summary: Gala window manager
|
||||
Version: 7.1.1
|
||||
Release: 1%{?dist}
|
||||
Version: 7.0.3
|
||||
Release: 2%{?dist}
|
||||
License: GPL-3.0-or-later
|
||||
|
||||
URL: https://github.com/elementary/gala
|
||||
@@ -92,7 +92,7 @@ desktop-file-validate \
|
||||
%{buildroot}/%{_datadir}/applications/gala*.desktop
|
||||
|
||||
#appstream-util validate-relax --nonet \
|
||||
# %%{buildroot}/%%{_datadir}/metainfo/%%{name}.metainfo.xml
|
||||
# %%{buildroot}/%%{_datadir}/metainfo/%%{name}.appdata.xml
|
||||
|
||||
|
||||
%files -f gala.lang
|
||||
@@ -108,7 +108,7 @@ desktop-file-validate \
|
||||
%{_datadir}/applications/gala*.desktop
|
||||
%{_datadir}/glib-2.0/schemas/20_elementary.pantheon.wm.gschema.override
|
||||
%{_datadir}/glib-2.0/schemas/org.pantheon.desktop.gala.gschema.xml
|
||||
%{_datadir}/metainfo/%{name}.metainfo.xml
|
||||
%{_datadir}/metainfo/%{name}.appdata.xml
|
||||
|
||||
%files libs
|
||||
%doc AUTHORS README.md
|
||||
|
||||
+5
-9
@@ -8,8 +8,8 @@
|
||||
|
||||
Name: switchboard-plug-applications
|
||||
Summary: Switchboard Applications plug
|
||||
Version: 7.0.0
|
||||
Release: 1%{?dist}
|
||||
Version: 6.0.1
|
||||
Release: 4%{?dist}
|
||||
License: GPL-3.0-or-later
|
||||
|
||||
URL: https://github.com/elementary/switchboard-plug-applications
|
||||
@@ -25,9 +25,7 @@ BuildRequires: pkgconfig(flatpak) >= 1.1.2
|
||||
BuildRequires: pkgconfig(glib-2.0) >= 2.34
|
||||
BuildRequires: pkgconfig(granite)
|
||||
BuildRequires: pkgconfig(gtk+-3.0)
|
||||
BuildRequires: pkgconfig(libhandy-1)
|
||||
BuildRequires: pkgconfig(switchboard-2.0)
|
||||
BuildRequires: pkgconfig(libhandy-1)
|
||||
|
||||
Requires: switchboard%{?_isa}
|
||||
Supplements: switchboard%{?_isa}
|
||||
@@ -49,16 +47,15 @@ that allows the user to manage application settings.
|
||||
%install
|
||||
%meson_install
|
||||
%fdupes %buildroot%_datadir/locale/
|
||||
mv %buildroot%_datadir/metainfo/%plug_rdnn.appdata.xml %buildroot%_datadir/metainfo/%plug_rdnn.metainfo.xml || true
|
||||
%find_lang %{plug_name}-plug
|
||||
|
||||
# remove the specified stock icon from appdata (invalid in libappstream-glib)
|
||||
sed -i '/icon type="stock"/d' %{buildroot}%{_datadir}/metainfo/%{plug_rdnn}.metainfo.xml
|
||||
sed -i '/icon type="stock"/d' %{buildroot}/%{_datadir}/metainfo/%{plug_rdnn}.appdata.xml
|
||||
|
||||
|
||||
%check
|
||||
appstream-util validate-relax --nonet \
|
||||
%{buildroot}%{_datadir}/metainfo/%{plug_rdnn}.metainfo.xml
|
||||
%{buildroot}/%{_datadir}/metainfo/%{plug_rdnn}.appdata.xml
|
||||
|
||||
|
||||
%files -f %{plug_name}-plug.lang
|
||||
@@ -67,8 +64,7 @@ appstream-util validate-relax --nonet \
|
||||
|
||||
%{_libdir}/switchboard/%{plug_type}/lib%{plug_name}.so
|
||||
|
||||
%{_datadir}/metainfo/%{plug_rdnn}.metainfo.xml
|
||||
%{_datadir}/icons/hicolor/*/apps/io.elementary.settings.applications.svg
|
||||
%{_datadir}/metainfo/%{plug_rdnn}.appdata.xml
|
||||
|
||||
|
||||
%changelog
|
||||
|
||||
@@ -8,8 +8,8 @@
|
||||
|
||||
Name: switchboard-plug-display
|
||||
Summary: Switchboard Display plug
|
||||
Version: 7.0.0
|
||||
Release: 1%{?dist}
|
||||
Version: 2.3.3
|
||||
Release: 2%{?dist}
|
||||
License: GPL-3.0-or-later
|
||||
|
||||
URL: https://github.com/elementary/switchboard-plug-display
|
||||
@@ -52,7 +52,7 @@ them.
|
||||
|
||||
%check
|
||||
appstream-util validate-relax --nonet \
|
||||
%{buildroot}/%{_datadir}/metainfo/%{plug_rdnn}.metainfo.xml
|
||||
%{buildroot}/%{_datadir}/metainfo/%{plug_rdnn}.appdata.xml
|
||||
|
||||
|
||||
%files -f %{plug_name}-plug.lang
|
||||
@@ -61,7 +61,7 @@ appstream-util validate-relax --nonet \
|
||||
|
||||
%{_libdir}/switchboard/%{plug_type}/lib%{plug_name}.so
|
||||
|
||||
%{_datadir}/metainfo/%{plug_rdnn}.metainfo.xml
|
||||
%{_datadir}/metainfo/%{plug_rdnn}.appdata.xml
|
||||
|
||||
|
||||
%changelog
|
||||
|
||||
+5
-5
@@ -6,8 +6,8 @@
|
||||
|
||||
Name: switchboard-plug-onlineaccounts
|
||||
Summary: Switchboard Online Accounts plug
|
||||
Version: 6.5.3
|
||||
Release: 1%{?dist}
|
||||
Version: 6.5.2
|
||||
Release: 2%{?dist}
|
||||
License: GPL-3.0-or-later
|
||||
|
||||
URL: https://github.com/elementary/switchboard-plug-onlineaccounts
|
||||
@@ -53,19 +53,19 @@ Manage online accounts and connected applications.
|
||||
%find_lang %{plug_name}-plug
|
||||
|
||||
# remove the specified stock icon from appdata (invalid in libappstream-glib)
|
||||
sed -i '/icon type="stock"/d' %{buildroot}/%{_datadir}/metainfo/%{plug_rdnn}.metainfo.xml
|
||||
sed -i '/icon type="stock"/d' %{buildroot}/%{_datadir}/metainfo/%{plug_rdnn}.appdata.xml
|
||||
|
||||
|
||||
%check
|
||||
appstream-util validate-relax --nonet \
|
||||
%{buildroot}/%{_datadir}/metainfo/%{plug_rdnn}.metainfo.xml
|
||||
%{buildroot}/%{_datadir}/metainfo/%{plug_rdnn}.appdata.xml
|
||||
|
||||
|
||||
%files -f %{plug_name}-plug.lang
|
||||
%license LICENSE
|
||||
%doc README.md
|
||||
|
||||
%{_datadir}/metainfo/%{plug_rdnn}.metainfo.xml
|
||||
%{_datadir}/metainfo/%{plug_rdnn}.appdata.xml
|
||||
%{_libdir}/switchboard/%{plug_type}/lib%{plug_name}.so
|
||||
|
||||
|
||||
|
||||
+6
-9
@@ -5,8 +5,8 @@
|
||||
|
||||
Name: wingpanel-indicator-bluetooth
|
||||
Summary: Bluetooth Indicator for wingpanel
|
||||
Version: 7.0.1
|
||||
Release: 1%{?dist}
|
||||
Version: 2.1.8
|
||||
Release: 4%{?dist}
|
||||
License: LGPL-2.0-or-later
|
||||
|
||||
URL: https://github.com/elementary/%{name}
|
||||
@@ -48,13 +48,13 @@ A bluetooth indicator for wingpanel.
|
||||
%fdupes %buildroot%_datadir/locale/
|
||||
%find_lang bluetooth-indicator
|
||||
|
||||
# remove the specified stock icon from metainfo (invalid in libappstream-glib)
|
||||
sed -i '/icon type="stock"/d' %{buildroot}/%{_datadir}/metainfo/%{appname}.metainfo.xml
|
||||
# remove the specified stock icon from appdata (invalid in libappstream-glib)
|
||||
sed -i '/icon type="stock"/d' %{buildroot}/%{_datadir}/metainfo/%{appname}.appdata.xml
|
||||
|
||||
|
||||
%check
|
||||
appstream-util validate-relax --nonet \
|
||||
%{buildroot}/%{_datadir}/metainfo/%{appname}.metainfo.xml
|
||||
%{buildroot}/%{_datadir}/metainfo/%{appname}.appdata.xml
|
||||
|
||||
|
||||
%files -f bluetooth-indicator.lang
|
||||
@@ -63,11 +63,8 @@ appstream-util validate-relax --nonet \
|
||||
|
||||
%{_libdir}/wingpanel/libbluetooth.so
|
||||
|
||||
%_bindir/io.elementary.bluetooth
|
||||
%{_datadir}/glib-2.0/schemas/io.elementary.desktop.wingpanel.bluetooth.gschema.xml
|
||||
%{_datadir}/applications/io.elementary.bluetooth.desktop
|
||||
%{_datadir}/metainfo/%{appname}.metainfo.xml
|
||||
%_sysconfdir/xdg/autostart/io.elementary.bluetooth-daemon.desktop
|
||||
%{_datadir}/metainfo/%{appname}.appdata.xml
|
||||
|
||||
|
||||
%changelog
|
||||
|
||||
+5
-5
@@ -5,8 +5,8 @@
|
||||
|
||||
Name: wingpanel-indicator-nightlight
|
||||
Summary: Night Light Indicator for wingpanel
|
||||
Version: 2.1.2
|
||||
Release: 1%{?dist}
|
||||
Version: 2.1.1
|
||||
Release: 2%{?dist}
|
||||
License: GPL-2.0-or-later
|
||||
|
||||
URL: https://github.com/elementary/wingpanel-indicator-nightlight
|
||||
@@ -48,8 +48,8 @@ A wingpanel indicator for Night Light.
|
||||
|
||||
|
||||
%check
|
||||
%dnl appstream-util validate-relax --nonet \
|
||||
%dnl %{buildroot}/%{_datadir}/metainfo/%{appname}.metainfo.xml
|
||||
appstream-util validate-relax --nonet \
|
||||
%{buildroot}/%{_datadir}/metainfo/%{appname}.appdata.xml
|
||||
|
||||
|
||||
%files -f nightlight-indicator.lang
|
||||
@@ -58,7 +58,7 @@ A wingpanel indicator for Night Light.
|
||||
|
||||
%{_libdir}/wingpanel/libnightlight.so
|
||||
|
||||
%{_datadir}/metainfo/%{appname}.metainfo.xml
|
||||
%{_datadir}/metainfo/%{appname}.appdata.xml
|
||||
|
||||
|
||||
%changelog
|
||||
|
||||
+4
-4
@@ -5,8 +5,8 @@
|
||||
|
||||
Name: wingpanel-indicator-notifications
|
||||
Summary: Notifications Indicator for wingpanel
|
||||
Version: 7.0.0
|
||||
Release: 1%{?dist}
|
||||
Version: 6.0.7
|
||||
Release: 2%{?dist}
|
||||
License: LGPL-2.0-or-later
|
||||
|
||||
URL: https://github.com/elementary/wingpanel-indicator-notifications
|
||||
@@ -52,7 +52,7 @@ A notifications indicator for wingpanel.
|
||||
|
||||
%check
|
||||
appstream-util validate-relax --nonet \
|
||||
%{buildroot}/%{_datadir}/metainfo/%{appname}.metainfo.xml
|
||||
%{buildroot}/%{_datadir}/metainfo/%{appname}.appdata.xml
|
||||
|
||||
|
||||
%files -f notifications-indicator.lang
|
||||
@@ -61,7 +61,7 @@ appstream-util validate-relax --nonet \
|
||||
|
||||
%{_libdir}/wingpanel/libnotifications.so
|
||||
|
||||
%{_datadir}/metainfo/%{appname}.metainfo.xml
|
||||
%{_datadir}/metainfo/%{appname}.appdata.xml
|
||||
|
||||
|
||||
%changelog
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
|
||||
Name: wingpanel-indicator-sound
|
||||
Summary: Sound Indicator for wingpanel
|
||||
Version: 7.0.0
|
||||
Release: 1%{?dist}
|
||||
Version: 6.0.2
|
||||
Release: 2%?dist
|
||||
License: GPL-3.0
|
||||
|
||||
URL: https://github.com/elementary/%{name}
|
||||
@@ -50,12 +50,12 @@ A sound indicator for wingpanel.
|
||||
%find_lang sound-indicator
|
||||
|
||||
# remove the specified stock icon from appdata (invalid in libappstream-glib)
|
||||
sed -i '/icon type="stock"/d' %{buildroot}/%{_datadir}/metainfo/%{appname}.metainfo.xml
|
||||
sed -i '/icon type="stock"/d' %{buildroot}/%{_datadir}/metainfo/%{appname}.appdata.xml
|
||||
|
||||
|
||||
%check
|
||||
appstream-util validate-relax --nonet \
|
||||
%{buildroot}/%{_datadir}/metainfo/%{appname}.metainfo.xml
|
||||
%{buildroot}/%{_datadir}/metainfo/%{appname}.appdata.xml
|
||||
|
||||
|
||||
%files -f sound-indicator.lang
|
||||
@@ -65,7 +65,7 @@ appstream-util validate-relax --nonet \
|
||||
%{_libdir}/wingpanel/libsound.so
|
||||
|
||||
%{_datadir}/glib-2.0/schemas/io.elementary.desktop.wingpanel.sound.gschema.xml
|
||||
%{_datadir}/metainfo/%{appname}.metainfo.xml
|
||||
%{_datadir}/metainfo/%{appname}.appdata.xml
|
||||
|
||||
|
||||
%changelog
|
||||
|
||||
@@ -7,7 +7,7 @@ launcher.}
|
||||
Name: wingpanel
|
||||
Summary: Stylish top panel
|
||||
Version: 3.0.3
|
||||
Release: 1%{?dist}
|
||||
Release: %autorelease
|
||||
License: GPL-2.0-or-later
|
||||
|
||||
URL: https://github.com/elementary/wingpanel
|
||||
|
||||
+2
-2
@@ -1,8 +1,8 @@
|
||||
%define debug_package %{nil}
|
||||
|
||||
Name: xdg-desktop-portal-pantheon
|
||||
Version: 7.1.0
|
||||
Release: 1%{?dist}
|
||||
Version: 7.0.0
|
||||
Release: 1%?dist
|
||||
Summary: Pantheon XDG Desktop Portals
|
||||
License: GPL-3.0
|
||||
URL: https://github.com/elementary/portals
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
%global forgeurl https://github.com/KDE/latte-dock/
|
||||
|
||||
%global commit 459f0d54ffe2a8d1b7597a70112b164fb9319760
|
||||
%global commit 6532af166f2c6524827c8e1c22af6b9c2accc11f
|
||||
%global shortcommit %(c=%{commit}; echo ${c:0:7})
|
||||
%global commit_date %(date '+%Y%m%d')
|
||||
%global snapshot_info %{commit_date}.%{shortcommit}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
%global forgeurl https://gitlab.com/ubports/development/core/lomiri
|
||||
%global commit f6570663da8bcdea3f906327745fd3eea14c8d78
|
||||
%global commit 8a2f908c306ec63a7a0f14c247fa1676c655c7ce
|
||||
%forgemeta
|
||||
|
||||
Name: lomiri
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
%global debug_package %{nil}
|
||||
|
||||
Name: iosevka-fusion-fonts
|
||||
Version: 25.0.1
|
||||
Version: 24.1.4
|
||||
Release: 1%{?dist}
|
||||
Summary: A custom font based on iosevka
|
||||
|
||||
|
||||
@@ -46,28 +46,28 @@ cv57 = 6 # ι iota serified flat tailed
|
||||
cv58 = 2 # λ lambda top tailed
|
||||
cv59 = 1 # μ me tailless
|
||||
cv60 = 2 # ξ xe flat top
|
||||
cv77 = 13 # 0 oval dashed forward slash
|
||||
cv80 = 2 # 3 arched
|
||||
cv82 = 2 # 5 open contour
|
||||
cv84 = 1 # 7 straight
|
||||
cv85 = 3 # 8 two asymmetric circles
|
||||
cv89 = 2 # ~ tilde low
|
||||
cv90 = 3 # * asterisk five-pointed low
|
||||
cv91 = 1 # _ underscore right below baseline
|
||||
cv92 = 1 # ^ uptick high
|
||||
cv93 = 1 # ( parentheses normal slope
|
||||
cv94 = 2 # { braces curly
|
||||
cv95 = 1 # # column straight
|
||||
cv97 = 4 # @ three-fold, tall height
|
||||
cv98 = 2 # $ dollar strike through
|
||||
VXSF = 2 # ¢ cent strike through
|
||||
cv99 = 1 # % percent dots
|
||||
VXSA = 1 # | bar natural slope
|
||||
VXSB = 1 # ' single quote straight
|
||||
VXSC = 1 # ` grave/backtick straight
|
||||
VXSD = 1 # ? smooth
|
||||
cv88 = 2 # .:; square punctuation marks
|
||||
cv87 = 2 # ijäöü square diacretics
|
||||
cv76 = 13 # 0 oval dashed forward slash
|
||||
cv79 = 2 # 3 arched
|
||||
cv81 = 2 # 5 open contour
|
||||
cv83 = 1 # 7 straight
|
||||
cv84 = 3 # 8 two asymmetric circles
|
||||
cv88 = 2 # ~ tilde low
|
||||
cv89 = 2 # * asterisk five-pointed low
|
||||
cv90 = 1 # _ underscore right below baseline
|
||||
cv91 = 1 # ^ uptick high
|
||||
cv92 = 1 # ( parentheses normal slope
|
||||
cv93 = 2 # { braces curly
|
||||
cv94 = 1 # # column straight
|
||||
cv96 = 4 # @ three-fold, tall height
|
||||
cv97 = 2 # $ dollar strike through
|
||||
VXSE = 2 # ¢ cent strike through
|
||||
cv98 = 1 # % percent dots
|
||||
cv99 = 1 # | bar natural slope
|
||||
VXSA = 1 # ' single quote straight
|
||||
VXSB = 1 # ` grave/backtick straight
|
||||
VXSC = 1 # ? smooth
|
||||
cv87 = 2 # .:; square punctuation marks
|
||||
cv86 = 2 # ijäöü square diacretics
|
||||
|
||||
[buildPlans.iosevka-fusion.variants.upright]
|
||||
cv26 = 3 # a double storey rounded
|
||||
@@ -86,12 +86,12 @@ cv46 = 1 # v straight
|
||||
cv47 = 1 # w straight
|
||||
cv48 = 1 # x straight
|
||||
cv50 = 1 # z straight
|
||||
cv78 = 3 # 1 serified with base
|
||||
cv79 = 1 # 2 straight
|
||||
cv81 = 3 # 4 semi-open contour
|
||||
cv83 = 3 # 6 straight
|
||||
cv86 = 3 # 9 straight
|
||||
cv96 = 2 # & et open top (ampersand)
|
||||
cv72 = 3 # 1 serified with base
|
||||
cv73 = 1 # 2 straight
|
||||
cv75 = 3 # 4 semi-open contour
|
||||
cv77 = 3 # 6 straight
|
||||
cv80 = 3 # 9 straight
|
||||
cv89 = 2 # & et open top (ampersand)
|
||||
|
||||
[buildPlans.iosevka-fusion.variants.italic]
|
||||
cv26 = 1 # a double storey straight
|
||||
@@ -110,12 +110,12 @@ cv46 = 2 # v curly
|
||||
cv47 = 2 # w curly short middle top
|
||||
cv48 = 2 # x curly
|
||||
cv50 = 4 # z curly
|
||||
cv78 = 2 # 1 serified no base
|
||||
cv79 = 2 # 2 curly
|
||||
cv81 = 1 # 4 closed contour crossing
|
||||
cv83 = 1 # 6 closed contour
|
||||
cv86 = 1 # 9 closed contour
|
||||
cv96 = 4 # & et open top toothed (ampersand)
|
||||
cv72 = 2 # 1 serified no base
|
||||
cv73 = 2 # 2 curly
|
||||
cv75 = 1 # 4 closed contour crossing
|
||||
cv77 = 1 # 6 closed contour
|
||||
cv80 = 1 # 9 closed contour
|
||||
cv89 = 4 # & et open top toothed (ampersand)
|
||||
|
||||
[buildPlans.iosevka-fusion.weights.thin]
|
||||
shape = 100
|
||||
|
||||
@@ -57,5 +57,5 @@ install -Dm644 %SOURCE3 %buildroot/%_datadir/doc/sarasa-gothic-super-fonts/
|
||||
/%{_datadir}/fonts/sarasa-gothic-super/
|
||||
|
||||
%changelog
|
||||
* Wed Apr 26 2023 windowsboy111 <windowsboy111@fyralabs.com> - 0.40.6-1
|
||||
* Wed Apr 26 2023 windowsboy111 <windowsboy111@fyralabs.com> - 0.40.6
|
||||
- Initial package
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
%define osuresver 2023.719.0
|
||||
%define osuresver 2023.605.0
|
||||
%global debug_package %{nil}
|
||||
|
||||
Name: osu-lazer
|
||||
Version: 2023.717.0
|
||||
Version: 2023.621.0
|
||||
Release: 1%{?dist}
|
||||
Summary: The future of osu! and the beginning of an open era! Commonly known by the codename osu!lazer. Pew pew.
|
||||
ExclusiveArch: x86_64
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
%global real_name prismlauncher
|
||||
%global nice_name PrismLauncher
|
||||
|
||||
%global commit 593f45298614843c14acb11994320f90a474c750
|
||||
%global commit 12cd8a7bea991c2a8d4b59b1cfc9f7c246819fc9
|
||||
%global shortcommit %(c=%{commit}; echo ${c:0:7})
|
||||
%global libnbtplusplus_commit 2203af7eeb48c45398139b583615134efd8d407f
|
||||
%global quazip_commit 6117161af08e366c37499895b00ef62f93adc345
|
||||
@@ -153,15 +152,15 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/org.prismlauncher.Pri
|
||||
%files
|
||||
%doc README.md
|
||||
%license LICENSE COPYING.md
|
||||
%dir %{_datadir}/%{nice_name}
|
||||
%dir %{_datadir}/%{real_name}
|
||||
%{_bindir}/%{real_name}
|
||||
%{_datadir}/%{nice_name}/NewLaunch.jar
|
||||
%{_datadir}/%{nice_name}/JavaCheck.jar
|
||||
%{_datadir}/%{nice_name}/qtlogging.ini
|
||||
%{_datadir}/%{real_name}/NewLaunch.jar
|
||||
%{_datadir}/%{real_name}/JavaCheck.jar
|
||||
%{_datadir}/applications/org.prismlauncher.PrismLauncher.desktop
|
||||
%{_metainfodir}/org.prismlauncher.PrismLauncher.metainfo.xml
|
||||
%{_datadir}/icons/hicolor/scalable/apps/org.prismlauncher.PrismLauncher.svg
|
||||
%{_datadir}/mime/packages/modrinth-mrpack-mime.xml
|
||||
%{_datadir}/PrismLauncher/qtlogging.ini
|
||||
%{_datadir}/qlogging-categories%{qt_version}/prismlauncher.categories
|
||||
%{_mandir}/man?/prismlauncher.*
|
||||
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
%global real_name prismlauncher
|
||||
%global nice_name PrismLauncher
|
||||
|
||||
%global commit 593f45298614843c14acb11994320f90a474c750
|
||||
%global commit 12cd8a7bea991c2a8d4b59b1cfc9f7c246819fc9
|
||||
%global shortcommit %(c=%{commit}; echo ${c:0:7})
|
||||
%global libnbtplusplus_commit 2203af7eeb48c45398139b583615134efd8d407f
|
||||
%global quazip_commit 6117161af08e366c37499895b00ef62f93adc345
|
||||
@@ -153,15 +152,15 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/org.prismlauncher.Pri
|
||||
%files
|
||||
%doc README.md
|
||||
%license LICENSE COPYING.md
|
||||
%dir %{_datadir}/%{nice_name}
|
||||
%dir %{_datadir}/%{real_name}
|
||||
%{_bindir}/%{real_name}
|
||||
%{_datadir}/%{nice_name}/NewLaunch.jar
|
||||
%{_datadir}/%{nice_name}/JavaCheck.jar
|
||||
%{_datadir}/%{nice_name}/qtlogging.ini
|
||||
%{_datadir}/%{real_name}/NewLaunch.jar
|
||||
%{_datadir}/%{real_name}/JavaCheck.jar
|
||||
%{_datadir}/applications/org.prismlauncher.PrismLauncher.desktop
|
||||
%{_metainfodir}/org.prismlauncher.PrismLauncher.metainfo.xml
|
||||
%{_datadir}/icons/hicolor/scalable/apps/org.prismlauncher.PrismLauncher.svg
|
||||
%{_datadir}/mime/packages/modrinth-mrpack-mime.xml
|
||||
%{_datadir}/PrismLauncher/qtlogging.ini
|
||||
%{_datadir}/qlogging-categories%{qt_version}/prismlauncher.categories
|
||||
%{_mandir}/man?/prismlauncher.*
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
Name: groovy-docs
|
||||
Version: 4.0.13
|
||||
Version: 4.0.12
|
||||
Release: 1%{?dist}
|
||||
Summary: Documentation for the Groovy programming language
|
||||
URL: https://groovy-lang.org/
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Name: groovy
|
||||
Version: 4.0.13
|
||||
Release: 1%{?dist}
|
||||
Version: 4.0.12
|
||||
Release: 2%{?dist}
|
||||
Summary: A multi-faceted language for the Java platform
|
||||
BuildArch: noarch
|
||||
URL: https://groovy-lang.org/
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
Name: kotlin-native
|
||||
Version: 1.9.0
|
||||
Version: 1.8.22
|
||||
Release: 1%{?dist}
|
||||
Summary: LLVM backend for the Kotlin compiler
|
||||
ExclusiveArch: x86_64
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
BuildArch: noarch
|
||||
Name: kotlin
|
||||
Version: 1.9.0
|
||||
Release: 1%{?dist}
|
||||
Version: 1.8.22
|
||||
Release: 2%{?dist}
|
||||
Summary: Statically typed programming language
|
||||
|
||||
License: Apache-2.0
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Name: gtk4-layer-shell
|
||||
Version: 1.0.1
|
||||
Release: 1%{?dist}
|
||||
Version: 1.0.0
|
||||
Release: 1%?dist
|
||||
Summary: Library to build desktop components using Layer Shell Wayland protocol and GTK4
|
||||
License: MIT
|
||||
URL: https://github.com/wmww/gtk4-layer-shell
|
||||
@@ -63,8 +63,7 @@ Requires: gtk4-layer-shell
|
||||
/usr/share/gir-1.0/Gtk4LayerShell-1.0.gir
|
||||
|
||||
%files doc
|
||||
/usr/share/gtk-doc/html/gtk4-layer-shell/
|
||||
|
||||
/usr/share/gtk-doc/html/gtk-layer-shell
|
||||
|
||||
%files vapi
|
||||
/usr/share/vala/vapi/gtk4-layer-shell-0.deps
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
%global __provides_exclude_from ^%{_libdir}/gtk-4.0
|
||||
|
||||
Name: terra-gtk4
|
||||
Version: 4.11.4
|
||||
Version: 4.10.4
|
||||
Release: 1%{?dist}
|
||||
Summary: GTK graphical user interface library
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
%global forgeurl https://gitlab.com/ubports/development/core/lomiri-ui-toolkit
|
||||
%global commit dcb3a523c56a400e5c3c163c2836cafca168767e
|
||||
%global commit 7df579c068335df31a704307d2bd20542233e5d2
|
||||
%forgemeta
|
||||
|
||||
Name: lomiri-ui-toolkit
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
%global forgeurl https://gitlab.com/ubports/development/core/lomiri-url-dispatcher
|
||||
%global commit 59701fda2657096ed3f4c7d22af42066f9d0a294
|
||||
%global commit 23c42355cfbb7ab2ad9702d0362ed5590cf994bd
|
||||
%forgemeta
|
||||
|
||||
Name: lomiri-url-dispatcher
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
%define debug_package %nil
|
||||
|
||||
Name: moby-buildx
|
||||
Version: 0.11.2
|
||||
Release: 1%{?dist}
|
||||
Version: 0.11.0
|
||||
Release: 2%{?dist}
|
||||
Summary: Docker CLI plugin for extended build capabilities with BuildKit
|
||||
|
||||
License: Apache-2.0
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
%define debug_package %{nil}
|
||||
|
||||
Name: moby-compose
|
||||
Version: 2.20.2
|
||||
Version: 2.19.0
|
||||
Release: 1%{?dist}
|
||||
Summary: Define and run multi-container applications with Docker
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
%global csrc_commit 561b417c65791cd8356b5f73620914ceff845d10
|
||||
%global commit c1a82aa5c5ab68dfc2ab6f09779d9ab9bbf3758f
|
||||
%global commit 88114948c41f38d7366dc8d80abc09f00c2492fa
|
||||
%global ver 1.9.5
|
||||
%global debug_package %nil
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
%global debug_package %{nil}
|
||||
|
||||
Name: nim
|
||||
Version: 1.6.14
|
||||
Version: 1.6.12
|
||||
Release: 1%{?dist}
|
||||
Summary: Imperative, multi-paradigm, compiled programming language
|
||||
License: MIT and BSD
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Name: blackbox-terminal
|
||||
Version: 0.14.0
|
||||
Release: 1%{?dist}
|
||||
Version: 0.13.2
|
||||
Release: %autorelease
|
||||
Summary: A beautiful GTK 4 terminal
|
||||
License: GPL-3.0
|
||||
URL: https://gitlab.gnome.org/raggesilver/blackbox
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
Name: click
|
||||
Version: 0.5.0
|
||||
Release: %autorelease
|
||||
Release: 2%?dist
|
||||
Summary: An app building method
|
||||
License: LGPL-3.0
|
||||
URL: https://gitlab.com/ubports/development/core/click
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
%define _build_id_links none
|
||||
|
||||
Name: sass
|
||||
Version: 1.64.0
|
||||
Version: 1.63.6
|
||||
Release: 1%{?dist}
|
||||
Summary: The reference implementation of Sass, written in Dart
|
||||
License: MIT
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
Summary: tauOS GTK/GNOME Shell Themes
|
||||
Name: tau-helium
|
||||
Version: 1.5.2
|
||||
Release: 1%{?dist}
|
||||
Version: 1.5.1
|
||||
Release: 2%{?dist}
|
||||
License: GPL-3.0
|
||||
URL: https://github.com/tau-OS/tau-helium
|
||||
Source0: https://github.com/tau-OS/tau-helium/archive/refs/tags/%{version}.tar.gz
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
Name: xpadneo
|
||||
Version: 0.9.5
|
||||
Release: 1%{?dist}
|
||||
Release: 1%?dist
|
||||
Summary: Advanced Linux Driver for Xbox One Wireless Gamepad
|
||||
Group: System Environment/Kernel
|
||||
License: GPL-3.0
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
%global pypi_name protobuf
|
||||
|
||||
Name: python-%{pypi_name}
|
||||
Version: 4.23.4
|
||||
Version: 4.23.3
|
||||
Release: 1%{?dist}
|
||||
Summary: Protocol Buffers
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
%define debug_package %{nil}
|
||||
|
||||
Name: python3-ruff
|
||||
Version: 0.0.278
|
||||
Version: 0.0.275
|
||||
Release: 1%{?dist}
|
||||
Summary: An extremely fast Python linter, written in Rust
|
||||
License: MIT
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
%global crate felix
|
||||
|
||||
Name: rust-felix
|
||||
Version: 2.5.0
|
||||
Version: 2.4.1
|
||||
Release: 1%{?dist}
|
||||
Summary: Tui file manager with vim-like key mapping
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
%global crate gping
|
||||
|
||||
Name: rust-gping
|
||||
Version: 1.13.1
|
||||
Version: 1.12.0
|
||||
Release: 1%{?dist}
|
||||
Summary: Ping, but with a graph
|
||||
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
%global crate joshuto
|
||||
|
||||
Name: rust-joshuto
|
||||
Version: 0.9.5
|
||||
Release: 1%{?dist}
|
||||
Version: 0.9.4
|
||||
Release: %autorelease
|
||||
Summary: Terminal file manager inspired by ranger
|
||||
|
||||
License: LGPL-3.0
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
%global crate kondo-ui
|
||||
|
||||
Name: rust-kondo-ui
|
||||
Version: 0.7.0
|
||||
Version: 0.6.0
|
||||
Release: 1%{?dist}
|
||||
Summary: Filesystem cleaning tool that recursively searches directories for known project structures and allows you to clean them of unnecessary files like build artifacts
|
||||
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
project pkg {
|
||||
arches = ["x86_64"]
|
||||
rpm {
|
||||
spec = "rust-kondo.spec"
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
%global crate kondo
|
||||
|
||||
Name: rust-kondo
|
||||
Version: 0.7
|
||||
Version: 0.6
|
||||
Release: 1%{?dist}
|
||||
Summary: Filesystem cleaning tool for projects
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
Name: rnote
|
||||
Version: 0.7.1
|
||||
Version: 0.7.0
|
||||
Release: 1%{?dist}
|
||||
Summary: Sketch and take handwritten notes.
|
||||
License: GPL-3.0
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
%global crate anda
|
||||
|
||||
Name: rust-anda
|
||||
Version: 0.1.18
|
||||
Version: 0.1.17
|
||||
Release: 1%{?dist}
|
||||
Summary: Andaman Build toolchain
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
%endif
|
||||
|
||||
Name: codium
|
||||
Version: 1.80.1.23194
|
||||
Release: 1%{?dist}
|
||||
Version: 1.79.2.23166
|
||||
Release: 2%{?dist}
|
||||
Summary: Code editing. Redefined.
|
||||
License: MIT
|
||||
URL: https://vscodium.com/
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
%endif
|
||||
|
||||
Name: electron
|
||||
Version: 25.3.1
|
||||
Version: 25.2.0
|
||||
Release: 1%{?dist}
|
||||
Summary: Build cross platform desktop apps with web technologies
|
||||
License: MIT
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
%global forgeurl https://github.com/GitCredentialManager/git-credential-manager
|
||||
|
||||
Name: gcm-core
|
||||
Version: 2.2.2
|
||||
Version: 2.1.2
|
||||
%forgemeta
|
||||
Release: 1%{?dist}
|
||||
Summary: Secure, cross-platform Git credential storage
|
||||
@@ -17,11 +17,11 @@ Source0: %{forgesource}
|
||||
Provides: %{long_name} = %{version}-%{release}
|
||||
Provides: %{long_name}-core = %{version}-%{release}
|
||||
|
||||
BuildRequires: dotnet-sdk-7.0
|
||||
BuildRequires: dotnet-sdk-6.0
|
||||
# Require DPKG, so that we can use the `dpkg-architecture` command. which makes the build script happy.
|
||||
# TODO: Better solution: Patch out the debian-specific packaging code.
|
||||
BuildRequires: dpkg-dev
|
||||
Requires: dotnet-runtime-7.0
|
||||
Requires: dotnet-runtime-6.0
|
||||
|
||||
|
||||
%description
|
||||
|
||||
@@ -1,50 +1,98 @@
|
||||
%global mxver 6.27.6
|
||||
%global jvmci 22.0-b01
|
||||
%global gsummary Universal virtual machine for running programs in different languages
|
||||
%ifarch x86_64
|
||||
%global garch amd64
|
||||
%elifarch aarch64
|
||||
%global garch aarch64
|
||||
%endif
|
||||
%global desc %{expand:
|
||||
GraalVM is a high-performance JDK distribution designed to accelerate the
|
||||
execution of applications written in Java and other JVM languages along with
|
||||
support for JavaScript, Ruby, Python, and a number of other popular languages.}
|
||||
|
||||
Name: graalvm
|
||||
Version: 23.0.0
|
||||
Release: 1%{?dist}
|
||||
Version: 22.3.2
|
||||
Release: 2%{?dist}
|
||||
URL: https://www.graalvm.org/
|
||||
Source0: https://github.com/oracle/graal/archive/refs/tags/vm-ce-%version.tar.gz
|
||||
Source1: https://github.com/graalvm/mx/archive/refs/tags/%mxver.tar.gz
|
||||
Source2: https://github.com/graalvm/graal-jvmci-8/releases/download/jvmci-%jvmci/openjdk-8u302+06-jvmci-%jvmci-fastdebug-linux-amd64.tar.gz
|
||||
Summary: %gsummary
|
||||
Summary: %{gsummary}
|
||||
License: GPL-2.0
|
||||
Requires: python3.10
|
||||
BuildRequires: fdupes
|
||||
# https://mail.openjdk.org/pipermail/graal-dev/2015-December/004050.html
|
||||
BuildRequires: libstdc++-static hg ant gcc-c++ make cmake git java-latest-openjdk-devel
|
||||
# java-1.8.0-openjdk-devel java-11-openjdk-devel java-17-openjdk-devel java-latest-openjdk-devel
|
||||
|
||||
%description
|
||||
%{desc}
|
||||
|
||||
%define _p(v) %{expand:
|
||||
%package jdk%1
|
||||
Source%1: https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-%{version}/graalvm-ce-java%1-linux-%{garch}-%{version}.tar.gz
|
||||
Summary: %{gsummary} (JDK %1)
|
||||
%description jdk%1
|
||||
%{desc}
|
||||
JDK Version: %1
|
||||
|
||||
%package jdk%1-devel
|
||||
Summary: Development files for graalvm-jdk%1
|
||||
%description jdk%1-devel
|
||||
%summary.
|
||||
}
|
||||
|
||||
%_p 11
|
||||
%_p 17
|
||||
%dnl %_p 19
|
||||
|
||||
%prep
|
||||
git clone https://github.com/oracle/graal
|
||||
cd graal
|
||||
git checkout vm-ce-%version
|
||||
cd ..
|
||||
tar xf %SOURCE1
|
||||
tar xf %SOURCE2
|
||||
tar -xzf %{SOURCE11}
|
||||
tar -xzf %{SOURCE17}
|
||||
%dnl tar -xzf %{SOURCE19}
|
||||
ls
|
||||
|
||||
mv graalvm-ce-java11-%version/GRAALVM-README.md .
|
||||
|
||||
|
||||
%build
|
||||
PATH="$PATH:$PWD/mx-%mxver"
|
||||
JAVA_HOME=$PWD/openjdk1.8.0_302-jvmci-%jvmci-fastdebug
|
||||
cd graal/vm
|
||||
mx --java-home $JAVA_HOME --env ce build
|
||||
|
||||
%install
|
||||
ls -alh graal/vm
|
||||
%define _i(v) %{expand:
|
||||
cd graalvm-ce-java%1-%{version}
|
||||
mkdir -p %{buildroot}/usr/lib/jvm/java-%1-graalvm/ %{buildroot}/usr/share/licenses/%{name}-jdk%1
|
||||
cp -a -t %{buildroot}/usr/lib/jvm/java-%1-graalvm/ *
|
||||
install -DTm644 LICENSE.txt %{buildroot}/usr/share/licenses/%{name}-jdk%1/LICENSE
|
||||
%fdupes %buildroot/usr/lib/jvm/java-%1-graalvm/
|
||||
cd ..
|
||||
}
|
||||
%_i 11
|
||||
%_i 17
|
||||
%dnl %_i 19
|
||||
chmod +x %buildroot/usr/lib/jvm/java-*-graalvm/lib/*.so
|
||||
|
||||
%files jdk11
|
||||
%doc GRAALVM-README.md
|
||||
%license LICENSE
|
||||
/usr/lib/jvm/java-11-graalvm/
|
||||
%ghost /usr/lib/jvm/java-11-graalvm/include/
|
||||
%ghost /usr/lib/jvm/java-11-graalvm/languages/nfi/include/
|
||||
%ghost /usr/lib/jvm/java-11-graalvm/lib/polyglot/polyglot_types.h
|
||||
|
||||
%files
|
||||
%files jdk17
|
||||
%doc GRAALVM-README.md
|
||||
%license LICENSE
|
||||
/usr/lib/jvm/java-17-graalvm/
|
||||
%ghost /usr/lib/jvm/java-17-graalvm/include/
|
||||
%ghost /usr/lib/jvm/java-17-graalvm/languages/nfi/include/
|
||||
%ghost /usr/lib/jvm/java-17-graalvm/lib/polyglot/polyglot_types.h
|
||||
|
||||
%dnl %files jdk19
|
||||
%dnl %doc GRAALVM-README.md
|
||||
%dnl %license LICENSE
|
||||
%dnl /usr/lib/jvm/java-19-graalvm/
|
||||
|
||||
%files jdk11-devel
|
||||
/usr/lib/jvm/java-11-graalvm/include/
|
||||
/usr/lib/jvm/java-11-graalvm/languages/nfi/include/
|
||||
/usr/lib/jvm/java-11-graalvm/lib/polyglot/polyglot_types.h
|
||||
|
||||
%files jdk17-devel
|
||||
/usr/lib/jvm/java-17-graalvm/include/
|
||||
/usr/lib/jvm/java-17-graalvm/languages/nfi/include/
|
||||
/usr/lib/jvm/java-17-graalvm/lib/polyglot/polyglot_types.h
|
||||
|
||||
%changelog
|
||||
* Sat Jun 17 2023 windowsboy111 <windowsboy111@fyralabs.com> - 22.3.2-2
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
Name: gradle
|
||||
Version: 8.2.1
|
||||
Version: 8.1.1
|
||||
Release: 1%{?dist}
|
||||
Summary: Powerful build system for the JVM
|
||||
URL: https://gradle.org/
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
diff -up HandBrake-1.6.0/gtk/configure.ac.fdk HandBrake-1.6.0/gtk/configure.ac
|
||||
--- HandBrake-1.6.0/gtk/configure.ac.fdk 2022-12-28 09:43:46.000000000 +0100
|
||||
+++ HandBrake-1.6.0/gtk/configure.ac 2023-01-23 20:50:40.075455676 +0100
|
||||
@@ -215,10 +215,6 @@ else
|
||||
HB_LIBS="$HB_LIBS -lx264"
|
||||
fi
|
||||
|
||||
-if test "x$use_fdk_aac" = "xyes" ; then
|
||||
- HB_LIBS="$HB_LIBS -lfdk-aac"
|
||||
-fi
|
||||
-
|
||||
if test "x$use_x265" = "xyes" ; then
|
||||
HB_LIBS="$HB_LIBS -lx265"
|
||||
fi
|
||||
@@ -1,13 +0,0 @@
|
||||
diff -up HandBrake-1.2.0/test/module.defs.va HandBrake-1.2.0/test/module.defs
|
||||
--- HandBrake-1.2.0/test/module.defs.va 2018-12-16 18:16:51.000000000 +0100
|
||||
+++ HandBrake-1.2.0/test/module.defs 2019-01-21 00:40:28.279840862 +0100
|
||||
@@ -25,9 +25,6 @@ endif
|
||||
|
||||
ifeq (1,$(FEATURE.qsv))
|
||||
TEST.GCC.D += USE_QSV HAVE_THREADS=1
|
||||
-ifeq ($(BUILD.system),linux)
|
||||
- TEST.GCC.l += va va-drm
|
||||
-endif
|
||||
endif
|
||||
|
||||
ifeq (1,$(FEATURE.vce))
|
||||
@@ -1,12 +0,0 @@
|
||||
diff -up HandBrake-1.6.0/make/configure.py.orig HandBrake-1.6.0/make/configure.py
|
||||
--- HandBrake-1.6.0/make/configure.py.orig 2022-12-28 09:43:46.000000000 +0100
|
||||
+++ HandBrake-1.6.0/make/configure.py 2023-01-06 23:39:40.041593595 +0100
|
||||
@@ -1665,7 +1665,7 @@ try:
|
||||
lipo = ToolProbe( 'LIPO.exe', 'lipo', 'lipo', abort=False )
|
||||
pkgconfig = ToolProbe( 'PKGCONFIG.exe', 'pkgconfig', 'pkg-config', abort=True, minversion=[0,27,0] )
|
||||
meson = ToolProbe( 'MESON.exe', 'meson', 'meson', abort=True, minversion=[0,47,0] )
|
||||
- nasm = ToolProbe( 'NASM.exe', 'asm', 'nasm', abort=True, minversion=[2,13,0] )
|
||||
+ nasm = ToolProbe( 'NASM.exe', 'asm', 'nasm', abort=False, minversion=[2,13,0] )
|
||||
ninja = ToolProbe( 'NINJA.exe', 'ninja', 'ninja-build', 'ninja', abort=True )
|
||||
|
||||
xcodebuild = ToolProbe( 'XCODEBUILD.exe', 'xcodebuild', 'xcodebuild', abort=(True if (not xcode_opts['disabled'] and (build_tuple.match('*-*-darwin*') and cross is None)) else False), versionopt='-version', minversion=[10,3,0] )
|
||||
@@ -1,10 +0,0 @@
|
||||
--- a/gtk/module.rules
|
||||
+++ b/gtk/module.rules
|
||||
@@ -21,6 +21,7 @@ $(GTK.CONFIGURE.stamp): $(GTK.src/)configure.ac $(GTK.src/)src/Makefile.am
|
||||
CXX="$(GCC.gxx)" \
|
||||
CFLAGS="$(call fn.ARGS,GTK.GCC,.g .O *D *W ?extra)" \
|
||||
LDFLAGS="$(call fn.ARGS,GTK.GCC,?strip .g .O ?extra.exe)" \
|
||||
+ STRIP="$(STRIP.exe)" \
|
||||
PYTHON="$(PYTHON.exe)" \
|
||||
--prefix=$(PREFIX) \
|
||||
--with-hb=$(call fn.ABSOLUTE,$(BUILD/))
|
||||
@@ -1,13 +0,0 @@
|
||||
--- a/test/module.defs 2020-06-13 15:05:35.000000000 +0100
|
||||
+++ a/test/module.defs 2020-07-03 11:15:53.951205608 +0100
|
||||
@@ -30,6 +30,10 @@
|
||||
endif
|
||||
endif
|
||||
|
||||
+ifeq (1,$(FEATURE.x265))
|
||||
+ TEST.GCC.l += x265
|
||||
+endif
|
||||
+
|
||||
ifeq (1,$(FEATURE.flatpak))
|
||||
TEST.GCC.l += glib-2.0
|
||||
endif
|
||||
@@ -1,5 +0,0 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "terra-HandBrake.spec"
|
||||
}
|
||||
}
|
||||
Binary file not shown.
@@ -1,234 +0,0 @@
|
||||
# https://pkgs.rpmfusion.org/cgit/free/HandBrake.git/tree/HandBrake.spec
|
||||
%global commit0 04413a27e6d616cddd98c2c6468aca2bf91b87b5
|
||||
%global commit_date %(date '+%Y%m%d')
|
||||
%global shortcommit0 %(c=%{commit0}; echo ${c:0:7})
|
||||
%global tag %{version}
|
||||
%global pkg HandBrake
|
||||
|
||||
# Build with "--without ffmpeg" or enable this to use bundled libAV
|
||||
# instead of system FFMpeg libraries.
|
||||
#global _without_ffmpeg 1
|
||||
|
||||
%ifarch i686 x86_64
|
||||
%global _with_asm 1
|
||||
%global _with_vpl 1
|
||||
%endif
|
||||
|
||||
%global desktop_id fr.handbrake.ghb
|
||||
|
||||
Name: terra-HandBrake
|
||||
Version: 1.6.1
|
||||
Release: 1%?dist
|
||||
Summary: An open-source multiplatform video transcoder
|
||||
License: GPL-2.0-or-later
|
||||
URL: https://handbrake.fr/
|
||||
|
||||
%if 0%{?tag:1}
|
||||
#Source0: https://github.com/%pkg/%pkg/releases/download/%version/%pkg-%version-source.tar.bz2
|
||||
Source1: https://github.com/%pkg/%pkg/releases/download/%version/%pkg-%version-source.tar.bz2.sig
|
||||
# import from https://handbrake.fr/openpgp.php or https://github.com/HandBrake/HandBrake/wiki/OpenPGP
|
||||
# gpg2 --export --export-options export-minimal 1629C061B3DDE7EB4AE34B81021DB8B44E4A8645 > gpg-keyring-1629C061B3DDE7EB4AE34B81021DB8B44E4A8645.gpg
|
||||
Source2: gpg-keyring-1629C061B3DDE7EB4AE34B81021DB8B44E4A8645.gpg
|
||||
%else
|
||||
#Source0: https://github.com/%pkg/%pkg/archive/%commit0.tar.gz#/%{name}-%{shortcommit0}.tar.gz
|
||||
%endif
|
||||
|
||||
%{?_without_ffmpeg:Source10: https://libav.org/releases/libav-12.tar.gz}
|
||||
|
||||
# Pass strip tool override to gtk/configure
|
||||
Patch0: %pkg-nostrip.patch
|
||||
# Don't link with libva unnecessarily
|
||||
Patch1: %pkg-no-libva.patch
|
||||
# Don't link with fdk_aac unnecessarily
|
||||
Patch2: %pkg-no-fdk_aac.patch
|
||||
# Fix build on non-x86 (without nasm)
|
||||
Patch3: %pkg-no-nasm.patch
|
||||
# Patch from Gentoo
|
||||
Patch4: %pkg-x265-link.patch
|
||||
|
||||
BuildRequires: a52dec-devel >= 0.7.4
|
||||
BuildRequires: cmake
|
||||
BuildRequires: dbus-glib-devel
|
||||
BuildRequires: desktop-file-utils
|
||||
%if 0%{?tag:1}
|
||||
BuildRequires: gnupg2
|
||||
%endif
|
||||
BuildRequires: libappstream-glib
|
||||
%{!?_without_ffmpeg:BuildRequires: ffmpeg-free-devel >= 3.5}
|
||||
# Should be >= 2.6:
|
||||
BuildRequires: freetype-devel >= 2.4.11
|
||||
# Should be >= 0.19.7:
|
||||
BuildRequires: fribidi-devel >= 0.19.4
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: gstreamer1-plugins-base-devel
|
||||
BuildRequires: intltool
|
||||
BuildRequires: jansson-devel
|
||||
BuildRequires: turbojpeg-devel
|
||||
BuildRequires: lame-devel >= 3.98
|
||||
BuildRequires: libappindicator-gtk3-devel
|
||||
# Should be >= 0.13.2:
|
||||
BuildRequires: libass-devel >= 0.13.1
|
||||
BuildRequires: libbluray-devel >= 0.9.3
|
||||
BuildRequires: libdav1d-devel
|
||||
BuildRequires: libdrm-devel
|
||||
BuildRequires: libdvdnav-devel >= 5.0.1
|
||||
BuildRequires: libdvdread-devel >= 5.0.0
|
||||
BuildRequires: libgudev-devel
|
||||
%if 0%{?_with_vpl:1}
|
||||
BuildRequires: intel-mediasdk-devel
|
||||
BuildRequires: oneVPL-devel
|
||||
BuildRequires: libva-devel
|
||||
%endif
|
||||
BuildRequires: libmpeg2-devel >= 0.5.1
|
||||
BuildRequires: libnotify-devel
|
||||
BuildRequires: librsvg2-devel
|
||||
BuildRequires: libsamplerate-devel
|
||||
BuildRequires: libtheora-devel
|
||||
BuildRequires: libtool
|
||||
BuildRequires: libvorbis-devel
|
||||
# Should be >= 1.5:
|
||||
BuildRequires: libvpx-devel >= 1.3
|
||||
BuildRequires: make
|
||||
BuildRequires: meson
|
||||
%if 0%{?_with_asm:1}
|
||||
BuildRequires: nasm
|
||||
%endif
|
||||
BuildRequires: numactl-devel
|
||||
BuildRequires: nv-codec-headers
|
||||
BuildRequires: opus-devel
|
||||
BuildRequires: python3
|
||||
BuildRequires: speex-devel
|
||||
BuildRequires: svt-av1-devel
|
||||
BuildRequires: x264-devel >= 0.148
|
||||
BuildRequires: x265-devel >= 1.9
|
||||
BuildRequires: xz-devel
|
||||
BuildRequires: zimg-devel
|
||||
BuildRequires: git
|
||||
BuildRequires: vulkan-loader
|
||||
|
||||
Requires: hicolor-icon-theme
|
||||
# needed for reading encrypted DVDs
|
||||
%{?fedora:Recommends: libdvdcss%_isa}
|
||||
Obsoletes: HandBrake-cli < %version-%release
|
||||
Provides: HandBrake-cli = %version-%release
|
||||
Provides: handbrake = %version-%release
|
||||
|
||||
%description
|
||||
%pkg is a general-purpose, free, open-source, cross-platform, multithreaded
|
||||
video transcoder software application. It can process most common multimedia
|
||||
files and any DVD or Bluray sources that do not contain any kind of copy
|
||||
protection.
|
||||
|
||||
This package contains the command line version of the program.
|
||||
|
||||
%package gui
|
||||
Summary: An open-source multiplatform video transcoder (GUI)
|
||||
Provides: handbrake-gui = %version-%release
|
||||
Requires: hicolor-icon-theme
|
||||
# needed for reading encrypted DVDs
|
||||
%{?fedora:Recommends: libdvdcss%_isa}
|
||||
# needed for live preview
|
||||
%{?fedora:Recommends: gstreamer1-plugins-good%_isa}
|
||||
|
||||
%description gui
|
||||
%pkg is a general-purpose, free, open-source, cross-platform, multithreaded
|
||||
video transcoder software application. It can process most common multimedia
|
||||
files and any DVD or Bluray sources that do not contain any kind of copy
|
||||
protection.
|
||||
|
||||
This package contains the main program with a graphical interface.
|
||||
|
||||
%prep
|
||||
%if 0%{?tag:1}
|
||||
%endif
|
||||
git clone https://github.com/%pkg/%pkg
|
||||
cd %pkg
|
||||
git checkout %{!?tag:%commit0}%{?tag:%version}
|
||||
%patch -P0 -p1
|
||||
%if 0%!?_with_vpl
|
||||
%patch -P1 -p1
|
||||
%endif
|
||||
%patch -P2 -p1
|
||||
%patch -P3 -p1
|
||||
%patch -P4 -p1
|
||||
|
||||
# Use system libraries in place of bundled ones
|
||||
for module in a52dec fdk-aac %{!?_without_ffmpeg:ffmpeg} libdav1d libdvdnav libdvdread libbluray %{?_with_vpl:libmfx libvpl} nvenc libvpx svt-av1 x265; do
|
||||
sed -i -e "/MODULES += contrib\/$module/d" make/include/main.defs
|
||||
done
|
||||
|
||||
# Fix desktop file
|
||||
sed -i -e 's/%desktop_id.svg/%desktop_id/g' gtk/src/%desktop_id.desktop
|
||||
|
||||
%build
|
||||
cd %pkg
|
||||
echo "HASH=%commit0" > version.txt
|
||||
echo "SHORTHASH=%shortcommit0" >> version.txt
|
||||
echo "DATE=$(date "+%Y-%m-%d %T" -d %date)" >> version.txt
|
||||
%if 0%{?tag:1}
|
||||
echo "TAG=%version" >> version.txt
|
||||
echo "TAG_HASH=%commit0" >> version.txt
|
||||
%endif
|
||||
|
||||
# By default the project is built with optimizations for speed and no debug.
|
||||
# Override configure settings by passing RPM_OPT_FLAGS and disabling preset
|
||||
# debug options.
|
||||
echo "GCC.args.O.speed = %optflags -I%_includedir/vpl -I%_includedir/ffmpeg -ldl -lx265 %{?_with_vpl:-lvpl}" > custom.defs
|
||||
echo "GCC.args.g.none = " >> custom.defs
|
||||
|
||||
# Not an autotools configure script.
|
||||
./configure \
|
||||
--build build \
|
||||
--prefix=%_prefix \
|
||||
--debug=std \
|
||||
--strip=%_bindir/echo \
|
||||
--verbose \
|
||||
--disable-df-fetch \
|
||||
--disable-df-verify \
|
||||
--disable-gtk-update-checks \
|
||||
%{?_with_asm:--enable-asm} \
|
||||
--enable-x265 \
|
||||
--disable-numa \
|
||||
--enable-fdk-aac \
|
||||
%{?_with_vpl:--enable-qsv}
|
||||
|
||||
%make_build -C build V=1
|
||||
|
||||
%install
|
||||
cd %pkg
|
||||
%make_install -C build
|
||||
|
||||
cp *.markdown COPYING ..
|
||||
|
||||
# Desktop file, icons and AppStream metadata from FlatPak build (more complete)
|
||||
rm -f %buildroot%_datadir/applications/ghb.desktop \
|
||||
%buildroot%_datadir/icons/hicolor/scalable/apps/hb-icon.svg
|
||||
|
||||
install -Dpm644 gtk/src/%desktop_id.desktop \
|
||||
%buildroot%_datadir/applications/%desktop_id.desktop
|
||||
install -Dpm644 gtk/src/%desktop_id.svg \
|
||||
%buildroot%_datadir/icons/hicolor/scalable/apps/%desktop_id.svg
|
||||
|
||||
%find_lang ghb
|
||||
|
||||
%check
|
||||
desktop-file-validate %buildroot%_datadir/applications/%desktop_id.desktop
|
||||
appstream-util validate-relax --nonet %buildroot%_metainfodir/%desktop_id.metainfo.xml
|
||||
|
||||
%files gui
|
||||
%license COPYING
|
||||
%doc AUTHORS.markdown NEWS.markdown README.markdown THANKS.markdown
|
||||
%_bindir/ghb
|
||||
%_metainfodir/%desktop_id.metainfo.xml
|
||||
%_datadir/applications/%desktop_id.desktop
|
||||
%_datadir/icons/hicolor/scalable/apps/%desktop_id.svg
|
||||
%_datadir/locale/*/LC_MESSAGES/ghb.mo
|
||||
|
||||
|
||||
%files
|
||||
%license COPYING
|
||||
%doc AUTHORS.markdown NEWS.markdown README.markdown THANKS.markdown
|
||||
%_bindir/HandBrakeCLI
|
||||
|
||||
%changelog
|
||||
%autochangelog
|
||||
@@ -3,7 +3,7 @@
|
||||
%global priority 90
|
||||
|
||||
%global real_name vala
|
||||
%global commit 0029664e982b0ed15a249c5527aa01d498ba8e78
|
||||
%global commit e9a6d92c00b734ab689493b7fc1874db227067c7
|
||||
%global shortcommit %(c=%{commit}; echo ${c:0:7})
|
||||
%global repo https://gitlab.gnome.org/GNOME/%{real_name}.git
|
||||
|
||||
|
||||
Reference in New Issue
Block a user