Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package nodejs-electron for openSUSE:Factory
checked in at 2022-11-03 19:13:52
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/nodejs-electron (Old)
and /work/SRC/openSUSE:Factory/.nodejs-electron.new.2275 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "nodejs-electron"
Thu Nov 3 19:13:52 2022 rev:41 rq:1032857 version:21.2.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/nodejs-electron/nodejs-electron.changes
2022-10-30 18:29:25.166573549 +0100
+++
/work/SRC/openSUSE:Factory/.nodejs-electron.new.2275/nodejs-electron.changes
2022-11-03 19:14:17.208043608 +0100
@@ -1,0 +2,14 @@
+Tue Nov 1 20:51:32 UTC 2022 - Bruno Pitrus <[email protected]>
+- New upstream release 21.2.1
+ * Fixed spurious promise rejection in webContents.loadURL when navigating to
a hash.
+ * Updated Chromium to 106.0.5249.165.
+- Add electron-version-from-env.patch to fix build error
+- Add upstreamable patches fixing various erroneous C++ constructs
+ * ipcz-safe_math-Wuninitialized.patch
+ * passwords_counter-Wsubobject-linkage.patch
+ * static_constructors-Wstrict-aliasing.patch
+ * vector_math_impl-Wstrict-aliasing.patch
+ * webgl_image_conversion-Wstrict-aliasing.patch
+ * xr_cube_map-Wstrict-aliasing.patch
+
+-------------------------------------------------------------------
Old:
----
electron-21.2.0.tar.xz
New:
----
electron-21.2.1.tar.xz
electron-version-from-env.patch
ipcz-safe_math-Wuninitialized.patch
passwords_counter-Wsubobject-linkage.patch
static_constructors-Wstrict-aliasing.patch
vector_math_impl-Wstrict-aliasing.patch
webgl_image_conversion-Wstrict-aliasing.patch
xr_cube_map-Wstrict-aliasing.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ nodejs-electron.spec ++++++
--- /var/tmp/diff_new_pack.Lys5LE/_old 2022-11-03 19:14:24.192084675 +0100
+++ /var/tmp/diff_new_pack.Lys5LE/_new 2022-11-03 19:14:24.196084700 +0100
@@ -206,7 +206,7 @@
Name: nodejs-electron
-Version: 21.2.0
+Version: 21.2.1
Release: 0
Summary: Build cross platform desktop apps with JavaScript, HTML, and
CSS
License: AFL-2.0 AND Apache-2.0 AND blessing AND BSD-2-Clause AND
BSD-3-Clause AND BSD-Protection AND BSD-Source-Code AND bzip2-1.0.6 AND IJG AND
ISC AND LGPL-2.0-or-later AND LGPL-2.1-or-later AND MIT AND MIT-CMU AND
MIT-open-group AND (MPL-1.1 OR GPL-2.0-or-later OR LGPL-2.1-or-later) AND
MPL-2.0 AND OpenSSL AND SGI-B-2.0 AND SUSE-Public-Domain AND X11
@@ -254,6 +254,7 @@
Patch69: nasm-generate-debuginfo.patch
Patch70: disable-fuses.patch
Patch71: enable-jxl.patch
+Patch72: electron-version-from-env.patch
# PATCHES to use system libs
Patch1002: chromium-system-libusb.patch
@@ -340,6 +341,12 @@
Patch3086: unzip-Wsubobject-linkage.patch
Patch3087: v8_initializer-PageAllocator-fpermissive.patch
Patch3088: fix-no-ppapi-build.patch
+Patch3089: ipcz-safe_math-Wuninitialized.patch
+Patch3090: passwords_counter-Wsubobject-linkage.patch
+Patch3091: vector_math_impl-Wstrict-aliasing.patch
+Patch3092: webgl_image_conversion-Wstrict-aliasing.patch
+Patch3093: xr_cube_map-Wstrict-aliasing.patch
+Patch3094: static_constructors-Wstrict-aliasing.patch
%if %{with clang}
BuildRequires: clang
@@ -692,6 +699,8 @@
# GN sets lto on its own and we need just ldflag options, not cflags
%define _lto_cflags %{nil}
+# see electron-version-from-env.patch
+export SUSE_ELECTRON_VERSION=%{version}
# Make sure python is python3
install -d -m 0755 python3-path
@@ -1199,6 +1208,7 @@
#Build the supplementary stuff first to notice errors earlier bc building
electron itself takes several hours.
ninja -v %{?_smp_mflags} -C out/Release chromium_licenses
ninja -v %{?_smp_mflags} -C out/Release copy_headers
+ninja -v %{?_smp_mflags} -C out/Release version
# dump the linker command line (if any) in case of failure
ninja -v %{?_smp_mflags} -C out/Release electron || (cat out/Release/*.rsp |
sed 's/ /\n/g' && false)
@@ -1234,10 +1244,11 @@
install -pm 0755 libGLESv2.so -t %{buildroot}%{_libdir}/electron/
install -pm 0755 libvk_swiftshader.so -t %{buildroot}%{_libdir}/electron/
install -pm 0644 vk_swiftshader_icd.json -t %{buildroot}%{_libdir}/electron/
+install -pm 0644 version -t %{buildroot}%{_libdir}/electron/
popd
-install -pTm644 electron/ELECTRON_VERSION
%{buildroot}%{_libdir}/electron/version
+
# Install folders required for webapps
mkdir -p "%{buildroot}%{_sysconfdir}/webapps"
++++++ electron-21.2.0.tar.xz -> electron-21.2.1.tar.xz ++++++
/work/SRC/openSUSE:Factory/nodejs-electron/electron-21.2.0.tar.xz
/work/SRC/openSUSE:Factory/.nodejs-electron.new.2275/electron-21.2.1.tar.xz
differ: char 15, line 1
++++++ electron-version-from-env.patch ++++++
Do not try to get version from git repository tags. We are not building from a
git checkout.
--- src/electron/script/lib/get-version.js.old 2022-11-01 16:48:22.401632400
+0000
+++ src/electron/script/lib/get-version.js 2022-11-01 20:04:47.283620900
+0000
@@ -11,12 +11,5 @@
// The only difference in the "git describe" technique is that technically a
commit can "change" it's version
// number if a tag is created / removed retroactively. i.e. the first time
a commit is pushed it will be 1.2.3
// and after the tag is made rebuilding the same commit will result in it
being 1.2.4
- const output = spawnSync('git', ['describe', '--tags', '--abbrev=0'], {
- cwd: path.resolve(__dirname, '..', '..')
- });
- if (output.status !== 0) {
- console.error(output.stderr);
- throw new Error('Failed to get current electron version');
- }
- return output.stdout.toString().trim().replace(/^v/g, '');
+ return process.env.SUSE_ELECTRON_VERSION
};
--- src/electron/BUILD.gn.old 2022-11-01 16:48:22.313588400 +0000
+++ src/electron/BUILD.gn 2022-11-01 20:50:40.467344500 +0000
@@ -111,8 +111,6 @@
[],
"trim string",
[
- ".git/packed-refs",
- ".git/HEAD",
"script/lib/get-version.js",
])
++++++ ipcz-safe_math-Wuninitialized.patch ++++++
Do not put an expression with side effects inside an assert,
as the assert gets entirely removed in an optimized build.
See it for yourself: https://godbolt.org/z/GeG4zefK9
Very safe math, indeed.
--- src/third_party/ipcz/src/util/safe_math.h.old 2022-10-20
19:00:41.567140300 +0200
+++ src/third_party/ipcz/src/util/safe_math.h 2022-10-29 22:46:07.312067200
+0200
@@ -17,24 +17,24 @@
// This throws a compile-time error on evaluating the constexpr if it can be
// determined at compile-time as failing, otherwise it will fail an
// assertion at runtime.
- ABSL_HARDENING_ASSERT(
- ABSL_PREDICT_TRUE(value <= std::numeric_limits<Dst>::max()));
+ auto ass=ABSL_PREDICT_TRUE(value <= std::numeric_limits<Dst>::max());
+ ABSL_HARDENING_ASSERT(ass);
return static_cast<Dst>(value);
}
template <typename T>
constexpr T CheckAdd(T a, T b) {
T result;
- ABSL_HARDENING_ASSERT(
- !ABSL_PREDICT_FALSE(__builtin_add_overflow(a, b, &result)));
+ auto ass=!ABSL_PREDICT_FALSE(__builtin_add_overflow(a, b, &result));
+ ABSL_HARDENING_ASSERT(ass);
return result;
}
template <typename T>
constexpr T CheckMul(T a, T b) {
T result;
- ABSL_HARDENING_ASSERT(
- !ABSL_PREDICT_FALSE(__builtin_mul_overflow(a, b, &result)));
+ auto ass=!ABSL_PREDICT_FALSE(__builtin_mul_overflow(a, b, &result));
+ ABSL_HARDENING_ASSERT(ass);
return result;
}
++++++ passwords_counter-Wsubobject-linkage.patch ++++++
--- src/components/browsing_data/core/counters/passwords_counter.cc.old
2022-10-20 19:00:23.009865700 +0200
+++ src/components/browsing_data/core/counters/passwords_counter.cc
2022-10-29 22:29:38.660589600 +0200
@@ -34,6 +34,8 @@
}
}
+} // namespace
+
// PasswordStoreFetcher ----------------------------------
// Fetches passswords and observes a PasswordStoreInterface.
@@ -168,8 +170,6 @@
weak_ptr_factory_.InvalidateWeakPtrs();
}
-} // namespace
-
// PasswordsCounter::PasswordsResult ----------------------------------
PasswordsCounter::PasswordsResult::PasswordsResult(
const BrowsingDataCounter* source,
--- src/components/browsing_data/core/counters/passwords_counter.h.old
2022-10-20 19:00:23.009865700 +0200
+++ src/components/browsing_data/core/counters/passwords_counter.h
2022-10-29 22:28:42.288402800 +0200
@@ -18,9 +18,7 @@
}
namespace browsing_data {
-namespace {
class PasswordStoreFetcher;
-}
class PasswordsCounter : public browsing_data::BrowsingDataCounter {
public:
// A subclass of SyncResult that stores the result value, a boolean
++++++ static_constructors-Wstrict-aliasing.patch ++++++
Make DEFINE_GLOBAL C++17 compliant.
The pointer to an object is not interconvertible with the pointer to its
underlying storage,
and GCC raises a Wstrict-aliasing warning about UB resulting from the
dereference.
(This is really a pointer provenance issue, not a type aliasing issue, as the
underlying
void*[] is never actually directly used)
Additionally, void* potentially has a too-small alignment for some types (eg.
long double).
We fix the fist issue by memory laundering, and the second by switching to
aligned_storage_t.
--- src/third_party/blink/renderer/platform/wtf/static_constructors.h.old
2022-10-20 19:00:30.237477900 +0200
+++ src/third_party/blink/renderer/platform/wtf/static_constructors.h
2022-10-29 21:48:44.336995700 +0200
@@ -21,8 +21,11 @@
#ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_STATIC_CONSTRUCTORS_H_
#define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_STATIC_CONSTRUCTORS_H_
+#include <new>
+#include <type_traits>
+
// We need to avoid having static constructors. This is accomplished by
defining
-// a static array of the appropriate size and alignment, and defining a const
+// a buffer of the appropriate size and alignment, and defining a const
// reference that points to the buffer. During initialization, the object will
// be constructed with placement new into the buffer. This works with MSVC,
GCC,
// and Clang without producing dynamic initialization code even at -O0. The
only
@@ -33,7 +36,7 @@
// Use an array of pointers instead of an array of char in case there is some
// alignment issue.
#define DEFINE_GLOBAL(type, name) \
- void* name##Storage[(sizeof(type) + sizeof(void*) - 1) / sizeof(void*)]; \
- const type& name = *reinterpret_cast<type*>(&name##Storage)
+ std::aligned_storage_t<sizeof(type), alignof(type)> name##Storage; \
+ const type& name = *std::launder(reinterpret_cast<type*>(&name##Storage))
#endif // THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_STATIC_CONSTRUCTORS_H_
++++++ vector_math_impl-Wstrict-aliasing.patch ++++++
---
src/third_party/blink/renderer/platform/audio/cpu/x86/vector_math_impl.h.old
2022-10-20 19:00:30.057387900 +0200
+++ src/third_party/blink/renderer/platform/audio/cpu/x86/vector_math_impl.h
2022-10-29 23:03:21.785150600 +0200
@@ -13,6 +13,7 @@
#include <algorithm>
#include <cmath>
+#include <cstring>
#include "base/check_op.h"
#include "third_party/blink/renderer/platform/audio/audio_array.h"
@@ -208,13 +209,14 @@
// source_max = max(abs(source[k])) for all k
void Vmaxmgv(const float* source_p, float* max_p, uint32_t frames_to_process) {
constexpr uint32_t kMask = 0x7FFFFFFFu;
-
+ float kMask_float;
+ std::memcpy(&kMask_float, &kMask, 4);
const float* const source_end_p = source_p + frames_to_process;
DCHECK(IsAligned(source_p));
DCHECK_EQ(0u, frames_to_process % kPackedFloatsPerRegister);
- MType m_mask = MM_PS(set1)(*reinterpret_cast<const float*>(&kMask));
+ MType m_mask = MM_PS(set1)(kMask_float);
MType m_max = MM_PS(setzero)();
while (source_p < source_end_p) {
++++++ webgl_image_conversion-Wstrict-aliasing.patch ++++++
---
src/third_party/blink/renderer/platform/graphics/gpu/webgl_image_conversion.cc.old
2022-10-20 19:00:30.113415900 +0200
+++
src/third_party/blink/renderer/platform/graphics/gpu/webgl_image_conversion.cc
2022-10-29 22:19:57.652611900 +0200
@@ -4,6 +4,7 @@
#include
"third_party/blink/renderer/platform/graphics/gpu/webgl_image_conversion.h"
+#include <cstring>
#include <limits>
#include <memory>
@@ -416,7 +417,8 @@
24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 13};
uint16_t ConvertFloatToHalfFloat(float f) {
- unsigned temp = *(reinterpret_cast<unsigned*>(&f));
+ unsigned temp;
+ std::memcpy(&temp, &f, 4);
uint16_t signexp = (temp >> 23) & 0x1ff;
return g_base_table[signexp] +
((temp & 0x007fffff) >> g_shift_table[signexp]);
@@ -834,7 +836,9 @@
uint32_t temp =
g_mantissa_table[g_offset_table[half >> 10] + (half & 0x3ff)] +
g_exponent_table[half >> 10];
- return *(reinterpret_cast<float*>(&temp));
+ float ret;
+ std::memcpy(&ret, &temp, 4);
+ return ret;
}
/* BEGIN CODE SHARED WITH MOZILLA FIREFOX */
++++++ xr_cube_map-Wstrict-aliasing.patch ++++++
--- src/third_party/blink/renderer/modules/xr/xr_cube_map.cc.old
2022-10-20 19:00:30.045381900 +0200
+++ src/third_party/blink/renderer/modules/xr/xr_cube_map.cc 2022-10-29
22:07:43.236052800 +0200
@@ -4,6 +4,8 @@
#include "third_party/blink/renderer/modules/xr/xr_cube_map.h"
+#include <cstring>
+
#include "base/cxx17_backports.h"
#include "device/vr/public/mojom/vr_service.mojom-blink.h"
#include
"third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h"
@@ -19,7 +21,8 @@
// This is an inversion of FloatToHalfFloat in ui/gfx/half_float.cc
float HalfFloatToFloat(const uint16_t input) {
uint32_t tmp = (input & 0x7fff) << 13 | (input & 0x8000) << 16;
- float tmp2 = *reinterpret_cast<float*>(&tmp);
+ float tmp2;
+ std::memcpy(&tmp2, &tmp, 4);
return tmp2 / 1.9259299444e-34f;
}