Compare commits

..

73 Commits

Author SHA1 Message Date
madonuko 43c82bcee7 ? 2025-12-23 19:03:15 +08:00
madomado db9b19680f Update intellij-ultimate-idea.spec
Signed-off-by: madomado <wboy111@outlook.com>
2023-07-09 15:16:09 +08:00
madomado 527810c78f Update intellij-ultimate-idea.spec
Signed-off-by: madomado <wboy111@outlook.com>
2023-07-09 00:02:22 +08:00
madomado c93f2b1ab2 Update intellij-ultimate-idea.spec
Signed-off-by: madomado <wboy111@outlook.com>
2023-07-08 23:31:05 +08:00
madomado 96ab848b18 Update intellij-ultimate-idea.spec
Signed-off-by: madomado <wboy111@outlook.com>
2023-07-08 22:44:33 +08:00
madomado fd2612a0ca Update intellij-ultimate-idea.spec
Signed-off-by: madomado <wboy111@outlook.com>
2023-07-08 22:34:41 +08:00
madomado 7b0dcab59d Update intellij-community-idea.spec
Signed-off-by: madomado <wboy111@outlook.com>
2023-07-08 22:33:52 +08:00
madomado 537dbf0725 Merge branch 'f38' into w/idea 2023-07-08 21:58:13 +08:00
Raboneko 230e7361a9 bump: gping 2023-07-08 13:21:44 +00:00
Raboneko a5cd86aa88 bump(nightly): nim-nightly 2023-07-08 01:45:01 +00:00
Raboneko 3f9a306324 bump: codium 2023-07-07 19:11:06 +00:00
Raboneko 41775e17c7 bump: gcm-core 2023-07-07 18:39:38 +00:00
Raboneko 5da482cd1f bump: lomiri-ui-toolkit 2023-07-07 12:33:00 +00:00
Raboneko dcc6a29d2f bump: osu-lazer 2023-07-07 05:15:12 +00:00
Raboneko 3bbed9121d bump(nightly): nim-nightly vala-nightly 2023-07-07 01:48:27 +00:00
Raboneko 36fc908546 bump: protobuf 2023-07-06 23:36:57 +00:00
Raboneko b9347a82c6 bump: gala 2023-07-06 16:45:26 +00:00
madomado 20b102dadd fix(metainfo): wingpanel-indicator-nightlight (#629)
Signed-off-by: madomado <wboy111@outlook.com>
2023-07-06 15:15:33 +02:00
madomado 075c0c6460 fix(arch): kondo (#627)
Signed-off-by: madomado <wboy111@outlook.com>
2023-07-06 14:44:24 +02:00
Raboneko 0657ec828c bump: kotlin-native kotlin 2023-07-06 09:37:50 +00:00
Raboneko ce2f259242 bump: kondo-ui kondo 2023-07-06 05:38:39 +00:00
Raboneko 10b69194eb bump(nightly): nim-nightly 2023-07-06 01:47:47 +00:00
Raboneko 0e5edc6c7f bump: discord-ptb-openasar discord-ptb moby-buildx 2023-07-05 17:14:32 +00:00
Raboneko 5861386293 bump: osu-lazer 2023-07-05 06:22:15 +00:00
Raboneko cb0cd31841 bump(nightly): latte-dock-nightly nim-nightly 2023-07-05 01:45:02 +00:00
Raboneko c6d09f9d3b bump: ruff 2023-07-04 22:15:43 +00:00
Raboneko 4be3240b97 bump: joshuto 2023-07-04 20:17:22 +00:00
Raboneko c7c77aa4e5 bump: rnote 2023-07-04 13:25:31 +00:00
Raboneko b3bdcd580b bump(nightly): nim-nightly 2023-07-04 01:47:06 +00:00
Raboneko b64db4fe87 bump: elementary-notifications wingpanel-indicator-nightlight 2023-07-03 23:16:49 +00:00
Raboneko bb126f8232 bump: gtk4 2023-07-03 19:12:55 +00:00
Raboneko 3f69d1570b bump: ruff 2023-07-03 18:39:28 +00:00
Raboneko 386038db96 bump(nightly): nim-nightly 2023-07-03 01:46:45 +00:00
madomado 421f14d084 fix(ci): build.yml (#626) 2023-07-02 17:40:24 +07:00
madomado cbce2a9d54 fix(files): gtk4-layer-shell (#625)
* fix(files): gtk4-layer-shell

Signed-off-by: madomado <wboy111@outlook.com>

* Update gtk4-layer-shell.spec

---------

Signed-off-by: madomado <wboy111@outlook.com>
2023-07-02 17:40:14 +07:00
Raboneko 0e26c03937 bump: gtk4-layer-shell 2023-07-02 03:41:09 +00:00
Raboneko b8b0f2b7a7 bump(nightly): nim-nightly 2023-07-02 01:52:30 +00:00
Raboneko 42aaf0f2a8 bump(nightly): nim-nightly 2023-07-01 01:52:43 +00:00
Raboneko e07eab194b bump: gradle 2023-06-30 20:16:10 +00:00
Raboneko 41041c7308 bump: discord-canary-openasar discord-canary 2023-06-30 19:12:24 +00:00
Raboneko 3a4489dcb9 bump: lomiri lomiri-ui-toolkit lomiri-url-dispatcher 2023-06-30 11:12:58 +00:00
madomado a2691aba81 fix(files): wingpanel-indicator-bluetooth (#621)
* fix(files): wingpanel-indicator-bluetooth

* Update wingpanel-indicator-bluetooth.spec

Signed-off-by: madomado <wboy111@outlook.com>

* Update wingpanel-indicator-bluetooth.spec

Signed-off-by: madomado <wboy111@outlook.com>

---------

Signed-off-by: madomado <wboy111@outlook.com>
2023-06-30 09:10:51 +02:00
madomado 7bc528fc5c fix: switchboard-plug-onlineaccounts (#623)
* fix: switchboard-plug-onlineaccounts

* Update switchboard-plug-onlineaccounts.spec

Signed-off-by: madomado <wboy111@outlook.com>

---------

Signed-off-by: madomado <wboy111@outlook.com>
2023-06-30 09:10:09 +02:00
madomado ec7e1ee4a4 fix: blahaj (#619)
Signed-off-by: madomado <wboy111@outlook.com>
2023-06-30 09:09:32 +02:00
madomado b7f53a7601 fix: elementary-files (#622) 2023-06-30 12:42:40 +08:00
Raboneko 6ec9b8e733 bump(nightly): nim-nightly 2023-06-30 01:41:20 +00:00
Raboneko 9748a12175 bump: moby-compose 2023-06-29 22:14:22 +00:00
Raboneko e3df444240 bump: elementary-files elementary-sideload switchboard-plug-onlineaccounts wingpanel-indicator-bluetooth 2023-06-29 18:21:27 +00:00
madomado 536b434c4d fix(ci): escape double quotes for autobuild lint/dnf summary (#617)
Signed-off-by: madomado <wboy111@outlook.com>
2023-06-29 19:58:06 +07:00
cat-master21 f364b35373 fix(gala): include metainfo (#613)
* fix(gala): include metainfo

Signed-off-by: cat-master21 <96554164+cat-master21@users.noreply.github.com>

* fix(gala): check metainfo

Signed-off-by: cat-master21 <96554164+cat-master21@users.noreply.github.com>

* fix(metainfo): ~

Signed-off-by: madomado <wboy111@outlook.com>

* disable checks

Signed-off-by: madomado <wboy111@outlook.com>

---------

Signed-off-by: cat-master21 <96554164+cat-master21@users.noreply.github.com>
Signed-off-by: madomado <wboy111@outlook.com>
Co-authored-by: madomado <wboy111@outlook.com>
2023-06-29 15:14:19 +07:00
madomado 7b23a31762 fix: switchboard-plug-display wingpanel-indicator-bluetooth wingpanel-indicator-notifications (#615) 2023-06-29 15:13:50 +07:00
Raboneko 0297694078 bump: xpadneo 2023-06-29 05:44:00 +00:00
Raboneko 36df79fe80 bump: xpadneo 2023-06-29 05:16:05 +00:00
Raboneko 93a0a08716 bump(nightly): nim-nightly vala-nightly 2023-06-29 01:42:28 +00:00
cat-master21 e2e93121e6 fix(switchboard-plug-applications): fix building (#614)
* fix(switchboard-plug-applications): fix building

Signed-off-by: cat-master21 <96554164+cat-master21@users.noreply.github.com>

* Update switchboard-plug-applications.spec

* fix(metainfo): switchboard-plug-applications

Signed-off-by: madomado <wboy111@outlook.com>

* wait, is it appdata?

Signed-off-by: madomado <wboy111@outlook.com>

* idk

Signed-off-by: madomado <wboy111@outlook.com>

* fix(files): ~

Signed-off-by: madomado <wboy111@outlook.com>

* fix: include correct icon filename

Signed-off-by: cat-master21 <96554164+cat-master21@users.noreply.github.com>

---------

Signed-off-by: cat-master21 <96554164+cat-master21@users.noreply.github.com>
Signed-off-by: madomado <wboy111@outlook.com>
Co-authored-by: madomado <wboy111@outlook.com>
2023-06-29 07:21:48 +08:00
Raboneko a5cee13f40 bump: blahaj 2023-06-28 22:14:56 +00:00
Raboneko 826380a332 bump: lomiri-system-settings lomiri lomiri-ui-toolkit lomiri-url-dispatcher 2023-06-28 04:39:59 +00:00
Raboneko e9194211a5 bump(nightly): vala-nightly 2023-06-28 01:47:02 +00:00
Raboneko dbfc56bd03 bump: wingpanel-indicator-bluetooth 2023-06-27 20:16:48 +00:00
Raboneko 17c1359c24 bump: wingpanel-indicator-notifications 2023-06-27 19:12:45 +00:00
Raboneko 2fc09dddc1 bump: switchboard-plug-display 2023-06-27 16:21:05 +00:00
Raboneko 10935c2c77 bump: nim 2023-06-27 10:17:44 +00:00
cat-master21 097e33074b fix(click): use autorelease (#612)
Signed-off-by: cat-master21 <96554164+cat-master21@users.noreply.github.com>
2023-06-27 13:25:23 +08:00
Raboneko f418d7bbf9 bump(nightly): nim-nightly 2023-06-27 01:47:59 +00:00
Raboneko 7556106577 bump: gala switchboard-plug-applications xdg-desktop-portal-pantheon 2023-06-26 16:20:38 +00:00
Raboneko b7783314d7 bump: groovy-docs groovy 2023-06-26 06:42:52 +00:00
Raboneko 5757d6c117 bump(nightly): nim-nightly 2023-06-26 01:49:40 +00:00
Raboneko cf87a858ac bump: osu-lazer 2023-06-25 06:20:30 +00:00
Raboneko 67b3f45ea2 bump(nightly): latte-dock-nightly nim-nightly 2023-06-25 01:56:27 +00:00
madomado bc17a13461 Merge branch 'f38' into w/idea 2023-06-25 09:50:03 +08:00
windowsboy111 b1717aab74 test this 2023-06-22 19:00:57 +08:00
windowsboy111 6cd8535f0d add: intellij-ultimate-idea 2023-06-22 18:49:36 +08:00
windowsboy111 42c1f68639 add: intellij-community-idea 2023-06-22 18:20:40 +08:00
62 changed files with 306 additions and 1346 deletions
+2 -2
View File
@@ -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' >> $GITHUB_ENV
cat rpmlint.txt | sed 's/`/\\`/g' | 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' >> $GITHUB_ENV
cat out | sed 's/`/\\`/g' | sed 's/"/\"/g' >> $GITHUB_ENV
echo $EOF >> $GITHUB_ENV
echo "dnf_out<<$EOF" >> $GITHUB_ENV
cat out >> $GITHUB_ENV
+2 -2
View File
@@ -41,10 +41,10 @@ jobs:
uses: actions/cache@v3
with:
path: /var/cache
key: ${{ runner.os }}-br-${{ matrix.version }}-${{ matrix.pkg.arch }}-${{ matrix.pkg.pkg }}
key: ${{ runner.os }}-br-${{ matrix.version }}-${{ matrix.arch }}-${{ matrix.pkg }}
- name: Build with Andaman
run: anda build ${{ matrix.pkg.pkg }} --package rpm -c anda/mock-configs/terra-${{ matrix.version }}-${{ matrix.pkg.arch }}.cfg
run: anda build ${{ matrix.pkg }} --package rpm -c anda/mock-configs/terra-${{ matrix.version }}-${{ matrix.arch }}.cfg
- name: Generating artifact name
id: art
@@ -1,7 +1,7 @@
%define debug_package %{nil}
Name: discord-canary-openasar
Version: 0.0.161
Version: 0.0.162
Release: 1%{?dist}
Summary: A snappier Discord rewrite with features like further customization and theming
License: MIT AND https://discord.com/terms
+1 -1
View File
@@ -1,7 +1,7 @@
%define debug_package %{nil}
Name: discord-canary
Version: 0.0.161
Version: 0.0.162
Release: 1%{?dist}
Summary: Free Voice and Text Chat for Gamers
URL: discord.com
@@ -1,7 +1,7 @@
%define debug_package %{nil}
Name: discord-ptb-openasar
Version: 0.0.43
Version: 0.0.44
Release: 1%{?dist}
Summary: A snappier Discord rewrite with features like further customization and theming
License: MIT AND https://discord.com/terms
+1 -1
View File
@@ -1,7 +1,7 @@
%define debug_package %{nil}
Name: discord-ptb
Version: 0.0.43
Version: 0.0.44
Release: 1%{?dist}
Summary: Free Voice and Text Chat for Gamers.
URL: https://discord.com
@@ -1,5 +1,5 @@
%global forgeurl https://gitlab.com/ubports/development/core/lomiri-system-settings
%global commit 890b72e8689a90289522f374534b06f85cde9ddb
%global commit 42b4b88db8f6ce1ef1cf085e8fd8de6d4484f5d4
%forgemeta
Name: lomiri-system-settings
@@ -1,103 +0,0 @@
From 04d3a21c6e72cd5574f7333adf548012d912c1ee Mon Sep 17 00:00:00 2001
From: Neal Gompa <neal@gompa.dev>
Date: Sat, 7 Jan 2023 23:15:13 -0500
Subject: [PATCH 1/3] UI: Consistently reference the software H264 encoder
properly
The code here assumes that the only software encoder is the x264-based
H.264 encoder. That may not always remain true. This change adjusts
the encoder string to indicate that it's an H.264 encoder from x264.
---
UI/data/locale/en-US.ini | 4 ++--
UI/window-basic-auto-config-test.cpp | 6 +++---
UI/window-basic-settings-stream.cpp | 2 +-
UI/window-basic-settings.cpp | 7 ++++---
4 files changed, 10 insertions(+), 9 deletions(-)
diff --git a/UI/data/locale/en-US.ini b/UI/data/locale/en-US.ini
index 4c03aa7db..e44d99660 100644
--- a/UI/data/locale/en-US.ini
+++ b/UI/data/locale/en-US.ini
@@ -980,7 +980,7 @@ Basic.Settings.Output.Simple.Warn.Encoder="Warning: Recording with a software en
Basic.Settings.Output.Simple.Warn.Lossless="Warning: Lossless quality generates tremendously large file sizes! Lossless quality can use upward of 7 gigabytes of disk space per minute at high resolutions and framerates. Lossless is not recommended for long recordings unless you have a very large amount of disk space available."
Basic.Settings.Output.Simple.Warn.Lossless.Msg="Are you sure you want to use lossless quality?"
Basic.Settings.Output.Simple.Warn.Lossless.Title="Lossless quality warning!"
-Basic.Settings.Output.Simple.Encoder.Software="Software (x264)"
+Basic.Settings.Output.Simple.Encoder.Software.X264.H264="Software (x264)"
Basic.Settings.Output.Simple.Encoder.Hardware.QSV.H264="Hardware (QSV, H.264)"
Basic.Settings.Output.Simple.Encoder.Hardware.QSV.AV1="Hardware (QSV, AV1)"
Basic.Settings.Output.Simple.Encoder.Hardware.AMD.H264="Hardware (AMD, H.264)"
@@ -991,7 +991,7 @@ Basic.Settings.Output.Simple.Encoder.Hardware.NVENC.AV1="Hardware (NVENC, AV1)"
Basic.Settings.Output.Simple.Encoder.Hardware.NVENC.HEVC="Hardware (NVENC, HEVC)"
Basic.Settings.Output.Simple.Encoder.Hardware.Apple.H264="Hardware (Apple, H.264)"
Basic.Settings.Output.Simple.Encoder.Hardware.Apple.HEVC="Hardware (Apple, HEVC)"
-Basic.Settings.Output.Simple.Encoder.SoftwareLowCPU="Software (x264 low CPU usage preset, increases file size)"
+Basic.Settings.Output.Simple.Encoder.SoftwareLowCPU.X264.H264="Software (x264 low CPU usage preset, increases file size)"
Basic.Settings.Output.Simple.Codec.AAC="AAC"
Basic.Settings.Output.Simple.Codec.AAC.Default="AAC (Default)"
Basic.Settings.Output.Simple.Codec.Opus="Opus"
diff --git a/UI/window-basic-auto-config-test.cpp b/UI/window-basic-auto-config-test.cpp
index 2d89d7347..09979c031 100644
--- a/UI/window-basic-auto-config-test.cpp
+++ b/UI/window-basic-auto-config-test.cpp
@@ -993,7 +993,7 @@ void AutoConfigTestPage::TestRecordingEncoderThread()
}
#define ENCODER_TEXT(x) "Basic.Settings.Output.Simple.Encoder." x
-#define ENCODER_SOFTWARE ENCODER_TEXT("Software")
+#define ENCODER_X264 ENCODER_TEXT("Software.X264.H264")
#define ENCODER_NVENC ENCODER_TEXT("Hardware.NVENC.H264")
#define ENCODER_QSV ENCODER_TEXT("Hardware.QSV.H264")
#define ENCODER_AMD ENCODER_TEXT("Hardware.AMD.H264")
@@ -1033,7 +1033,7 @@ void AutoConfigTestPage::FinalizeResults()
auto encName = [](AutoConfig::Encoder enc) -> QString {
switch (enc) {
case AutoConfig::Encoder::x264:
- return QTStr(ENCODER_SOFTWARE);
+ return QTStr(ENCODER_X264);
case AutoConfig::Encoder::NVENC:
return QTStr(ENCODER_NVENC);
case AutoConfig::Encoder::QSV:
@@ -1046,7 +1046,7 @@ void AutoConfigTestPage::FinalizeResults()
return QTStr(QUALITY_SAME);
}
- return QTStr(ENCODER_SOFTWARE);
+ return QTStr(ENCODER_X264);
};
auto newLabel = [this](const char *str) -> QLabel * {
diff --git a/UI/window-basic-settings-stream.cpp b/UI/window-basic-settings-stream.cpp
index f6e0817a0..b056938e7 100644
--- a/UI/window-basic-settings-stream.cpp
+++ b/UI/window-basic-settings-stream.cpp
@@ -1585,7 +1585,7 @@ void OBSBasicSettings::ResetEncoders(bool streamOnly)
#define ENCODER_STR(str) QTStr("Basic.Settings.Output.Simple.Encoder." str)
- ui->simpleOutStrEncoder->addItem(ENCODER_STR("Software"),
+ ui->simpleOutStrEncoder->addItem(ENCODER_STR("Software.X264.H264"),
QString(SIMPLE_ENCODER_X264));
if (service_supports_encoder(vcodecs, "obs_qsv11"))
ui->simpleOutStrEncoder->addItem(
diff --git a/UI/window-basic-settings.cpp b/UI/window-basic-settings.cpp
index fb170bfc1..48bb4bac6 100644
--- a/UI/window-basic-settings.cpp
+++ b/UI/window-basic-settings.cpp
@@ -5286,10 +5286,11 @@ void OBSBasicSettings::FillSimpleRecordingValues()
ADD_QUALITY("HQ");
ADD_QUALITY("Lossless");
- ui->simpleOutRecEncoder->addItem(ENCODER_STR("Software"),
+ ui->simpleOutRecEncoder->addItem(ENCODER_STR("Software.X264.H264"),
QString(SIMPLE_ENCODER_X264));
- ui->simpleOutRecEncoder->addItem(ENCODER_STR("SoftwareLowCPU"),
- QString(SIMPLE_ENCODER_X264_LOWCPU));
+ ui->simpleOutRecEncoder->addItem(
+ ENCODER_STR("SoftwareLowCPU.X264.H264"),
+ QString(SIMPLE_ENCODER_X264_LOWCPU));
if (EncoderAvailable("obs_qsv11"))
ui->simpleOutRecEncoder->addItem(
ENCODER_STR("Hardware.QSV.H264"),
--
2.39.2
@@ -1,345 +0,0 @@
From 4517d8d8bb4c43af1f5b757773a5f9550bd23d37 Mon Sep 17 00:00:00 2001
From: Neal Gompa <neal@gompa.dev>
Date: Sun, 26 Mar 2023 06:06:31 -0400
Subject: [PATCH 2/3] obs-ffmpeg: Add initial support for the OpenH264 H.264
software codec
This allows users to leverage the OpenH264 codec from Cisco to encode
H.264 video content. It is significantly reduced in capability from
alternatives, but it does the job.
This also provides a framework for adding support for other H.264
software codecs provided through FFmpeg.
---
plugins/obs-ffmpeg/CMakeLists.txt | 1 +
plugins/obs-ffmpeg/cmake/legacy.cmake | 1 +
plugins/obs-ffmpeg/data/locale/en-US.ini | 3 +
plugins/obs-ffmpeg/obs-ffmpeg-h264.c | 260 +++++++++++++++++++++++
plugins/obs-ffmpeg/obs-ffmpeg.c | 2 +
5 files changed, 267 insertions(+)
create mode 100644 plugins/obs-ffmpeg/obs-ffmpeg-h264.c
diff --git a/plugins/obs-ffmpeg/CMakeLists.txt b/plugins/obs-ffmpeg/CMakeLists.txt
index 3eba00932..f97622c22 100644
--- a/plugins/obs-ffmpeg/CMakeLists.txt
+++ b/plugins/obs-ffmpeg/CMakeLists.txt
@@ -34,6 +34,7 @@ target_sources(
obs-ffmpeg-video-encoders.c
obs-ffmpeg-audio-encoders.c
obs-ffmpeg-av1.c
+ obs-ffmpeg-h264.c
obs-ffmpeg-nvenc.c
obs-ffmpeg-output.c
obs-ffmpeg-mux.c
diff --git a/plugins/obs-ffmpeg/cmake/legacy.cmake b/plugins/obs-ffmpeg/cmake/legacy.cmake
index 5540676ea..62f2cc7a1 100644
--- a/plugins/obs-ffmpeg/cmake/legacy.cmake
+++ b/plugins/obs-ffmpeg/cmake/legacy.cmake
@@ -40,6 +40,7 @@ target_sources(
obs-ffmpeg-video-encoders.c
obs-ffmpeg-audio-encoders.c
obs-ffmpeg-av1.c
+ obs-ffmpeg-h264.c
obs-ffmpeg-nvenc.c
obs-ffmpeg-output.c
obs-ffmpeg-mux.c
diff --git a/plugins/obs-ffmpeg/data/locale/en-US.ini b/plugins/obs-ffmpeg/data/locale/en-US.ini
index 55bbe919d..0363ed82b 100644
--- a/plugins/obs-ffmpeg/data/locale/en-US.ini
+++ b/plugins/obs-ffmpeg/data/locale/en-US.ini
@@ -109,4 +109,7 @@ NVENC.CheckDrivers="Try installing the latest <a href=\"https://obsproject.com/g
AV1.8bitUnsupportedHdr="OBS does not support 8-bit output of Rec. 2100."
+H264.UnsupportedVideoFormat="Only video formats using 8-bit color are supported."
+H264.UnsupportedColorSpace="Only the Rec. 709 color space is supported."
+
ReconnectDelayTime="Reconnect Delay"
diff --git a/plugins/obs-ffmpeg/obs-ffmpeg-h264.c b/plugins/obs-ffmpeg/obs-ffmpeg-h264.c
new file mode 100644
index 000000000..179a61ccf
--- /dev/null
+++ b/plugins/obs-ffmpeg/obs-ffmpeg-h264.c
@@ -0,0 +1,260 @@
+/******************************************************************************
+ Copyright (C) 2023 by Neal Gompa <neal@gompa.dev>
+ Partly derived from obs-ffmpeg-av1.c by Hugh Bailey <obs.jim@gmail.com>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+******************************************************************************/
+
+#include "obs-ffmpeg-video-encoders.h"
+
+#define do_log(level, format, ...) \
+ blog(level, "[H.264 encoder: '%s'] " format, \
+ obs_encoder_get_name(enc->ffve.encoder), ##__VA_ARGS__)
+
+#define error(format, ...) do_log(LOG_ERROR, format, ##__VA_ARGS__)
+#define warn(format, ...) do_log(LOG_WARNING, format, ##__VA_ARGS__)
+#define info(format, ...) do_log(LOG_INFO, format, ##__VA_ARGS__)
+#define debug(format, ...) do_log(LOG_DEBUG, format, ##__VA_ARGS__)
+
+enum h264_encoder_type {
+ H264_ENCODER_TYPE_OH264,
+};
+
+struct h264_encoder {
+ struct ffmpeg_video_encoder ffve;
+ enum h264_encoder_type type;
+
+ DARRAY(uint8_t) header;
+};
+
+static const char *oh264_getname(void *unused)
+{
+ UNUSED_PARAMETER(unused);
+ return "OpenH264";
+}
+
+static void h264_video_info(void *data, struct video_scale_info *info)
+{
+ UNUSED_PARAMETER(data);
+
+ // OpenH264 only supports I420
+ info->format = VIDEO_FORMAT_I420;
+}
+
+static bool h264_update(struct h264_encoder *enc, obs_data_t *settings)
+{
+ const char *profile = obs_data_get_string(settings, "profile");
+ int bitrate = (int)obs_data_get_int(settings, "bitrate");
+ int keyint_sec = 0; // This is not supported by OpenH264
+ const char *rc_mode = "quality"; // We only want to use quality mode
+ int allow_skip_frames = 1; // This is required for quality mode
+
+ video_t *video = obs_encoder_video(enc->ffve.encoder);
+ const struct video_output_info *voi = video_output_get_info(video);
+ struct video_scale_info info;
+
+ info.format = voi->format;
+ info.colorspace = voi->colorspace;
+ info.range = voi->range;
+
+ enc->ffve.context->thread_count = 0;
+
+ h264_video_info(enc, &info);
+
+ av_opt_set(enc->ffve.context->priv_data, "rc_mode", rc_mode, 0);
+ av_opt_set(enc->ffve.context->priv_data, "profile", profile, 0);
+ av_opt_set_int(enc->ffve.context->priv_data, "allow_skip_frames",
+ allow_skip_frames, 0);
+
+ const char *ffmpeg_opts = obs_data_get_string(settings, "ffmpeg_opts");
+ ffmpeg_video_encoder_update(&enc->ffve, bitrate, keyint_sec, voi, &info,
+ ffmpeg_opts);
+ info("settings:\n"
+ "\tencoder: %s\n"
+ "\trc_mode: %s\n"
+ "\tbitrate: %d\n"
+ "\tprofile: %s\n"
+ "\twidth: %d\n"
+ "\theight: %d\n"
+ "\tffmpeg opts: %s\n",
+ enc->ffve.enc_name, rc_mode, bitrate, profile,
+ enc->ffve.context->width, enc->ffve.height, ffmpeg_opts);
+
+ enc->ffve.context->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
+ return ffmpeg_video_encoder_init_codec(&enc->ffve);
+}
+
+static void h264_destroy(void *data)
+{
+ struct h264_encoder *enc = data;
+
+ ffmpeg_video_encoder_free(&enc->ffve);
+ da_free(enc->header);
+ bfree(enc);
+}
+
+static void on_first_packet(void *data, AVPacket *pkt, struct darray *da)
+{
+ struct h264_encoder *enc = data;
+
+ da_copy_array(enc->header, enc->ffve.context->extradata,
+ enc->ffve.context->extradata_size);
+
+ darray_copy_array(1, da, pkt->data, pkt->size);
+}
+
+static void *h264_create_internal(obs_data_t *settings, obs_encoder_t *encoder,
+ const char *enc_lib, const char *enc_name)
+{
+ video_t *video = obs_encoder_video(encoder);
+ const struct video_output_info *voi = video_output_get_info(video);
+
+ switch (voi->format) {
+ // planar 4:2:0 formats
+ case VIDEO_FORMAT_I420: // three-plane
+ case VIDEO_FORMAT_NV12: // two-plane, luma and packed chroma
+ // packed 4:2:2 formats
+ case VIDEO_FORMAT_YVYU:
+ case VIDEO_FORMAT_YUY2: // YUYV
+ case VIDEO_FORMAT_UYVY:
+ // packed uncompressed formats
+ case VIDEO_FORMAT_RGBA:
+ case VIDEO_FORMAT_BGRA:
+ case VIDEO_FORMAT_BGRX:
+ case VIDEO_FORMAT_BGR3:
+ case VIDEO_FORMAT_Y800: // grayscale
+ // planar 4:4:4
+ case VIDEO_FORMAT_I444:
+ // planar 4:2:2
+ case VIDEO_FORMAT_I422:
+ // planar 4:2:0 with alpha
+ case VIDEO_FORMAT_I40A:
+ // planar 4:2:2 with alpha
+ case VIDEO_FORMAT_I42A:
+ // planar 4:4:4 with alpha
+ case VIDEO_FORMAT_YUVA:
+ // packed 4:4:4 with alpha
+ case VIDEO_FORMAT_AYUV:
+ break;
+ default:; // Make the compiler do the right thing
+ const char *const text =
+ obs_module_text("H264.UnsupportedVideoFormat");
+ obs_encoder_set_last_error(encoder, text);
+ blog(LOG_ERROR, "[H.264 encoder] %s", text);
+ return NULL;
+ }
+
+ switch (voi->colorspace) {
+ case VIDEO_CS_DEFAULT:
+ case VIDEO_CS_709:
+ break;
+ default:; // Make the compiler do the right thing
+ const char *const text =
+ obs_module_text("H264.UnsupportedColorSpace");
+ obs_encoder_set_last_error(encoder, text);
+ blog(LOG_ERROR, "[H.264 encoder] %s", text);
+ return NULL;
+ }
+
+ struct h264_encoder *enc = bzalloc(sizeof(*enc));
+
+ if (strcmp(enc_lib, "libopenh264") == 0)
+ enc->type = H264_ENCODER_TYPE_OH264;
+
+ if (!ffmpeg_video_encoder_init(&enc->ffve, enc, encoder, enc_lib, NULL,
+ enc_name, NULL, on_first_packet))
+ goto fail;
+ if (!h264_update(enc, settings))
+ goto fail;
+
+ return enc;
+
+fail:
+ h264_destroy(enc);
+ return NULL;
+}
+
+static void *oh264_create(obs_data_t *settings, obs_encoder_t *encoder)
+{
+ return h264_create_internal(settings, encoder, "libopenh264",
+ "OpenH264");
+}
+
+static bool h264_encode(void *data, struct encoder_frame *frame,
+ struct encoder_packet *packet, bool *received_packet)
+{
+ struct h264_encoder *enc = data;
+ return ffmpeg_video_encode(&enc->ffve, frame, packet, received_packet);
+}
+
+void h264_defaults(obs_data_t *settings)
+{
+ obs_data_set_default_int(settings, "bitrate", 2500);
+ obs_data_set_default_string(settings, "profile", "main");
+}
+
+obs_properties_t *h264_properties(enum h264_encoder_type type)
+{
+ UNUSED_PARAMETER(type); // Only one encoder right now...
+ obs_properties_t *props = obs_properties_create();
+ obs_property_t *p;
+
+ p = obs_properties_add_list(props, "profile",
+ obs_module_text("Profile"),
+ OBS_COMBO_TYPE_LIST,
+ OBS_COMBO_FORMAT_STRING);
+ obs_property_list_add_string(p, "constrained_baseline",
+ "constrained_baseline");
+ obs_property_list_add_string(p, "main", "main");
+ obs_property_list_add_string(p, "high", "high");
+
+ p = obs_properties_add_int(props, "bitrate", obs_module_text("Bitrate"),
+ 50, 300000, 50);
+ obs_property_int_set_suffix(p, " Kbps");
+
+ obs_properties_add_text(props, "ffmpeg_opts",
+ obs_module_text("FFmpegOpts"),
+ OBS_TEXT_DEFAULT);
+
+ return props;
+}
+
+obs_properties_t *oh264_properties(void *unused)
+{
+ UNUSED_PARAMETER(unused);
+ return h264_properties(H264_ENCODER_TYPE_OH264);
+}
+
+static bool h264_extra_data(void *data, uint8_t **extra_data, size_t *size)
+{
+ struct h264_encoder *enc = data;
+
+ *extra_data = enc->header.array;
+ *size = enc->header.num;
+ return true;
+}
+
+struct obs_encoder_info oh264_encoder_info = {
+ .id = "ffmpeg_openh264",
+ .type = OBS_ENCODER_VIDEO,
+ .codec = "h264",
+ .get_name = oh264_getname,
+ .create = oh264_create,
+ .destroy = h264_destroy,
+ .encode = h264_encode,
+ .get_defaults = h264_defaults,
+ .get_properties = oh264_properties,
+ .get_extra_data = h264_extra_data,
+ .get_video_info = h264_video_info,
+};
diff --git a/plugins/obs-ffmpeg/obs-ffmpeg.c b/plugins/obs-ffmpeg/obs-ffmpeg.c
index da0b2c2b4..a01a729c8 100644
--- a/plugins/obs-ffmpeg/obs-ffmpeg.c
+++ b/plugins/obs-ffmpeg/obs-ffmpeg.c
@@ -39,6 +39,7 @@ extern struct obs_encoder_info pcm24_encoder_info;
extern struct obs_encoder_info pcm32_encoder_info;
extern struct obs_encoder_info alac_encoder_info;
extern struct obs_encoder_info flac_encoder_info;
+extern struct obs_encoder_info oh264_encoder_info;
extern struct obs_encoder_info h264_nvenc_encoder_info;
#ifdef ENABLE_HEVC
extern struct obs_encoder_info hevc_nvenc_encoder_info;
@@ -387,6 +388,7 @@ bool obs_module_load(void)
obs_register_output(&ffmpeg_hls_muxer);
obs_register_output(&replay_buffer);
obs_register_encoder(&aac_encoder_info);
+ register_encoder_if_available(&oh264_encoder_info, "libopenh264");
register_encoder_if_available(&svt_av1_encoder_info, "libsvtav1");
register_encoder_if_available(&aom_av1_encoder_info, "libaom-av1");
obs_register_encoder(&opus_encoder_info);
--
2.39.2
@@ -1,544 +0,0 @@
From 30f84455969071ff9aa826a44438a0402dd15123 Mon Sep 17 00:00:00 2001
From: Neal Gompa <neal@gompa.dev>
Date: Tue, 28 Mar 2023 05:08:49 -0400
Subject: [PATCH 3/3] UI: Add support for OpenH264 as the worst-case fallback
OpenH264 exists as the codec of last resort, so it is implemented
such that it is only used as the software codec if x264 is not
available.
---
UI/data/locale/en-US.ini | 1 +
UI/window-basic-auto-config-test.cpp | 50 +++++++++++++++++++---------
UI/window-basic-auto-config.cpp | 15 ++++++++-
UI/window-basic-auto-config.hpp | 3 ++
UI/window-basic-main-outputs.cpp | 6 ++--
UI/window-basic-main-profiles.cpp | 34 +++++++++++--------
UI/window-basic-main.cpp | 20 +++++++----
UI/window-basic-main.hpp | 3 +-
UI/window-basic-settings-stream.cpp | 16 ++++++---
UI/window-basic-settings.cpp | 23 ++++++++++---
10 files changed, 123 insertions(+), 48 deletions(-)
diff --git a/UI/data/locale/en-US.ini b/UI/data/locale/en-US.ini
index e44d99660..a5ba5d661 100644
--- a/UI/data/locale/en-US.ini
+++ b/UI/data/locale/en-US.ini
@@ -980,6 +980,7 @@ Basic.Settings.Output.Simple.Warn.Encoder="Warning: Recording with a software en
Basic.Settings.Output.Simple.Warn.Lossless="Warning: Lossless quality generates tremendously large file sizes! Lossless quality can use upward of 7 gigabytes of disk space per minute at high resolutions and framerates. Lossless is not recommended for long recordings unless you have a very large amount of disk space available."
Basic.Settings.Output.Simple.Warn.Lossless.Msg="Are you sure you want to use lossless quality?"
Basic.Settings.Output.Simple.Warn.Lossless.Title="Lossless quality warning!"
+Basic.Settings.Output.Simple.Encoder.Software.OpenH264.H264="Software (OpenH264)"
Basic.Settings.Output.Simple.Encoder.Software.X264.H264="Software (x264)"
Basic.Settings.Output.Simple.Encoder.Hardware.QSV.H264="Hardware (QSV, H.264)"
Basic.Settings.Output.Simple.Encoder.Hardware.QSV.AV1="Hardware (QSV, AV1)"
diff --git a/UI/window-basic-auto-config-test.cpp b/UI/window-basic-auto-config-test.cpp
index 09979c031..c791c8b8b 100644
--- a/UI/window-basic-auto-config-test.cpp
+++ b/UI/window-basic-auto-config-test.cpp
@@ -199,7 +199,8 @@ void AutoConfigTestPage::TestBandwidthThread()
: "rtmp_common";
OBSEncoderAutoRelease vencoder = obs_video_encoder_create(
- "obs_x264", "test_x264", nullptr, nullptr);
+ (wiz->x264Available ? "obs_x264" : "ffmpeg_openh264"),
+ "test_h264", nullptr, nullptr);
OBSEncoderAutoRelease aencoder = obs_audio_encoder_create(
"ffmpeg_aac", "test_aac", nullptr, 0, nullptr);
OBSServiceAutoRelease service = obs_service_create(
@@ -238,10 +239,11 @@ void AutoConfigTestPage::TestBandwidthThread()
obs_data_set_string(service_settings, "key", key.c_str());
obs_data_set_int(vencoder_settings, "bitrate", wiz->startingBitrate);
- obs_data_set_string(vencoder_settings, "rate_control", "CBR");
- obs_data_set_string(vencoder_settings, "preset", "veryfast");
- obs_data_set_int(vencoder_settings, "keyint_sec", 2);
-
+ if (wiz->x264Available) {
+ obs_data_set_string(vencoder_settings, "rate_control", "CBR");
+ obs_data_set_string(vencoder_settings, "preset", "veryfast");
+ obs_data_set_int(vencoder_settings, "keyint_sec", 2);
+ }
obs_data_set_int(aencoder_settings, "bitrate", 32);
OBSBasic *main = reinterpret_cast<OBSBasic *>(App()->GetMainWindow());
@@ -567,7 +569,8 @@ bool AutoConfigTestPage::TestSoftwareEncoding()
/* create obs objects */
OBSEncoderAutoRelease vencoder = obs_video_encoder_create(
- "obs_x264", "test_x264", nullptr, nullptr);
+ (wiz->x264Available ? "obs_x264" : "ffmpeg_openh264"),
+ "test_h264", nullptr, nullptr);
OBSEncoderAutoRelease aencoder = obs_audio_encoder_create(
"ffmpeg_aac", "test_aac", nullptr, 0, nullptr);
OBSOutputAutoRelease output =
@@ -581,17 +584,25 @@ bool AutoConfigTestPage::TestSoftwareEncoding()
obs_data_set_int(aencoder_settings, "bitrate", 32);
if (wiz->type != AutoConfig::Type::Recording) {
- obs_data_set_int(vencoder_settings, "keyint_sec", 2);
+ if (wiz->x264Available) {
+ obs_data_set_int(vencoder_settings, "keyint_sec", 2);
+ obs_data_set_string(vencoder_settings, "rate_control",
+ "CBR");
+ obs_data_set_string(vencoder_settings, "preset",
+ "veryfast");
+ }
obs_data_set_int(vencoder_settings, "bitrate",
wiz->idealBitrate);
- obs_data_set_string(vencoder_settings, "rate_control", "CBR");
obs_data_set_string(vencoder_settings, "profile", "main");
- obs_data_set_string(vencoder_settings, "preset", "veryfast");
} else {
- obs_data_set_int(vencoder_settings, "crf", 20);
- obs_data_set_string(vencoder_settings, "rate_control", "CRF");
+ if (wiz->x264Available) {
+ obs_data_set_int(vencoder_settings, "crf", 20);
+ obs_data_set_string(vencoder_settings, "rate_control",
+ "CRF");
+ obs_data_set_string(vencoder_settings, "preset",
+ "veryfast");
+ }
obs_data_set_string(vencoder_settings, "profile", "high");
- obs_data_set_string(vencoder_settings, "preset", "veryfast");
}
/* -----------------------------------*/
@@ -944,7 +955,10 @@ void AutoConfigTestPage::TestStreamEncoderThread()
else
wiz->streamingEncoder = AutoConfig::Encoder::AMD;
} else {
- wiz->streamingEncoder = AutoConfig::Encoder::x264;
+ if (wiz->x264Available)
+ wiz->streamingEncoder = AutoConfig::Encoder::x264;
+ else
+ wiz->streamingEncoder = AutoConfig::Encoder::OpenH264;
}
if (preferHardware && !softwareTested && wiz->hardwareEncodingAvailable)
@@ -979,7 +993,10 @@ void AutoConfigTestPage::TestRecordingEncoderThread()
else
wiz->recordingEncoder = AutoConfig::Encoder::AMD;
} else {
- wiz->recordingEncoder = AutoConfig::Encoder::x264;
+ if (wiz->x264Available)
+ wiz->streamingEncoder = AutoConfig::Encoder::x264;
+ else
+ wiz->streamingEncoder = AutoConfig::Encoder::OpenH264;
}
if (wiz->recordingEncoder != AutoConfig::Encoder::NVENC) {
@@ -993,6 +1010,7 @@ void AutoConfigTestPage::TestRecordingEncoderThread()
}
#define ENCODER_TEXT(x) "Basic.Settings.Output.Simple.Encoder." x
+#define ENCODER_OPENH264 ENCODER_TEXT("Software.OpenH264.H264")
#define ENCODER_X264 ENCODER_TEXT("Software.X264.H264")
#define ENCODER_NVENC ENCODER_TEXT("Hardware.NVENC.H264")
#define ENCODER_QSV ENCODER_TEXT("Hardware.QSV.H264")
@@ -1032,6 +1050,8 @@ void AutoConfigTestPage::FinalizeResults()
auto encName = [](AutoConfig::Encoder enc) -> QString {
switch (enc) {
+ case AutoConfig::Encoder::OpenH264:
+ return QTStr(ENCODER_OPENH264);
case AutoConfig::Encoder::x264:
return QTStr(ENCODER_X264);
case AutoConfig::Encoder::NVENC:
@@ -1046,7 +1066,7 @@ void AutoConfigTestPage::FinalizeResults()
return QTStr(QUALITY_SAME);
}
- return QTStr(ENCODER_X264);
+ return QTStr(ENCODER_OPENH264);
};
auto newLabel = [this](const char *str) -> QLabel * {
diff --git a/UI/window-basic-auto-config.cpp b/UI/window-basic-auto-config.cpp
index 3e9c36685..eace18067 100644
--- a/UI/window-basic-auto-config.cpp
+++ b/UI/window-basic-auto-config.cpp
@@ -961,6 +961,7 @@ AutoConfig::AutoConfig(QWidget *parent) : QWizard(parent)
streamPage->ui->bitrate->setValue(bitrate);
streamPage->ServiceChanged();
+ TestSoftwareEncoding();
TestHardwareEncoding();
if (!hardwareEncodingAvailable) {
delete streamPage->ui->preferHardware;
@@ -989,6 +990,16 @@ AutoConfig::~AutoConfig()
EnableThreadedMessageBoxes(false);
}
+void AutoConfig::TestSoftwareEncoding()
+{
+ size_t idx = 0;
+ const char *id;
+ while (obs_enum_encoder_types(idx++, &id)) {
+ if (strcmp(id, "obs_x264") == 0)
+ x264Available = true;
+ }
+}
+
void AutoConfig::TestHardwareEncoding()
{
size_t idx = 0;
@@ -1061,8 +1072,10 @@ inline const char *AutoConfig::GetEncoderId(Encoder enc)
return SIMPLE_ENCODER_AMD;
case Encoder::Apple:
return SIMPLE_ENCODER_APPLE_H264;
- default:
+ case Encoder::x264:
return SIMPLE_ENCODER_X264;
+ default:
+ return SIMPLE_ENCODER_OPENH264;
}
};
diff --git a/UI/window-basic-auto-config.hpp b/UI/window-basic-auto-config.hpp
index eb50701ff..e581791dd 100644
--- a/UI/window-basic-auto-config.hpp
+++ b/UI/window-basic-auto-config.hpp
@@ -43,6 +43,7 @@ class AutoConfig : public QWizard {
};
enum class Encoder {
+ OpenH264,
x264,
NVENC,
QSV,
@@ -91,6 +92,7 @@ class AutoConfig : public QWizard {
bool qsvAvailable = false;
bool vceAvailable = false;
bool appleAvailable = false;
+ bool x264Available = false;
int startingBitrate = 2500;
bool customServer = false;
@@ -106,6 +108,7 @@ class AutoConfig : public QWizard {
int specificFPSNum = 0;
int specificFPSDen = 0;
+ void TestSoftwareEncoding();
void TestHardwareEncoding();
bool CanTestServer(const char *server);
diff --git a/UI/window-basic-main-outputs.cpp b/UI/window-basic-main-outputs.cpp
index 737ab966d..a4df630c4 100644
--- a/UI/window-basic-main-outputs.cpp
+++ b/UI/window-basic-main-outputs.cpp
@@ -515,7 +515,9 @@ void SimpleOutput::LoadStreamingPreset_Lossy(const char *encoderId)
/* mistakes have been made to lead us to this. */
const char *get_simple_output_encoder(const char *encoder)
{
- if (strcmp(encoder, SIMPLE_ENCODER_X264) == 0) {
+ if (strcmp(encoder, SIMPLE_ENCODER_OPENH264) == 0) {
+ return "ffmpeg_openh264";
+ } else if (strcmp(encoder, SIMPLE_ENCODER_X264) == 0) {
return "obs_x264";
} else if (strcmp(encoder, SIMPLE_ENCODER_X264_LOWCPU) == 0) {
return "obs_x264";
@@ -549,7 +551,7 @@ const char *get_simple_output_encoder(const char *encoder)
#endif
}
- return "obs_x264";
+ return "ffmpeg_openh264";
}
void SimpleOutput::LoadRecordingPreset()
diff --git a/UI/window-basic-main-profiles.cpp b/UI/window-basic-main-profiles.cpp
index 4941359ea..1f3ffdc1d 100644
--- a/UI/window-basic-main-profiles.cpp
+++ b/UI/window-basic-main-profiles.cpp
@@ -794,7 +794,7 @@ void OBSBasic::ChangeProfile()
Auth::Load();
- CheckForSimpleModeX264Fallback();
+ CheckForSimpleModeH264Fallback();
blog(LOG_INFO, "Switched to profile '%s' (%s)", newName, newDir);
blog(LOG_INFO, "------------------------------------------------");
@@ -815,12 +815,13 @@ void OBSBasic::ChangeProfile()
}
}
-void OBSBasic::CheckForSimpleModeX264Fallback()
+void OBSBasic::CheckForSimpleModeH264Fallback()
{
const char *curStreamEncoder =
config_get_string(basicConfig, "SimpleOutput", "StreamEncoder");
const char *curRecEncoder =
config_get_string(basicConfig, "SimpleOutput", "RecEncoder");
+ bool x264_supported = false;
bool qsv_supported = false;
bool qsv_av1_supported = false;
bool amd_supported = false;
@@ -837,7 +838,9 @@ void OBSBasic::CheckForSimpleModeX264Fallback()
const char *id;
while (obs_enum_encoder_types(idx++, &id)) {
- if (strcmp(id, "amd_amf_h264") == 0)
+ if (strcmp(id, "obs_x264") == 0)
+ x264_supported = true;
+ else if (strcmp(id, "amd_amf_h264") == 0)
amd_supported = true;
else if (strcmp(id, "obs_qsv11") == 0)
qsv_supported = true;
@@ -865,68 +868,73 @@ void OBSBasic::CheckForSimpleModeX264Fallback()
#endif
}
+ // Check to see whether x264 is available
+ const char *fallback_encoder_name = (x264_supported
+ ? SIMPLE_ENCODER_X264
+ : SIMPLE_ENCODER_OPENH264);
+
auto CheckEncoder = [&](const char *&name) {
if (strcmp(name, SIMPLE_ENCODER_QSV) == 0) {
if (!qsv_supported) {
changed = true;
- name = SIMPLE_ENCODER_X264;
+ name = fallback_encoder_name;
return false;
}
} else if (strcmp(name, SIMPLE_ENCODER_QSV_AV1) == 0) {
if (!qsv_av1_supported) {
changed = true;
- name = SIMPLE_ENCODER_X264;
+ name = fallback_encoder_name;
return false;
}
} else if (strcmp(name, SIMPLE_ENCODER_NVENC) == 0) {
if (!nve_supported) {
changed = true;
- name = SIMPLE_ENCODER_X264;
+ name = fallback_encoder_name;
return false;
}
} else if (strcmp(name, SIMPLE_ENCODER_NVENC_AV1) == 0) {
if (!nve_supported) {
changed = true;
- name = SIMPLE_ENCODER_X264;
+ name = fallback_encoder_name;
return false;
}
#ifdef ENABLE_HEVC
} else if (strcmp(name, SIMPLE_ENCODER_AMD_HEVC) == 0) {
if (!amd_hevc_supported) {
changed = true;
- name = SIMPLE_ENCODER_X264;
+ name = fallback_encoder_name;
return false;
}
} else if (strcmp(name, SIMPLE_ENCODER_NVENC_HEVC) == 0) {
if (!nve_hevc_supported) {
changed = true;
- name = SIMPLE_ENCODER_X264;
+ name = fallback_encoder_name;
return false;
}
#endif
} else if (strcmp(name, SIMPLE_ENCODER_AMD) == 0) {
if (!amd_supported) {
changed = true;
- name = SIMPLE_ENCODER_X264;
+ name = fallback_encoder_name;
return false;
}
} else if (strcmp(name, SIMPLE_ENCODER_AMD_AV1) == 0) {
if (!amd_av1_supported) {
changed = true;
- name = SIMPLE_ENCODER_X264;
+ name = fallback_encoder_name;
return false;
}
} else if (strcmp(name, SIMPLE_ENCODER_APPLE_H264) == 0) {
if (!apple_supported) {
changed = true;
- name = SIMPLE_ENCODER_X264;
+ name = fallback_encoder_name;
return false;
}
#ifdef ENABLE_HEVC
} else if (strcmp(name, SIMPLE_ENCODER_APPLE_HEVC) == 0) {
if (!apple_hevc_supported) {
changed = true;
- name = SIMPLE_ENCODER_X264;
+ name = fallback_encoder_name;
return false;
}
#endif
diff --git a/UI/window-basic-main.cpp b/UI/window-basic-main.cpp
index 6d9375eb4..c6aae8c7b 100644
--- a/UI/window-basic-main.cpp
+++ b/UI/window-basic-main.cpp
@@ -1379,6 +1379,8 @@ extern void CheckExistingCookieId();
#define DEFAULT_CONTAINER "fragmented_mp4"
#endif
+extern bool EncoderAvailable(const char *encoder);
+
bool OBSBasic::InitBasicConfigDefaults()
{
QList<QScreen *> screens = QGuiApplication::screens();
@@ -1549,7 +1551,10 @@ bool OBSBasic::InitBasicConfigDefaults()
config_set_default_bool(basicConfig, "AdvOut", "UseRescale", false);
config_set_default_uint(basicConfig, "AdvOut", "TrackIndex", 1);
config_set_default_uint(basicConfig, "AdvOut", "VodTrackIndex", 2);
- config_set_default_string(basicConfig, "AdvOut", "Encoder", "obs_x264");
+
+ bool useX264 = EncoderAvailable("obs_x264");
+ config_set_default_string(basicConfig, "AdvOut", "Encoder",
+ (useX264 ? "obs_x264" : "ffmpeg_openh264"));
config_set_default_string(basicConfig, "AdvOut", "RecType", "Standard");
@@ -1672,7 +1677,6 @@ bool OBSBasic::InitBasicConfigDefaults()
return true;
}
-extern bool EncoderAvailable(const char *encoder);
extern bool update_nvenc_presets(ConfigFile &config);
void OBSBasic::InitBasicConfigDefaults2()
@@ -1681,12 +1685,14 @@ void OBSBasic::InitBasicConfigDefaults2()
"Pre23Defaults");
bool useNV = EncoderAvailable("ffmpeg_nvenc") && !oldEncDefaults;
+ bool useX264 = EncoderAvailable("obs_x264");
+ const char *h264_fallback =
+ (useX264 ? SIMPLE_ENCODER_X264 : SIMPLE_ENCODER_OPENH264);
+
config_set_default_string(basicConfig, "SimpleOutput", "StreamEncoder",
- useNV ? SIMPLE_ENCODER_NVENC
- : SIMPLE_ENCODER_X264);
+ useNV ? SIMPLE_ENCODER_NVENC : h264_fallback);
config_set_default_string(basicConfig, "SimpleOutput", "RecEncoder",
- useNV ? SIMPLE_ENCODER_NVENC
- : SIMPLE_ENCODER_X264);
+ useNV ? SIMPLE_ENCODER_NVENC : h264_fallback);
const char *aac_default = "ffmpeg_aac";
if (EncoderAvailable("CoreAudio_AAC"))
@@ -1967,7 +1973,7 @@ void OBSBasic::OBSInit()
InitBasicConfigDefaults2();
- CheckForSimpleModeX264Fallback();
+ CheckForSimpleModeH264Fallback();
blog(LOG_INFO, STARTUP_SEPARATOR);
diff --git a/UI/window-basic-main.hpp b/UI/window-basic-main.hpp
index cbce69832..74c6eb144 100644
--- a/UI/window-basic-main.hpp
+++ b/UI/window-basic-main.hpp
@@ -66,6 +66,7 @@ class OBSBasicVCamConfig;
#define SIMPLE_ENCODER_X264 "x264"
#define SIMPLE_ENCODER_X264_LOWCPU "x264_lowcpu"
+#define SIMPLE_ENCODER_OPENH264 "ffmpeg_openh264"
#define SIMPLE_ENCODER_QSV "qsv"
#define SIMPLE_ENCODER_QSV_AV1 "qsv_av1"
#define SIMPLE_ENCODER_NVENC "nvenc"
@@ -434,7 +435,7 @@ private:
void DeleteProfile(const char *profile_name, const char *profile_dir);
void RefreshProfiles();
void ChangeProfile();
- void CheckForSimpleModeX264Fallback();
+ void CheckForSimpleModeH264Fallback();
void SaveProjectNow();
diff --git a/UI/window-basic-settings-stream.cpp b/UI/window-basic-settings-stream.cpp
index b056938e7..548e5f45f 100644
--- a/UI/window-basic-settings-stream.cpp
+++ b/UI/window-basic-settings-stream.cpp
@@ -1362,7 +1362,9 @@ static QString get_adv_fallback(const QString &enc)
return "com.apple.videotoolbox.videoencoder.ave.avc";
if (enc == "obs_qsv11_av1")
return "obs_qsv11";
- return "obs_x264";
+ if (EncoderAvailable("obs_x264"))
+ return "obs_x264";
+ return "ffmpeg_openh264";
}
static QString get_adv_audio_fallback(const QString &enc)
@@ -1391,7 +1393,9 @@ static QString get_simple_fallback(const QString &enc)
return SIMPLE_ENCODER_APPLE_H264;
if (enc == SIMPLE_ENCODER_QSV_AV1)
return SIMPLE_ENCODER_QSV;
- return SIMPLE_ENCODER_X264;
+ if (EncoderAvailable("obs_x264"))
+ return SIMPLE_ENCODER_X264;
+ return SIMPLE_ENCODER_OPENH264;
}
bool OBSBasicSettings::ServiceSupportsCodecCheck()
@@ -1585,8 +1589,12 @@ void OBSBasicSettings::ResetEncoders(bool streamOnly)
#define ENCODER_STR(str) QTStr("Basic.Settings.Output.Simple.Encoder." str)
- ui->simpleOutStrEncoder->addItem(ENCODER_STR("Software.X264.H264"),
- QString(SIMPLE_ENCODER_X264));
+ ui->simpleOutStrEncoder->addItem(ENCODER_STR("Software.OpenH264.H264"),
+ QString(SIMPLE_ENCODER_OPENH264));
+ if (service_supports_encoder(vcodecs, "obs_x264"))
+ ui->simpleOutStrEncoder->addItem(
+ ENCODER_STR("Software.X264.H264"),
+ QString(SIMPLE_ENCODER_X264));
if (service_supports_encoder(vcodecs, "obs_qsv11"))
ui->simpleOutStrEncoder->addItem(
ENCODER_STR("Hardware.QSV.H264"),
diff --git a/UI/window-basic-settings.cpp b/UI/window-basic-settings.cpp
index 48bb4bac6..51fe280db 100644
--- a/UI/window-basic-settings.cpp
+++ b/UI/window-basic-settings.cpp
@@ -3831,6 +3831,11 @@ void OBSBasicSettings::SaveOutputSettings()
do. This only exists to make sure that the x264 preset doesn't
get overwritten with empty data. */
presetType = "ApplePreset";
+ else if (encoder == SIMPLE_ENCODER_OPENH264)
+ /* The OpenH264 encoder does not have presets like the other encoders
+ do. This only exists to make sure that the x264 preset doesn't
+ get overwritten with empty data. */
+ presetType = "OpenH264Preset";
else
presetType = "Preset";
@@ -5286,11 +5291,16 @@ void OBSBasicSettings::FillSimpleRecordingValues()
ADD_QUALITY("HQ");
ADD_QUALITY("Lossless");
- ui->simpleOutRecEncoder->addItem(ENCODER_STR("Software.X264.H264"),
- QString(SIMPLE_ENCODER_X264));
- ui->simpleOutRecEncoder->addItem(
- ENCODER_STR("SoftwareLowCPU.X264.H264"),
- QString(SIMPLE_ENCODER_X264_LOWCPU));
+ ui->simpleOutRecEncoder->addItem(ENCODER_STR("Software.OpenH264.H264"),
+ QString(SIMPLE_ENCODER_OPENH264));
+ if (EncoderAvailable("obs_x264")) {
+ ui->simpleOutRecEncoder->addItem(
+ ENCODER_STR("Software.X264.H264"),
+ QString(SIMPLE_ENCODER_X264));
+ ui->simpleOutRecEncoder->addItem(
+ ENCODER_STR("SoftwareLowCPU.X264.H264"),
+ QString(SIMPLE_ENCODER_X264_LOWCPU));
+ }
if (EncoderAvailable("obs_qsv11"))
ui->simpleOutRecEncoder->addItem(
ENCODER_STR("Hardware.QSV.H264"),
@@ -5463,6 +5473,9 @@ void OBSBasicSettings::SimpleStreamingEncoderChanged()
defaultPreset = "balanced";
preset = curAMDAV1Preset;
+ } else if (encoder == SIMPLE_ENCODER_OPENH264) {
+ ui->simpleOutPreset->setVisible(false);
+ ui->simpleOutPresetLabel->setVisible(false);
} else {
#define PRESET_STR(val) \
--
2.39.2
-5
View File
@@ -1,5 +0,0 @@
project pkg {
rpm {
spec = "obs-studio.spec"
}
}
@@ -1,106 +0,0 @@
From 1e2fc3ade587a7a7c24e4238996ca382c4c0f719 Mon Sep 17 00:00:00 2001
From: Neal Gompa <ngompa@fedoraproject.org>
Date: Tue, 27 Dec 2022 09:15:08 -0500
Subject: [PATCH] CMake: Use the system version of QRCodeGenCPP dependency
---
CMakeLists.txt | 9 +++++++--
cmake/legacy.cmake | 12 ++++++++----
src/forms/ConnectInfo.cpp | 2 +-
3 files changed, 16 insertions(+), 7 deletions(-)
diff --git a/plugins/obs-websocket/CMakeLists.txt b/plugins/obs-websocket/CMakeLists.txt
index 871f92b..288cc87 100644
--- a/plugins/obs-websocket/CMakeLists.txt
+++ b/plugins/obs-websocket/CMakeLists.txt
@@ -13,7 +13,7 @@ endif()
# Submodule deps check
if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/deps/qr/cpp/QrCode.hpp")
- message(FATAL_ERROR "obs-websocket submodule deps not available.")
+ message(INFO "obs-websocket submodule deps not available.")
endif()
# Find Qt
@@ -22,6 +22,9 @@ find_qt(COMPONENTS Core Widgets Svg Network)
# Find nlohmann JSON
find_package(nlohmann_json 3 REQUIRED)
+# Find qrcodegencpp
+find_package(qrcodegencpp REQUIRED)
+
# Find WebSocket++
find_package(Websocketpp 0.8 REQUIRED)
@@ -157,7 +160,9 @@ target_link_libraries(
Qt::Network
nlohmann_json::nlohmann_json
Websocketpp::Websocketpp
- Asio::Asio)
+ Asio::Asio
+ qrcodegencpp
+ )
set_target_properties_obs(
obs-websocket
diff --git a/plugins/obs-websocket/cmake/legacy.cmake b/plugins/obs-websocket/cmake/legacy.cmake
index ab25ec7..98ca704 100644
--- a/plugins/obs-websocket/cmake/legacy.cmake
+++ b/plugins/obs-websocket/cmake/legacy.cmake
@@ -10,7 +10,7 @@ endif()
# Submodule deps check
if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/deps/qr/cpp/QrCode.hpp)
- obs_status(FATAL_ERROR "obs-websocket submodule deps not available.")
+ obs_status(INFO "obs-websocket submodule deps not available.")
endif()
# Plugin tests flag
@@ -22,6 +22,9 @@ find_qt(COMPONENTS Core Widgets Svg Network)
# Find nlohmann JSON
find_package(nlohmann_json 3 REQUIRED)
+# Find qrcodegencpp
+find_package(qrcodegencpp REQUIRED)
+
# Find WebSocket++
find_package(Websocketpp 0.8 REQUIRED)
@@ -129,8 +132,7 @@ target_sources(
src/utils/Compat.cpp
src/utils/Compat.h
src/utils/Utils.h
- deps/qr/cpp/QrCode.cpp
- deps/qr/cpp/QrCode.hpp)
+ )
target_link_libraries(
obs-websocket
@@ -142,7 +144,9 @@ target_link_libraries(
Qt::Network
nlohmann_json::nlohmann_json
Websocketpp::Websocketpp
- Asio::Asio)
+ Asio::Asio
+ qrcodegencpp
+ )
target_compile_features(obs-websocket PRIVATE cxx_std_17)
diff --git a/plugins/obs-websocket/src/forms/ConnectInfo.cpp b/plugins/obs-websocket/src/forms/ConnectInfo.cpp
index ddb979d..89a04c4 100644
--- a/plugins/obs-websocket/src/forms/ConnectInfo.cpp
+++ b/plugins/obs-websocket/src/forms/ConnectInfo.cpp
@@ -21,9 +21,9 @@ with this program. If not, see <https://www.gnu.org/licenses/>
#include <QPainter>
#include <QUrl>
#include <obs-module.h>
+#include <qrcodegencpp/QrCode.hpp>
#include "ConnectInfo.h"
-#include "../../deps/qr/cpp/QrCode.hpp"
#include "../obs-websocket.h"
#include "../Config.h"
#include "../utils/Platform.h"
--
2.39.2
-151
View File
@@ -1,151 +0,0 @@
%global obswebsocketver 5.2.2
Name: obs-studio
Version: 29.1.1
Release: 1%?dist
Summary: Open Broadcaster Software Studio
License: GPL-2.0-or-later and ISC and MIT and BSD-1-Clause and BSD-2-Clause and BSD-3-Clause and BSL-1.0 and LGPL-2.1-or-later and CC0-1.0 and (CC0-1.0 or OpenSSL or Apache-2.0) and LicenseRef-Fedora-Public-Domain and (BSD-3-Clause or GPL-2.0-only)
URL: https://obsproject.com/
Source0: https://github.com/obsproject/obs-studio/archive/refs/tags/%version.tar.gz
Source1: https://github.com/obsproject/obs-websocket/archive/%obswebsocketver/obs-websocket-%obswebsocketver.tar.gz
BuildRequires: gcc
BuildRequires: cmake >= 3.16
BuildRequires: ninja-build
BuildRequires: libappstream-glib
BuildRequires: desktop-file-utils
BuildRequires: alsa-lib-devel
BuildRequires: asio-devel
BuildRequires: fdk-aac-free-devel
BuildRequires: fontconfig-devel
BuildRequires: freetype-devel
BuildRequires: jansson-devel >= 2.5
BuildRequires: json-devel
BuildRequires: libcurl-devel
BuildRequires: libdrm-devel
BuildRequires: libGL-devel
BuildRequires: libglvnd-devel
BuildRequires: librist-devel
BuildRequires: srt-devel
BuildRequires: libuuid-devel
BuildRequires: libv4l-devel
BuildRequires: libva-devel
BuildRequires: libX11-devel
BuildRequires: libxcb-devel
BuildRequires: libXcomposite-devel
BuildRequires: libXinerama-devel
BuildRequires: libxkbcommon-devel
BuildRequires: luajit-devel
BuildRequires: mbedtls-devel
BuildRequires: pciutils-devel
BuildRequires: pipewire-devel
BuildRequires: pipewire-jack-audio-connection-kit-devel
BuildRequires: pulseaudio-libs-devel
BuildRequires: python3-devel
BuildRequires: libqrcodegencpp-devel
BuildRequires: qt6-qtbase-devel
BuildRequires: qt6-qtbase-private-devel
BuildRequires: qt6-qtsvg-devel
BuildRequires: qt6-qtwayland-devel
BuildRequires: speexdsp-devel
BuildRequires: swig
BuildRequires: systemd-devel
BuildRequires: wayland-devel
BuildRequires: websocketpp-devel
BuildRequires: ffmpeg-free-devel
BuildRequires: x264-devel
BuildRequires: vlc-devel
# websocket deps
BuildRequires: nlohmann-json-devel websocketpp-devel asio-devel
# Ensure QtWayland is installed when libwayland-client is installed
Requires: (qt6-qtwayland%{?_isa} if libwayland-client%{?_isa})
# For icon folder heirarchy
Requires: hicolor-icon-theme
# Virtual camera support
Recommends: kmod-v4l2loopback
# NVIDIA Hardware accelerated encoding: CUDA
Suggests: xorg-x11-drv-nvidia-cuda
# obs-studio-plugin-vlc-video
# We dlopen() libvlc
Requires: libvlc.so.%{libvlc_soversion}%{?lib64_suffix}
# These are modified sources that can't be easily unbundled
## License: MIT and CC0-1.0
## Newer version in Fedora with the same licensing
## Request filed upstream for fixing it: https://github.com/simd-everywhere/simde/issues/999
Provides: bundled(simde) = 0.7.1
## License: BSL-1.0
Provides: bundled(decklink-sdk)
## License: CC0-1.0 or OpenSSL or Apache-2.0
Provides: bundled(blake2)
## License: MIT
Provides: bundled(json11)
## License: MIT
Provides: bundled(libcaption)
## License: ISC
Provides: bundled(libff)
## License: BSD-1-Clause
Provides: bundled(uthash)
## License: BSD-3-Clause
Provides: bundled(rnnoise)
## License: LGPL-2.1-or-later and LicenseRef-Fedora-Public-Domain
Provides: bundled(librtmp)
## License: MIT
Provides: bundled(libnsgif)
## License: MIT
## Windows only dependency
## Support for Linux will also unbundle it
## Cf. https://github.com/obsproject/obs-studio/pull/8327
Provides: bundled(intel-mediasdk)
%description
Open Broadcaster Software is free and open source
software for video recording and live streaming.
%prep
%autosetup -p1 -n obs-studio-%{?snapdate:%{commit}}%{!?snapdate:%{version_no_tilde}}
# Prepare plugins/obs-websocket
tar -xf %SOURCE1 --strip-components=1 -C plugins/obs-websocket/
ls plugins/obs-websocket/
sed -e 's|OBS_MULTIARCH_SUFFIX|LIB_SUFFIX|g' -i cmake/Modules/ObsHelpers.cmake
# Kill rpath settings
sed -e '\|set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${OBS_LIBRARY_DESTINATION}")|d' -i cmake/Modules/ObsHelpers_Linux.cmake
# touch the missing submodules
touch plugins/obs-browser/CMakeLists.txt
# remove -Werror flag to mitigate FTBFS with ffmpeg 5.1
sed -e 's|-Werror-implicit-function-declaration||g' -i cmake/Modules/CompilerConfig.cmake
sed -e '/-Werror/d' -i cmake/Modules/CompilerConfig.cmake
%build
%cmake -B build -S . \
-DUNIX_STRUCTURE=1 -GNinja \
-DCMAKE_SKIP_RPATH=1 \
-DBUILD_BROWSER=OFF \
-DENABLE_JACK=ON \
-DENABLE_LIBFDK=ON \
-DENABLE_AJA=OFF \
-DOBS_VERSION_OVERRIDE="%version-%release" \
-Wno-dev \
-DOpenGL_GL_PREFERENCE=GLVND
%cmake_build
%install
%cmake_install
%files
%doc README.rst
%license COPYING plugins/{{enc-amf,obs-websocket}/LICENSE,obs-{browser,filters,outputs}/COPYING}
%changelog
* Tue May 23 2023 windowsboy111 <windowsboy111@fyralabs.com> - 29.1.1-1
- Initial package
- Ref: https://pkgs.rpmfusion.org/cgit/free/obs-studio-freeworld.git/tree/obs-studio-freeworld.spec
- Ref: https://gitlab.archlinux.org/archlinux/packaging/packages/obs-studio/-/blob/main/PKGBUILD
-2
View File
@@ -1,2 +0,0 @@
rpm.version(gh("obsproject/obs-studio"));
rpm.global("obswebsocketver", gh("obsproject/obs-websocket"));
+2 -2
View File
@@ -1,13 +1,13 @@
%define debug_package %nil
Name: blahaj
Version: 2.0.2
Version: 2.1.0
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
BuildRequires: crystal gcc libyaml-devel pcre-devel libgc-devel libevent-devel
ExclusiveArch: x86_64
%description
@@ -5,8 +5,8 @@
Name: elementary-files
Summary: File manager from elementary
Version: 6.3.1
Release: 2%{?dist}
Version: 6.4.0
Release: 1%{?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}.appdata.xml
%{buildroot}/%{_datadir}/metainfo/%{appname}.metainfo.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}.appdata.xml
%{_datadir}/metainfo/%{appname}.metainfo.xml
%{_datadir}/polkit-1/actions/%{appname}.policy
%files portal
@@ -3,8 +3,8 @@
Name: elementary-notifications
Version: 6.0.3
Release: 2%{?dist}
Version: 7.0.0
Release: 1%{?dist}
Summary: GTK Notification server for Pantheon
License: GPL-3.0
@@ -3,8 +3,8 @@
Name: elementary-sideload
Summary: Sideload flatpaks on Pantheon
Version: 6.2.0
Release: 2%{?dist}
Version: 6.2.1
Release: 1%{?dist}
License: GPL-3.0-or-later
URL: https://github.com/elementary/sideload
+4 -4
View File
@@ -2,8 +2,8 @@
Name: gala
Summary: Gala window manager
Version: 7.0.3
Release: 2%{?dist}
Version: 7.1.1
Release: 1%{?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}.appdata.xml
# %%{buildroot}/%%{_datadir}/metainfo/%%{name}.metainfo.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}.appdata.xml
%{_datadir}/metainfo/%{name}.metainfo.xml
%files libs
%doc AUTHORS README.md
@@ -8,8 +8,8 @@
Name: switchboard-plug-applications
Summary: Switchboard Applications plug
Version: 6.0.1
Release: 4%{?dist}
Version: 7.0.0
Release: 1%{?dist}
License: GPL-3.0-or-later
URL: https://github.com/elementary/switchboard-plug-applications
@@ -25,7 +25,9 @@ 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}
@@ -47,15 +49,16 @@ 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}.appdata.xml
sed -i '/icon type="stock"/d' %{buildroot}%{_datadir}/metainfo/%{plug_rdnn}.metainfo.xml
%check
appstream-util validate-relax --nonet \
%{buildroot}/%{_datadir}/metainfo/%{plug_rdnn}.appdata.xml
%{buildroot}%{_datadir}/metainfo/%{plug_rdnn}.metainfo.xml
%files -f %{plug_name}-plug.lang
@@ -64,7 +67,8 @@ appstream-util validate-relax --nonet \
%{_libdir}/switchboard/%{plug_type}/lib%{plug_name}.so
%{_datadir}/metainfo/%{plug_rdnn}.appdata.xml
%{_datadir}/metainfo/%{plug_rdnn}.metainfo.xml
%{_datadir}/icons/hicolor/*/apps/io.elementary.settings.applications.svg
%changelog
@@ -8,8 +8,8 @@
Name: switchboard-plug-display
Summary: Switchboard Display plug
Version: 2.3.3
Release: 2%{?dist}
Version: 7.0.0
Release: 1%{?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}.appdata.xml
%{buildroot}/%{_datadir}/metainfo/%{plug_rdnn}.metainfo.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}.appdata.xml
%{_datadir}/metainfo/%{plug_rdnn}.metainfo.xml
%changelog
@@ -6,8 +6,8 @@
Name: switchboard-plug-onlineaccounts
Summary: Switchboard Online Accounts plug
Version: 6.5.2
Release: 2%{?dist}
Version: 6.5.3
Release: 1%{?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}.appdata.xml
sed -i '/icon type="stock"/d' %{buildroot}/%{_datadir}/metainfo/%{plug_rdnn}.metainfo.xml
%check
appstream-util validate-relax --nonet \
%{buildroot}/%{_datadir}/metainfo/%{plug_rdnn}.appdata.xml
%{buildroot}/%{_datadir}/metainfo/%{plug_rdnn}.metainfo.xml
%files -f %{plug_name}-plug.lang
%license LICENSE
%doc README.md
%{_datadir}/metainfo/%{plug_rdnn}.appdata.xml
%{_datadir}/metainfo/%{plug_rdnn}.metainfo.xml
%{_libdir}/switchboard/%{plug_type}/lib%{plug_name}.so
@@ -5,8 +5,8 @@
Name: wingpanel-indicator-bluetooth
Summary: Bluetooth Indicator for wingpanel
Version: 2.1.8
Release: 4%{?dist}
Version: 7.0.1
Release: 1%{?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 appdata (invalid in libappstream-glib)
sed -i '/icon type="stock"/d' %{buildroot}/%{_datadir}/metainfo/%{appname}.appdata.xml
# remove the specified stock icon from metainfo (invalid in libappstream-glib)
sed -i '/icon type="stock"/d' %{buildroot}/%{_datadir}/metainfo/%{appname}.metainfo.xml
%check
appstream-util validate-relax --nonet \
%{buildroot}/%{_datadir}/metainfo/%{appname}.appdata.xml
%{buildroot}/%{_datadir}/metainfo/%{appname}.metainfo.xml
%files -f bluetooth-indicator.lang
@@ -63,8 +63,11 @@ 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}/metainfo/%{appname}.appdata.xml
%{_datadir}/applications/io.elementary.bluetooth.desktop
%{_datadir}/metainfo/%{appname}.metainfo.xml
%_sysconfdir/xdg/autostart/io.elementary.bluetooth-daemon.desktop
%changelog
@@ -5,8 +5,8 @@
Name: wingpanel-indicator-nightlight
Summary: Night Light Indicator for wingpanel
Version: 2.1.1
Release: 2%{?dist}
Version: 2.1.2
Release: 1%{?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
appstream-util validate-relax --nonet \
%{buildroot}/%{_datadir}/metainfo/%{appname}.appdata.xml
%dnl appstream-util validate-relax --nonet \
%dnl %{buildroot}/%{_datadir}/metainfo/%{appname}.metainfo.xml
%files -f nightlight-indicator.lang
@@ -58,7 +58,7 @@ appstream-util validate-relax --nonet \
%{_libdir}/wingpanel/libnightlight.so
%{_datadir}/metainfo/%{appname}.appdata.xml
%{_datadir}/metainfo/%{appname}.metainfo.xml
%changelog
@@ -5,8 +5,8 @@
Name: wingpanel-indicator-notifications
Summary: Notifications Indicator for wingpanel
Version: 6.0.7
Release: 2%{?dist}
Version: 7.0.0
Release: 1%{?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}.appdata.xml
%{buildroot}/%{_datadir}/metainfo/%{appname}.metainfo.xml
%files -f notifications-indicator.lang
@@ -61,7 +61,7 @@ appstream-util validate-relax --nonet \
%{_libdir}/wingpanel/libnotifications.so
%{_datadir}/metainfo/%{appname}.appdata.xml
%{_datadir}/metainfo/%{appname}.metainfo.xml
%changelog
@@ -1,8 +1,8 @@
%define debug_package %{nil}
Name: xdg-desktop-portal-pantheon
Version: 7.0.0
Release: 1%?dist
Version: 7.1.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 6532af166f2c6524827c8e1c22af6b9c2accc11f
%global commit 67591cf616063838590eda9a19d27a66e3081677
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global commit_date %(date '+%Y%m%d')
%global snapshot_info %{commit_date}.%{shortcommit}
+1 -1
View File
@@ -1,5 +1,5 @@
%global forgeurl https://gitlab.com/ubports/development/core/lomiri
%global commit 8a2f908c306ec63a7a0f14c247fa1676c655c7ce
%global commit ced1769bb4984465a51c2f45c2bee5c05fb52987
%forgemeta
Name: lomiri
@@ -0,0 +1,5 @@
project pkg {
rpm {
spec = "intellij-idea-community.spec"
}
}
@@ -0,0 +1,12 @@
diff --git a/platform/build-scripts/src/org/jetbrains/intellij/build/LinuxDistributionCustomizer.kt b/platform/build-scripts/src/org/jetbrains/intellij/build/LinuxDistributionCustomizer.kt
--- a/platform/build-scripts/src/org/jetbrains/intellij/build/LinuxDistributionCustomizer.kt (revision 7e0cfee10427cc87a372ef23d6bf083cc35fdb5e)
+++ b/platform/build-scripts/src/org/jetbrains/intellij/build/LinuxDistributionCustomizer.kt (date 1670176639293)
@@ -24,7 +24,7 @@
/**
* If {@code true} a separate *-no-jbr.tar.gz artifact without runtime will be produced.
*/
- var buildTarGzWithoutBundledRuntime = false
+ var buildTarGzWithoutBundledRuntime = true
/**
* If {@code true}, the only *-no-jbr.tar.gz will be produced, no other binaries for Linux will be built.
@@ -0,0 +1,90 @@
Name: intellij-idea-community
Version: 231.9161.38
Release: 1%?dist
Summary: IDE for Java/Groovy/etc. with advanced refactoring features
License: Apache-2.0
URL: https://jetbrains.com/idea
Source0: https://github.com/JetBrains/intellij-community/archive/refs/tags/idea/%version.tar.gz
Source1: https://github.com/JetBrains/android/archive/refs/tags/idea/%version.tar.gz
Source2: https://repo1.maven.org/maven2/junit/junit/3.8.1/junit-3.8.1.jar
Patch0: enable-no-jdr.patch
Requires: giflib java-latest-openjdk python3 bash libdbusmenu fontconfig hicolor-icon-theme
BuildRequires: ant git java-latest-openjdk-devel maven
%description
Intellij IDEA is an IDE for Java, Groovy and other programming languages with
advanced refactoring features.
%prep
%autosetup -p1
tar xf %SOURCE1
cat<<EOF > idea.desktop
[Desktop Entry]
Version=1.0
Type=Application
Name=IntelliJ IDEA Community Edition
Comment=Develop with pleasure!
Exec=/usr/bin/idea %f
Icon=idea
Terminal=false
StartupNotify=true
StartupWMClass=jetbrains-idea-ce
Categories=Development;IDE;Java;
EOF
cat<<EOF > idea.sh
#!/bin/sh
if [ -z "$IDEA_JDK" ] ; then
IDEA_JDK="/usr/lib/jvm/java-17-openjdk/"
fi
# open-jfx location that should match the JDK version
if [ -z "$IDEA_JFX" ] ; then
IDEA_JFX="/usr/lib/jvm/java-17-openjfx/"
fi
# classpath according to defined JDK/JFX
if [ -z "$IDEA_CLASSPATH" ] ; then
IDEA_CLASSPATH="${IDEA_JDK}/lib/*:${IDEA_JFX}/lib/*"
fi
exec env IDEA_JDK="$IDEA_JDK" IDEA_CLASSPATH="$IDEA_CLASSPATH" %_datadir/idea/bin/idea.sh "$@"
EOF
%build
export MAVEN_REPOSITORY=%HOME/.m2/repository
mvn install:install-file -Dfile=%SOURCE2 -DgroupId=junit -DartifactId=junit -Dversion=3.8.1 -Dpackaging=jar -DgeneratePom=true
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk
export PATH="/usr/lib/jvm/java-17-openjdk/bin:$PATH"
./installers.cmd -Dintellij.build.use.compiled.classes=false -Dintellij.build.target.os=linux
tar xf out/idea-ce/artifacts/ideaIC-%version-no-jbr.tar.gz -C .
%install
cd idea-IC-%version
install -dm755 %buildroot%_datadir/{pixmaps,idea,icons/hicolor/scalable/apps}
cp -dr --no-preserve='ownership' bin lib plugins %buildroot%_datadir/idea/
ln -s %_datadir/idea/bin/idea.png %buildroot%_datadir/pixmaps/
ln -s %_datadir/idea/bin/idea.svg %buildroot%_datadir/icons/hicolor/scalable/apps/
install -Dm644 ../idea.desktop -t %buildroot%_datadir/applications/
install -Dm755 ../idea.sh %buildroot/%_bindir/idea
chmod +x %buildroot/%_bindir/idea
echo %version > build.txt
install -Dm644 build.txt -t %buildroot%_datadir/idea
%files
%doc README.md docs/
%license idea-IC-%version/license
%_datadir/pixmaps/idea.png
%_datadir/icons/hicolor/scalable/apps/idea.svg
%_datadir/applications/idea.desktop
%_bindir/idea
%_datadir/idea/
%changelog
%autochangelog
@@ -0,0 +1,6 @@
let ver = gh_tag("JetBrains/intellij-community");
let ver2 = gh_tag("JetBrains/android");
if ver.starts_with("idea/") && ver == ver2 {
ver.remove("idea/");
rpm.version(ver);
}
@@ -0,0 +1,5 @@
project pkg {
rpm {
spec = "intellij-idea-ultimate.spec"
}
}
@@ -0,0 +1,89 @@
%global buildver 231.9161.38
%global jbr_ver 17.0.6
%global jbr_build aarch64-b469
%global jbr_minor 82
Name: intellij-idea-ultimate
Version: 2023.1.3
Release: 1%?dist
Summary: IDE for Java/Groovy/etc. with advanced refactoring features
License: Unlicense
URL: https://jetbrains.com/idea
Source0: https://download.jetbrains.com/idea/ideaIU-%version.tar.gz
Requires: giflib libXtst libXrender
Suggests: %name-jre
Recommends: libdbusmenu java-latest-openjdk
%ifarch aarch64
Source1: https://cache-redirector.jetbrains.com/intellij-jbr/jbr-%jbr_ver-linux-%jbr_build.%jbr_minor.tar.gz
Source2: https://github.com/JetBrains/intellij-community/raw/master/bin/linux/aarch64/fsnotifier
%endif
%description
Intellij IDEA is an IDE for Java, Groovy and other programming languages with
advanced refactoring features.
%package jre
Summary: IDE for Java/Groovy/etc. with advanced refactoring features
%description jre
Intellij IDEA is an IDE for Java, Groovy and other programming languages with
advanced refactoring features.
%prep
%autosetup -n idea-IU-%buildver
# https://youtrack.jetbrains.com/articles/IDEA-A-48/JetBrains-IDEs-on-AArch64#linux
%ifarch aarch64
tar xf %SOURCE1
tar xf %SOURCE2
cp -f fsnotifier bin/fsnotifier
chmod +x bin/fsnotifier
%endif
cat<<EOF > jetbrains-idea.desktop
[Desktop Entry]
Name=IntelliJ IDEA Ultimate Edition
Comment=Intelligent Java IDE
Exec=intellij-idea-ultimate-edition %u
Icon=intellij-idea-ultimate-edition
Terminal=false
StartupWMClass=jetbrains-idea
Type=Application
Categories=Development;IDE;
EOF
%build
%install
install -d %buildroot%_bindir %buildroot%_datadir/%name
mv * %buildroot%_datadir/%name
# https://youtrack.jetbrains.com/issue/IDEA-185828
chmod +x %buildroot%_datadir/%name/plugins/maven/lib/maven3/bin/mvn
ln -s %_datadir/%name/bin/idea.sh %buildroot%_bindir/%name
mkdir -p %buildroot%_datadir/applications %buildroot%_datadir/pixmaps
install -Dm644 jetbrains-idea.desktop %buildroot%_datadir/applications/jetbrains-idea.desktop
install -Dm644 %buildroot%_datadir/%name/bin/idea.svg %buildroot%_datadir/pixmaps/%name.svg
# workaround FS#40934
sed -i 's|lcd|on|' %buildroot/%name/bin/*.vmoptions
mv jbr %buildroot%_datadir/%name
%files
%_datadir/%name
%_bindir/%name
%_datadir/applications/jetbrains-idea.desktop
%_datadir/pixmaps/%name.svg
%files jre
%buildroot%_datadir/%name/jbr
%changelog
%autochangelog
@@ -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
* Wed Apr 26 2023 windowsboy111 <windowsboy111@fyralabs.com> - 0.40.6-1
- Initial package
+1 -1
View File
@@ -1,4 +1,4 @@
%define osuresver 2023.605.0
%define osuresver 2023.707.0
%global debug_package %{nil}
Name: osu-lazer
+1 -1
View File
@@ -1,5 +1,5 @@
Name: groovy-docs
Version: 4.0.12
Version: 4.0.13
Release: 1%{?dist}
Summary: Documentation for the Groovy programming language
URL: https://groovy-lang.org/
+2 -2
View File
@@ -1,6 +1,6 @@
Name: groovy
Version: 4.0.12
Release: 2%{?dist}
Version: 4.0.13
Release: 1%{?dist}
Summary: A multi-faceted language for the Java platform
BuildArch: noarch
URL: https://groovy-lang.org/
+1 -1
View File
@@ -2,7 +2,7 @@
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Name: kotlin-native
Version: 1.8.22
Version: 1.9.0
Release: 1%{?dist}
Summary: LLVM backend for the Kotlin compiler
ExclusiveArch: x86_64
+2 -2
View File
@@ -1,8 +1,8 @@
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildArch: noarch
Name: kotlin
Version: 1.8.22
Release: 2%{?dist}
Version: 1.9.0
Release: 1%{?dist}
Summary: Statically typed programming language
License: Apache-2.0
@@ -1,6 +1,6 @@
Name: gtk4-layer-shell
Version: 1.0.0
Release: 1%?dist
Version: 1.0.1
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,7 +63,8 @@ Requires: gtk4-layer-shell
/usr/share/gir-1.0/Gtk4LayerShell-1.0.gir
%files doc
/usr/share/gtk-doc/html/gtk-layer-shell
/usr/share/gtk-doc/html/gtk4-layer-shell/
%files vapi
/usr/share/vala/vapi/gtk4-layer-shell-0.deps
+1 -1
View File
@@ -17,7 +17,7 @@
%global __provides_exclude_from ^%{_libdir}/gtk-4.0
Name: terra-gtk4
Version: 4.10.4
Version: 4.11.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 7df579c068335df31a704307d2bd20542233e5d2
%global commit c6d9d6b557f45a3bb454e5414439f2c34a6a4c8c
%forgemeta
Name: lomiri-ui-toolkit
@@ -1,5 +1,5 @@
%global forgeurl https://gitlab.com/ubports/development/core/lomiri-url-dispatcher
%global commit 23c42355cfbb7ab2ad9702d0362ed5590cf994bd
%global commit 9c203c675ef15eeef365b72f7843cf35a4237129
%forgemeta
Name: lomiri-url-dispatcher
@@ -1,8 +1,8 @@
%define debug_package %nil
Name: moby-buildx
Version: 0.11.0
Release: 2%{?dist}
Version: 0.11.1
Release: 1%{?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.19.0
Version: 2.19.1
Release: 1%{?dist}
Summary: Define and run multi-container applications with Docker
+1 -1
View File
@@ -1,5 +1,5 @@
%global csrc_commit 561b417c65791cd8356b5f73620914ceff845d10
%global commit 88114948c41f38d7366dc8d80abc09f00c2492fa
%global commit 6ec10a4c9182c513fecd17fde4a81a3a007bb2e9
%global ver 1.9.5
%global debug_package %nil
+1 -1
View File
@@ -2,7 +2,7 @@
%global debug_package %{nil}
Name: nim
Version: 1.6.12
Version: 1.6.14
Release: 1%{?dist}
Summary: Imperative, multi-paradigm, compiled programming language
License: MIT and BSD
+1 -1
View File
@@ -4,7 +4,7 @@
Name: click
Version: 0.5.0
Release: 2%?dist
Release: %autorelease
Summary: An app building method
License: LGPL-3.0
URL: https://gitlab.com/ubports/development/core/click
+1 -1
View File
@@ -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
+1 -1
View File
@@ -2,7 +2,7 @@
%global pypi_name protobuf
Name: python-%{pypi_name}
Version: 4.23.3
Version: 4.23.4
Release: 1%{?dist}
Summary: Protocol Buffers
+1 -1
View File
@@ -1,7 +1,7 @@
%define debug_package %{nil}
Name: python3-ruff
Version: 0.0.275
Version: 0.0.277
Release: 1%{?dist}
Summary: An extremely fast Python linter, written in Rust
License: MIT
+1 -1
View File
@@ -4,7 +4,7 @@
%global crate gping
Name: rust-gping
Version: 1.12.0
Version: 1.13.0
Release: 1%{?dist}
Summary: Ping, but with a graph
+2 -2
View File
@@ -4,8 +4,8 @@
%global crate joshuto
Name: rust-joshuto
Version: 0.9.4
Release: %autorelease
Version: 0.9.5
Release: 1%{?dist}
Summary: Terminal file manager inspired by ranger
License: LGPL-3.0
+1 -1
View File
@@ -2,7 +2,7 @@
%global crate kondo-ui
Name: rust-kondo-ui
Version: 0.6.0
Version: 0.7.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
View File
@@ -1,4 +1,5 @@
project pkg {
arches = ["x86_64"]
rpm {
spec = "rust-kondo.spec"
}
+1 -1
View File
@@ -4,7 +4,7 @@
%global crate kondo
Name: rust-kondo
Version: 0.6
Version: 0.7
Release: 1%{?dist}
Summary: Filesystem cleaning tool for projects
+1 -1
View File
@@ -1,5 +1,5 @@
Name: rnote
Version: 0.7.0
Version: 0.7.1
Release: 1%{?dist}
Summary: Sketch and take handwritten notes.
License: GPL-3.0
+2 -2
View File
@@ -5,8 +5,8 @@
%endif
Name: codium
Version: 1.79.2.23166
Release: 2%{?dist}
Version: 1.80.0.23188
Release: 1%{?dist}
Summary: Code editing. Redefined.
License: MIT
URL: https://vscodium.com/
+1 -1
View File
@@ -5,7 +5,7 @@
%global forgeurl https://github.com/GitCredentialManager/git-credential-manager
Name: gcm-core
Version: 2.1.2
Version: 2.2.1
%forgemeta
Release: 1%{?dist}
Summary: Secure, cross-platform Git credential storage
+1 -1
View File
@@ -1,5 +1,5 @@
Name: gradle
Version: 8.1.1
Version: 8.2.0
Release: 1%{?dist}
Summary: Powerful build system for the JVM
URL: https://gradle.org/
+1 -1
View File
@@ -3,7 +3,7 @@
%global priority 90
%global real_name vala
%global commit e9a6d92c00b734ab689493b7fc1874db227067c7
%global commit ce0eadc3cf54b091f7dd1605f10eb7b99637f3b2
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global repo https://gitlab.gnome.org/GNOME/%{real_name}.git