Compare commits

..

No commits in common. "c8" and "c9s" have entirely different histories.
c8 ... c9s

23 changed files with 7476 additions and 2249 deletions

127
.gitignore vendored
View File

@ -1 +1,126 @@
SOURCES/gjs-1.56.2.tar.xz
gjs-0.7.1.tar.gz
/gjs-0.7.4.tar.bz2
/gjs-0.7.5.tar.bz2
/gjs-0.7.6.tar.bz2
/gjs-0.7.7.tar.bz2
/gjs-0.7.8.tar.bz2
/gjs-0.7.9.tar.bz2
/gjs-0.7.10.tar.bz2
/gjs-0.7.11.tar.bz2
/gjs-0.7.13.tar.bz2
/gjs-0.7.14.tar.bz2
/gjs-1.29.0.tar.xz
/gjs-1.29.15.tar.xz
/gjs-1.29.16.tar.xz
/gjs-1.29.17.tar.xz
/gjs-1.29.18.tar.xz
/gjs-1.30.0.tar.xz
/gjs-1.31.0.tar.xz
/gjs-1.31.6.tar.xz
/gjs-1.31.10.tar.xz
/gjs-1.31.20.tar.xz
/gjs-1.31.22.tar.xz
/gjs-1.32.0.tar.xz
/gjs-1.33.2.tar.xz
/gjs-1.33.3.tar.xz
/gjs-1.33.4.tar.xz
/gjs-1.33.9.tar.xz
/gjs-1.33.10.tar.xz
/gjs-1.33.14.tar.xz
/gjs-1.34.0.tar.xz
/gjs-1.35.2.tar.xz
/gjs-1.35.3.tar.xz
/gjs-1.35.4.tar.xz
/gjs-1.35.8.tar.xz
/gjs-1.35.9.tar.xz
/gjs-1.36.0.tar.xz
/gjs-1.36.1.tar.xz
/gjs-1.37.1.tar.xz
/gjs-1.37.4.tar.xz
/gjs-1.37.6.tar.xz
/gjs-1.38.0.tar.xz
/gjs-1.39.0.tar.xz
/gjs-1.39.3.tar.xz
/gjs-1.39.90.tar.xz
/gjs-1.39.91.tar.xz
/gjs-1.40.0.tar.xz
/gjs-1.40.1.tar.xz
/gjs-1.41.3.tar.xz
/gjs-1.41.4.tar.xz
/gjs-1.41.91.tar.xz
/gjs-1.42.0.tar.xz
/gjs-1.43.3.tar.xz
/gjs-1.44.0.tar.xz
/gjs-1.45.3.tar.xz
/gjs-1.45.4.tar.xz
/gjs-1.46.0.tar.xz
/gjs-1.47.0.tar.xz
/gjs-1.47.4.tar.xz
/gjs-1.47.90.tar.xz
/gjs-1.47.91.tar.xz
/gjs-1.47.92.tar.xz
/gjs-1.48.0.tar.xz
/gjs-1.48.1.tar.xz
/gjs-1.48.2.tar.xz
/gjs-1.48.3.tar.xz
/gjs-1.49.2.tar.xz
/gjs-1.49.3.tar.xz
/gjs-1.50.0.tar.xz
/gjs-1.50.1.tar.xz
/gjs-1.50.2.tar.xz
/gjs-1.50.3.tar.xz
/gjs-1.50.4.tar.xz
/gjs-1.51.90.tar.xz
/gjs-1.51.91.tar.xz
/gjs-1.51.92.tar.xz
/gjs-1.52.0.tar.xz
/gjs-1.52.1.tar.xz
/gjs-1.52.2.tar.xz
/gjs-1.52.3.tar.xz
/gjs-1.54.0.tar.xz
/gjs-1.54.1.tar.xz
/gjs-1.55.1.tar.xz
/gjs-1.55.4.tar.xz
/gjs-1.55.90.tar.xz
/gjs-1.55.91.tar.xz
/gjs-1.55.92.tar.xz
/gjs-1.56.0.tar.xz
/gjs-1.56.1.tar.xz
/gjs-1.56.2.tar.xz
/gjs-1.57.1.tar.xz
/gjs-1.57.2.tar.xz
/gjs-1.57.3.tar.xz
/gjs-1.57.4.tar.xz
/gjs-1.57.90.tar.xz
/gjs-1.57.91.tar.xz
/gjs-1.57.92.tar.xz
/gjs-1.58.0.tar.xz
/gjs-1.58.1.tar.xz
/gjs-1.58.3.tar.xz
/gjs-1.63.2.tar.xz
/gjs-1.63.3.tar.xz
/gjs-1.63.90.tar.xz
/gjs-1.63.91.tar.xz
/gjs-1.63.92.tar.xz
/gjs-1.64.0.tar.xz
/gjs-1.64.1.tar.xz
/gjs-1.65.1.tar.xz
/gjs-1.65.2.tar.xz
/gjs-1.65.3.tar.xz
/gjs-1.65.4.tar.xz
/gjs-1.65.90.tar.xz
/gjs-1.65.91.tar.xz
/gjs-1.65.92.tar.xz
/gjs-1.66.0.tar.xz
/gjs-1.66.1.tar.xz
/gjs-1.66.2.tar.xz
/gjs-1.67.1.tar.xz
/gjs-1.67.2.tar.xz
/gjs-1.67.3.tar.xz
/gjs-1.68.0.tar.xz
/gjs-1.68.1.tar.xz
/firefox-78.10.0esr.source.tar.xz
/gjs-1.68.3.tar.xz
/gjs-1.68.4.tar.xz
/gjs-1.68.5.tar.xz
/gjs-1.68.6.tar.xz

View File

@ -0,0 +1,30 @@
From db3a0a25b97377b388532b23e73a10d246f66496 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= <fzatlouk@redhat.com>
Date: Mon, 3 Aug 2020 10:27:00 +0200
Subject: [PATCH] Skip failing tests on ppc64 and s390x
ppc64 and s390x: non262/extensions/clone-errors.js
s390x: test262/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-other-type.js
---
js/src/tests/jstests.list | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/js/src/tests/jstests.list b/js/src/tests/jstests.list
index 4085ce3..4f014f5 100644
--- a/js/src/tests/jstests.list
+++ b/js/src/tests/jstests.list
@@ -56,6 +56,11 @@ skip-if(!this.hasOwnProperty('addIntlExtras')) include test262/intl402/DisplayNa
skip-if(!this.hasOwnProperty("Atomics")) include test262/built-ins/Atomics/jstests.list
skip-if(!this.hasOwnProperty("SharedArrayBuffer")) include test262/built-ins/SharedArrayBuffer/jstests.list
+# Crashes on s390x and ppc64, avoid it
+skip-if(xulRuntime.XPCOMABI.match(/s390x|ppc64-/)) script non262/extensions/clone-errors.js
+
+# Crashes on s390x, avoid it
+skip-if(xulRuntime.XPCOMABI.match(/s390x/)) script test262/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-other-type.js
#####################################
# Test262 tests disabled on browser #
--
2.26.2

View File

