[packages/obs-studio] - split x32 specific and 32bit generic format string fixes - disable arch-specific abi warning
baggins
baggins at pld-linux.org
Fri Dec 27 01:55:44 CET 2024
commit 7b6d1ab6071c68c71a56601da8ef6ef210218bc8
Author: Jan Rękorajski <baggins at pld-linux.org>
Date: Fri Dec 27 00:59:25 2024 +0100
- split x32 specific and 32bit generic format string fixes
- disable arch-specific abi warning
format-string.patch | 153 ++++++++++++++++++++++++++++++++++++++++++++++
no-arch-abi-warning.patch | 12 ++++
obs-studio.spec | 6 ++
x32.patch | 151 ---------------------------------------------
4 files changed, 171 insertions(+), 151 deletions(-)
---
diff --git a/obs-studio.spec b/obs-studio.spec
index 8db3772..fc2a120 100644
--- a/obs-studio.spec
+++ b/obs-studio.spec
@@ -26,6 +26,8 @@ Patch2: x32.patch
Patch3: sign-compare.patch
Patch4: x11-linkage.patch
Patch5: luajit-lua52.patch
+Patch6: no-arch-abi-warning.patch
+Patch7: format-string.patch
URL: https://obsproject.com/
BuildRequires: ImageMagick-devel
BuildRequires: OpenGL-GLX-devel
@@ -126,6 +128,8 @@ Pliki nagłówkowe OBS Studio.
%patch -P 3 -p1
%patch -P 4 -p1
%patch -P 5 -p1
+%patch -P 6 -p1
+%patch -P 7 -p1
%build
export OBS_MULTIARCH_SUFFIX="%(echo "%{_lib}" | sed -e 's/^lib//')"
@@ -218,7 +222,9 @@ rm -rf $RPM_BUILD_ROOT
%attr(755,root,root) %{_libdir}/obs-plugins/obs-filters.so
%attr(755,root,root) %{_libdir}/obs-plugins/obs-nvenc.so
%attr(755,root,root) %{_libdir}/obs-plugins/obs-outputs.so
+%ifarch %{x8664} x32
%attr(755,root,root) %{_libdir}/obs-plugins/obs-qsv11.so
+%endif
%attr(755,root,root) %{_libdir}/obs-plugins/obs-transitions.so
%attr(755,root,root) %{_libdir}/obs-plugins/obs-vst.so
%attr(755,root,root) %{_libdir}/obs-plugins/obs-x264.so
diff --git a/format-string.patch b/format-string.patch
new file mode 100644
index 0000000..3ec8237
--- /dev/null
+++ b/format-string.patch
@@ -0,0 +1,153 @@
+--- obs-studio-31.0.0/libobs/obs-output.c.orig 2024-12-26 23:35:00.153332094 +0100
++++ obs-studio-31.0.0/libobs/obs-output.c 2024-12-26 23:36:56.276665465 +0100
+@@ -1494,7 +1494,11 @@
+
+ struct caption_track_data *ctrack = output->caption_tracks[out->track_idx];
+ if (!ctrack) {
++#if defined(__ILP32__)
++ blog(LOG_DEBUG, "Caption track for index: %u has not been initialized", out->track_idx);
++#else
+ blog(LOG_DEBUG, "Caption track for index: %lu has not been initialized", out->track_idx);
++#endif
+ return false;
+ }
+
+@@ -1702,12 +1706,20 @@
+ }
+ }
+ if (found_ept == false) {
++#if defined(__ILP32__)
++ blog(LOG_DEBUG, "%s: Track %u encoder packet timing for PTS%" PRId64 " not found.",
++#else
+ blog(LOG_DEBUG, "%s: Track %lu encoder packet timing for PTS%" PRId64 " not found.",
++#endif
+ __FUNCTION__, out.track_idx, out.pts);
+ }
+ } else {
+ // encoder_packet_times should not be empty; log if so.
++#if defined(__ILP32__)
++ blog(LOG_DEBUG, "%s: Track %u encoder packet timing array empty.", __FUNCTION__,
++#else
+ blog(LOG_DEBUG, "%s: Track %lu encoder packet timing array empty.", __FUNCTION__,
++#endif
+ out.track_idx);
+ }
+ }
+--- obs-studio-31.0.0/plugins/obs-nvenc/nvenc.c.orig 2024-12-26 23:55:28.883332170 +0100
++++ obs-studio-31.0.0/plugins/obs-nvenc/nvenc.c 2024-12-26 23:59:49.099998914 +0100
+@@ -378,9 +378,17 @@
+ if (vbr)
+ dstr_catf(&log, "\tmax_bitrate: %d\n", max_bitrate);
+ if (cqp)
++#if defined(__ILP32__)
++ dstr_catf(&log, "\tcqp: %lld\n", enc->props.cqp);
++#else
+ dstr_catf(&log, "\tcqp: %ld\n", enc->props.cqp);
++#endif
+ if (cqvbr) {
++#if defined(__ILP32__)
++ dstr_catf(&log, "\tcq: %lld\n", enc->props.target_quality);
++#else
+ dstr_catf(&log, "\tcq: %ld\n", enc->props.target_quality);
++#endif
+ }
+
+ dstr_catf(&log, "\tkeyint: %d\n", gop_size);
+@@ -390,13 +398,22 @@
+ dstr_catf(&log, "\tprofile: %s\n", enc->props.profile);
+ dstr_catf(&log, "\twidth: %d\n", enc->cx);
+ dstr_catf(&log, "\theight: %d\n", enc->cy);
++#if defined(__ILP32__)
++ dstr_catf(&log, "\tb-frames: %lld\n", enc->props.bf);
++ dstr_catf(&log, "\tb-ref-mode: %lld\n", enc->props.bframe_ref_mode);
++#else
+ dstr_catf(&log, "\tb-frames: %ld\n", enc->props.bf);
+ dstr_catf(&log, "\tb-ref-mode: %ld\n", enc->props.bframe_ref_mode);
++#endif
+ dstr_catf(&log, "\tlookahead: %s (%d frames)\n", lookahead ? "true" : "false", rc_lookahead);
+ dstr_catf(&log, "\taq: %s\n", enc->props.adaptive_quantization ? "true" : "false");
+
+ if (enc->props.split_encode) {
++#if defined(__ILP32__)
++ dstr_catf(&log, "\tsplit encode: %lld\n", enc->props.split_encode);
++#else
+ dstr_catf(&log, "\tsplit encode: %ld\n", enc->props.split_encode);
++#endif
+ }
+ if (enc->props.opts.count)
+ dstr_catf(&log, "\tuser opts: %s\n", enc->props.opts_str);
+--- obs-studio-31.0.0/UI/obs-app-theming.cpp.orig 2024-12-27 00:19:42.779999070 +0100
++++ obs-studio-31.0.0/UI/obs-app-theming.cpp 2024-12-27 00:24:51.099999085 +0100
+@@ -555,7 +555,11 @@
+
+ QStringList args = var.value.toStringList();
+ if (args.length() != 3) {
++#if defined(__ILP32__)
++ blog(LOG_ERROR, "calc() had invalid number of arguments: %d (%s)", args.length(),
++#else
+ blog(LOG_ERROR, "calc() had invalid number of arguments: %lld (%s)", args.length(),
++#endif
+ QT_TO_UTF8(args.join(", ")));
+ return "'Invalid expression'";
+ }
+--- obs-studio-31.0.0/shared/bpm/bpm.c.org 2024-12-27 00:27:44.626665761 +0100
++++ obs-studio-31.0.0/shared/bpm/bpm.c 2024-12-27 00:13:58.196665720 +0100
+@@ -17,7 +21,11 @@
+ const struct encoder_packet_time *ept, struct metrics_data *m_track)
+ {
+ if (!output || !pkt || !ept || !m_track) {
++#if defined(__ILP32__)
++ blog(LOG_DEBUG, "%s: Null arguments for track %u", __FUNCTION__, pkt->track_idx);
++#else
+ blog(LOG_DEBUG, "%s: Null arguments for track %lu", __FUNCTION__, pkt->track_idx);
++#endif
+ return false;
+ }
+
+@@ -118,7 +126,11 @@
+ * with "--verbose" and "--unfiltered_log".
+ */
+ blog(LOG_DEBUG,
++#if defined(__ILP32__)
++ "BPM: %s, trk %u: [CTS|FER-CTS|FERC-FER|PIR-CTS]:[%" PRIu64 " ms|%" PRIu64 " ms|%" PRIu64 " us|%" PRIu64
++#else
+ "BPM: %s, trk %lu: [CTS|FER-CTS|FERC-FER|PIR-CTS]:[%" PRIu64 " ms|%" PRIu64 " ms|%" PRIu64 " us|%" PRIu64
++#endif
+ " ms], [dts|pts]:[%" PRId64 "|%" PRId64 "], S[R:O:D:L],R[I:S:O]:%d:%d:%d:%d:%d:%d:%d",
+ obs_encoder_get_name(pkt->encoder), pkt->track_idx, ept->cts / 1000000, (ept->fer - ept->cts) / 1000000,
+ (ept->ferc - ept->fer) / 1000, (ept->pir - ept->cts) / 1000000, pkt->dts, pkt->pts,
+@@ -323,14 +335,22 @@
+ bool av1 = false;
+
+ if (!m_track) {
++#if defined(__ILP32__)
++ blog(LOG_DEBUG, "Metrics track for index: %u had not be initialized", out->track_idx);
++#else
+ blog(LOG_DEBUG, "Metrics track for index: %lu had not be initialized", out->track_idx);
++#endif
+ return false;
+ }
+
+ // Update the metrics for this track
+ if (!update_metrics(output, out, ept, m_track)) {
+ // Something went wrong; log it and return
++#if defined(__ILP32__)
++ blog(LOG_DEBUG, "update_metrics() for track index: %u failed", out->track_idx);
++#else
+ blog(LOG_DEBUG, "update_metrics() for track index: %lu failed", out->track_idx);
++#endif
+ return false;
+ }
+
+@@ -569,7 +589,11 @@
+ if (pkt->type == OBS_ENCODER_VIDEO && pkt->keyframe) {
+ /* Video packet must have pkt_timing supplied for BPM */
+ if (!pkt_time) {
++#if defined(__ILP32__)
++ blog(LOG_DEBUG, "%s: Packet timing missing for track %d, PTS %" PRId64, __FUNCTION__,
++#else
+ blog(LOG_DEBUG, "%s: Packet timing missing for track %ld, PTS %" PRId64, __FUNCTION__,
++#endif
+ pkt->track_idx, pkt->pts);
+ return;
+ }
diff --git a/no-arch-abi-warning.patch b/no-arch-abi-warning.patch
new file mode 100644
index 0000000..a691ff2
--- /dev/null
+++ b/no-arch-abi-warning.patch
@@ -0,0 +1,12 @@
+--- obs-studio-31.0.0/cmake/linux/compilerconfig.cmake~ 2024-12-07 00:21:55.000000000 +0100
++++ obs-studio-31.0.0/cmake/linux/compilerconfig.cmake 2024-12-27 00:42:07.449999208 +0100
+@@ -60,6 +60,9 @@
+ endif()
+
+ if(CMAKE_CXX_COMPILER_ID STREQUAL GNU)
++ # Disable warning for https://github.com/WarmUpTill/SceneSwitcher/issues/1091
++ add_compile_options(-Wno-error=psabi)
++
+ # * Disable false-positive warning in GCC 12.1.0 and later
+ # * https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105562
+ if(CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 12.1.0)
diff --git a/x32.patch b/x32.patch
index 43a5e96..e5d308c 100644
--- a/x32.patch
+++ b/x32.patch
@@ -12,84 +12,6 @@
buf.timestamp.tv_usec, buf.index, buf.flags, buf.sequence, buf.length, buf.bytesused);
out.timestamp = timeval2ns(buf.timestamp);
---- obs-studio-31.0.0/libobs/obs-output.c.orig 2024-12-26 23:35:00.153332094 +0100
-+++ obs-studio-31.0.0/libobs/obs-output.c 2024-12-26 23:36:56.276665465 +0100
-@@ -1494,7 +1494,11 @@
-
- struct caption_track_data *ctrack = output->caption_tracks[out->track_idx];
- if (!ctrack) {
-+#if defined(__x86_64__) && defined(__ILP32__)
-+ blog(LOG_DEBUG, "Caption track for index: %u has not been initialized", out->track_idx);
-+#else
- blog(LOG_DEBUG, "Caption track for index: %lu has not been initialized", out->track_idx);
-+#endif
- return false;
- }
-
-@@ -1702,12 +1706,20 @@
- }
- }
- if (found_ept == false) {
-+#if defined(__x86_64__) && defined(__ILP32__)
-+ blog(LOG_DEBUG, "%s: Track %u encoder packet timing for PTS%" PRId64 " not found.",
-+#else
- blog(LOG_DEBUG, "%s: Track %lu encoder packet timing for PTS%" PRId64 " not found.",
-+#endif
- __FUNCTION__, out.track_idx, out.pts);
- }
- } else {
- // encoder_packet_times should not be empty; log if so.
-+#if defined(__x86_64__) && defined(__ILP32__)
-+ blog(LOG_DEBUG, "%s: Track %u encoder packet timing array empty.", __FUNCTION__,
-+#else
- blog(LOG_DEBUG, "%s: Track %lu encoder packet timing array empty.", __FUNCTION__,
-+#endif
- out.track_idx);
- }
- }
---- obs-studio-31.0.0/plugins/obs-nvenc/nvenc.c.orig 2024-12-26 23:55:28.883332170 +0100
-+++ obs-studio-31.0.0/plugins/obs-nvenc/nvenc.c 2024-12-26 23:59:49.099998914 +0100
-@@ -378,9 +378,17 @@
- if (vbr)
- dstr_catf(&log, "\tmax_bitrate: %d\n", max_bitrate);
- if (cqp)
-+#if defined(__x86_64__) && defined(__ILP32__)
-+ dstr_catf(&log, "\tcqp: %lld\n", enc->props.cqp);
-+#else
- dstr_catf(&log, "\tcqp: %ld\n", enc->props.cqp);
-+#endif
- if (cqvbr) {
-+#if defined(__x86_64__) && defined(__ILP32__)
-+ dstr_catf(&log, "\tcq: %lld\n", enc->props.target_quality);
-+#else
- dstr_catf(&log, "\tcq: %ld\n", enc->props.target_quality);
-+#endif
- }
-
- dstr_catf(&log, "\tkeyint: %d\n", gop_size);
-@@ -390,13 +398,22 @@
- dstr_catf(&log, "\tprofile: %s\n", enc->props.profile);
- dstr_catf(&log, "\twidth: %d\n", enc->cx);
- dstr_catf(&log, "\theight: %d\n", enc->cy);
-+#if defined(__x86_64__) && defined(__ILP32__)
-+ dstr_catf(&log, "\tb-frames: %lld\n", enc->props.bf);
-+ dstr_catf(&log, "\tb-ref-mode: %lld\n", enc->props.bframe_ref_mode);
-+#else
- dstr_catf(&log, "\tb-frames: %ld\n", enc->props.bf);
- dstr_catf(&log, "\tb-ref-mode: %ld\n", enc->props.bframe_ref_mode);
-+#endif
- dstr_catf(&log, "\tlookahead: %s (%d frames)\n", lookahead ? "true" : "false", rc_lookahead);
- dstr_catf(&log, "\taq: %s\n", enc->props.adaptive_quantization ? "true" : "false");
-
- if (enc->props.split_encode) {
-+#if defined(__x86_64__) && defined(__ILP32__)
-+ dstr_catf(&log, "\tsplit encode: %lld\n", enc->props.split_encode);
-+#else
- dstr_catf(&log, "\tsplit encode: %ld\n", enc->props.split_encode);
-+#endif
- }
- if (enc->props.opts.count)
- dstr_catf(&log, "\tuser opts: %s\n", enc->props.opts_str);
--- obs-studio-31.0.0/plugins/obs-qsv11/common_utils_linux.cpp.orig 2024-12-07 00:21:55.000000000 +0100
+++ obs-studio-31.0.0/plugins/obs-qsv11/common_utils_linux.cpp 2024-12-27 00:01:45.876665615 +0100
@@ -509,7 +509,11 @@
@@ -104,20 +26,6 @@
obs_leave_graphics();
return;
}
---- obs-studio-31.0.0/UI/obs-app-theming.cpp.orig 2024-12-27 00:19:42.779999070 +0100
-+++ obs-studio-31.0.0/UI/obs-app-theming.cpp 2024-12-27 00:24:51.099999085 +0100
-@@ -555,7 +555,11 @@
-
- QStringList args = var.value.toStringList();
- if (args.length() != 3) {
-+#if defined(__x86_64__) && defined(__ILP32__)
-+ blog(LOG_ERROR, "calc() had invalid number of arguments: %d (%s)", args.length(),
-+#else
- blog(LOG_ERROR, "calc() had invalid number of arguments: %lld (%s)", args.length(),
-+#endif
- QT_TO_UTF8(args.join(", ")));
- return "'Invalid expression'";
- }
--- obs-studio-31.0.0/shared/bpm/bpm.c.org 2024-12-27 00:27:44.626665761 +0100
+++ obs-studio-31.0.0/shared/bpm/bpm.c 2024-12-27 00:13:58.196665720 +0100
@@ -9,7 +9,11 @@
@@ -132,62 +40,3 @@
m_time->valid = true;
}
-@@ -17,7 +21,11 @@
- const struct encoder_packet_time *ept, struct metrics_data *m_track)
- {
- if (!output || !pkt || !ept || !m_track) {
-+#if defined(__x86_64__) && defined(__ILP32__)
-+ blog(LOG_DEBUG, "%s: Null arguments for track %u", __FUNCTION__, pkt->track_idx);
-+#else
- blog(LOG_DEBUG, "%s: Null arguments for track %lu", __FUNCTION__, pkt->track_idx);
-+#endif
- return false;
- }
-
-@@ -118,7 +126,11 @@
- * with "--verbose" and "--unfiltered_log".
- */
- blog(LOG_DEBUG,
-+#if defined(__x86_64__) && defined(__ILP32__)
-+ "BPM: %s, trk %u: [CTS|FER-CTS|FERC-FER|PIR-CTS]:[%" PRIu64 " ms|%" PRIu64 " ms|%" PRIu64 " us|%" PRIu64
-+#else
- "BPM: %s, trk %lu: [CTS|FER-CTS|FERC-FER|PIR-CTS]:[%" PRIu64 " ms|%" PRIu64 " ms|%" PRIu64 " us|%" PRIu64
-+#endif
- " ms], [dts|pts]:[%" PRId64 "|%" PRId64 "], S[R:O:D:L],R[I:S:O]:%d:%d:%d:%d:%d:%d:%d",
- obs_encoder_get_name(pkt->encoder), pkt->track_idx, ept->cts / 1000000, (ept->fer - ept->cts) / 1000000,
- (ept->ferc - ept->fer) / 1000, (ept->pir - ept->cts) / 1000000, pkt->dts, pkt->pts,
-@@ -323,14 +335,22 @@
- bool av1 = false;
-
- if (!m_track) {
-+#if defined(__x86_64__) && defined(__ILP32__)
-+ blog(LOG_DEBUG, "Metrics track for index: %u had not be initialized", out->track_idx);
-+#else
- blog(LOG_DEBUG, "Metrics track for index: %lu had not be initialized", out->track_idx);
-+#endif
- return false;
- }
-
- // Update the metrics for this track
- if (!update_metrics(output, out, ept, m_track)) {
- // Something went wrong; log it and return
-+#if defined(__x86_64__) && defined(__ILP32__)
-+ blog(LOG_DEBUG, "update_metrics() for track index: %u failed", out->track_idx);
-+#else
- blog(LOG_DEBUG, "update_metrics() for track index: %lu failed", out->track_idx);
-+#endif
- return false;
- }
-
-@@ -569,7 +589,11 @@
- if (pkt->type == OBS_ENCODER_VIDEO && pkt->keyframe) {
- /* Video packet must have pkt_timing supplied for BPM */
- if (!pkt_time) {
-+#if defined(__x86_64__) && defined(__ILP32__)
-+ blog(LOG_DEBUG, "%s: Packet timing missing for track %d, PTS %" PRId64, __FUNCTION__,
-+#else
- blog(LOG_DEBUG, "%s: Packet timing missing for track %ld, PTS %" PRId64, __FUNCTION__,
-+#endif
- pkt->track_idx, pkt->pts);
- return;
- }
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/obs-studio.git/commitdiff/7b6d1ab6071c68c71a56601da8ef6ef210218bc8
More information about the pld-cvs-commit
mailing list