From 5dcd3521db6a227f5818e5df2fd59c45272fb8f4 Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Mon, 15 Mar 2021 21:09:07 +0100 Subject: [PATCH] Update to 1.67.3 --- .gitignore | 1 + gjs-gcc11.patch | 264 ------------------------------------------------ gjs.spec | 8 +- sources | 2 +- 4 files changed, 7 insertions(+), 268 deletions(-) delete mode 100644 gjs-gcc11.patch diff --git a/.gitignore b/.gitignore index dc9ec65..e7c0359 100644 --- a/.gitignore +++ b/.gitignore @@ -116,3 +116,4 @@ gjs-0.7.1.tar.gz /gjs-1.66.2.tar.xz /gjs-1.67.1.tar.xz /gjs-1.67.2.tar.xz +/gjs-1.67.3.tar.xz diff --git a/gjs-gcc11.patch b/gjs-gcc11.patch deleted file mode 100644 index 72787ac..0000000 --- a/gjs-gcc11.patch +++ /dev/null @@ -1,264 +0,0 @@ -From 0b8d5fa865603c43ff4bdc682cb004fefecb336d Mon Sep 17 00:00:00 2001 -From: Philip Chimento -Date: Sun, 14 Feb 2021 12:09:38 -0800 -Subject: [PATCH 1/3] GjsPrivate: Fix indentation in function - -Adding preprocessor directives to this code in a subsequent commit will -cause clang-format to reformat parts of it, so just do it all at once. ---- - libgjs-private/gjs-util.c | 43 ++++++++++++++++++++------------------- - 1 file changed, 22 insertions(+), 21 deletions(-) - -diff --git a/libgjs-private/gjs-util.c b/libgjs-private/gjs-util.c -index 6599567d..88a575b9 100644 ---- a/libgjs-private/gjs-util.c -+++ b/libgjs-private/gjs-util.c -@@ -36,27 +36,28 @@ gjs_format_int_alternative_output(int n) - #endif - } - --GType --gjs_locale_category_get_type(void) --{ -- static volatile size_t g_define_type_id__volatile = 0; -- if (g_once_init_enter(&g_define_type_id__volatile)) { -- static const GEnumValue v[] = { -- { GJS_LOCALE_CATEGORY_ALL, "GJS_LOCALE_CATEGORY_ALL", "all" }, -- { GJS_LOCALE_CATEGORY_COLLATE, "GJS_LOCALE_CATEGORY_COLLATE", "collate" }, -- { GJS_LOCALE_CATEGORY_CTYPE, "GJS_LOCALE_CATEGORY_CTYPE", "ctype" }, -- { GJS_LOCALE_CATEGORY_MESSAGES, "GJS_LOCALE_CATEGORY_MESSAGES", "messages" }, -- { GJS_LOCALE_CATEGORY_MONETARY, "GJS_LOCALE_CATEGORY_MONETARY", "monetary" }, -- { GJS_LOCALE_CATEGORY_NUMERIC, "GJS_LOCALE_CATEGORY_NUMERIC", "numeric" }, -- { GJS_LOCALE_CATEGORY_TIME, "GJS_LOCALE_CATEGORY_TIME", "time" }, -- { 0, NULL, NULL } -- }; -- GType g_define_type_id = -- g_enum_register_static(g_intern_static_string("GjsLocaleCategory"), v); -- -- g_once_init_leave(&g_define_type_id__volatile, g_define_type_id); -- } -- return g_define_type_id__volatile; -+GType gjs_locale_category_get_type(void) { -+ static volatile size_t g_define_type_id__volatile = 0; -+ if (g_once_init_enter(&g_define_type_id__volatile)) { -+ static const GEnumValue v[] = { -+ {GJS_LOCALE_CATEGORY_ALL, "GJS_LOCALE_CATEGORY_ALL", "all"}, -+ {GJS_LOCALE_CATEGORY_COLLATE, "GJS_LOCALE_CATEGORY_COLLATE", -+ "collate"}, -+ {GJS_LOCALE_CATEGORY_CTYPE, "GJS_LOCALE_CATEGORY_CTYPE", "ctype"}, -+ {GJS_LOCALE_CATEGORY_MESSAGES, "GJS_LOCALE_CATEGORY_MESSAGES", -+ "messages"}, -+ {GJS_LOCALE_CATEGORY_MONETARY, "GJS_LOCALE_CATEGORY_MONETARY", -+ "monetary"}, -+ {GJS_LOCALE_CATEGORY_NUMERIC, "GJS_LOCALE_CATEGORY_NUMERIC", -+ "numeric"}, -+ {GJS_LOCALE_CATEGORY_TIME, "GJS_LOCALE_CATEGORY_TIME", "time"}, -+ {0, NULL, NULL}}; -+ GType g_define_type_id = g_enum_register_static( -+ g_intern_static_string("GjsLocaleCategory"), v); -+ -+ g_once_init_leave(&g_define_type_id__volatile, g_define_type_id); -+ } -+ return g_define_type_id__volatile; - } - - /** --- -GitLab - - -From 989ac9ac723dc1c8b6b8961292f236c558f5c0f0 Mon Sep 17 00:00:00 2001 -From: Philip Chimento -Date: Mon, 15 Feb 2021 20:40:43 -0800 -Subject: [PATCH 2/3] GjsPrivate: Remove volatile from g_once_init_enter flag - -On platforms where g_once_init_enter() is defined to use C11 atomic -builtins, passing a pointer to a volatile value will generate a warning -in GCC 11 and later. - -More info about the GCC change: -https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95378 -https://gcc.gnu.org/pipermail/gcc-patches/2020-June/548283.html - -More info about changes made in GLib: -https://gitlab.gnome.org/GNOME/glib/-/issues/600 - -See: #376 ---- - libgjs-private/gjs-util.c | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/libgjs-private/gjs-util.c b/libgjs-private/gjs-util.c -index 88a575b9..4fd268cd 100644 ---- a/libgjs-private/gjs-util.c -+++ b/libgjs-private/gjs-util.c -@@ -37,8 +37,8 @@ gjs_format_int_alternative_output(int n) - } - - GType gjs_locale_category_get_type(void) { -- static volatile size_t g_define_type_id__volatile = 0; -- if (g_once_init_enter(&g_define_type_id__volatile)) { -+ static size_t gjs_locale_category_get_type = 0; -+ if (g_once_init_enter(&gjs_locale_category_get_type)) { - static const GEnumValue v[] = { - {GJS_LOCALE_CATEGORY_ALL, "GJS_LOCALE_CATEGORY_ALL", "all"}, - {GJS_LOCALE_CATEGORY_COLLATE, "GJS_LOCALE_CATEGORY_COLLATE", -@@ -55,9 +55,9 @@ GType gjs_locale_category_get_type(void) { - GType g_define_type_id = g_enum_register_static( - g_intern_static_string("GjsLocaleCategory"), v); - -- g_once_init_leave(&g_define_type_id__volatile, g_define_type_id); -+ g_once_init_leave(&gjs_locale_category_get_type, g_define_type_id); - } -- return g_define_type_id__volatile; -+ return gjs_locale_category_get_type; - } - - /** --- -GitLab - - -From f02eaf3a9d3465915eb849428c2d9615e2184a4c Mon Sep 17 00:00:00 2001 -From: Philip Chimento -Date: Sun, 14 Feb 2021 12:20:09 -0800 -Subject: [PATCH 3/3] maint: Avoid g_once_init_enter error in GCC 11 - -On platforms where g_once_init_enter() is defined to use C11 atomic -builtins, passing a pointer to a volatile value is an error in GCC 11 and -later, in C++. - -More info about the GCC change: -https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95378 -https://gcc.gnu.org/pipermail/gcc-patches/2020-June/548283.html - -However, it's my understanding that in modern C++ there is no longer a -need to guard the initialization of these variables. Since C++11, static -local variables in a function are guaranteed to be initialized only once, -the first time control passes through that function. So we can just remove -the g_once_init_enter guard. - -More info: -https://en.cppreference.com/w/cpp/language/storage_duration#Static_local_variables - -Stack Overflow answers with quotations from the C++ standard: -https://stackoverflow.com/a/58804/172999 -https://stackoverflow.com/a/8102145/172999 - -Closes: #376 ---- - gjs/error-types.cpp | 32 +++++++++++++------------------- - gjs/objectbox.cpp | 31 +++++++++++++------------------ - gjs/objectbox.h | 3 +++ - 3 files changed, 29 insertions(+), 37 deletions(-) - -diff --git a/gjs/error-types.cpp b/gjs/error-types.cpp -index cdfd7fa3..4c652da4 100644 ---- a/gjs/error-types.cpp -+++ b/gjs/error-types.cpp -@@ -12,24 +12,18 @@ G_DEFINE_QUARK(gjs-js-error-quark, gjs_js_error) - // clang-format on - - GType gjs_js_error_get_type(void) { -- static volatile GType g_type_id; -- -- if (g_once_init_enter(&g_type_id)) { -- static GEnumValue errors[] = { -- { GJS_JS_ERROR_ERROR, "Error", "error" }, -- { GJS_JS_ERROR_EVAL_ERROR, "EvalError", "eval-error" }, -- { GJS_JS_ERROR_INTERNAL_ERROR, "InternalError", "internal-error" }, -- { GJS_JS_ERROR_RANGE_ERROR, "RangeError", "range-error" }, -- { GJS_JS_ERROR_REFERENCE_ERROR, "ReferenceError", "reference-error" }, -- { GJS_JS_ERROR_STOP_ITERATION, "StopIteration", "stop-iteration" }, -- { GJS_JS_ERROR_SYNTAX_ERROR, "SyntaxError", "syntax-error" }, -- { GJS_JS_ERROR_TYPE_ERROR, "TypeError", "type-error" }, -- { GJS_JS_ERROR_URI_ERROR, "URIError", "uri-error" }, -- { 0, nullptr, nullptr } -- }; -- -- g_type_id = g_enum_register_static("GjsJSError", errors); -- } -- -+ static const GEnumValue errors[] = { -+ {GJS_JS_ERROR_ERROR, "Error", "error"}, -+ {GJS_JS_ERROR_EVAL_ERROR, "EvalError", "eval-error"}, -+ {GJS_JS_ERROR_INTERNAL_ERROR, "InternalError", "internal-error"}, -+ {GJS_JS_ERROR_RANGE_ERROR, "RangeError", "range-error"}, -+ {GJS_JS_ERROR_REFERENCE_ERROR, "ReferenceError", "reference-error"}, -+ {GJS_JS_ERROR_STOP_ITERATION, "StopIteration", "stop-iteration"}, -+ {GJS_JS_ERROR_SYNTAX_ERROR, "SyntaxError", "syntax-error"}, -+ {GJS_JS_ERROR_TYPE_ERROR, "TypeError", "type-error"}, -+ {GJS_JS_ERROR_URI_ERROR, "URIError", "uri-error"}, -+ {0, nullptr, nullptr}}; -+ // Initialization of static local variable guaranteed only once in C++11 -+ static GType g_type_id = g_enum_register_static("GjsJSError", errors); - return g_type_id; - } -diff --git a/gjs/objectbox.cpp b/gjs/objectbox.cpp -index 3c60c05e..2ad6cddc 100644 ---- a/gjs/objectbox.cpp -+++ b/gjs/objectbox.cpp -@@ -4,8 +4,6 @@ - - #include - --#include // for size_t -- - #include // for find - - #include -@@ -114,24 +112,21 @@ JSObject* ObjectBox::object_for_c_ptr(JSContext* cx, ObjectBox* box) { - return box->m_impl->m_root.get(); - } - --GType ObjectBox::gtype() { -- static volatile size_t type_id = 0; -+void* ObjectBox::boxed_copy(void* boxed) { -+ auto* box = static_cast(boxed); -+ box->m_impl->ref(); -+ return box; -+} - -- if (g_once_init_enter(&type_id)) { -- auto objectbox_copy = [](void* boxed) -> void* { -- auto* box = static_cast(boxed); -- box->m_impl->ref(); -- return box; -- }; -- auto objectbox_free = [](void* boxed) { -- auto* box = static_cast(boxed); -- box->m_impl->unref(); -- }; -- GType type = g_boxed_type_register_static("JSObject", objectbox_copy, -- objectbox_free); -- g_once_init_leave(&type_id, type); -- } -+void ObjectBox::boxed_free(void* boxed) { -+ auto* box = static_cast(boxed); -+ box->m_impl->unref(); -+} - -+GType ObjectBox::gtype() { -+ // Initialization of static local variable guaranteed only once in C++11 -+ static GType type_id = g_boxed_type_register_static( -+ "JSObject", &ObjectBox::boxed_copy, &ObjectBox::boxed_free); - return type_id; - } - -diff --git a/gjs/objectbox.h b/gjs/objectbox.h -index 276fd5b8..b2d3f349 100644 ---- a/gjs/objectbox.h -+++ b/gjs/objectbox.h -@@ -32,6 +32,9 @@ struct ObjectBox { - private: - explicit ObjectBox(JSObject*); - -+ static void* boxed_copy(void*); -+ static void boxed_free(void*); -+ - struct impl; - std::unique_ptr m_impl; - }; --- -GitLab - diff --git a/gjs.spec b/gjs.spec index 2371024..aaf5146 100644 --- a/gjs.spec +++ b/gjs.spec @@ -4,8 +4,8 @@ %global mozjs78_version 78.8.0-1 Name: gjs -Version: 1.67.2 -Release: 2%{?dist} +Version: 1.67.3 +Release: 1%{?dist} Summary: Javascript Bindings for GNOME # The following files contain code from Mozilla which @@ -15,7 +15,6 @@ Summary: Javascript Bindings for GNOME License: MIT and (MPLv1.1 or GPLv2+ or LGPLv2+) URL: https://wiki.gnome.org/Projects/Gjs Source0: https://download.gnome.org/sources/%{name}/1.67/%{name}-%{version}.tar.xz -Patch0: %{name}-gcc11.patch BuildRequires: cairo-gobject-devel BuildRequires: dbus-daemon @@ -101,6 +100,9 @@ xvfb-run -s "-screen 0 1600x1200x24" eval "%meson_test" %{_datadir}/installed-tests/ %changelog +* Mon Mar 15 2021 Kalev Lember - 1.67.3-1 +- Update to 1.67.3 + * Tue Feb 23 2021 Frantisek Zatloukal - 1.67.2-2 - Rebuild against mozjs78-78.8.0-1 diff --git a/sources b/sources index 406befc..1fe7840 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (gjs-1.67.2.tar.xz) = accdb003e5acd6ddb317410f598e7c146e3c7a9e056021aee79ae21f3e424713b89b337a48e4292a6b3676f80de1509eca7d3fe0955b893da398bb992f237d23 +SHA512 (gjs-1.67.3.tar.xz) = 9bd6d58e2322cb7354cf29c7327127276f947f514c80b10831f8f8b36854b7b34da811eff26d41fa7e74e42421df0ffab3a0e6896eb73cca456235c3f2dd1499