kpvdr pushed to rpms/qpid-proton (rawhide). "Rebased to 0.38.0"
by notificationsï¼ fedoraproject.org
Notification time stamped 2023-03-31 20:26:41 UTC
From 2d2222634b62a45033e675a772dd4d813119306c Mon Sep 17 00:00:00 2001
From: Kim van der Riet <kvanderr(a)redhat.com>
Date: Mar 31 2023 20:26:28 +0000
Subject: Rebased to 0.38.0
---
diff --git a/licenses.xml b/licenses.xml
index 780a10c..5a701c5 100644
--- a/licenses.xml
+++ b/licenses.xml
@@ -3,7 +3,7 @@
<dependencies>
<dependency>
<packageName>qpid-proton</packageName>
- <version>0.37.0</version>
+ <version>0.38.0</version>
<licenses>
<license>
<name>ASL 2.0</name>
diff --git a/proton.patch b/proton.patch
index 82593f8..c9fc8f4 100644
--- a/proton.patch
+++ b/proton.patch
@@ -1,18 +1,51 @@
-From c2256a4ed949bad6b85086113dc570472a0f7c11 Mon Sep 17 00:00:00 2001
-From: Irina Boverman <iboverma(a)redhat.com>
-Date: Tue, 4 May 2021 14:12:53 -0400
-Subject: [PATCH] Changed Sphinx invocation from sphinx to sphinx-build for
- RHEL7
+diff -ruN qpid-proton-0.38.0.orig/CMakeLists.txt qpid-proton-0.38.0/CMakeLists.txt
+--- qpid-proton-0.38.0.orig/CMakeLists.txt 2022-11-07 11:35:09.000000000 -0500
++++ qpid-proton-0.38.0/CMakeLists.txt 2022-11-23 10:19:17.963751717 -0500
+@@ -42,7 +42,7 @@
+ if (NOT DEFINED Python_FIND_FRAMEWORK)
+ set(Python_FIND_FRAMEWORK "LAST")
+ endif ()
+-find_package(Python 3.6
++find_package(Python 3.9
+ REQUIRED COMPONENTS Interpreter
+ OPTIONAL_COMPONENTS Development)
----
- python/CMakeLists.txt | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
+diff -ruN qpid-proton-0.38.0.orig/cpp/src/map_test.cpp qpid-proton-0.38.0/cpp/src/map_test.cpp
+--- qpid-proton-0.38.0.orig/cpp/src/map_test.cpp 2022-11-07 11:35:09.000000000 -0500
++++ qpid-proton-0.38.0/cpp/src/map_test.cpp 2023-01-26 10:49:44.159634165 -0500
+@@ -114,6 +114,20 @@
+ ASSERT_THROWS(conversion_error, m.value(bad));
+ }
-diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt
-index 44bc36a..e7d0f10 100644
---- a/python/CMakeLists.txt
-+++ b/python/CMakeLists.txt
-@@ -125,7 +125,7 @@ else ()
++void test_copy_constructor() {
++ proton::map<string, scalar> m = std::map<string, scalar>{{"a", 2}, {"b", 3}};
++ ASSERT_EQUAL(scalar(2), m.get("a"));
++ ASSERT_EQUAL(scalar(3), m.get("b"));
++ ASSERT_EQUAL(2U, m.size());
++}
++
++void test_initializer_list_constructor() {
++ proton::map<string, scalar> m({{"a", 2}, {"b", 3}});
++ ASSERT_EQUAL(scalar(2), m.get("a"));
++ ASSERT_EQUAL(scalar(3), m.get("b"));
++ ASSERT_EQUAL(2U, m.size());
++}
++
+ }
+
+ int main(int, char**) {
+@@ -122,5 +136,7 @@
+ RUN_TEST(failed, test_use());
+ RUN_TEST(failed, test_cppmap());
+ RUN_TEST(failed, test_value());
++ RUN_TEST(failed, test_copy_constructor());
++ RUN_TEST(failed, test_initializer_list_constructor());
+ return failed;
+ }
+diff -ruN qpid-proton-0.38.0.orig/python/CMakeLists.txt qpid-proton-0.38.0/python/CMakeLists.txt
+--- qpid-proton-0.38.0.orig/python/CMakeLists.txt 2022-11-07 11:35:09.000000000 -0500
++++ qpid-proton-0.38.0/python/CMakeLists.txt 2022-11-23 10:20:07.216991810 -0500
+@@ -101,7 +101,7 @@
COMMAND ${PN_ENV_SCRIPT} --
PYTHONPATH=${CMAKE_CURRENT_BINARY_DIR}:${CMAKE_CURRENT_SOURCE_DIR}
LD_LIBRARY_PATH="${CMAKE_CURRENT_BINARY_DIR}/c"
@@ -21,6 +54,3 @@ index 44bc36a..e7d0f10 100644
add_dependencies(docs docs-py)
install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/docs/"
DESTINATION "${PROTON_SHARE}/docs/api-py"
---
-1.8.3.1
-
diff --git a/qpid-proton.spec b/qpid-proton.spec
index 55b0820..a1b1b6a 100644
--- a/qpid-proton.spec
+++ b/qpid-proton.spec
@@ -1,13 +1,14 @@
%global proton_datadir %{_datadir}/proton
-%global gem_name qpid_proton
%global __cmake_in_source_build 1
%global __provides_exclude_from ^%{proton_datadir}/examples/.*$
%global __requires_exclude_from ^%{proton_datadir}/examples/.*$
+%undefine __brp_mangle_shebangs
+
Name: qpid-proton
-Version: 0.37.0
-Release: 5%{?dist}
+Version: 0.38.0
+Release: 1%{?dist}
Summary: A high performance, lightweight messaging library
License: ASL 2.0
URL: http://qpid.apache.org/proton/
@@ -30,13 +31,17 @@ BuildRequires: doxygen
BuildRequires: libuuid-devel
BuildRequires: openssl-devel
BuildRequires: python3-devel
+BuildRequires: python3-pip
+BuildRequires: python3-rpm-macros
BuildRequires: python3-sphinx
+BuildRequires: python3-wheel
BuildRequires: glibc-headers
BuildRequires: cyrus-sasl-devel
BuildRequires: jsoncpp-devel
BuildRequires: python3-setuptools
-BuildRequires: ruby-devel
-BuildRequires: rubygems-devel
+BuildRequires: libuv-devel
+BuildRequires: nspr-devel
+#BuildRequires: opentelemetry-cpp-devel
%description
Proton is a high performance, lightweight messaging library. It can be used in
@@ -70,8 +75,9 @@ Obsoletes: perl-qpid-proton
%package cpp
Summary: C++ libraries for Qpid Proton
-Requires: qpid-proton-c%{?_isa} = %{version}-%{release}
+Requires: qpid-proton-c%{?_isa} = %{version}-%{release}
Requires: jsoncpp
+#Requires: opentelemetry-cpp
%description cpp
%{summary}.
@@ -125,13 +131,12 @@ Summary: Development libraries for writing messaging apps with Qpid Proton
Summary: Documentation for the C development libraries for Qpid Proton
BuildArch: noarch
Obsoletes: qpid-proton-c-devel-doc
-Obsoletes: qpid-proton-c-devel-docs
+Obsoletes: qpid-proton-c-devel-docs
%description c-docs
%{summary}.
%files c-docs
-%defattr(-,root,root,-)
%license %{proton_licensedir}/LICENSE.txt
%doc %{proton_datadir}/docs/api-c
%doc %{proton_datadir}/examples/README.md
@@ -152,7 +157,6 @@ Obsoletes: qpid-proton-cpp-devel-docs
%{summary}.
%files cpp-docs
-%defattr(-,root,root,-)
%license %{proton_licensedir}/LICENSE.txt
%{proton_datadir}/docs/api-cpp
%doc %{proton_datadir}/examples/cpp/*.cpp
@@ -160,13 +164,12 @@ Obsoletes: qpid-proton-cpp-devel-docs
%doc %{proton_datadir}/examples/cpp/README.dox
%doc %{proton_datadir}/examples/cpp/CMakeLists.txt
%doc %{proton_datadir}/examples/cpp/ssl-certs
+%doc %{proton_datadir}/examples/cpp/tracing.dox
%doc %{proton_datadir}/examples/cpp/tutorial.dox
%package -n python3-qpid-proton
Summary: Python language bindings for the Qpid Proton messaging framework
-%{?python_provide:%python_provide python3-qpid-proton}
-
Requires: qpid-proton-c%{?_isa} = %{version}-%{release}
Requires: python3
@@ -174,7 +177,11 @@ Requires: python3
%{summary}.
%files -n python3-qpid-proton
-%{python3_sitearch}/*
+%{python3_sitearch}/__pycache__/*
+%{python3_sitearch}/*.so
+%{python3_sitearch}/*.py*
+%{python3_sitearch}/proton
+%{python3_sitearch}/python_qpid_proton-%{version}.dist-info/*
%package -n python-qpid-proton-docs
@@ -186,7 +193,6 @@ Obsoletes: python-qpid-proton-doc
%{summary}.
%files -n python-qpid-proton-docs
-%defattr(-,root,root,-)
%license %{proton_licensedir}/LICENSE.txt
%doc %{proton_datadir}/docs/api-py
%doc %{proton_datadir}/examples/python
@@ -195,6 +201,7 @@ Obsoletes: python-qpid-proton-doc
%package tests
Summary: Qpid Proton Tests
BuildArch: noarch
+
%description tests
%{summary}.
@@ -202,79 +209,53 @@ BuildArch: noarch
%doc %{proton_datadir}/tests
-%package -n rubygem-%{gem_name}
-Group: System Environment/Libraries
-Summary: Ruby language bindings for the Qpid Proton messaging framework
-Obsoletes: rubygem-%{gem_name}-doc
-
-%description -n rubygem-%{gem_name}
-Proton is a high performance, lightweight messaging library. It can be used in
-the widest range of messaging applications including brokers, client libraries,
-routers, bridges, proxies, and more. Proton is based on the AMQP 1.0 messaging
-standard.
-
-%files -n rubygem-%{gem_name}
-%dir %{gem_instdir}
-%{gem_libdir}
-%{gem_extdir_mri}
-%exclude %{gem_cache}
-%{gem_spec}
-%doc %{gem_instdir}/examples
-%doc %{gem_instdir}/tests
-
-
%prep
%setup -q -n %{name}-%{version}
-%patch0 -p1
+%patch -p1 0
%build
-
-mkdir buildpython3
-cd buildpython3
+mkdir -p BLD
+cd BLD
%cmake \
- -DSYSINSTALL_BINDINGS=ON \
-DCMAKE_SKIP_RPATH:BOOL=OFF \
- -DENABLE_FUZZ_TESTING=NO \
"-DCMAKE_C_FLAGS=$CFLAGS -Wno-deprecated-declarations" \
+ -DENABLE_FUZZ_TESTING=NO \
..
-#make all docs %{?_smp_mflags}
-make all docs -j1
-(cd python/dist; %py3_build)
+make all docs %{?_smp_mflags}
%install
rm -rf %{buildroot}
-cd buildpython3
+cd BLD
%make_install
-(cd python/dist; %py3_install)
-chmod +x %{buildroot}%{python3_sitearch}/_cproton.so
+(cd python/dist
+# Need to remove anything built by the python cmake build in proton
+# so that we rebuild from scratch
+rm -rf build
+# Need to do the python package build here as we rely on the qpid-proton-core
+# library to be installed so we don't duplicate it inside the extension
+# That is also why we have to point pkg-config at the installed library
+PKG_CONFIG_PATH=%{buildroot}%{_libdir}/pkgconfig %py3_build_wheel
+%py3_install_wheel python_qpid_proton-%{version}-cp311-cp311-linux_%{_arch}.whl
+# We seem to need to strip the build extension otherwise it seems to embed a reference to
+# the buildroot in the debug info which fails the rpmbuild - probably because we massaged
+# the pkgconfig path above
+strip %{buildroot}%{python3_sitearch}/_cproton*.so)
install -dm 755 %{buildroot}%{proton_licensedir}
install -pm 644 %{SOURCE1} %{buildroot}%{proton_licensedir}
install -pm 644 %{buildroot}%{proton_datadir}/LICENSE.txt %{buildroot}%{proton_licensedir}
rm -f %{buildroot}%{proton_datadir}/LICENSE.txt
-cd ruby/gem/
-mkdir -p %{buildroot}%{gem_instdir}
-install -dm 755 %{buildroot}%{gem_dir}/specifications
-mkdir -p %{buildroot}%{gem_extdir_mri}
-cp -a %{buildroot}%{ruby_vendorarchdir}/cproton.so %{buildroot}%{gem_extdir_mri}/
-touch %{buildroot}%{gem_extdir_mri}/gem.build_complete
-chmod 644 %{buildroot}%{gem_extdir_mri}/gem.build_complete
-cp -a examples tests lib %{buildroot}%{gem_instdir}/
-install -pm 644 %{gem_name}.gemspec %{buildroot}%{gem_spec}
-
# clean up files that are not shipped
rm -rf %{buildroot}%{_exec_prefix}/bindings
rm -rf %{buildroot}%{_libdir}/java
rm -rf %{buildroot}%{_libdir}/libproton-jni.so
rm -rf %{buildroot}%{_datarootdir}/java
rm -rf %{buildroot}%{_libdir}/proton.cmake
-rm -rf %{buildroot}%{_libdir}/ruby
-rm -rf %{buildroot}%{_datarootdir}/ruby
rm -fr %{buildroot}%{proton_datadir}/examples/CMakeFiles
rm -f %{buildroot}%{proton_datadir}/examples/Makefile
rm -f %{buildroot}%{proton_datadir}/examples/*.cmake
@@ -288,6 +269,8 @@ rm -f %{buildroot}%{proton_datadir}/examples/c/receive
rm -f %{buildroot}%{proton_datadir}/examples/c/send
rm -f %{buildroot}%{proton_datadir}/examples/c/send-abort
rm -f %{buildroot}%{proton_datadir}/examples/c/send-ssl
+rm -f %{buildroot}%{proton_datadir}/examples/c/raw_connect
+rm -f %{buildroot}%{proton_datadir}/examples/c/raw_echo
rm -fr %{buildroot}%{proton_datadir}/examples/cpp/CMakeFiles
rm -f %{buildroot}%{proton_datadir}/examples/cpp/*.cmake
rm -f %{buildroot}%{proton_datadir}/examples/cpp/Makefile
@@ -322,7 +305,6 @@ rm -fr %{buildroot}%{proton_datadir}/examples/engine/java
rm -fr %{buildroot}%{proton_datadir}/examples/go
rm -fr %{buildroot}%{proton_datadir}/examples/java
rm -fr %{buildroot}%{proton_datadir}/examples/javascript
-rm -fr %{buildroot}%{proton_datadir}/examples/ruby
rm -fr %{buildroot}%{proton_datadir}/examples/perl
rm -fr %{buildroot}%{proton_datadir}/examples/php
rm -f %{buildroot}%{proton_datadir}/CMakeLists.txt
@@ -330,6 +312,9 @@ rm -f %{buildroot}%{proton_datadir}/CMakeLists.txt
%check
%changelog
+* Fri Mar 31 2023 Kim van der Riet <kvanderr(a)redhat.com> - 0.38.0-1
+- Rebased to 0.38.0, opentelemetry-cpp not included as no pkgs in Fedora yet.
+
* Fri Jan 20 2023 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.37.0-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
@@ -363,7 +348,7 @@ rm -f %{buildroot}%{proton_datadir}/CMakeLists.txt
* Fri Jul 23 2021 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.35.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
-* Fri July 16 2021 Kim van der Riet <kvanderr(a)redhat.com> - 0.35.0-1
+* Fri Jul 16 2021 Kim van der Riet <kvanderr(a)redhat.com> - 0.35.0-1
- Rebased to 0.35.0
* Tue May 4 2021 Irina Boverman <iboverma(a)redhat.com> - 0.34.0-1
@@ -521,7 +506,7 @@ rm -f %{buildroot}%{proton_datadir}/CMakeLists.txt
* Tue Sep 8 2015 Irina Boverman <iboverma(a)redhat.com> - 0.10-2
- Added dependency on cyrus-sasl-devel and cyrus-sasl-lib
- Added 0001-PROTON-974-Accept-a-single-symbol-in-SASL-mechs-fram.patch
-
+
* Wed Sep 2 2015 Irina Boverman <iboverma(a)redhat.com> - 0.10-1
- Rebased to 0.10
@@ -627,7 +612,7 @@ rm -f %{buildroot}%{proton_datadir}/CMakeLists.txt
- Removed redundant package name from summary.
- Removed debugging artifacts from specfile.
- Moved unversioned library to the -devel package.
-- Added dependency on main package to -devel.
+- Added dependency on main package to -devel.
- Fixed directory ownerships.
* Fri Nov 30 2012 Darryl L. Pierce <dpierce(a)redhat.com> - 0.2-2
diff --git a/sources b/sources
index eeed64e..e64d887 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (qpid-proton-0.37.0.tar.gz) = 84d67aab0e81f371fbcee3db89a8a585794966e17ffcd2e2e9418cb587efc0bc4e635c6ce251ebefd716817632ea5b049b759678cebbad64a0d0c07285bd5962
+SHA512 (qpid-proton-0.38.0.tar.gz) = 5333046c954d8b63c59579b05173fa2345e0a61f37a305d23b9e3afee461280c82f9f1c19c30954ba32176ce5fef9ce1f0afc57c99d6c614b2d66cdbb71ff00e
https://src.fedoraproject.org/rpms/qpid-proton/c/2d2222634b62a45033e675a7...
1Â year, 1Â month
catanzaro pushed to rpms/webkitgtk (rawhide). "Upgrade to 2.41.1"
by notificationsï¼ fedoraproject.org
Notification time stamped 2023-03-31 20:21:45 UTC
From f25af2888e92c318e492c4a438fa7741c64de4f5 Mon Sep 17 00:00:00 2001
From: Michael Catanzaro <mcatanzaro(a)redhat.com>
Date: Mar 31 2023 20:21:05 +0000
Subject: Upgrade to 2.41.1
---
diff --git a/.gitignore b/.gitignore
index e2096ca..4538a1c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -15,3 +15,4 @@
/webkitgtk-2.39.90.tar.xz.asc
/webkitgtk-2.39.91.tar.xz.asc
/webkitgtk-2.40.0.tar.xz.asc
+/webkitgtk-2.41.1.tar.xz.asc
diff --git a/build.patch b/build.patch
new file mode 100644
index 0000000..4ecf666
--- /dev/null
+++ b/build.patch
@@ -0,0 +1,149 @@
+From fd977228c791d5cf767a1e5b4ed3596add8ed6d5 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=C5=BDan=20Dober=C5=A1ek?= <zdobersek(a)igalia.com>
+Date: Thu, 30 Mar 2023 10:36:24 -0700
+Subject: [PATCH] Build fix around std::variant in SourceBrush for
+ Clang/libstdc++ https://bugs.webkit.org/show_bug.cgi?id=254742
+
+Unreviewed, build fix for the SourceBrush::Brush std::variant construction when
+using Clang with libstdc++.
+
+Things get mixed up when using Ref<Pattern> for constructing the variant, with
+the compiler using it as initialization for the LogicalGradient type, the other
+possible type in the variant, which ends up in a compile-time error.
+
+This can be avoided by using the in-place tag when constructing the variant in
+the SourceBrush::setPattern() method, specifying which variant-alternative type
+should be used.
+
+Similar fix for the same reasons is also needed in the decoding part of the
+ArgumentCoder<std::variant<>> specialization, this being problematic due to the
+SourceBrush::Brush decoding produced for the generated serializers purpose.
+There the variant is constructed with the in-place tag that's based on the index
+value of the alternative.
+
+* Source/WebCore/platform/graphics/SourceBrush.cpp:
+(WebCore::SourceBrush::setPattern):
+* Source/WebCore/platform/graphics/SourceBrush.h:
+* Source/WebKit/Platform/IPC/ArgumentCoders.h:
+
+Canonical link: https://commits.webkit.org/262339@main
+---
+ Source/WebCore/platform/graphics/SourceBrush.cpp | 2 +-
+ Source/WebCore/platform/graphics/SourceBrush.h | 3 ++-
+ Source/WebKit/Platform/IPC/ArgumentCoders.h | 2 +-
+ 3 files changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/Source/WebCore/platform/graphics/SourceBrush.cpp b/Source/WebCore/platform/graphics/SourceBrush.cpp
+index f42e0d42f534..44135b7706ad 100644
+--- a/Source/WebCore/platform/graphics/SourceBrush.cpp
++++ b/Source/WebCore/platform/graphics/SourceBrush.cpp
+@@ -91,7 +91,7 @@ void SourceBrush::setGradient(Ref<Gradient>&& gradient, const AffineTransform& s
+
+ void SourceBrush::setPattern(Ref<Pattern>&& pattern)
+ {
+- m_brush = { WTFMove(pattern) };
++ m_brush = { Brush::Variant { std::in_place_type<Ref<Pattern>>, WTFMove(pattern) } };
+ }
+
+ WTF::TextStream& operator<<(TextStream& ts, const SourceBrush& brush)
+diff --git a/Source/WebCore/platform/graphics/SourceBrush.h b/Source/WebCore/platform/graphics/SourceBrush.h
+index 176b9fc85c18..cd97b82c7444 100644
+--- a/Source/WebCore/platform/graphics/SourceBrush.h
++++ b/Source/WebCore/platform/graphics/SourceBrush.h
+@@ -42,7 +42,8 @@ class SourceBrush {
+ template<typename Decoder> static std::optional<LogicalGradient> decode(Decoder&);
+ };
+
+- std::variant<LogicalGradient, Ref<Pattern>> brush;
++ using Variant = std::variant<LogicalGradient, Ref<Pattern>>;
++ Variant brush;
+ };
+
+ SourceBrush() = default;
+diff --git a/Source/WebKit/Platform/IPC/ArgumentCoders.h b/Source/WebKit/Platform/IPC/ArgumentCoders.h
+index ae37b2145fc2..2d93984e3f36 100644
+--- a/Source/WebKit/Platform/IPC/ArgumentCoders.h
++++ b/Source/WebKit/Platform/IPC/ArgumentCoders.h
+@@ -743,7 +743,7 @@ template<typename... Types> struct ArgumentCoder<std::variant<Types...>> {
+ auto optional = decoder.template decode<typename std::variant_alternative_t<index, std::variant<Types...>>>();
+ if (!optional)
+ return std::nullopt;
+- return std::make_optional<std::variant<Types...>>(WTFMove(*optional));
++ return std::make_optional<std::variant<Types...>>(std::in_place_index<index>, WTFMove(*optional));
+ }
+ return decode(decoder, std::make_index_sequence<index + 1> { }, i);
+ } else
+
+From 93920b55f52ff8b883296f4845269e2ed746acb3 Mon Sep 17 00:00:00 2001
+From: Michael Catanzaro <mcatanzaro(a)redhat.com>
+Date: Fri, 31 Mar 2023 12:24:09 -0700
+Subject: [PATCH] Fix build of SourceBrush.cpp
+ https://bugs.webkit.org/show_bug.cgi?id=254821
+
+Unreviewed build fix.
+
+* Source/WebCore/platform/graphics/SourceBrush.cpp:
+(WebCore::SourceBrush::setGradient):
+(WebCore::SourceBrush::setPattern):
+
+Canonical link: https://commits.webkit.org/262434@main
+---
+ Source/WebCore/platform/graphics/SourceBrush.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/Source/WebCore/platform/graphics/SourceBrush.cpp b/Source/WebCore/platform/graphics/SourceBrush.cpp
+index 44135b7706ad..5377831d7902 100644
+--- a/Source/WebCore/platform/graphics/SourceBrush.cpp
++++ b/Source/WebCore/platform/graphics/SourceBrush.cpp
+@@ -86,12 +86,12 @@ Pattern* SourceBrush::pattern() const
+
+ void SourceBrush::setGradient(Ref<Gradient>&& gradient, const AffineTransform& spaceTransform)
+ {
+- m_brush = { Brush::LogicalGradient { { WTFMove(gradient) }, spaceTransform } };
++ m_brush = Brush { Brush::LogicalGradient { { WTFMove(gradient) }, spaceTransform } };
+ }
+
+ void SourceBrush::setPattern(Ref<Pattern>&& pattern)
+ {
+- m_brush = { Brush::Variant { std::in_place_type<Ref<Pattern>>, WTFMove(pattern) } };
++ m_brush = Brush { Brush::Variant { std::in_place_type<Ref<Pattern>>, WTFMove(pattern) } };
+ }
+
+ WTF::TextStream& operator<<(TextStream& ts, const SourceBrush& brush)
+
+From 2fd83187cbe7cf7f57f4d6834f6060b00703683b Mon Sep 17 00:00:00 2001
+From: Michael Catanzaro <mcatanzaro(a)redhat.com>
+Date: Fri, 31 Mar 2023 13:23:45 -0500
+Subject: [PATCH] [GTK] AcceleratedSurfaceDMABuf.cpp does not build on i368
+ https://bugs.webkit.org/show_bug.cgi?id=254828
+
+Reviewed by NOBODY (OOPS!).
+
+* Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceDMABuf.cpp:
+(WebKit::AcceleratedSurfaceDMABuf::clientResize):
+---
+ .../WebPage/gtk/AcceleratedSurfaceDMABuf.cpp | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceDMABuf.cpp b/Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceDMABuf.cpp
+index 2aa33586b317..34cca9f11d62 100644
+--- a/Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceDMABuf.cpp
++++ b/Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceDMABuf.cpp
+@@ -130,12 +130,12 @@ void AcceleratedSurfaceDMABuf::clientResize(const WebCore::IntSize& size)
+ }
+ UnixFileDescriptor backFD(gbm_bo_get_fd(backObject), UnixFileDescriptor::Adopt);
+ Vector<EGLAttrib> attributes = {
+- EGL_WIDTH, gbm_bo_get_width(backObject),
+- EGL_HEIGHT, gbm_bo_get_height(backObject),
+- EGL_LINUX_DRM_FOURCC_EXT, gbm_bo_get_format(backObject),
++ EGL_WIDTH, static_cast<EGLAttrib>(gbm_bo_get_width(backObject)),
++ EGL_HEIGHT, static_cast<EGLAttrib>(gbm_bo_get_height(backObject)),
++ EGL_LINUX_DRM_FOURCC_EXT, static_cast<EGLAttrib>(gbm_bo_get_format(backObject)),
+ EGL_DMA_BUF_PLANE0_FD_EXT, backFD.value(),
+- EGL_DMA_BUF_PLANE0_OFFSET_EXT, gbm_bo_get_offset(backObject, 0),
+- EGL_DMA_BUF_PLANE0_PITCH_EXT, gbm_bo_get_stride(backObject),
++ EGL_DMA_BUF_PLANE0_OFFSET_EXT, static_cast<EGLAttrib>(gbm_bo_get_offset(backObject, 0)),
++ EGL_DMA_BUF_PLANE0_PITCH_EXT, static_cast<EGLAttrib>(gbm_bo_get_stride(backObject)),
+ EGL_NONE
+ };
+ m_backImage = display.createEGLImage(EGL_NO_CONTEXT, EGL_LINUX_DMA_BUF_EXT, nullptr, attributes);
diff --git a/crashy-jit.patch b/crashy-jit.patch
new file mode 100644
index 0000000..b8257d5
--- /dev/null
+++ b/crashy-jit.patch
@@ -0,0 +1,155 @@
+From 63f0b2d0c54093bfea054cc6b302e578260d0fcc Mon Sep 17 00:00:00 2001
+From: Yusuke Suzuki <ysuzuki(a)apple.com>
+Date: Thu, 30 Mar 2023 19:47:10 -0700
+Subject: [PATCH] [JSC] Reduce # of parameters of function#bind operations
+ https://bugs.webkit.org/show_bug.cgi?id=254752 rdar://problem/107427493
+
+Reviewed by Ross Kirsling.
+
+Let's reconstruct boundArgsLength via passed args to reduce # of parameters of operations,
+to mitigate issues on x64 Windows (Windows x64 does not have appropriate implementation for more parameters).
+
+* Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:
+(JSC::DFG::ByteCodeParser::handleIntrinsicCall):
+* Source/JavaScriptCore/dfg/DFGOperations.cpp:
+(JSC::DFG::JSC_DEFINE_JIT_OPERATION):
+* Source/JavaScriptCore/dfg/DFGOperations.h:
+* Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:
+(JSC::DFG::SpeculativeJIT::compileFunctionBind):
+(JSC::DFG::SpeculativeJIT::compileNewBoundFunction):
+* Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:
+(JSC::FTL::DFG::LowerDFGToB3::compileNewBoundFunction):
+(JSC::FTL::DFG::LowerDFGToB3::compileFunctionBind):
+
+Canonical link: https://commits.webkit.org/262385@main
+---
+ Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp | 2 +-
+ Source/JavaScriptCore/dfg/DFGOperations.cpp | 13 +++++++++++--
+ Source/JavaScriptCore/dfg/DFGOperations.h | 4 ++--
+ Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp | 6 ++----
+ Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp | 5 ++---
+ 5 files changed, 18 insertions(+), 12 deletions(-)
+
+diff --git a/Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp b/Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp
+index fc1cd9e88efc..ae1265bb4bc8 100644
+--- a/Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp
++++ b/Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp
+@@ -3886,7 +3886,7 @@ auto ByteCodeParser::handleIntrinsicCall(Node* callee, Operand result, CallVaria
+ for (; index < argumentCountIncludingThis; ++index)
+ addVarArgChild(get(virtualRegisterForArgumentIncludingThis(index, registerOffset)));
+ for (; index < numChildren; ++index)
+- addVarArgChild(jsConstant(jsUndefined()));
++ addVarArgChild(jsConstant(JSValue()));
+ Node* resultNode = addToGraph(Node::VarArg, FunctionBind, OpInfo(0), OpInfo(static_cast<unsigned>(argumentCountIncludingThis >= 2 ? argumentCountIncludingThis - 2 : 0)));
+ setResult(resultNode);
+ return CallOptimizationResult::Inlined;
+diff --git a/Source/JavaScriptCore/dfg/DFGOperations.cpp b/Source/JavaScriptCore/dfg/DFGOperations.cpp
+index ca316e1bd6d2..f19fcd7df41c 100644
+--- a/Source/JavaScriptCore/dfg/DFGOperations.cpp
++++ b/Source/JavaScriptCore/dfg/DFGOperations.cpp
+@@ -2818,7 +2818,7 @@ JSC_DEFINE_JIT_OPERATION(operationFunctionToString, JSString*, (JSGlobalObject*
+ return function->toString(globalObject);
+ }
+
+-JSC_DEFINE_JIT_OPERATION(operationFunctionBind, JSBoundFunction*, (JSGlobalObject* globalObject, JSObject* target, unsigned boundArgsLength, EncodedJSValue boundThisValue, EncodedJSValue arg0Value, EncodedJSValue arg1Value, EncodedJSValue arg2Value))
++JSC_DEFINE_JIT_OPERATION(operationFunctionBind, JSBoundFunction*, (JSGlobalObject* globalObject, JSObject* target, EncodedJSValue boundThisValue, EncodedJSValue arg0Value, EncodedJSValue arg1Value, EncodedJSValue arg2Value))
+ {
+ VM& vm = globalObject->vm();
+ CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
+@@ -2830,6 +2830,11 @@ JSC_DEFINE_JIT_OPERATION(operationFunctionBind, JSBoundFunction*, (JSGlobalObjec
+ return { };
+ }
+
++ unsigned boundArgsLength = 0;
++ boundArgsLength += !!(JSValue::decode(arg0Value));
++ boundArgsLength += !!(JSValue::decode(arg1Value));
++ boundArgsLength += !!(JSValue::decode(arg2Value));
++
+ JSValue boundThis = JSValue::decode(boundThisValue);
+ EncodedJSValue arguments[JSBoundFunction::maxEmbeddedArgs] {
+ arg0Value,
+@@ -2871,7 +2876,7 @@ JSC_DEFINE_JIT_OPERATION(operationFunctionBind, JSBoundFunction*, (JSGlobalObjec
+ RELEASE_AND_RETURN(scope, JSBoundFunction::create(vm, globalObject, target, boundThis, boundArgs, length, name));
+ }
+
+-JSC_DEFINE_JIT_OPERATION(operationNewBoundFunction, JSBoundFunction*, (JSGlobalObject* globalObject, JSFunction* function, unsigned boundArgsLength, EncodedJSValue boundThisValue, EncodedJSValue arg0Value, EncodedJSValue arg1Value, EncodedJSValue arg2Value))
++JSC_DEFINE_JIT_OPERATION(operationNewBoundFunction, JSBoundFunction*, (JSGlobalObject* globalObject, JSFunction* function, EncodedJSValue boundThisValue, EncodedJSValue arg0Value, EncodedJSValue arg1Value, EncodedJSValue arg2Value))
+ {
+ VM& vm = globalObject->vm();
+ CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
+@@ -2880,6 +2885,10 @@ JSC_DEFINE_JIT_OPERATION(operationNewBoundFunction, JSBoundFunction*, (JSGlobalO
+ JSValue arg0 = JSValue::decode(arg0Value);
+ JSValue arg1 = JSValue::decode(arg1Value);
+ JSValue arg2 = JSValue::decode(arg2Value);
++ unsigned boundArgsLength = 0;
++ boundArgsLength += !!(arg0);
++ boundArgsLength += !!(arg1);
++ boundArgsLength += !!(arg2);
+ return JSBoundFunction::createRaw(vm, globalObject, function, boundArgsLength, boundThis, arg0, arg1, arg2);
+ }
+
+diff --git a/Source/JavaScriptCore/dfg/DFGOperations.h b/Source/JavaScriptCore/dfg/DFGOperations.h
+index 9602feb3d66a..7e6080a3ec4e 100644
+--- a/Source/JavaScriptCore/dfg/DFGOperations.h
++++ b/Source/JavaScriptCore/dfg/DFGOperations.h
+@@ -274,8 +274,8 @@ JSC_DECLARE_JIT_OPERATION(operationInt32ToStringWithValidRadix, char*, (JSGlobal
+ JSC_DECLARE_JIT_OPERATION(operationInt52ToStringWithValidRadix, char*, (JSGlobalObject*, int64_t, int32_t));
+ JSC_DECLARE_JIT_OPERATION(operationDoubleToStringWithValidRadix, char*, (JSGlobalObject*, double, int32_t));
+ JSC_DECLARE_JIT_OPERATION(operationFunctionToString, JSString*, (JSGlobalObject*, JSFunction*));
+-JSC_DECLARE_JIT_OPERATION(operationFunctionBind, JSBoundFunction*, (JSGlobalObject*, JSObject*, unsigned, EncodedJSValue, EncodedJSValue, EncodedJSValue, EncodedJSValue));
+-JSC_DECLARE_JIT_OPERATION(operationNewBoundFunction, JSBoundFunction*, (JSGlobalObject*, JSFunction*, unsigned, EncodedJSValue, EncodedJSValue, EncodedJSValue, EncodedJSValue));
++JSC_DECLARE_JIT_OPERATION(operationFunctionBind, JSBoundFunction*, (JSGlobalObject*, JSObject*, EncodedJSValue, EncodedJSValue, EncodedJSValue, EncodedJSValue));
++JSC_DECLARE_JIT_OPERATION(operationNewBoundFunction, JSBoundFunction*, (JSGlobalObject*, JSFunction*, EncodedJSValue, EncodedJSValue, EncodedJSValue, EncodedJSValue));
+
+ JSC_DECLARE_JIT_OPERATION(operationNormalizeMapKeyHeapBigInt, EncodedJSValue, (VM*, JSBigInt*));
+ JSC_DECLARE_JIT_OPERATION(operationMapHash, UCPUStrictInt32, (JSGlobalObject*, EncodedJSValue input));
+diff --git a/Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp b/Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp
+index 167e61a8d1d0..67f5def0dceb 100644
+--- a/Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp
++++ b/Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp
+@@ -6574,12 +6574,10 @@ void SpeculativeJIT::compileFunctionBind(Node* node)
+
+ speculateObject(m_graph.child(node, 0), targetGPR);
+
+- unsigned boundArgsLength = node->numberOfBoundArguments();
+-
+ GPRFlushedCallResult result(this);
+ GPRReg resultGPR = result.gpr();
+ flushRegisters();
+- callOperation(operationFunctionBind, resultGPR, LinkableConstant::globalObject(*this, node), targetGPR, TrustedImm32(boundArgsLength), boundThisRegs, arg0Regs, arg1Regs, arg2Regs);
++ callOperation(operationFunctionBind, resultGPR, LinkableConstant::globalObject(*this, node), targetGPR, boundThisRegs, arg0Regs, arg1Regs, arg2Regs);
+ exceptionCheck();
+ cellResult(resultGPR, node);
+ }
+@@ -6629,7 +6627,7 @@ void SpeculativeJIT::compileNewBoundFunction(Node* node)
+ store8(TrustedImm32(static_cast<uint8_t>(TriState::Indeterminate)), Address(resultGPR, JSBoundFunction::offsetOfCanConstruct()));
+ mutatorFence(vm());
+
+- addSlowPathGenerator(slowPathCall(slowPath, this, operationNewBoundFunction, resultGPR, LinkableConstant::globalObject(*this, node), targetGPR, TrustedImm32(node->numberOfBoundArguments()), boundThisRegs, arg0Regs, arg1Regs, arg2Regs));
++ addSlowPathGenerator(slowPathCall(slowPath, this, operationNewBoundFunction, resultGPR, LinkableConstant::globalObject(*this, node), targetGPR, boundThisRegs, arg0Regs, arg1Regs, arg2Regs));
+ cellResult(resultGPR, node);
+ }
+
+diff --git a/Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp b/Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp
+index 2dda50507633..704d0dd68d8c 100644
+--- a/Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp
++++ b/Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp
+@@ -7339,7 +7339,7 @@ IGNORE_CLANG_WARNINGS_END
+ LValue callResult = lazySlowPath(
+ [=, &vm] (const Vector<Location>& locations) -> RefPtr<LazySlowPath::Generator> {
+ return createLazyCallGenerator(vm, operationNewBoundFunction, locations[0].directGPR(),
+- CCallHelpers::TrustedImmPtr(globalObject), locations[1].directGPR(), CCallHelpers::TrustedImm32(numberOfBoundArguments),
++ CCallHelpers::TrustedImmPtr(globalObject), locations[1].directGPR(),
+ locations[2].directGPR(), locations[3].directGPR(), locations[4].directGPR(), locations[5].directGPR());
+ },
+ target, thisValue, arg0, arg1, arg2);
+@@ -9014,8 +9014,7 @@ IGNORE_CLANG_WARNINGS_END
+ void compileFunctionBind()
+ {
+ JSGlobalObject* globalObject = m_graph.globalObjectFor(m_origin.semantic);
+- unsigned boundArgsLength = m_node->numberOfBoundArguments();
+- setJSValue(vmCall(pointerType(), operationFunctionBind, weakPointer(globalObject), lowObject(m_graph.child(m_node, 0)), m_out.constInt32(boundArgsLength), lowJSValue(m_graph.child(m_node, 1)), lowJSValue(m_graph.child(m_node, 2)), lowJSValue(m_graph.child(m_node, 3)), lowJSValue(m_graph.child(m_node, 4))));
++ setJSValue(vmCall(pointerType(), operationFunctionBind, weakPointer(globalObject), lowObject(m_graph.child(m_node, 0)), lowJSValue(m_graph.child(m_node, 1)), lowJSValue(m_graph.child(m_node, 2)), lowJSValue(m_graph.child(m_node, 3)), lowJSValue(m_graph.child(m_node, 4))));
+ }
+
+ void compileToPrimitive()
diff --git a/sources b/sources
index 5483fdc..3ff5b9f 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-SHA512 (webkitgtk-2.40.0.tar.xz) = 550dafb31d71edf984d6b7636366f839d31f6b244b87f83c6efe7af17efe3f2f63268d2c39a6a3c474afadf2b30df868efaefcf38197b30cc6b11c63de7d2ddc
-SHA512 (webkitgtk-2.40.0.tar.xz.asc) = 782887d27adad7791dd4dc8e070c9c10c711da70907bddf988b739d03c3e2f3d49f433e3afc325801cf42aebe9689110122d6145b69d9696bf8eef5ae525062c
+SHA512 (webkitgtk-2.41.1.tar.xz) = a64e112855b53329d99b3f06239e2a7e593a4b22c4c91d87ae67cc37441fdd57458cfcd69151c43a614e10406b25d5f77c43f6865bb5883e32c25c993a506c37
+SHA512 (webkitgtk-2.41.1.tar.xz.asc) = a622232ba91291e3a19cb3693b415e2cf2005bdb52e92054dbe5ced56663d471a1a8942c1a2f53f46124910a270aaec72272ee03e3a590729e195571eab329fe
diff --git a/unbreak-script-message-received.patch b/unbreak-script-message-received.patch
deleted file mode 100644
index df91be8..0000000
--- a/unbreak-script-message-received.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 7bcb97382f2f347dc348c3c31416ae7fd760ce6b Mon Sep 17 00:00:00 2001
-From: Michael Catanzaro <mcatanzaro(a)redhat.com>
-Date: Fri, 17 Mar 2023 15:39:52 -0500
-Subject: [PATCH] REGRESSION(261320@main): [GLib] Broke
- WebKitUserContentManager::script-message-received
- https://bugs.webkit.org/show_bug.cgi?id=254089
-
-Reviewed by NOBODY (OOPS!).
-
-I forgot to update the marshaller used by
-WebKitUserContentManager::script-message-received. It worked perfectly
-fine in my development environment for whatever reason, but was broken
-in at least Ephy Tech Preview.
-
-* Source/WebKit/UIProcess/API/glib/WebKitUserContentManager.cpp:
----
- Source/WebKit/UIProcess/API/glib/WebKitUserContentManager.cpp | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/Source/WebKit/UIProcess/API/glib/WebKitUserContentManager.cpp b/Source/WebKit/UIProcess/API/glib/WebKitUserContentManager.cpp
-index af2d963bb3b3..f778b19bc816 100644
---- a/Source/WebKit/UIProcess/API/glib/WebKitUserContentManager.cpp
-+++ b/Source/WebKit/UIProcess/API/glib/WebKitUserContentManager.cpp
-@@ -106,7 +106,11 @@ static void webkit_user_content_manager_class_init(WebKitUserContentManagerClass
- G_TYPE_FROM_CLASS(gObjectClass),
- static_cast<GSignalFlags>(G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED),
- 0, nullptr, nullptr,
-+#if ENABLE(2022_GLIB_API)
-+ g_cclosure_marshal_VOID__OBJECT,
-+#else
- g_cclosure_marshal_VOID__BOXED,
-+#endif
- G_TYPE_NONE, 1,
- #if ENABLE(2022_GLIB_API)
- JSC_TYPE_VALUE);
diff --git a/webkitgtk.spec b/webkitgtk.spec
index a1b859a..48f0df0 100644
--- a/webkitgtk.spec
+++ b/webkitgtk.spec
@@ -16,7 +16,7 @@
%bcond_without docs
Name: webkitgtk
-Version: 2.40.0
+Version: 2.41.1
Release: %autorelease
Summary: GTK web content engine library
@@ -29,8 +29,13 @@ Source1: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz.asc
# $ gpg --export --export-options export-minimal D7FCF61CF9A2DEAB31D81BD3F3D322D0EC4582C3 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B > webkitgtk-keys.gpg
Source2: webkitgtk-keys.gpg
-# https://github.com/WebKit/WebKit/pull/11664
-Patch0: unbreak-script-message-received.patch
+# https://commits.webkit.org/262385@main
+Patch0: crashy-jit.patch
+
+# https://commits.webkit.org/262339@main
+# https://commits.webkit.org/262434@main
+# https://github.com/WebKit/WebKit/pull/12250
+Patch1: build.patch
BuildRequires: bison
BuildRequires: bubblewrap
https://src.fedoraproject.org/rpms/webkitgtk/c/f25af2888e92c318e492c4a438...
1Â year, 1Â month
belegdol pushed to rpms/mame (f36). "Fix ppc64le validation failure"
by notificationsï¼ fedoraproject.org
Notification time stamped 2023-03-31 20:17:31 UTC
From b6a712d1a6e10f59eac3983c5a079533914203c5 Mon Sep 17 00:00:00 2001
From: Julian Sikorski <belegdol(a)fedoraproject.org>
Date: Mar 31 2023 20:17:18 +0000
Subject: Fix ppc64le validation failure
---
diff --git a/mame.spec b/mame.spec
index 6fd43d0..c87b10a 100644
--- a/mame.spec
+++ b/mame.spec
@@ -22,6 +22,7 @@ Source0: https://github.com/mamedev/%{name}/archive/%{name}0%{baseversion
Source1: https://mamedev.org/releases/whatsnew_0%{baseversion}.txt
Patch0: %{name}-fortify.patch
Patch1: 0001-Hack-allowing-bgfx-to-initialise-in-absence-of-dx9-s.patch
+Patch2: ppc64le-validation-failure-fix.patch
Patch3: 0001-If-combination-of-wayland-videodriver-and-bgfx-video.patch
# %%{arm}:
diff --git a/ppc64le-validation-failure-fix.patch b/ppc64le-validation-failure-fix.patch
new file mode 100644
index 0000000..5e93d0b
--- /dev/null
+++ b/ppc64le-validation-failure-fix.patch
@@ -0,0 +1,363 @@
+diff --git a/src/emu/video/rgbvmx.cpp b/src/emu/video/rgbvmx.cpp
+index 608f7024565..62bd25b3578 100644
+--- a/src/emu/video/rgbvmx.cpp
++++ b/src/emu/video/rgbvmx.cpp
+@@ -190,7 +190,7 @@ void rgbaint_t::scale_and_clamp(const rgbaint_t& scale)
+ clamp_to_uint8();
+ }
+
+-void rgbaint_t::scale_imm_and_clamp(const s32 scale)
++void rgbaint_t::scale_imm_and_clamp(s32 scale)
+ {
+ mul_imm(scale);
+ sra_imm(8);
+diff --git a/src/emu/video/rgbvmx.h b/src/emu/video/rgbvmx.h
+index 05d26cd9e21..dd1946bfa28 100644
+--- a/src/emu/video/rgbvmx.h
++++ b/src/emu/video/rgbvmx.h
+@@ -76,7 +76,7 @@ public:
+ }
+
+ // This function sets all elements to the same val
+- void set_all(const s32& val) { set(val, val, val, val); }
++ void set_all(const s32 &val) { set(val, val, val, val); }
+ // This function zeros all elements
+ void zero() { set_all(0); }
+ // This function zeros only the alpha element
+@@ -100,31 +100,31 @@ public:
+ return result;
+ }
+
+- void set_a16(const s32 value)
++ void set_a16(s32 value)
+ {
+ const VECS32 temp = { value, value, value, value };
+ m_value = vec_perm(m_value, temp, alpha_perm);
+ }
+
+- void set_a(const s32 value)
++ void set_a(s32 value)
+ {
+ const VECS32 temp = { value, value, value, value };
+ m_value = vec_perm(m_value, temp, alpha_perm);
+ }
+
+- void set_r(const s32 value)
++ void set_r(s32 value)
+ {
+ const VECS32 temp = { value, value, value, value };
+ m_value = vec_perm(m_value, temp, red_perm);
+ }
+
+- void set_g(const s32 value)
++ void set_g(s32 value)
+ {
+ const VECS32 temp = { value, value, value, value };
+ m_value = vec_perm(m_value, temp, green_perm);
+ }
+
+- void set_b(const s32 value)
++ void set_b(s32 value)
+ {
+ const VECS32 temp = { value, value, value, value };
+ m_value = vec_perm(m_value, temp, blue_perm);
+@@ -229,13 +229,13 @@ public:
+ m_value = vec_add(m_value, color2.m_value);
+ }
+
+- inline void add_imm(const s32 imm)
++ inline void add_imm(s32 imm)
+ {
+ const VECS32 temp = { imm, imm, imm, imm };
+ m_value = vec_add(m_value, temp);
+ }
+
+- inline void add_imm_rgba(const s32 a, const s32 r, const s32 g, const s32 b)
++ inline void add_imm_rgba(s32 a, s32 r, s32 g, s32 b)
+ {
+ #ifdef __LITTLE_ENDIAN__
+ const VECS32 temp = { b, g, r, a };
+@@ -250,13 +250,13 @@ public:
+ m_value = vec_sub(m_value, color2.m_value);
+ }
+
+- inline void sub_imm(const s32 imm)
++ inline void sub_imm(s32 imm)
+ {
+ const VECS32 temp = { imm, imm, imm, imm };
+ m_value = vec_sub(m_value, temp);
+ }
+
+- inline void sub_imm_rgba(const s32 a, const s32 r, const s32 g, const s32 b)
++ inline void sub_imm_rgba(s32 a, s32 r, s32 g, s32 b)
+ {
+ #ifdef __LITTLE_ENDIAN__
+ const VECS32 temp = { b, g, r, a };
+@@ -271,13 +271,13 @@ public:
+ m_value = vec_sub(color2.m_value, m_value);
+ }
+
+- inline void subr_imm(const s32 imm)
++ inline void subr_imm(s32 imm)
+ {
+ const VECS32 temp = { imm, imm, imm, imm };
+ m_value = vec_sub(temp, m_value);
+ }
+
+- inline void subr_imm_rgba(const s32 a, const s32 r, const s32 g, const s32 b)
++ inline void subr_imm_rgba(s32 a, s32 r, s32 g, s32 b)
+ {
+ #ifdef __LITTLE_ENDIAN__
+ const VECS32 temp = { b, g, r, a };
+@@ -298,7 +298,7 @@ public:
+ #endif
+ }
+
+- inline void mul_imm(const s32 imm)
++ inline void mul_imm(s32 imm)
+ {
+ const VECU32 value = { u32(imm), u32(imm), u32(imm), u32(imm) };
+ const VECU32 shift = vec_splat_u32(-16);
+@@ -310,7 +310,7 @@ public:
+ #endif
+ }
+
+- inline void mul_imm_rgba(const s32 a, const s32 r, const s32 g, const s32 b)
++ inline void mul_imm_rgba(s32 a, s32 r, s32 g, s32 b)
+ {
+ #ifdef __LITTLE_ENDIAN__
+ const VECU32 value = { u32(b), u32(g), u32(r), u32(a) };
+@@ -332,10 +332,17 @@ public:
+ m_value = vec_and(vec_sl(m_value, VECU32(shift.m_value)), vec_cmpgt(limit, VECU32(shift.m_value)));
+ }
+
+- inline void shl_imm(const u8 shift)
++ inline void shl_imm(u8 shift)
+ {
+- const VECU32 temp = { shift, shift, shift, shift };
+- m_value = vec_sl(m_value, temp);
++ if (32 > shift)
++ {
++ const VECU32 temp = { shift, shift, shift, shift };
++ m_value = vec_sl(m_value, temp);
++ }
++ else
++ {
++ m_value = vec_splat_s32(0);
++ }
+ }
+
+ inline void shr(const rgbaint_t& shift)
+@@ -344,10 +351,17 @@ public:
+ m_value = vec_and(vec_sr(m_value, VECU32(shift.m_value)), vec_cmpgt(limit, VECU32(shift.m_value)));
+ }
+
+- inline void shr_imm(const u8 shift)
++ inline void shr_imm(u8 shift)
+ {
+- const VECU32 temp = { shift, shift, shift, shift };
+- m_value = vec_sr(m_value, temp);
++ if (32 > shift)
++ {
++ const VECU32 temp = { shift, shift, shift, shift };
++ m_value = vec_sr(m_value, temp);
++ }
++ else
++ {
++ m_value = vec_splat_s32(0);
++ }
+ }
+
+ inline void sra(const rgbaint_t& shift)
+@@ -356,8 +370,9 @@ public:
+ m_value = vec_sra(m_value, vec_min(VECU32(shift.m_value), limit));
+ }
+
+- inline void sra_imm(const u8 shift)
++ inline void sra_imm(u8 shift)
+ {
++ shift = std::min<u8>(shift, 31);
+ const VECU32 temp = { shift, shift, shift, shift };
+ m_value = vec_sra(m_value, temp);
+ }
+@@ -367,13 +382,13 @@ public:
+ m_value = vec_or(m_value, color2.m_value);
+ }
+
+- inline void or_imm(const s32 value)
++ inline void or_imm(s32 value)
+ {
+ const VECS32 temp = { value, value, value, value };
+ m_value = vec_or(m_value, temp);
+ }
+
+- inline void or_imm_rgba(const s32 a, const s32 r, const s32 g, const s32 b)
++ inline void or_imm_rgba(s32 a, s32 r, s32 g, s32 b)
+ {
+ #ifdef __LITTLE_ENDIAN__
+ const VECS32 temp = { b, g, r, a };
+@@ -393,13 +408,13 @@ public:
+ m_value = vec_andc(m_value, color.m_value);
+ }
+
+- inline void and_imm(const s32 value)
++ inline void and_imm(s32 value)
+ {
+ const VECS32 temp = { value, value, value, value };
+ m_value = vec_and(m_value, temp);
+ }
+
+- inline void and_imm_rgba(const s32 a, const s32 r, const s32 g, const s32 b)
++ inline void and_imm_rgba(s32 a, s32 r, s32 g, s32 b)
+ {
+ #ifdef __LITTLE_ENDIAN__
+ const VECS32 temp = { b, g, r, a };
+@@ -414,13 +429,13 @@ public:
+ m_value = vec_xor(m_value, color2.m_value);
+ }
+
+- inline void xor_imm(const s32 value)
++ inline void xor_imm(s32 value)
+ {
+ const VECS32 temp = { value, value, value, value };
+ m_value = vec_xor(m_value, temp);
+ }
+
+- inline void xor_imm_rgba(const s32 a, const s32 r, const s32 g, const s32 b)
++ inline void xor_imm_rgba(s32 a, s32 r, s32 g, s32 b)
+ {
+ #ifdef __LITTLE_ENDIAN__
+ const VECS32 temp = { b, g, r, a };
+@@ -430,7 +445,7 @@ public:
+ m_value = vec_xor(m_value, temp);
+ }
+
+- inline void clamp_and_clear(const u32 sign)
++ inline void clamp_and_clear(u32 sign)
+ {
+ const VECS32 vzero = { 0, 0, 0, 0 };
+ VECS32 vsign = { s32(sign), s32(sign), s32(sign), s32(sign) };
+@@ -454,7 +469,7 @@ public:
+ #endif
+ }
+
+- inline void sign_extend(const u32 compare, const u32 sign)
++ inline void sign_extend(u32 compare, u32 sign)
+ {
+ const VECS32 compare_vec = { s32(compare), s32(compare), s32(compare), s32(compare) };
+ const VECS32 compare_mask = VECS32(vec_cmpeq(vec_and(m_value, compare_vec), compare_vec));
+@@ -462,13 +477,13 @@ public:
+ m_value = vec_or(m_value, vec_and(sign_vec, compare_mask));
+ }
+
+- inline void min(const s32 value)
++ inline void min(s32 value)
+ {
+ const VECS32 temp = { value, value, value, value };
+ m_value = vec_min(m_value, temp);
+ }
+
+- inline void max(const s32 value)
++ inline void max(s32 value)
+ {
+ const VECS32 temp = { value, value, value, value };
+ m_value = vec_max(m_value, temp);
+@@ -477,7 +492,7 @@ public:
+ void blend(const rgbaint_t& other, u8 factor);
+
+ void scale_and_clamp(const rgbaint_t& scale);
+- void scale_imm_and_clamp(const s32 scale);
++ void scale_imm_and_clamp(s32 scale);
+
+ void scale_add_and_clamp(const rgbaint_t& scale, const rgbaint_t& other)
+ {
+@@ -503,13 +518,13 @@ public:
+ m_value = VECS32(vec_cmpeq(m_value, value.m_value));
+ }
+
+- inline void cmpeq_imm(const s32 value)
++ inline void cmpeq_imm(s32 value)
+ {
+ const VECS32 temp = { value, value, value, value };
+ m_value = VECS32(vec_cmpeq(m_value, temp));
+ }
+
+- inline void cmpeq_imm_rgba(const s32 a, const s32 r, const s32 g, const s32 b)
++ inline void cmpeq_imm_rgba(s32 a, s32 r, s32 g, s32 b)
+ {
+ #ifdef __LITTLE_ENDIAN__
+ const VECS32 temp = { b, g, r, a };
+@@ -524,13 +539,13 @@ public:
+ m_value = VECS32(vec_cmpgt(m_value, value.m_value));
+ }
+
+- inline void cmpgt_imm(const s32 value)
++ inline void cmpgt_imm(s32 value)
+ {
+ const VECS32 temp = { value, value, value, value };
+ m_value = VECS32(vec_cmpgt(m_value, temp));
+ }
+
+- inline void cmpgt_imm_rgba(const s32 a, const s32 r, const s32 g, const s32 b)
++ inline void cmpgt_imm_rgba(s32 a, s32 r, s32 g, s32 b)
+ {
+ #ifdef __LITTLE_ENDIAN__
+ const VECS32 temp = { b, g, r, a };
+@@ -545,13 +560,13 @@ public:
+ m_value = VECS32(vec_cmplt(m_value, value.m_value));
+ }
+
+- inline void cmplt_imm(const s32 value)
++ inline void cmplt_imm(s32 value)
+ {
+ const VECS32 temp = { value, value, value, value };
+ m_value = VECS32(vec_cmplt(m_value, temp));
+ }
+
+- inline void cmplt_imm_rgba(const s32 a, const s32 r, const s32 g, const s32 b)
++ inline void cmplt_imm_rgba(s32 a, s32 r, s32 g, s32 b)
+ {
+ #ifdef __LITTLE_ENDIAN__
+ const VECS32 temp = { b, g, r, a };
+@@ -567,7 +582,7 @@ public:
+ return *this;
+ }
+
+- inline rgbaint_t& operator+=(const s32 other)
++ inline rgbaint_t& operator+=(s32 other)
+ {
+ const VECS32 temp = { other, other, other, other };
+ m_value = vec_add(m_value, temp);
+@@ -592,7 +607,7 @@ public:
+ return *this;
+ }
+
+- inline rgbaint_t& operator*=(const s32 other)
++ inline rgbaint_t& operator*=(s32 other)
+ {
+ const VECS32 value = { other, other, other, other };
+ const VECU32 shift = vec_splat_u32(-16);
+@@ -605,19 +620,20 @@ public:
+ return *this;
+ }
+
+- inline rgbaint_t& operator>>=(const s32 shift)
++ inline rgbaint_t& operator>>=(s32 shift)
+ {
++ shift = s32(std::min<u32>(shift, 31));
+ const VECU32 temp = { u32(shift), u32(shift), u32(shift), u32(shift) };
+ m_value = vec_sra(m_value, temp);
+ return *this;
+ }
+
+- inline void merge_alpha16(const rgbaint_t& alpha)
++ inline void merge_alpha16(const rgbaint_t &alpha)
+ {
+ m_value = vec_perm(m_value, alpha.m_value, alpha_perm);
+ }
+
+- inline void merge_alpha(const rgbaint_t& alpha)
++ inline void merge_alpha(const rgbaint_t &alpha)
+ {
+ m_value = vec_perm(m_value, alpha.m_value, alpha_perm);
+ }
https://src.fedoraproject.org/rpms/mame/c/b6a712d1a6e10f59eac3983c5a07953...
1Â year, 1Â month
belegdol pushed to rpms/mame (f37). "Fix ppc64le validation failure"
by notificationsï¼ fedoraproject.org
Notification time stamped 2023-03-31 20:16:37 UTC
From 77056bc9afc19713932c43b0f7d3cb8733e57441 Mon Sep 17 00:00:00 2001
From: Julian Sikorski <belegdol(a)fedoraproject.org>
Date: Mar 31 2023 20:15:51 +0000
Subject: Fix ppc64le validation failure
---
diff --git a/mame.spec b/mame.spec
index 6fd43d0..c87b10a 100644
--- a/mame.spec
+++ b/mame.spec
@@ -22,6 +22,7 @@ Source0: https://github.com/mamedev/%{name}/archive/%{name}0%{baseversion
Source1: https://mamedev.org/releases/whatsnew_0%{baseversion}.txt
Patch0: %{name}-fortify.patch
Patch1: 0001-Hack-allowing-bgfx-to-initialise-in-absence-of-dx9-s.patch
+Patch2: ppc64le-validation-failure-fix.patch
Patch3: 0001-If-combination-of-wayland-videodriver-and-bgfx-video.patch
# %%{arm}:
diff --git a/ppc64le-validation-failure-fix.patch b/ppc64le-validation-failure-fix.patch
new file mode 100644
index 0000000..5e93d0b
--- /dev/null
+++ b/ppc64le-validation-failure-fix.patch
@@ -0,0 +1,363 @@
+diff --git a/src/emu/video/rgbvmx.cpp b/src/emu/video/rgbvmx.cpp
+index 608f7024565..62bd25b3578 100644
+--- a/src/emu/video/rgbvmx.cpp
++++ b/src/emu/video/rgbvmx.cpp
+@@ -190,7 +190,7 @@ void rgbaint_t::scale_and_clamp(const rgbaint_t& scale)
+ clamp_to_uint8();
+ }
+
+-void rgbaint_t::scale_imm_and_clamp(const s32 scale)
++void rgbaint_t::scale_imm_and_clamp(s32 scale)
+ {
+ mul_imm(scale);
+ sra_imm(8);
+diff --git a/src/emu/video/rgbvmx.h b/src/emu/video/rgbvmx.h
+index 05d26cd9e21..dd1946bfa28 100644
+--- a/src/emu/video/rgbvmx.h
++++ b/src/emu/video/rgbvmx.h
+@@ -76,7 +76,7 @@ public:
+ }
+
+ // This function sets all elements to the same val
+- void set_all(const s32& val) { set(val, val, val, val); }
++ void set_all(const s32 &val) { set(val, val, val, val); }
+ // This function zeros all elements
+ void zero() { set_all(0); }
+ // This function zeros only the alpha element
+@@ -100,31 +100,31 @@ public:
+ return result;
+ }
+
+- void set_a16(const s32 value)
++ void set_a16(s32 value)
+ {
+ const VECS32 temp = { value, value, value, value };
+ m_value = vec_perm(m_value, temp, alpha_perm);
+ }
+
+- void set_a(const s32 value)
++ void set_a(s32 value)
+ {
+ const VECS32 temp = { value, value, value, value };
+ m_value = vec_perm(m_value, temp, alpha_perm);
+ }
+
+- void set_r(const s32 value)
++ void set_r(s32 value)
+ {
+ const VECS32 temp = { value, value, value, value };
+ m_value = vec_perm(m_value, temp, red_perm);
+ }
+
+- void set_g(const s32 value)
++ void set_g(s32 value)
+ {
+ const VECS32 temp = { value, value, value, value };
+ m_value = vec_perm(m_value, temp, green_perm);
+ }
+
+- void set_b(const s32 value)
++ void set_b(s32 value)
+ {
+ const VECS32 temp = { value, value, value, value };
+ m_value = vec_perm(m_value, temp, blue_perm);
+@@ -229,13 +229,13 @@ public:
+ m_value = vec_add(m_value, color2.m_value);
+ }
+
+- inline void add_imm(const s32 imm)
++ inline void add_imm(s32 imm)
+ {
+ const VECS32 temp = { imm, imm, imm, imm };
+ m_value = vec_add(m_value, temp);
+ }
+
+- inline void add_imm_rgba(const s32 a, const s32 r, const s32 g, const s32 b)
++ inline void add_imm_rgba(s32 a, s32 r, s32 g, s32 b)
+ {
+ #ifdef __LITTLE_ENDIAN__
+ const VECS32 temp = { b, g, r, a };
+@@ -250,13 +250,13 @@ public:
+ m_value = vec_sub(m_value, color2.m_value);
+ }
+
+- inline void sub_imm(const s32 imm)
++ inline void sub_imm(s32 imm)
+ {
+ const VECS32 temp = { imm, imm, imm, imm };
+ m_value = vec_sub(m_value, temp);
+ }
+
+- inline void sub_imm_rgba(const s32 a, const s32 r, const s32 g, const s32 b)
++ inline void sub_imm_rgba(s32 a, s32 r, s32 g, s32 b)
+ {
+ #ifdef __LITTLE_ENDIAN__
+ const VECS32 temp = { b, g, r, a };
+@@ -271,13 +271,13 @@ public:
+ m_value = vec_sub(color2.m_value, m_value);
+ }
+
+- inline void subr_imm(const s32 imm)
++ inline void subr_imm(s32 imm)
+ {
+ const VECS32 temp = { imm, imm, imm, imm };
+ m_value = vec_sub(temp, m_value);
+ }
+
+- inline void subr_imm_rgba(const s32 a, const s32 r, const s32 g, const s32 b)
++ inline void subr_imm_rgba(s32 a, s32 r, s32 g, s32 b)
+ {
+ #ifdef __LITTLE_ENDIAN__
+ const VECS32 temp = { b, g, r, a };
+@@ -298,7 +298,7 @@ public:
+ #endif
+ }
+
+- inline void mul_imm(const s32 imm)
++ inline void mul_imm(s32 imm)
+ {
+ const VECU32 value = { u32(imm), u32(imm), u32(imm), u32(imm) };
+ const VECU32 shift = vec_splat_u32(-16);
+@@ -310,7 +310,7 @@ public:
+ #endif
+ }
+
+- inline void mul_imm_rgba(const s32 a, const s32 r, const s32 g, const s32 b)
++ inline void mul_imm_rgba(s32 a, s32 r, s32 g, s32 b)
+ {
+ #ifdef __LITTLE_ENDIAN__
+ const VECU32 value = { u32(b), u32(g), u32(r), u32(a) };
+@@ -332,10 +332,17 @@ public:
+ m_value = vec_and(vec_sl(m_value, VECU32(shift.m_value)), vec_cmpgt(limit, VECU32(shift.m_value)));
+ }
+
+- inline void shl_imm(const u8 shift)
++ inline void shl_imm(u8 shift)
+ {
+- const VECU32 temp = { shift, shift, shift, shift };
+- m_value = vec_sl(m_value, temp);
++ if (32 > shift)
++ {
++ const VECU32 temp = { shift, shift, shift, shift };
++ m_value = vec_sl(m_value, temp);
++ }
++ else
++ {
++ m_value = vec_splat_s32(0);
++ }
+ }
+
+ inline void shr(const rgbaint_t& shift)
+@@ -344,10 +351,17 @@ public:
+ m_value = vec_and(vec_sr(m_value, VECU32(shift.m_value)), vec_cmpgt(limit, VECU32(shift.m_value)));
+ }
+
+- inline void shr_imm(const u8 shift)
++ inline void shr_imm(u8 shift)
+ {
+- const VECU32 temp = { shift, shift, shift, shift };
+- m_value = vec_sr(m_value, temp);
++ if (32 > shift)
++ {
++ const VECU32 temp = { shift, shift, shift, shift };
++ m_value = vec_sr(m_value, temp);
++ }
++ else
++ {
++ m_value = vec_splat_s32(0);
++ }
+ }
+
+ inline void sra(const rgbaint_t& shift)
+@@ -356,8 +370,9 @@ public:
+ m_value = vec_sra(m_value, vec_min(VECU32(shift.m_value), limit));
+ }
+
+- inline void sra_imm(const u8 shift)
++ inline void sra_imm(u8 shift)
+ {
++ shift = std::min<u8>(shift, 31);
+ const VECU32 temp = { shift, shift, shift, shift };
+ m_value = vec_sra(m_value, temp);
+ }
+@@ -367,13 +382,13 @@ public:
+ m_value = vec_or(m_value, color2.m_value);
+ }
+
+- inline void or_imm(const s32 value)
++ inline void or_imm(s32 value)
+ {
+ const VECS32 temp = { value, value, value, value };
+ m_value = vec_or(m_value, temp);
+ }
+
+- inline void or_imm_rgba(const s32 a, const s32 r, const s32 g, const s32 b)
++ inline void or_imm_rgba(s32 a, s32 r, s32 g, s32 b)
+ {
+ #ifdef __LITTLE_ENDIAN__
+ const VECS32 temp = { b, g, r, a };
+@@ -393,13 +408,13 @@ public:
+ m_value = vec_andc(m_value, color.m_value);
+ }
+
+- inline void and_imm(const s32 value)
++ inline void and_imm(s32 value)
+ {
+ const VECS32 temp = { value, value, value, value };
+ m_value = vec_and(m_value, temp);
+ }
+
+- inline void and_imm_rgba(const s32 a, const s32 r, const s32 g, const s32 b)
++ inline void and_imm_rgba(s32 a, s32 r, s32 g, s32 b)
+ {
+ #ifdef __LITTLE_ENDIAN__
+ const VECS32 temp = { b, g, r, a };
+@@ -414,13 +429,13 @@ public:
+ m_value = vec_xor(m_value, color2.m_value);
+ }
+
+- inline void xor_imm(const s32 value)
++ inline void xor_imm(s32 value)
+ {
+ const VECS32 temp = { value, value, value, value };
+ m_value = vec_xor(m_value, temp);
+ }
+
+- inline void xor_imm_rgba(const s32 a, const s32 r, const s32 g, const s32 b)
++ inline void xor_imm_rgba(s32 a, s32 r, s32 g, s32 b)
+ {
+ #ifdef __LITTLE_ENDIAN__
+ const VECS32 temp = { b, g, r, a };
+@@ -430,7 +445,7 @@ public:
+ m_value = vec_xor(m_value, temp);
+ }
+
+- inline void clamp_and_clear(const u32 sign)
++ inline void clamp_and_clear(u32 sign)
+ {
+ const VECS32 vzero = { 0, 0, 0, 0 };
+ VECS32 vsign = { s32(sign), s32(sign), s32(sign), s32(sign) };
+@@ -454,7 +469,7 @@ public:
+ #endif
+ }
+
+- inline void sign_extend(const u32 compare, const u32 sign)
++ inline void sign_extend(u32 compare, u32 sign)
+ {
+ const VECS32 compare_vec = { s32(compare), s32(compare), s32(compare), s32(compare) };
+ const VECS32 compare_mask = VECS32(vec_cmpeq(vec_and(m_value, compare_vec), compare_vec));
+@@ -462,13 +477,13 @@ public:
+ m_value = vec_or(m_value, vec_and(sign_vec, compare_mask));
+ }
+
+- inline void min(const s32 value)
++ inline void min(s32 value)
+ {
+ const VECS32 temp = { value, value, value, value };
+ m_value = vec_min(m_value, temp);
+ }
+
+- inline void max(const s32 value)
++ inline void max(s32 value)
+ {
+ const VECS32 temp = { value, value, value, value };
+ m_value = vec_max(m_value, temp);
+@@ -477,7 +492,7 @@ public:
+ void blend(const rgbaint_t& other, u8 factor);
+
+ void scale_and_clamp(const rgbaint_t& scale);
+- void scale_imm_and_clamp(const s32 scale);
++ void scale_imm_and_clamp(s32 scale);
+
+ void scale_add_and_clamp(const rgbaint_t& scale, const rgbaint_t& other)
+ {
+@@ -503,13 +518,13 @@ public:
+ m_value = VECS32(vec_cmpeq(m_value, value.m_value));
+ }
+
+- inline void cmpeq_imm(const s32 value)
++ inline void cmpeq_imm(s32 value)
+ {
+ const VECS32 temp = { value, value, value, value };
+ m_value = VECS32(vec_cmpeq(m_value, temp));
+ }
+
+- inline void cmpeq_imm_rgba(const s32 a, const s32 r, const s32 g, const s32 b)
++ inline void cmpeq_imm_rgba(s32 a, s32 r, s32 g, s32 b)
+ {
+ #ifdef __LITTLE_ENDIAN__
+ const VECS32 temp = { b, g, r, a };
+@@ -524,13 +539,13 @@ public:
+ m_value = VECS32(vec_cmpgt(m_value, value.m_value));
+ }
+
+- inline void cmpgt_imm(const s32 value)
++ inline void cmpgt_imm(s32 value)
+ {
+ const VECS32 temp = { value, value, value, value };
+ m_value = VECS32(vec_cmpgt(m_value, temp));
+ }
+
+- inline void cmpgt_imm_rgba(const s32 a, const s32 r, const s32 g, const s32 b)
++ inline void cmpgt_imm_rgba(s32 a, s32 r, s32 g, s32 b)
+ {
+ #ifdef __LITTLE_ENDIAN__
+ const VECS32 temp = { b, g, r, a };
+@@ -545,13 +560,13 @@ public:
+ m_value = VECS32(vec_cmplt(m_value, value.m_value));
+ }
+
+- inline void cmplt_imm(const s32 value)
++ inline void cmplt_imm(s32 value)
+ {
+ const VECS32 temp = { value, value, value, value };
+ m_value = VECS32(vec_cmplt(m_value, temp));
+ }
+
+- inline void cmplt_imm_rgba(const s32 a, const s32 r, const s32 g, const s32 b)
++ inline void cmplt_imm_rgba(s32 a, s32 r, s32 g, s32 b)
+ {
+ #ifdef __LITTLE_ENDIAN__
+ const VECS32 temp = { b, g, r, a };
+@@ -567,7 +582,7 @@ public:
+ return *this;
+ }
+
+- inline rgbaint_t& operator+=(const s32 other)
++ inline rgbaint_t& operator+=(s32 other)
+ {
+ const VECS32 temp = { other, other, other, other };
+ m_value = vec_add(m_value, temp);
+@@ -592,7 +607,7 @@ public:
+ return *this;
+ }
+
+- inline rgbaint_t& operator*=(const s32 other)
++ inline rgbaint_t& operator*=(s32 other)
+ {
+ const VECS32 value = { other, other, other, other };
+ const VECU32 shift = vec_splat_u32(-16);
+@@ -605,19 +620,20 @@ public:
+ return *this;
+ }
+
+- inline rgbaint_t& operator>>=(const s32 shift)
++ inline rgbaint_t& operator>>=(s32 shift)
+ {
++ shift = s32(std::min<u32>(shift, 31));
+ const VECU32 temp = { u32(shift), u32(shift), u32(shift), u32(shift) };
+ m_value = vec_sra(m_value, temp);
+ return *this;
+ }
+
+- inline void merge_alpha16(const rgbaint_t& alpha)
++ inline void merge_alpha16(const rgbaint_t &alpha)
+ {
+ m_value = vec_perm(m_value, alpha.m_value, alpha_perm);
+ }
+
+- inline void merge_alpha(const rgbaint_t& alpha)
++ inline void merge_alpha(const rgbaint_t &alpha)
+ {
+ m_value = vec_perm(m_value, alpha.m_value, alpha_perm);
+ }
https://src.fedoraproject.org/rpms/mame/c/77056bc9afc19713932c43b0f7d3cb8...
1Â year, 1Â month
pagure pushed to rpms/gdb (f37). "Backport "Fix crash in
inside_main_func" (..more)"
by notificationsï¼ fedoraproject.org
Notification time stamped 2023-03-31 20:15:28 UTC
From c4793639b50bb10418e6c639bc74910c08f5bd9c Mon Sep 17 00:00:00 2001
From: Keith Seitz <keiths(a)redhat.com>
Date: Mar 31 2023 18:57:46 +0000
Subject: Backport "Fix crash in inside_main_func"
Resolves: rhbz#2183595
---
diff --git a/_gdb.spec.Patch.include b/_gdb.spec.Patch.include
index c773be2..a3f4496 100644
--- a/_gdb.spec.Patch.include
+++ b/_gdb.spec.Patch.include
@@ -313,3 +313,7 @@ Patch074: gdb-rhbz1553104-s390x-arch12-test.patch
# [aarch64] Backport fix from Luis Machado for RH BZ 2177655.
Patch075: gdb-rhbz2177655-aarch64-pauth-valid-regcache.patch
+# Backport "Fix crash in inside_main_func"
+# (Tom Tromey, RHBZ 2183595)
+Patch076: gdb-rhbz2183595-rustc-inside_main.patch
+
diff --git a/_gdb.spec.patch.include b/_gdb.spec.patch.include
index f5bd893..9fec500 100644
--- a/_gdb.spec.patch.include
+++ b/_gdb.spec.patch.include
@@ -73,3 +73,4 @@
%patch073 -p1
%patch074 -p1
%patch075 -p1
+%patch076 -p1
diff --git a/_patch_order b/_patch_order
index ddf912a..d050e8d 100644
--- a/_patch_order
+++ b/_patch_order
@@ -73,3 +73,4 @@ gdb-libexec-add-index.patch
gdb-rhbz1398387-tab-crash-test.patch
gdb-rhbz1553104-s390x-arch12-test.patch
gdb-rhbz2177655-aarch64-pauth-valid-regcache.patch
+gdb-rhbz2183595-rustc-inside_main.patch
diff --git a/gdb-rhbz2183595-rustc-inside_main.patch b/gdb-rhbz2183595-rustc-inside_main.patch
new file mode 100644
index 0000000..16a77b6
--- /dev/null
+++ b/gdb-rhbz2183595-rustc-inside_main.patch
@@ -0,0 +1,136 @@
+From FEDORA_PATCHES Mon Sep 17 00:00:00 2001
+From: Tom Tromey <tromey(a)adacore.com>
+Date: Fri, 24 Feb 2023 10:40:16 -0700
+Subject: gdb-rhbz2183595-rustc-inside_main.patch
+
+;; Backport "Fix crash in inside_main_func"
+;; (Tom Tromey, RHBZ 2183595)
+
+gdb 13.1 crashes while running the rust compiler's debugger tests.
+The crash has a number of causes.
+
+First, the rust compiler still uses the C++-like _Z mangling, but with
+its own twist -- some hex digits added to the end of a symbol. So,
+while gdb finds the correct name of "main":
+
+(top-gdb) p name
+$13 = 0x292e0c0 "rustc_gdb_1031745::main"
+
+It isn't found in the minsyms, because C++ demangling yields:
+
+[99] t 0x90c0 _ZN17rustc_gdb_10317454main17h5b5be7fe16a97225E section .text rustc_gdb_1031745::main::h5b5be7fe16a97225 zko06yobckx336v
+
+This could perhaps be fixed. I also filed a new PR to suggest
+preferring the linkage name of the main program.
+
+Next, the rust compiler emits both a DW_TAG_subprogram and a
+DW_TAG_namespace for "main". This happens because the file is named
+"main.rs" -- i.e., the bug is specific to the source file name. The
+crash also seems to require the nested function inside of 'main', at
+least for me. The namespace always is generated, but perhaps this
+changes the ordering in the DWARF.
+
+When inside_main_func looks up the main symbol, it finds the namespace
+symbol rather than the function. (I filed a bug about fixing gdb's
+symbol tables -- long overdue.)
+
+Meanwhile, as I think it's important to fix this crash sooner rather
+than later, this patch changes inside_main_func to check that the
+symbol that is found is LOC_BLOCK. This perhaps should have been done
+in the first place, anyway.
+
+Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30158
+
+diff --git a/gdb/frame.c b/gdb/frame.c
+--- a/gdb/frame.c
++++ b/gdb/frame.c
+@@ -2453,6 +2453,14 @@ inside_main_func (frame_info_ptr this_frame)
+ if (bs.symbol == nullptr)
+ return false;
+
++ /* We might have found some unrelated symbol. For example, the
++ Rust compiler can emit both a subprogram and a namespace with
++ the same name in the same scope; and due to how gdb's symbol
++ tables currently work, we can't request the one we'd
++ prefer. */
++ if (bs.symbol->aclass () != LOC_BLOCK)
++ return false;
++
+ const struct block *block = bs.symbol->value_block ();
+ gdb_assert (block != nullptr);
+ sym_addr = block->start ();
+diff --git a/gdb/testsuite/gdb.rust/main-crash.exp b/gdb/testsuite/gdb.rust/main-crash.exp
+new file mode 100644
+--- /dev/null
++++ b/gdb/testsuite/gdb.rust/main-crash.exp
+@@ -0,0 +1,35 @@
++# Copyright (C) 2023 Free Software Foundation, Inc.
++
++# 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 3 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/>.
++
++# Regression test for a crash in inside_main_func.
++
++load_lib rust-support.exp
++require allow_rust_tests
++
++standard_testfile main.rs
++if {[prepare_for_testing "failed to prepare" $testfile $srcfile \
++ {debug rust}]} {
++ return -1
++}
++
++set line [gdb_get_line_number "BREAK"]
++# The bug was that this would crash.
++if {![runto ${srcfile}:$line]} {
++ untested "could not run to breakpoint"
++ return -1
++}
++
++# Test that gdb is alive.
++gdb_test "print 23" " = 23"
+diff --git a/gdb/testsuite/gdb.rust/main.rs b/gdb/testsuite/gdb.rust/main.rs
+new file mode 100644
+--- /dev/null
++++ b/gdb/testsuite/gdb.rust/main.rs
+@@ -0,0 +1,30 @@
++// Copyright (C) 2016-2023 Free Software Foundation, Inc.
++
++// 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 3 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/>.
++
++#![allow(dead_code)]
++#![allow(unused_variables)]
++#![allow(unused_assignments)]
++
++fn global_fn(x: u8) {
++ // BREAK
++}
++
++fn main() {
++ fn nested(y: u8) {
++ global_fn(y)
++ }
++
++ nested(23);
++}
diff --git a/gdb.spec b/gdb.spec
index 6c5102c..90009cb 100644
--- a/gdb.spec
+++ b/gdb.spec
@@ -51,7 +51,7 @@ Version: 13.1
# The release always contains a leading reserved number, start it at 1.
# `upstream' is not a part of `name' to stay fully rpm dependencies compatible for the testing.
-Release: 2%{?dist}
+Release: 3%{?dist}
License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and LGPLv3+ and BSD and Public Domain and GFDL
# Do not provide URL for snapshots as the file lasts there only for 2 days.
@@ -1190,6 +1190,10 @@ fi
%endif
%changelog
+* Fri Mar 31 2023 Keith Seitz <keiths(a)redhat.com> - 13.1-3
+- Backport "Fix crash in inside_main_func".
+ (Tom Tromey, RHBZ 2183595)
+
* Fri Mar 24 2023 Kevin Buettner <kevinb(a)redhat.com> - 13.1-2
- Backport fix for RHBZ 2177655. (Luis Machado)
https://src.fedoraproject.org/rpms/gdb/c/c4793639b50bb10418e6c639bc74910c...
1Â year, 1Â month
jmontleon pushed to rpms/python-google-auth (epel9). "Update to 2.17.1"
by notificationsï¼ fedoraproject.org
Notification time stamped 2023-03-31 20:13:00 UTC
From 9968abab4c6b8f11422cafe7d6dfa9bafaf0a84e Mon Sep 17 00:00:00 2001
From: Jason Montleon <jmontleo(a)redhat.com>
Date: Mar 31 2023 20:10:59 +0000
Subject: Update to 2.17.1
---
diff --git a/.gitignore b/.gitignore
index 7650d60..621ce27 100644
--- a/.gitignore
+++ b/.gitignore
@@ -56,3 +56,4 @@
/v2.16.0.tar.gz
/v2.16.3.tar.gz
/v2.17.0.tar.gz
+/v2.17.1.tar.gz
diff --git a/python-google-auth.spec b/python-google-auth.spec
index dde70db..74796cd 100644
--- a/python-google-auth.spec
+++ b/python-google-auth.spec
@@ -9,7 +9,7 @@
%endif
Name: python-%{library}
-Version: 2.17.0
+Version: 2.17.1
Release: 1%{?dist}
Epoch: 1
Summary: Google Auth Python Library
@@ -60,6 +60,9 @@ Python client for the kubernetes API.
%{python3_sitelib}/google_auth-%{version}*.pth
%changelog
+* Fri Mar 31 2023 Fedora Release Monitoring <release-monitoring(a)fedoraproject.org> - 1:2.17.1-1
+- Update to 2.17.1 (#2183612)
+
* Wed Mar 29 2023 Jason Montleon <jmontleo(a)redhat.com> - 1:2.17.0-1
- Update to 2.17.0
diff --git a/sources b/sources
index 4f11c63..0873218 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (v2.17.0.tar.gz) = 81c8c43002a3be9c8a68ea9550b2fa876e4dae29d5f752472393a1e942621cf717a54241b6a4fcf95b84ef54cdc26403bc3667ca22bfb78fd045efeb08e1e10c
+SHA512 (v2.17.1.tar.gz) = 6c241d588baf4336cdf052c4281d435b64be7b3d29214193ed55a877f9421ebcddbb3e27fe2f584aba22ed57babdd098f45ffa94ca3364405315ad22f3bc19df
https://src.fedoraproject.org/rpms/python-google-auth/c/9968abab4c6b8f114...
1Â year, 1Â month
jmontleon pushed to rpms/python-google-auth (f36). "Update to 2.17.1"
by notificationsï¼ fedoraproject.org
Notification time stamped 2023-03-31 20:12:47 UTC
From 9968abab4c6b8f11422cafe7d6dfa9bafaf0a84e Mon Sep 17 00:00:00 2001
From: Jason Montleon <jmontleo(a)redhat.com>
Date: Mar 31 2023 20:10:59 +0000
Subject: Update to 2.17.1
---
diff --git a/.gitignore b/.gitignore
index 7650d60..621ce27 100644
--- a/.gitignore
+++ b/.gitignore
@@ -56,3 +56,4 @@
/v2.16.0.tar.gz
/v2.16.3.tar.gz
/v2.17.0.tar.gz
+/v2.17.1.tar.gz
diff --git a/python-google-auth.spec b/python-google-auth.spec
index dde70db..74796cd 100644
--- a/python-google-auth.spec
+++ b/python-google-auth.spec
@@ -9,7 +9,7 @@
%endif
Name: python-%{library}
-Version: 2.17.0
+Version: 2.17.1
Release: 1%{?dist}
Epoch: 1
Summary: Google Auth Python Library
@@ -60,6 +60,9 @@ Python client for the kubernetes API.
%{python3_sitelib}/google_auth-%{version}*.pth
%changelog
+* Fri Mar 31 2023 Fedora Release Monitoring <release-monitoring(a)fedoraproject.org> - 1:2.17.1-1
+- Update to 2.17.1 (#2183612)
+
* Wed Mar 29 2023 Jason Montleon <jmontleo(a)redhat.com> - 1:2.17.0-1
- Update to 2.17.0
diff --git a/sources b/sources
index 4f11c63..0873218 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (v2.17.0.tar.gz) = 81c8c43002a3be9c8a68ea9550b2fa876e4dae29d5f752472393a1e942621cf717a54241b6a4fcf95b84ef54cdc26403bc3667ca22bfb78fd045efeb08e1e10c
+SHA512 (v2.17.1.tar.gz) = 6c241d588baf4336cdf052c4281d435b64be7b3d29214193ed55a877f9421ebcddbb3e27fe2f584aba22ed57babdd098f45ffa94ca3364405315ad22f3bc19df
https://src.fedoraproject.org/rpms/python-google-auth/c/9968abab4c6b8f114...
1Â year, 1Â month
jmontleon pushed to rpms/python-google-auth (f37). "Update to 2.17.1"
by notificationsï¼ fedoraproject.org
Notification time stamped 2023-03-31 20:12:33 UTC
From 9968abab4c6b8f11422cafe7d6dfa9bafaf0a84e Mon Sep 17 00:00:00 2001
From: Jason Montleon <jmontleo(a)redhat.com>
Date: Mar 31 2023 20:10:59 +0000
Subject: Update to 2.17.1
---
diff --git a/.gitignore b/.gitignore
index 7650d60..621ce27 100644
--- a/.gitignore
+++ b/.gitignore
@@ -56,3 +56,4 @@
/v2.16.0.tar.gz
/v2.16.3.tar.gz
/v2.17.0.tar.gz
+/v2.17.1.tar.gz
diff --git a/python-google-auth.spec b/python-google-auth.spec
index dde70db..74796cd 100644
--- a/python-google-auth.spec
+++ b/python-google-auth.spec
@@ -9,7 +9,7 @@
%endif
Name: python-%{library}
-Version: 2.17.0
+Version: 2.17.1
Release: 1%{?dist}
Epoch: 1
Summary: Google Auth Python Library
@@ -60,6 +60,9 @@ Python client for the kubernetes API.
%{python3_sitelib}/google_auth-%{version}*.pth
%changelog
+* Fri Mar 31 2023 Fedora Release Monitoring <release-monitoring(a)fedoraproject.org> - 1:2.17.1-1
+- Update to 2.17.1 (#2183612)
+
* Wed Mar 29 2023 Jason Montleon <jmontleo(a)redhat.com> - 1:2.17.0-1
- Update to 2.17.0
diff --git a/sources b/sources
index 4f11c63..0873218 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (v2.17.0.tar.gz) = 81c8c43002a3be9c8a68ea9550b2fa876e4dae29d5f752472393a1e942621cf717a54241b6a4fcf95b84ef54cdc26403bc3667ca22bfb78fd045efeb08e1e10c
+SHA512 (v2.17.1.tar.gz) = 6c241d588baf4336cdf052c4281d435b64be7b3d29214193ed55a877f9421ebcddbb3e27fe2f584aba22ed57babdd098f45ffa94ca3364405315ad22f3bc19df
https://src.fedoraproject.org/rpms/python-google-auth/c/9968abab4c6b8f114...
1Â year, 1Â month