Merged update from upstream sources

This is an automated DistroBaker update from upstream sources.
If you do not know what this is about or would like to opt out,
contact the OSCI team.

Source: https://src.fedoraproject.org/rpms/gjs.git#d10a3db8950f2253aa7d8c20dae9807044c3aa78
This commit is contained in:
DistroBaker 2021-03-01 10:03:44 +00:00
parent baaac057f9
commit c034103608
4 changed files with 270 additions and 22 deletions

1
.gitignore vendored
View File

@ -115,3 +115,4 @@ gjs-0.7.1.tar.gz
/gjs-1.66.1.tar.xz
/gjs-1.66.2.tar.xz
/gjs-1.67.1.tar.xz
/gjs-1.67.2.tar.xz

View File

@ -1,26 +1,264 @@
From 0b8d5fa865603c43ff4bdc682cb004fefecb336d Mon Sep 17 00:00:00 2001
From: Philip Chimento <philip.chimento@gmail.com>
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 <philip.chimento@gmail.com>
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 <philip.chimento@gmail.com>
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 86cb878..7045260 100644
index cdfd7fa3..4c652da4 100644
--- a/gjs/error-types.cpp
+++ b/gjs/error-types.cpp
@@ -31,7 +31,7 @@ G_DEFINE_QUARK(gjs-js-error-quark, gjs_js_error)
@@ -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;
+ static 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 @@
if (g_once_init_enter(&g_type_id)) {
static GEnumValue errors[] = {
diff --git a/libgjs-private/gjs-util.c b/libgjs-private/gjs-util.c
index d4f7470..e420c78 100644
--- a/libgjs-private/gjs-util.c
+++ b/libgjs-private/gjs-util.c
@@ -56,7 +56,7 @@ gjs_format_int_alternative_output(int n)
GType
gjs_locale_category_get_type(void)
{
- static volatile size_t g_define_type_id__volatile = 0;
+ static 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" },
#include <config.h>
-#include <stddef.h> // for size_t
-
#include <algorithm> // for find
#include <glib.h>
@@ -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<ObjectBox*>(boxed);
+ box->m_impl->ref();
+ return box;
+}
- if (g_once_init_enter(&type_id)) {
- auto objectbox_copy = [](void* boxed) -> void* {
- auto* box = static_cast<ObjectBox*>(boxed);
- box->m_impl->ref();
- return box;
- };
- auto objectbox_free = [](void* boxed) {
- auto* box = static_cast<ObjectBox*>(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<ObjectBox*>(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<impl> m_impl;
};
--
GitLab

View File

@ -1,11 +1,11 @@
%global glib2_version 2.58.0
%global gobject_introspection_version 1.61.2
%global gtk3_version 3.20
%global mozjs78_version 78.7.0-1
%global mozjs78_version 78.8.0-1
Name: gjs
Version: 1.67.1
Release: 3%{?dist}
Version: 1.67.2
Release: 2%{?dist}
Summary: Javascript Bindings for GNOME
# The following files contain code from Mozilla which
@ -73,7 +73,10 @@ the functionality of the installed gjs package.
%meson_install
%check
%ifnarch i686
# One test times out on i686
xvfb-run -s "-screen 0 1600x1200x24" eval "%meson_test"
%endif
%files
%license COPYING
@ -98,6 +101,12 @@ xvfb-run -s "-screen 0 1600x1200x24" eval "%meson_test"
%{_datadir}/installed-tests/
%changelog
* Tue Feb 23 2021 Frantisek Zatloukal <fzatlouk@redhat.com> - 1.67.2-2
- Rebuild against mozjs78-78.8.0-1
* Wed Feb 17 2021 Kalev Lember <klember@redhat.com> - 1.67.2-1
- Update to 1.67.2
* Tue Jan 26 2021 Kalev Lember <klember@redhat.com> - 1.67.1-3
- Simplify xvfb-run invocation

View File

@ -1 +1 @@
SHA512 (gjs-1.67.1.tar.xz) = b4e570855e256fa4de20399be5869031c422992e104c6741610ca48dd638ef779a5432f648515f2260ac2a63b318354c6c33452657934e97c090f55b1685a7d4
SHA512 (gjs-1.67.2.tar.xz) = accdb003e5acd6ddb317410f598e7c146e3c7a9e056021aee79ae21f3e424713b89b337a48e4292a6b3676f80de1509eca7d3fe0955b893da398bb992f237d23