@ -0,0 +1,67 @@
From 4cbaa23f1f4a3510176a1f38489834203f71b2b6 Mon Sep 17 00:00:00 2001
From: Sebastian Keller <skeller@gnome.org>
Date: Thu, 16 Mar 2023 22:35:49 +0100
Subject: [PATCH] function: Always initialize callback return value
When callback_closure() exits early, for example due to being called
during GC, the return value would not be initialized. This value is
often non-zero. If the callback is a source func of an idle or a timeout
this would then get interpreted as G_SOURCE_CONTINUE and the same would
repeat in the next iteration. If this happens fast enough, this results
in the entire process being seemingly frozen while spamming the log with
error messages.
To fix this always initialize the return value to 0 or a comparable
neutral value.
Related: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/1868
---
gi/function.cpp | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/gi/function.cpp b/gi/function.cpp
index 7c0064c8..5d69ed8a 100644
--- a/gi/function.cpp
+++ b/gi/function.cpp
@@ -308,6 +308,15 @@ void GjsCallbackTrampoline::callback_closure(GIArgument** args, void* result) {
JSContext *context;
GITypeInfo ret_type;
+ g_callable_info_load_return_type(m_info, &ret_type);
+
+ // Fill in the result with some hopefully neutral value
+ if (g_type_info_get_tag(&ret_type) != GI_TYPE_TAG_VOID) {
+ GIArgument argument = {};
+ gjs_gi_argument_init_default(&ret_type, &argument);
+ set_return_ffi_arg_from_giargument(&ret_type, result, &argument);
+ }
+
if (G_UNLIKELY(!gjs_closure_is_valid(m_js_function))) {
warn_about_illegal_js_callback(
"during shutdown",
@@ -382,7 +391,6 @@ void GjsCallbackTrampoline::callback_closure(GIArgument** args, void* result) {
JS::RootedValue rval(context);
- g_callable_info_load_return_type(m_info, &ret_type);
GIArgument* error_argument = nullptr;
if (g_callable_info_can_throw_gerror(m_info))
@@ -406,14 +414,6 @@ void GjsCallbackTrampoline::callback_closure(GIArgument** args, void* result) {
m_info.ns(), m_info.name());
}
- // Fill in the result with some hopefully neutral value
- if (g_type_info_get_tag(&ret_type) != GI_TYPE_TAG_VOID) {
- GIArgument argument = {};
- g_callable_info_load_return_type(m_info, &ret_type);
- gjs_gi_argument_init_default(&ret_type, &argument);
- set_return_ffi_arg_from_giargument(&ret_type, result, &argument);
- }
-
// If the callback has a GError** argument and invoking the closure
// returned an error, try to make a GError from it
if (error_argument && rval.isObject()) {
--
2.35.1

View File

@ -0,0 +1,91 @@
From cf128c8d52a3b86177d5231f32c2e156837fa8e7 Mon Sep 17 00:00:00 2001
From: Philip Chimento <philip.chimento@gmail.com>
Date: Mon, 14 Nov 2022 22:01:59 -0800
Subject: [PATCH] gobject: Guard against null JS wrapper in set/get property
The wrapper object may be disassociated from the GObject if dispose has
been run. In that case, the pointers in the get/set property vfuncs may
be null. Handle that case with a warning and don't get or set the
property.
Closes: #510
---
gi/gobject.cpp | 12 ++++++++++
installed-tests/js/testIntrospection.js | 31 +++++++++++++++++++++++++
2 files changed, 43 insertions(+)
diff --git a/gi/gobject.cpp b/gi/gobject.cpp
index b86872c2..881c06f8 100644
--- a/gi/gobject.cpp
+++ b/gi/gobject.cpp
@@ -171,6 +171,12 @@ static void gjs_object_set_gproperty(GObject* object,
unsigned property_id [[maybe_unused]],
const GValue* value, GParamSpec* pspec) {
auto* priv = ObjectInstance::for_gobject(object);
+ if (!priv) {
+ g_warning("Wrapper for GObject %p was disposed, cannot set property %s",
+ object, g_param_spec_get_name(pspec));
+ return;
+ }
+
JSContext *cx = current_context();
JS::RootedObject js_obj(cx, priv->wrapper());
@@ -184,6 +190,12 @@ static void gjs_object_get_gproperty(GObject* object,
unsigned property_id [[maybe_unused]],
GValue* value, GParamSpec* pspec) {
auto* priv = ObjectInstance::for_gobject(object);
+ if (!priv) {
+ g_warning("Wrapper for GObject %p was disposed, cannot get property %s",
+ object, g_param_spec_get_name(pspec));
+ return;
+ }
+
JSContext *cx = current_context();
JS::RootedObject js_obj(cx, priv->wrapper());
diff --git a/installed-tests/js/testIntrospection.js b/installed-tests/js/testIntrospection.js
index 5e2ee7df..a0ffeefe 100644
--- a/installed-tests/js/testIntrospection.js
+++ b/installed-tests/js/testIntrospection.js
@@ -140,6 +140,37 @@ describe('Garbage collection of introspected objects', function () {
System.gc();
GLib.idle_add(GLib.PRIORITY_LOW, () => done());
});
+
+ // This tests a race condition that would crash; it should warn instead
+ it('handles setting a property from C on an object whose JS wrapper has been collected', function (done) {
+ const SomeObject = GObject.registerClass({
+ Properties: {
+ 'screenfull': GObject.ParamSpec.boolean('screenfull', '', '',
+ GObject.ParamFlags.READWRITE,
+ false),
+ },
+ }, class SomeObject extends GObject.Object {});
+
+ GLib.test_expect_message('Gjs', GLib.LogLevelFlags.LEVEL_WARNING,
+ '*property screenfull*');
+
+ const settings = new Gio.Settings({schema: 'org.gnome.GjsTest'});
+ let obj = new SomeObject();
+ settings.bind('fullscreen', obj, 'screenfull', Gio.SettingsBindFlags.DEFAULT);
+ const handler = settings.connect('changed::fullscreen', () => {
+ obj.run_dispose();
+ obj = null;
+ settings.disconnect(handler);
+ GLib.idle_add(GLib.PRIORITY_LOW, () => {
+ GLib.test_assert_expected_messages_internal('Gjs',
+ 'testIntrospection.js', 0,
+ 'Warn about setting property on disposed JS object');
+ done();
+ });
+ });
+ settings.set_boolean('fullscreen', !settings.get_boolean('fullscreen'));
+ settings.reset('fullscreen');
+ });
});
describe('Gdk.Atom', function () {
--
2.39.1

5771
0002-D89554-autoconf1.diff Normal file

File diff suppressed because it is too large Load Diff

118
0003-D94538-autoconf2.diff Normal file
View File

@ -0,0 +1,118 @@
diff -up firefox-78.8.0/python/mozboot/mozboot/archlinux.py.D94538-autoconf2.diff firefox-78.8.0/python/mozboot/mozboot/archlinux.py
--- firefox-78.8.0/python/mozboot/mozboot/archlinux.py.D94538-autoconf2.diff 2021-02-25 13:53:04.963982705 +0100
+++ firefox-78.8.0/python/mozboot/mozboot/archlinux.py 2021-02-25 13:53:25.713053151 +0100
@@ -26,7 +26,6 @@ class ArchlinuxBootstrapper(
'''Archlinux experimental bootstrapper.'''
SYSTEM_PACKAGES = [
- 'autoconf2.13',
'base-devel',
'nodejs',
'python2',
diff -up firefox-78.8.0/python/mozboot/mozboot/centosfedora.py.D94538-autoconf2.diff firefox-78.8.0/python/mozboot/mozboot/centosfedora.py
--- firefox-78.8.0/python/mozboot/mozboot/centosfedora.py.D94538-autoconf2.diff 2021-02-17 08:49:42.000000000 +0100
+++ firefox-78.8.0/python/mozboot/mozboot/centosfedora.py 2021-02-25 13:53:04.963982705 +0100
@@ -26,7 +26,6 @@ class CentOSFedoraBootstrapper(
# For CentOS 7, later versions of nodejs come from nodesource
# and include the npm package.
self.packages = [
- 'autoconf213',
'nodejs',
'which',
]
diff -up firefox-78.8.0/python/mozboot/mozboot/debian.py.D94538-autoconf2.diff firefox-78.8.0/python/mozboot/mozboot/debian.py
--- firefox-78.8.0/python/mozboot/mozboot/debian.py.D94538-autoconf2.diff 2021-02-25 13:53:04.963982705 +0100
+++ firefox-78.8.0/python/mozboot/mozboot/debian.py 2021-02-25 13:53:42.874111415 +0100
@@ -32,7 +32,6 @@ class DebianBootstrapper(
# These are common packages for all Debian-derived distros (such as
# Ubuntu).
COMMON_PACKAGES = [
- 'autoconf2.13',
'build-essential',
'nodejs',
'python-setuptools',
diff -up firefox-78.8.0/python/mozboot/mozboot/freebsd.py.D94538-autoconf2.diff firefox-78.8.0/python/mozboot/mozboot/freebsd.py
--- firefox-78.8.0/python/mozboot/mozboot/freebsd.py.D94538-autoconf2.diff 2021-02-17 08:49:42.000000000 +0100
+++ firefox-78.8.0/python/mozboot/mozboot/freebsd.py 2021-02-25 13:53:04.963982705 +0100
@@ -15,7 +15,6 @@ class FreeBSDBootstrapper(BaseBootstrapp
self.flavor = flavor.lower()
self.packages = [
- 'autoconf213',
'gmake',
'gtar',
'pkgconf',
diff -up firefox-78.8.0/python/mozboot/mozboot/gentoo.py.D94538-autoconf2.diff firefox-78.8.0/python/mozboot/mozboot/gentoo.py
--- firefox-78.8.0/python/mozboot/mozboot/gentoo.py.D94538-autoconf2.diff 2021-02-17 08:49:38.000000000 +0100
+++ firefox-78.8.0/python/mozboot/mozboot/gentoo.py 2021-02-25 13:53:04.963982705 +0100
@@ -36,7 +36,6 @@ class GentooBootstrapper(
def ensure_system_packages(self):
self.run_as_root(['emerge', '--noreplace', '--quiet',
'app-arch/zip',
- 'sys-devel/autoconf:2.1'
])
def ensure_browser_packages(self, artifact_mode=False):
diff -up firefox-78.8.0/python/mozboot/mozboot/openbsd.py.D94538-autoconf2.diff firefox-78.8.0/python/mozboot/mozboot/openbsd.py
--- firefox-78.8.0/python/mozboot/mozboot/openbsd.py.D94538-autoconf2.diff 2021-02-17 08:49:15.000000000 +0100
+++ firefox-78.8.0/python/mozboot/mozboot/openbsd.py 2021-02-25 13:53:04.964982709 +0100
@@ -12,7 +12,6 @@ class OpenBSDBootstrapper(BaseBootstrapp
BaseBootstrapper.__init__(self, **kwargs)
self.packages = [
- 'autoconf-2.13',
'gmake',
'gtar',
'rust',
diff -up firefox-78.8.0/python/mozboot/mozboot/opensuse.py.D94538-autoconf2.diff firefox-78.8.0/python/mozboot/mozboot/opensuse.py
--- firefox-78.8.0/python/mozboot/mozboot/opensuse.py.D94538-autoconf2.diff 2021-02-17 08:49:42.000000000 +0100
+++ firefox-78.8.0/python/mozboot/mozboot/opensuse.py 2021-02-25 13:53:04.964982709 +0100
@@ -13,7 +13,6 @@ class OpenSUSEBootstrapper(
'''openSUSE experimental bootstrapper.'''
SYSTEM_PACKAGES = [
- 'autoconf213',
'nodejs',
'npm',
'which',
diff -up firefox-78.8.0/python/mozboot/mozboot/osx.py.D94538-autoconf2.diff firefox-78.8.0/python/mozboot/mozboot/osx.py
--- firefox-78.8.0/python/mozboot/mozboot/osx.py.D94538-autoconf2.diff 2021-02-25 13:53:04.964982709 +0100
+++ firefox-78.8.0/python/mozboot/mozboot/osx.py 2021-02-25 13:54:07.162193882 +0100
@@ -353,7 +353,6 @@ class OSXBootstrapper(BaseBootstrapper):
# least on 10.8) and because the build system wants a version
# newer than what Apple ships.
packages = [
- 'autoconf@2.13',
'git',
'gnu-tar',
'node',
@@ -428,7 +427,6 @@ class OSXBootstrapper(BaseBootstrapper):
'python27',
'python36',
'py27-gnureadline',
- 'autoconf213',
'gnutar',
'watchman',
'nodejs8'
diff -up firefox-78.8.0/python/mozboot/mozboot/solus.py.D94538-autoconf2.diff firefox-78.8.0/python/mozboot/mozboot/solus.py
--- firefox-78.8.0/python/mozboot/mozboot/solus.py.D94538-autoconf2.diff 2021-02-25 13:53:04.964982709 +0100
+++ firefox-78.8.0/python/mozboot/mozboot/solus.py 2021-02-25 13:53:32.090074802 +0100
@@ -23,7 +23,6 @@ class SolusBootstrapper(
'''Solus experimental bootstrapper.'''
SYSTEM_PACKAGES = [
- 'autoconf213',
'nodejs',
'python',
'python3',
diff -up firefox-78.8.0/python/mozboot/mozboot/windows.py.D94538-autoconf2.diff firefox-78.8.0/python/mozboot/mozboot/windows.py
--- firefox-78.8.0/python/mozboot/mozboot/windows.py.D94538-autoconf2.diff 2021-02-17 08:49:34.000000000 +0100
+++ firefox-78.8.0/python/mozboot/mozboot/windows.py 2021-02-25 13:53:04.978982756 +0100
@@ -48,7 +48,6 @@ class WindowsBootstrapper(BaseBootstrapp
'patch',
'patchutils',
'diffutils',
- 'autoconf2.13',
'tar',
'zip',
'unzip',

12
FixSharedArray.diff Normal file
View File

@ -0,0 +1,12 @@
--- a/js/public/StructuredClone.h
+++ b/js/public/StructuredClone.h
@@ -381,7 +381,7 @@ enum OwnTransferablePolicy {
namespace js {
class SharedArrayRawBuffer;
-class SharedArrayRawBufferRefs {
+class JS_PUBLIC_API SharedArrayRawBufferRefs {
public:
SharedArrayRawBufferRefs() = default;
SharedArrayRawBufferRefs(SharedArrayRawBufferRefs&& other) = default;
--

View File

@ -1,60 +0,0 @@
From bc58c3127fc6b1a2c8450b47d4dda52298cf217e Mon Sep 17 00:00:00 2001
From: Sebastian Keller <skeller@gnome.org>
Date: Thu, 16 Mar 2023 22:35:49 +0100
Subject: [PATCH] function: Always initialize callback return value
When callback_closure() exits early, for example due to being called
during GC, the return value would not be initialized. This value is
often non-zero. If the callback is a source func of an idle or a timeout
this would then get interpreted as G_SOURCE_CONTINUE and the same would
repeat in the next iteration. If this happens fast enough, this results
in the entire process being seemingly frozen while spamming the log with
error messages.
To fix this always initialize the return value to 0 or a comparable
neutral value.
Related: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/1868
---
gi/function.cpp | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/gi/function.cpp b/gi/function.cpp
index ef708f0c..551c1732 100644
--- a/gi/function.cpp
+++ b/gi/function.cpp
@@ -200,6 +200,12 @@ gjs_callback_closure(ffi_cif *cif,
g_assert(trampoline);
gjs_callback_trampoline_ref(trampoline);
+ context = gjs_closure_get_context(trampoline->js_function);
+
+ /* Fill in the result with some hopefully neutral value */
+ g_callable_info_load_return_type(trampoline->info, &ret_type);
+ gjs_g_argument_init_default (context, &ret_type, (GArgument *) result);
+
if (G_UNLIKELY(!gjs_closure_is_valid(trampoline->js_function))) {
warn_about_illegal_js_callback(trampoline, "during shutdown",
"destroying a Clutter actor or GTK widget with ::destroy signal "
@@ -208,7 +214,6 @@ gjs_callback_closure(ffi_cif *cif,
return;
}
- context = gjs_closure_get_context(trampoline->js_function);
GjsContextPrivate* gjs = GjsContextPrivate::from_cx(context);
if (G_UNLIKELY(gjs->sweeping())) {
warn_about_illegal_js_callback(trampoline, "during garbage collection",
@@ -445,10 +450,6 @@ out:
g_base_info_get_name(trampoline->info));
}
- /* Fill in the result with some hopefully neutral value */
- g_callable_info_load_return_type(trampoline->info, &ret_type);
- gjs_g_argument_init_default (context, &ret_type, (GArgument *) result);
-
/* If the callback has a GError** argument and invoking the closure
* returned an error, try to make a GError from it */
if (can_throw_gerror && rval.isObject()) {
--
2.40.0

File diff suppressed because it is too large Load Diff

View File

@ -1,67 +0,0 @@
From 69498c30904c4769de2f7b6a36eb70a8409643d0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Thu, 29 Oct 2020 13:05:23 +0100
Subject: [PATCH 1/2] gi/object: Check property before access
... to avoid a harmless but annoying "access to undefined property"
warning in case the property doesn't exist (namely the first time
a non-introspected gtype is accessed).
---
gi/object.cpp | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/gi/object.cpp b/gi/object.cpp
index e9eba75a..ee66c6f3 100644
--- a/gi/object.cpp
+++ b/gi/object.cpp
@@ -1599,8 +1599,12 @@ JSObject* gjs_lookup_object_constructor_from_info(JSContext* context,
if (G_UNLIKELY (!in_object))
return NULL;
+ bool found;
+ if (!JS_HasProperty(context, in_object, constructor_name, &found))
+ return NULL;
+
JS::RootedValue value(context);
- if (!JS_GetProperty(context, in_object, constructor_name, &value))
+ if (found && !JS_GetProperty(context, in_object, constructor_name, &value))
return NULL;
JS::RootedObject constructor(context);
--
2.28.0
From 23093ef99411a35d8eeedb74948e6c15ed19ba10 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Thu, 29 Oct 2020 15:29:59 +0100
Subject: [PATCH 2/2] gi/fundamental: Check property before access
... to avoid a harmless but annoying "access to undefined property"
warning in case the property doesn't exist (namely the first time
a non-introspected gtype is accessed).
---
gi/fundamental.cpp | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/gi/fundamental.cpp b/gi/fundamental.cpp
index 0d5d3f6d..426c7db9 100644
--- a/gi/fundamental.cpp
+++ b/gi/fundamental.cpp
@@ -322,8 +322,12 @@ gjs_lookup_fundamental_prototype(JSContext *context,
if (G_UNLIKELY (!in_object))
return NULL;
+ bool found;
+ if (!JS_HasProperty(context, in_object, constructor_name, &found))
+ return nullptr;
+
JS::RootedValue value(context);
- if (!JS_GetProperty(context, in_object, constructor_name, &value))
+ if (found && !JS_GetProperty(context, in_object, constructor_name, &value))
return NULL;
JS::RootedObject constructor(context);
--
2.28.0

View File

@ -1,540 +0,0 @@
%global glib2_version 2.54.0
%global gobject_introspection_version 1.41.4
%global gtk3_version 3.20
%global mozjs60_version 60.9.0-4
Name: gjs
Version: 1.56.2
Release: 6%{?dist}
Summary: Javascript Bindings for GNOME
# The following files contain code from Mozilla which
# is triple licensed under MPL1.1/LGPLv2+/GPLv2+:
# The console module (modules/console.c)
# Stack printer (gjs/stack.c)
License: MIT and (MPLv1.1 or GPLv2+ or LGPLv2+)
URL: https://wiki.gnome.org/Projects/Gjs
Source0: https://download.gnome.org/sources/%{name}/1.56/%{name}-%{version}.tar.xz
Patch0: 0001-gi-Include-missing-glib-bits.patch
Patch1: fix-undefined-property-warning.patch
Patch2: 0001-function-Always-initialize-callback-return-value.patch
BuildRequires: cairo-gobject-devel
BuildRequires: chrpath
BuildRequires: dbus-daemon
BuildRequires: dbus-glib-devel
BuildRequires: gcc-c++
BuildRequires: gettext
BuildRequires: glib2-devel >= %{glib2_version}
BuildRequires: gobject-introspection-devel >= %{gobject_introspection_version}
BuildRequires: gtk3-devel >= %{gtk3_version}
BuildRequires: mozjs60-devel >= %{mozjs60_version}
BuildRequires: pkgconfig
BuildRequires: readline-devel
Requires: glib2%{?_isa} >= %{glib2_version}
Requires: gobject-introspection%{?_isa} >= %{gobject_introspection_version}
Requires: gtk3%{?_isa} >= %{gtk3_version}
Requires: mozjs60%{?_isa} >= %{mozjs60_version}
# Filter provides for private libraries
%global __provides_exclude_from ^%{_libdir}/gjs/
%description
Gjs allows using GNOME libraries from Javascript. It's based on the
Spidermonkey Javascript engine from Mozilla and the GObject introspection
framework.
%package devel
Summary: Development package for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
%description devel
Files for development with %{name}.
%package tests
Summary: Tests for the gjs package
Requires: %{name}%{?_isa} = %{version}-%{release}
%description tests
The gjs-tests package contains tests that can be used to verify
the functionality of the installed gjs package.
%prep
%autosetup -p1
%build
%configure --disable-static --enable-installed-tests
make %{?_smp_mflags} V=1
%install
%make_install
# Remove lib64 rpaths
chrpath --delete %{buildroot}%{_bindir}/gjs-console
chrpath --delete %{buildroot}%{_libexecdir}/gjs/installed-tests/minijasmine
find %{buildroot} -name '*.la' -exec rm -f {} ';'
%check
#make check
%files
%license COPYING
%doc NEWS README
%{_bindir}/gjs
%{_bindir}/gjs-console
%{_libdir}/*.so.*
%{_libdir}/gjs
%files devel
%doc examples/*
%{_includedir}/gjs-1.0
%{_libdir}/pkgconfig/gjs-1.0.pc
%{_libdir}/*.so
%dir %{_datadir}/gjs-1.0
%{_datadir}/gjs-1.0/lsan/
%{_datadir}/gjs-1.0/valgrind/
%files tests
%{_libexecdir}/gjs/installed-tests
%{_datadir}/installed-tests
%changelog
* Wed May 10 2023 Florian Müllner <fmuellner@redhat.com> - 1.56.2-6
- Always initialize callback return value
Resolves: #2182508
* Tue Nov 17 2020 Florian Müllner <fmuellner@redhat.co> - 1.56.2-5
- Fix undefined property warnings
Related: #1845660
* Tue Feb 18 2020 Kalev Lember <klember@redhat.com> - 1.56.2-4
- Rebuild for mozjs60 s390x fixes
- Related: #1803824
* Tue Sep 10 2019 Kalev Lember <klember@redhat.com> - 1.56.2-3
- Rebuild for mozjs60 s390x fixes
- Related: #1746889
* Thu May 23 2019 Florian Müllner <fmuellner@redhat.com> - 1.56.2-1
- Update to 1.56.2
Resolves: #1698923
* Fri Feb 22 2019 Florian Müllner <fmuellner@redhat.com> - 1.52.5-2
- Fix crash in cairo support module
Resolves: #1678869
* Mon Jan 21 2019 Ray Strode <rstrode@redhat.com> - 1.52.5-1
- Update to 1.52.5
- Fixes delayed garbage collection problem
Resolves: #1666809
* Wed Dec 12 2018 Ray Strode <rstrode@redhat.com> - 1.52.4-2
- rebuild
* Tue Oct 16 2018 Kalev Lember <klember@redhat.com> - 1.52.4-1
- Update to 1.52.4
* Tue May 08 2018 Kalev Lember <klember@redhat.com> - 1.52.3-1
- Update to 1.52.3
* Wed Apr 18 2018 Kalev Lember <klember@redhat.com> - 1.52.2-1
- Update to 1.52.2
* Tue Apr 10 2018 Kalev Lember <klember@redhat.com> - 1.52.1-1
- Update to 1.52.1
* Tue Mar 13 2018 Kalev Lember <klember@redhat.com> - 1.52.0-1
- Update to 1.52.0
* Sun Mar 11 2018 Kalev Lember <klember@redhat.com> - 1.51.92-1
- Update to 1.51.92
* Wed Feb 21 2018 Kalev Lember <klember@redhat.com> - 1.51.91-1
- Update to 1.51.91
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.51.90-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Mon Feb 05 2018 Kalev Lember <klember@redhat.com> - 1.51.90-1
- Update to 1.51.90
- Drop ldconfig scriptlets
- Filter provides for private libraries
* Sat Feb 03 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 1.50.4-2
- Switch to %%ldconfig_scriptlets
* Sun Jan 28 2018 Kalev Lember <klember@redhat.com> - 1.50.4-1
- Update to 1.50.4
* Thu Jan 18 2018 Kalev Lember <klember@redhat.com> - 1.50.3-1
- Update to 1.50.3
* Wed Nov 01 2017 Kalev Lember <klember@redhat.com> - 1.50.2-1
- Update to 1.50.2
* Mon Oct 09 2017 Kalev Lember <klember@redhat.com> - 1.50.1-1
- Update to 1.50.1
* Wed Sep 20 2017 Kalev Lember <klember@redhat.com> - 1.50.0-1
- Update to 1.50.0
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.49.3-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.49.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Sun Jun 25 2017 Kalev Lember <klember@redhat.com> - 1.49.3-1
- Update to 1.49.3
* Tue Jun 13 2017 Bastien Nocera <bnocera@redhat.com> - 1.49.2-2
+ gjs-1.49.2-2
- Add fix for possible use-after-free crasher (bgo #781799)
* Mon Jun 12 2017 Kalev Lember <klember@redhat.com> - 1.49.2-1
- Update to 1.49.2
* Mon May 15 2017 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.48.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_27_Mass_Rebuild
* Tue May 09 2017 Kalev Lember <klember@redhat.com> - 1.48.3-1
- Update to 1.48.3
* Fri Apr 21 2017 Kalev Lember <klember@redhat.com> - 1.48.2-1
- Update to 1.48.2
* Tue Apr 11 2017 Kalev Lember <klember@redhat.com> - 1.48.1-1
- Update to 1.48.1
* Tue Mar 21 2017 Kalev Lember <klember@redhat.com> - 1.48.0-1
- Update to 1.48.0
* Thu Mar 16 2017 Kalev Lember <klember@redhat.com> - 1.47.92-1
- Update to 1.47.92
* Wed Mar 01 2017 Kalev Lember <klember@redhat.com> - 1.47.91-1
- Update to 1.47.91
* Wed Feb 15 2017 Kalev Lember <klember@redhat.com> - 1.47.90-1
- Update to 1.47.90
- Switch to building with mozjs38
- Set minimum required glib2 and gtk3 versions
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.47.4-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Sun Jan 15 2017 Kalev Lember <klember@redhat.com> - 1.47.4-1
- Update to 1.47.4
- Remove lib64 rpaths
* Thu Jan 12 2017 Igor Gnatenko <ignatenko@redhat.com> - 1.47.0-2
- Rebuild for readline 7.x
* Thu Nov 10 2016 Florian Müllner <fmuellner@redhat.com> - 3.47.0-1
- Update to 1.47.0
* Wed Sep 21 2016 Kalev Lember <klember@redhat.com> - 1.46.0-1
- Update to 1.46.0
- Don't set group tags
- Use make_install macro
* Tue Jul 19 2016 Florian Müllner <fmuellner@redhat.com> - 3.1.45.4-1
- Update to 1.45.4
* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 1.45.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Fri Dec 18 2015 Kalev Lember <klember@redhat.com> - 1.45.3-1
- Update to 1.45.3
- Update project URL
* Wed Oct 28 2015 Kalev Lember <klember@redhat.com> - 1.44.0-1
- Update to 1.44.0
- Use license macro for COPYING
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.43.3-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Sat May 02 2015 Kalev Lember <kalevlember@gmail.com> - 1.43.3-2
- Rebuilt for GCC 5 C++11 ABI change
* Mon Dec 29 2014 Richard Hughes <rhughes@redhat.com> - 1.43.3-1
- Update to 1.43.3
* Mon Sep 29 2014 Kalev Lember <kalevlember@gmail.com> - 1.42.0-1
- Update to 1.42.0
* Fri Sep 5 2014 Vadim Rutkovsky <vrutkovs@redhat.com> - 1.41.91-2
- Build installed tests
* Mon Sep 01 2014 Kalev Lember <kalevlember@gmail.com> - 1.41.91-1
- Update to 1.41.91
* Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.41.4-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Tue Jul 22 2014 Kalev Lember <kalevlember@gmail.com> - 1.41.4-1
- Update to 1.41.4
* Thu Jun 26 2014 Richard Hughes <rhughes@redhat.com> - 1.41.3-1
- Update to 1.41.3
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.40.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Tue Apr 15 2014 Kalev Lember <kalevlember@gmail.com> - 1.40.1-1
- Update to 1.40.1
* Sat Apr 05 2014 Kalev Lember <kalevlember@gmail.com> - 1.40.0-2
- Tighten -devel deps
- Set minimum gobject-introspection version
* Tue Mar 25 2014 Richard Hughes <rhughes@redhat.com> - 1.40.0-1
- Update to 1.40.0
* Tue Mar 04 2014 Richard Hughes <rhughes@redhat.com> - 1.39.91-1
- Update to 1.39.91
* Wed Feb 19 2014 Richard Hughes <rhughes@redhat.com> - 1.39.90-1
- Update to 1.39.90
* Wed Feb 05 2014 Adam Williamson <awilliam@redhat.com> - 1.39.3-2
- build against mozjs24
* Wed Jan 29 2014 Richard Hughes <rhughes@redhat.com> - 1.39.3-1
- Update to 1.39.3
* Wed Nov 20 2013 Jasper St. Pierre <jstpierre@mecheye.net> - 1.39.0-1
- Update to 1.39.0
* Wed Sep 25 2013 Kalev Lember <kalevlember@gmail.com> - 1.38.1-1
- Update to 1.38.1
* Wed Sep 25 2013 Kalev Lember <kalevlember@gmail.com> - 1.38.0-1
- Update to 1.38.0
* Thu Aug 22 2013 Kalev Lember <kalevlember@gmail.com> - 1.37.6-1
- Update to 1.37.6
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.37.4-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Tue Jul 16 2013 Richard Hughes <rhughes@redhat.com> - 1.37.4-1
- Update to 1.37.4
* Tue May 28 2013 Colin Walters <walters@verbum.org> - 1.37.1-1
- Update to 1.37.1, and switch to mozjs17
* Mon Apr 29 2013 Kalev Lember <kalevlember@gmail.com> - 1.36.1-1
- Update to 1.36.1
* Tue Mar 26 2013 Kalev Lember <kalevlember@gmail.com> - 1.36.0-1
- Update to 1.36.0
* Thu Mar 21 2013 Kalev Lember <kalevlember@gmail.com> - 1.35.9-1
- Update to 1.35.9
* Wed Feb 20 2013 Richard Hughes <rhughes@redhat.com> - 1.35.8-1
- Update to 1.35.8
* Wed Feb 13 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.35.4-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
* Tue Jan 15 2013 Matthias Clasen <mclasen@redhat.com> - 1.35.4-1
- Update to 1.35.4
* Thu Dec 20 2012 Kalev Lember <kalevlember@gmail.com> - 1.35.3-1
- Update to 1.35.3
* Tue Nov 20 2012 Richard Hughes <hughsient@gmail.com> - 1.35.2-1
- Update to 1.35.2
* Tue Sep 25 2012 Kalev Lember <kalevlember@gmail.com> - 1.34.0-1
- Update to 1.34.0
* Wed Sep 19 2012 Richard Hughes <hughsient@gmail.com> - 1.33.14-1
- Update to 1.33.14
* Thu Sep 06 2012 Richard Hughes <hughsient@gmail.com> - 1.33.10-1
- Update to 1.33.10
* Tue Aug 21 2012 Richard Hughes <hughsient@gmail.com> - 1.33.9-1
- Update to 1.33.9
* Thu Jul 19 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.33.4-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Tue Jul 17 2012 Richard Hughes <hughsient@gmail.com> - 1.33.4-1
- Update to 1.33.4
* Thu Jul 5 2012 Peter Robinson <pbrobinson@fedoraproject.org> - 1.33.3-2
- Enable verbose build
* Tue Jun 26 2012 Richard Hughes <hughsient@gmail.com> - 1.33.3-1
- Update to 1.33.3
* Sat Jun 9 2012 Matthias Clasen <mclasen@redhat.com> - 1.33.2-2
- Fix the build
* Thu Jun 07 2012 Richard Hughes <hughsient@gmail.com> - 1.33.2-1
- Update to 1.33.2
* Wed Mar 28 2012 Richard Hughes <hughsient@gmail.com> - 1.32.0-1
- Update to 1.32.0
* Wed Mar 21 2012 Matthias Clasen <mclasen@redhat.com> - 1.31.22-1
- Update to 1.31.22
* Mon Mar 5 2012 Matthias Clasen <mclasen@redhat.com> - 1.31.20-1
- Update to 1.31.20
* Tue Feb 7 2012 Colin Walters <walters@verbum.org> - 1.31.10-2
- Drop custom .gir/.typelib directories; see upstream commit
ea4d639eab307737870479b6573d5dab9fb2915a
* Thu Jan 19 2012 Matthias Clasen <mclasen@redhat.com> - 1.31.10-1
- 1.31.10
* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.31.6-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
* Tue Dec 20 2011 Matthias Clasen <mclasen@redhat.com> 1.31.6-1
- 1.31.6
* Fri Dec 02 2011 Karsten Hopp <karsten@redhat.com> 1.31.0-2
- fix crash on PPC, bugzilla 749604
* Wed Nov 2 2011 Matthias Clasen <mclasen@redhat.com> - 1.31.0-1
- Update to 1.31.0
* Tue Sep 27 2011 Ray <rstrode@redhat.com> - 1.30.0-1
- Update to 1.30.0
* Wed Sep 21 2011 Matthias Clasen <mclasen@redhat.com> 1.29.18-1
- Update to 1.29.18
* Mon Sep 05 2011 Luis Bazan <bazanluis20@gmail.com> 1.29.17-2
- mass rebuild
* Tue Aug 30 2011 Matthias Clasen <mclasen@redhat.com> 1.29.17-1
- Update to 1.29.17
* Thu Aug 18 2011 Matthias Clasen <mclasen@redhat.com> 1.29.16-1
- Update to 1.29.16
* Thu Jul 28 2011 Colin Walters <walters@verbum.org> - 1.29.0-3
- BR latest g-i to fix build issue
* Mon Jun 27 2011 Adam Williamson <awilliam@redhat.com> - 1.29.0-2
- build against js, not gecko (from f15 branch, but patch not needed)
- BR cairo-devel (also from f15)
* Fri Jun 17 2011 Tomas Bzatek <tbzatek@redhat.com> - 1.29.0-1
- Update to 1.29.0
* Thu Apr 28 2011 Christopher Aillon <caillon@redhat.com> - 0.7.14-3
- Rebuild against newer gecko
* Thu Apr 14 2011 Colin Walters <walters@verbum.org> - 0.7.14-2
- BR readline; closes #696254
* Mon Apr 4 2011 Colin Walters <walters@verbum.org> - 0.7.14-1
- Update to 0.7.14; fixes notification race condition on login
* Tue Mar 22 2011 Christopher Aillon <caillon@redhat.com> - 0.7.13-3
- Rebuild against newer gecko
* Fri Mar 18 2011 Christopher Aillon <caillon@redhat.com> - 0.7.13-2
- Rebuild against newer gecko
* Thu Mar 10 2011 Colin Walters <walters@verbum.org> - 0.7.13-1
- Update to 0.7.13
* Wed Mar 9 2011 Christopher Aillon <caillon@redhat.com> - 0.7.11-3
- Rebuild against newer gecko
* Fri Feb 25 2011 Christopher Aillon <caillon@redhat.com> - 0.7.11-2
- Rebuild against newer gecko
* Tue Feb 22 2011 Owen Taylor <otaylor@redhat.com> - 0.7.11-1
- Update to 0.7.11
* Thu Feb 10 2011 Christopher Aillon <caillon@redhat.com> - 0.7.10-4
- Require gecko-libs instead of xulrunner
* Wed Feb 9 2011 Colin Walters <walters@verbum.org> - 0.7.10-3
- Add a hardcoded Requires on xulrunner; see comment
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.7.10-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
* Tue Jan 25 2011 Colin Walters <walters@verbum.org> - 0.7.10-1
- New upstream release
* Tue Jan 25 2011 Christopher Aillon <caillon@redhat.com> - 0.7.9-3
- Rebuild for new xulrunner
* Fri Jan 14 2011 Christopher Aillon <caillon@redhat.com> - 0.7.9-2
- Rebuild for new xulrunner
* Fri Jan 14 2011 Colin Walters <walters@verbum.org> - 0.7.9-1
- 0.7.9
* Wed Jan 12 2011 Colin Walters <walters@verbum.org> - 0.7.8-1
- Update to 0.7.8
- Drop upstreamed patches
- BR latest g-i for GI_TYPE_TAG_UNICHAR
* Wed Dec 29 2010 Dan Williams <dcbw@redhat.com> - 0.7.7-3
- Work around Mozilla JS API changes
* Wed Dec 22 2010 Colin Walters <walters@verbum.org> - 0.7.7-2
- Remove rpath removal; we need an rpath on libmozjs, since
it's in a nonstandard directory.
* Mon Nov 15 2010 Owen Taylor <otaylor@redhat.com> - 0.7.7-1
- Update to 0.7.7
* Tue Nov 9 2010 Owen Taylor <otaylor@redhat.com> - 0.7.6-1
- Update to 0.7.6
* Fri Oct 29 2010 Owen Taylor <otaylor@redhat.com> - 0.7.5-1
- Update to 0.7.5
* Mon Oct 4 2010 Owen Taylor <otaylor@redhat.com> - 0.7.4-1
- Update to 0.7.4
* Wed Jul 14 2010 Colin Walters <walters@verbum.org> - 0.7.1-3
- Rebuild for new gobject-introspection
* Mon Jul 12 2010 Colin Walters <walters@verbum.org> - 0.7.1-2
- New upstream version
- Changes to allow builds from snapshots
* Fri May 28 2010 Matthias Clasen <mclasen@redhat.com> 0.7-1
- Update to 0.7
* Wed Mar 24 2010 Peter Robinson <pbrobinson@gmail.com> 0.6-1
- New upstream 0.6 stable release
* Sat Feb 20 2010 Peter Robinson <pbrobinson@gmail.com> 0.5-1
- New upstream 0.5 release
* Thu Jan 14 2010 Peter Robinson <pbrobinson@gmail.com> 0.5-0.1
- Move to git snapshot to fix compile against xulrunner 1.9.2.1
* Thu Aug 27 2009 Peter Robinson <pbrobinson@gmail.com> 0.4-1
- New upstream 0.4 release
* Fri Aug 7 2009 Peter Robinson <pbrobinson@gmail.com> 0.3-2
- Updates from the review request
* Wed Jul 8 2009 Peter Robinson <pbrobinson@gmail.com> 0.3-1
- New upstream release. Clarify licensing for review
* Sat Jun 27 2009 Peter Robinson <pbrobinson@gmail.com> 0.2-1
- Initial packaging

38
copy-headers.patch Normal file
View File

@ -0,0 +1,38 @@
From 3b3c8e37cca418e07bdeceaf3a601805df28d925 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= <fzatlouk@redhat.com>
Date: Wed, 15 Jul 2020 08:27:39 +0200
Subject: [PATCH] build: Copy headers on install instead of symlinking
Patch by Philip Chimento ported forward to mozjs78
---
python/mozbuild/mozbuild/backend/recursivemake.py | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/python/mozbuild/mozbuild/backend/recursivemake.py b/python/mozbuild/mozbuild/backend/recursivemake.py
index e3fc8fe..bed5ae9 100644
--- a/python/mozbuild/mozbuild/backend/recursivemake.py
+++ b/python/mozbuild/mozbuild/backend/recursivemake.py
@@ -1457,9 +1457,9 @@ class RecursiveMakeBackend(MakeBackend):
raise Exception("Wildcards are only supported in the filename part"
" of srcdir-relative or absolute paths.")
- install_manifest.add_pattern_link(basepath, wild, path)
+ install_manifest.add_pattern_copy(basepath, wild, path)
else:
- install_manifest.add_pattern_link(f.srcdir, f, path)
+ install_manifest.add_pattern_copy(f.srcdir, f, path)
elif isinstance(f, AbsolutePath):
if not f.full_path.lower().endswith(('.dll', '.pdb', '.so')):
raise Exception("Absolute paths installed to FINAL_TARGET_FILES must"
@@ -1468,7 +1468,7 @@ class RecursiveMakeBackend(MakeBackend):
install_manifest.add_optional_exists(dest)
absolute_files.append(f.full_path)
else:
- install_manifest.add_link(f.full_path, dest)
+ install_manifest.add_copy(f.full_path, dest)
else:
install_manifest.add_optional_exists(dest)
objdir_files.append(self._pretty_path(f, backend_file))
--
2.26.2

View File

@ -0,0 +1,35 @@
From fd6847c9416f9eebde636e21d794d25d1be8791d Mon Sep 17 00:00:00 2001
From: Mike Hommey <mh@glandium.org>
Date: Sat, 1 Jun 2019 09:06:01 +0900
Subject: [PATCH] Bug 1526653 - Include struct definitions for user_vfp and
user_vfp_exc.
---
js/src/wasm/WasmSignalHandlers.cpp | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/js/src/wasm/WasmSignalHandlers.cpp b/js/src/wasm/WasmSignalHandlers.cpp
index 636537f8478..383c380f04c 100644
--- a/js/src/wasm/WasmSignalHandlers.cpp
+++ b/js/src/wasm/WasmSignalHandlers.cpp
@@ -249,7 +249,16 @@ using mozilla::DebugOnly;
#endif
#ifdef WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
-# include <sys/user.h>
+struct user_vfp {
+ unsigned long long fpregs[32];
+ unsigned long fpscr;
+};
+
+struct user_vfp_exc {
+ unsigned long fpexc;
+ unsigned long fpinst;
+ unsigned long fpinst2;
+};
#endif
#if defined(ANDROID)
--
2.30.2

61
emitter.patch Normal file
View File

@ -0,0 +1,61 @@
From d1d785c169345b81c76213f6dd9be32b4db60294 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= <fzatlouk@redhat.com>
Date: Wed, 15 Jul 2020 08:39:47 +0200
Subject: [PATCH] Build: allow LOCAL_INCLUDES paths with topsrcdir or topobjdir
---
python/mozbuild/mozbuild/frontend/emitter.py | 6 ------
.../mozbuild/test/frontend/test_emitter.py | 20 -------------------
2 files changed, 26 deletions(-)
diff --git a/python/mozbuild/mozbuild/frontend/emitter.py b/python/mozbuild/mozbuild/frontend/emitter.py
index 8d5ab8e..65c43ff 100644
--- a/python/mozbuild/mozbuild/frontend/emitter.py
+++ b/python/mozbuild/mozbuild/frontend/emitter.py
@@ -1239,12 +1239,6 @@ class TreeMetadataEmitter(LoggingMixin):
'is a filename, but a directory is required: %s '
'(resolved to %s)' % (local_include, full_path),
context)
- if (full_path == context.config.topsrcdir or
- full_path == context.config.topobjdir):
- raise SandboxValidationError(
- 'Path specified in LOCAL_INCLUDES '
- '(%s) resolves to the topsrcdir or topobjdir (%s), which is '
- 'not allowed' % (local_include, full_path), context)
include_obj = LocalInclude(context, local_include)
local_includes.append(include_obj.path.full_path)
yield include_obj
diff --git a/python/mozbuild/mozbuild/test/frontend/test_emitter.py b/python/mozbuild/mozbuild/test/frontend/test_emitter.py
index e8cbd81..d45ccee 100644
--- a/python/mozbuild/mozbuild/test/frontend/test_emitter.py
+++ b/python/mozbuild/mozbuild/test/frontend/test_emitter.py
@@ -1040,26 +1040,6 @@ class TestEmitterBasic(unittest.TestCase):
self.assertEqual(local_includes, expected)
- def test_local_includes_invalid(self):
- """Test that invalid LOCAL_INCLUDES are properly detected."""
- reader = self.reader('local_includes-invalid/srcdir')
-
- with six.assertRaisesRegex(
- self,
- SandboxValidationError,
- 'Path specified in LOCAL_INCLUDES.*resolves to the '
- 'topsrcdir or topobjdir'):
- self.read_topsrcdir(reader)
-
- reader = self.reader('local_includes-invalid/objdir')
-
- with six.assertRaisesRegex(
- self,
- SandboxValidationError,
- 'Path specified in LOCAL_INCLUDES.*resolves to the '
- 'topsrcdir or topobjdir'):
- self.read_topsrcdir(reader)
-
def test_local_includes_file(self):
"""Test that a filename can't be used in LOCAL_INCLUDES."""
reader = self.reader('local_includes-filename')
--
2.26.2

6
gating.yaml Normal file
View File

@ -0,0 +1,6 @@
--- !Policy
product_versions:
- rhel-9
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: desktop-qe.desktop-ci.tier1-gating.functional}

1001
gjs.spec Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,34 @@
From: Simon McVittie <smcv@debian.org>
Date: Mon, 9 Oct 2017 09:23:14 +0100
Subject: icu_sources_data: Write command output to our stderr
Saying "See output in /tmp/foobar" is all very well for a developer
build, but on a buildd our /tmp is going to get thrown away after
the build. Just log the usual way instead.
---
intl/icu_sources_data.py | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/intl/icu_sources_data.py b/intl/icu_sources_data.py
index 8cf9290..7d2d983 100644
--- a/intl/icu_sources_data.py
+++ b/intl/icu_sources_data.py
@@ -190,16 +190,13 @@ def update_sources(topsrcdir):
def try_run(name, command, cwd=None, **kwargs):
try:
- with tempfile.NamedTemporaryFile(prefix=name, delete=False) as f:
- subprocess.check_call(command, cwd=cwd, stdout=f,
- stderr=subprocess.STDOUT, **kwargs)
+ subprocess.check_call(command, cwd=cwd, stdout=sys.stderr,
+ stderr=subprocess.STDOUT, **kwargs)
except subprocess.CalledProcessError:
- print('''Error running "{}" in directory {}
- See output in {}'''.format(' '.join(command), cwd, f.name),
- file=sys.stderr)
+ print('''Error running "{}" in directory {}'''.format(' '.join(command), cwd),
+ file=sys.stderr)
return False
else:
- os.unlink(f.name)
return True

View File

@ -0,0 +1,26 @@
From: Simon McVittie <smcv@debian.org>
Date: Mon, 9 Oct 2017 09:22:12 +0100
Subject: icu_sources_data.py: Decouple from Mozilla build system
mozpack.path is a wrapper around os.path that normalizes path
separators on Windows, but on Unix we only have one path separator
so there's nothing to normalize. Avoid needing to import all of it.
---
intl/icu_sources_data.py | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/intl/icu_sources_data.py b/intl/icu_sources_data.py
index 98c0ccb..8cf9290 100644
--- a/intl/icu_sources_data.py
+++ b/intl/icu_sources_data.py
@@ -22,7 +22,9 @@ import subprocess
import sys
import tempfile
-from mozpack import path as mozpath
+# Close enough
+import os.path as mozpath
+mozpath.normsep = lambda p: p
# The following files have been determined to be dead/unused by a
# semi-automated analysis. You can just remove any of the files below

12
init_patch.patch Normal file
View File

@ -0,0 +1,12 @@
--- a/python/mozbuild/mozbuild/configure/__init__.py
+++ b/python/mozbuild/mozbuild/configure/__init__.py
@@ -491,7 +491,8 @@ class ConfigureSandbox(dict):
if self._help:
self._logger.warning(msg)
else:
- raise InvalidOptionError(msg)
+ #raise InvalidOptionError(msg)
+ pass
# Run the execution queue
for func, args in self._execution_queue:

2
sources Normal file
View File

@ -0,0 +1,2 @@
SHA512 (gjs-1.68.6.tar.xz) = be019b12d7e6cc099d37b6f78028d9622fb266962309cdd40093714e76ddb17e92f843eecc8b877632c5ad94cde9a415af2883df7653a34d9a439ac7352ae76c
SHA512 (firefox-78.10.0esr.source.tar.xz) = 5e2cf137dc781855542c29df6152fa74ba749801640ade3cf01487ce993786b87a4f603d25c0af9323e67c7e15c75655523428c1c1426527b8623c7ded9f5946

View File

@ -0,0 +1,9 @@
--- a/config/run_spidermonkey_checks.py
+++ b/config/run_spidermonkey_checks.py
@@ -13,4 +13,5 @@ def main(output, lib_file, *scripts):
retcode = subprocess.call(
[sys.executable, script], cwd=buildconfig.topsrcdir)
if retcode != 0:
- raise Exception(script + " failed")
+ #raise Exception(script + " failed")
+ pass

View File

@ -0,0 +1,11 @@
--- a/config/check_spidermonkey_style.py
+++ b/config/check_spidermonkey_style.py
@@ -779,6 +779,7 @@ def tarjan(V, E):
def main():
+ sys.exit(0)
if sys.argv[1:] == ["--fixup"]:
# Sort #include directives in-place. Fixup mode doesn't solve
# all possible silliness that the script checks for; it's just a

View File

@ -0,0 +1,26 @@
From 9be85b155c6df0454c5faef9e850f572c99e3615 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= <fzatlouk@redhat.com>
Date: Wed, 15 Jul 2020 08:32:44 +0200
Subject: [PATCH] Increase the test timeout for slower buildds
Ported forward from Debian: https://bugs.debian.org/878284
---
js/src/Makefile.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/js/src/Makefile.in b/js/src/Makefile.in
index b86aeed..d68655a 100644
--- a/js/src/Makefile.in
+++ b/js/src/Makefile.in
@@ -53,7 +53,7 @@ check:: check-js-msg
check-jstests:
$(wildcard $(RUN_TEST_PROGRAM)) $(PYTHON3) -u $(srcdir)/tests/jstests.py \
- --no-progress --format=automation --timeout 300 \
+ --no-progress --format=automation --timeout 600 \
$(JSTESTS_EXTRA_ARGS) \
$(DIST)/bin/$(JS_SHELL_NAME)$(BIN_SUFFIX)
--
2.26.2