Hello community, here is the log from the commit of package gjs for openSUSE:Factory checked in at 2020-01-13 22:16:58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gjs (Old) and /work/SRC/openSUSE:Factory/.gjs.new.6675 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gjs" Mon Jan 13 22:16:58 2020 rev:85 rq:761957 version:1.58.4 Changes: -------- --- /work/SRC/openSUSE:Factory/gjs/gjs.changes 2019-12-11 12:05:23.648733564 +0100 +++ /work/SRC/openSUSE:Factory/.gjs.new.6675/gjs.changes 2020-01-13 22:18:45.282441149 +0100 @@ -1,0 +2,19 @@ +Wed Jan 8 08:33:52 UTC 2020 - Bjørn Lie <[email protected]> + +- Update to version 1.58.4: + + Now prints a warning when constructing an unregistered object + inheriting from GObject (i.e. if you forgot to use + GObject.registerClass.) In 1.58.2 this would throw an + exception, which broke some existing code, so that change was + reverted in 1.58.3. In this version the check is reinstated, + but we log a warning instead of throwing an exception, so that + people know to fix their code, but without breaking things. + NOTE: In 1.64 (the next stable release) the warning will be + changed back into an exception, because code with this problem + can be subtly broken and cause unexpected errors elsewhere. So + make sure to fix your code if you get this warning. + + GSettings crash fixes. + + Memory savings for Cairo objects. + + Fix for crash in debug functions. + +------------------------------------------------------------------- Old: ---- gjs-1.58.3.tar.xz New: ---- gjs-1.58.4.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gjs.spec ++++++ --- /var/tmp/diff_new_pack.AcELDG/_old 2020-01-13 22:18:47.914442369 +0100 +++ /var/tmp/diff_new_pack.AcELDG/_new 2020-01-13 22:18:47.914442369 +0100 @@ -1,7 +1,7 @@ # # spec file for package gjs # -# Copyright (c) 2019 SUSE LLC +# Copyright (c) 2020 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: gjs -Version: 1.58.3 +Version: 1.58.4 Release: 0 Summary: JavaScript bindings based on gobject-introspection and Mozilla License: MIT AND LGPL-2.0-or-later ++++++ gjs-1.58.3.tar.xz -> gjs-1.58.4.tar.xz ++++++ ++++ 4856 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gjs-1.58.3/NEWS new/gjs-1.58.4/NEWS --- old/gjs-1.58.3/NEWS 2019-11-25 18:59:08.000000000 +0100 +++ new/gjs-1.58.4/NEWS 2020-01-08 01:52:22.000000000 +0100 @@ -1,3 +1,24 @@ +Version 1.58.4 +-------------- + +- Now prints a warning when constructing an unregistered object inheriting from + GObject (i.e. if you forgot to use GObject.registerClass.) In 1.58.2 this + would throw an exception, which broke some existing code, so that change was + reverted in 1.58.3. In this version the check is reinstated, but we log a + warning instead of throwing an exception, so that people know to fix their + code, but without breaking things. + NOTE: In 1.64 (the next stable release) the warning will be changed back into + an exception, because code with this problem can be subtly broken and cause + unexpected errors elsewhere. So make sure to fix your code if you get this + warning. + +- Closed bugs and merge requests: + * GSettings crash fixes [Andy Holmes, !373] + +- Memory savings for Cairo objects [Philip Chimento, !374] + +- Fix for crash in debug functions [Philip Chimento, !374] + Version 1.58.3 -------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gjs-1.58.3/configure.ac new/gjs-1.58.4/configure.ac --- old/gjs-1.58.3/configure.ac 2019-11-25 18:14:10.000000000 +0100 +++ new/gjs-1.58.4/configure.ac 2020-01-07 17:41:01.000000000 +0100 @@ -3,7 +3,7 @@ m4_define(pkg_major_version, 1) m4_define(pkg_minor_version, 58) -m4_define(pkg_micro_version, 3) +m4_define(pkg_micro_version, 4) m4_define(pkg_version, pkg_major_version.pkg_minor_version.pkg_micro_version) m4_define(pkg_int_version, (pkg_major_version * 100 + pkg_minor_version) * 100 + pkg_micro_version) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gjs-1.58.3/gi/object.cpp new/gjs-1.58.4/gi/object.cpp --- old/gjs-1.58.3/gi/object.cpp 2019-11-25 18:15:15.000000000 +0100 +++ new/gjs-1.58.4/gi/object.cpp 2020-01-07 17:41:01.000000000 +0100 @@ -1528,6 +1528,22 @@ const JS::CallArgs& argv) { JS::RootedValue initer(context); GjsContextPrivate* gjs = GjsContextPrivate::from_cx(context); + const auto& new_target = argv.newTarget(); + bool has_gtype; + + g_assert(new_target.isObject() && "new.target needs to be an object"); + JS::RootedObject rooted_target(context, &new_target.toObject()); + if (!JS_HasOwnPropertyById(context, rooted_target, gjs->atoms().gtype(), + &has_gtype)) + return false; + + if (!has_gtype) { + JS_ReportWarningASCII( + context, + "Tried to construct an object without a GType; are you using " + "GObject.registerClass() when inheriting from a GObject type?"); + } + return gjs_object_require_property(context, object, "GObject instance", gjs->atoms().init(), &initer) && gjs->call_function(object, initer, argv, argv.rval()); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gjs-1.58.3/gjs/jsapi-util-string.cpp new/gjs-1.58.4/gjs/jsapi-util-string.cpp --- old/gjs-1.58.3/gjs/jsapi-util-string.cpp 2019-11-25 18:14:10.000000000 +0100 +++ new/gjs-1.58.4/gjs/jsapi-util-string.cpp 2020-01-07 17:53:20.000000000 +0100 @@ -410,6 +410,8 @@ std::string gjs_debug_string(JSString *str) { + if (!str) + return "<null string>"; if (!JS_StringIsFlat(str)) { std::ostringstream out("<non-flat string of length "); out << JS_GetStringLength(str) << '>'; @@ -421,6 +423,9 @@ std::string gjs_debug_symbol(JS::Symbol * const sym) { + if (!sym) + return "<null symbol>"; + /* This is OK because JS::GetSymbolCode() and JS::GetSymbolDescription() * can't cause a garbage collection */ JS::HandleSymbol handle = JS::HandleSymbol::fromMarkedLocation(&sym); @@ -455,6 +460,9 @@ std::string gjs_debug_object(JSObject * const obj) { + if (!obj) + return "<null object>"; + std::ostringstream out; const JSClass* clasp = JS_GetClass(obj); out << "<object " << clasp->name << " at " << obj << '>'; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gjs-1.58.3/installed-tests/js/testGio.js new/gjs-1.58.4/installed-tests/js/testGio.js --- old/gjs-1.58.3/installed-tests/js/testGio.js 2019-10-29 04:39:05.000000000 +0100 +++ new/gjs-1.58.4/installed-tests/js/testGio.js 2020-01-07 17:51:04.000000000 +0100 @@ -38,6 +38,18 @@ .toThrowError(/schema/); }); + it("doesn't crash when forgetting to specify a schema path", function () { + expect(() => new Gio.Settings({schema: 'org.gnome.GjsTest.Sub'})) + .toThrowError(/schema/); + }); + + it("doesn't crash when specifying conflicting schema paths", function () { + expect(() => new Gio.Settings({ + schema: 'org.gnome.GjsTest', + path: '/conflicting/path/', + })).toThrowError(/schema/); + }); + describe('with existing schema', function () { const KINDS = ['boolean', 'double', 'enum', 'flags', 'int', 'int64', 'string', 'strv', 'uint', 'uint64', 'value']; Binary files old/gjs-1.58.3/m4/._libtool.m4 and new/gjs-1.58.4/m4/._libtool.m4 differ Binary files old/gjs-1.58.3/m4/._ltoptions.m4 and new/gjs-1.58.4/m4/._ltoptions.m4 differ Binary files old/gjs-1.58.3/m4/._ltsugar.m4 and new/gjs-1.58.4/m4/._ltsugar.m4 differ Binary files old/gjs-1.58.3/m4/._lt~obsolete.m4 and new/gjs-1.58.4/m4/._lt~obsolete.m4 differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gjs-1.58.3/m4/ax_append_compile_flags.m4 new/gjs-1.58.4/m4/ax_append_compile_flags.m4 --- old/gjs-1.58.3/m4/ax_append_compile_flags.m4 2019-11-25 18:18:59.000000000 +0100 +++ new/gjs-1.58.4/m4/ax_append_compile_flags.m4 2020-01-08 01:54:16.000000000 +0100 @@ -30,12 +30,33 @@ # # Copyright (c) 2011 Maarten Bosmans <[email protected]> # -# Copying and distribution of this file, with or without modification, are -# permitted in any medium without royalty provided the copyright notice -# and this notice are preserved. This file is offered as-is, without any -# warranty. +# 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 <https://www.gnu.org/licenses/>. +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. -#serial 7 +#serial 6 AC_DEFUN([AX_APPEND_COMPILE_FLAGS], [AX_REQUIRE_DEFINED([AX_CHECK_COMPILE_FLAG]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gjs-1.58.3/m4/ax_append_flag.m4 new/gjs-1.58.4/m4/ax_append_flag.m4 --- old/gjs-1.58.3/m4/ax_append_flag.m4 2019-11-25 18:18:59.000000000 +0100 +++ new/gjs-1.58.4/m4/ax_append_flag.m4 2020-01-08 01:54:16.000000000 +0100 @@ -23,12 +23,33 @@ # Copyright (c) 2008 Guido U. Draheim <[email protected]> # Copyright (c) 2011 Maarten Bosmans <[email protected]> # -# Copying and distribution of this file, with or without modification, are -# permitted in any medium without royalty provided the copyright notice -# and this notice are preserved. This file is offered as-is, without any -# warranty. +# 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 <https://www.gnu.org/licenses/>. +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. -#serial 8 +#serial 7 AC_DEFUN([AX_APPEND_FLAG], [dnl diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gjs-1.58.3/m4/ax_append_link_flags.m4 new/gjs-1.58.4/m4/ax_append_link_flags.m4 --- old/gjs-1.58.3/m4/ax_append_link_flags.m4 2019-11-25 18:18:59.000000000 +0100 +++ new/gjs-1.58.4/m4/ax_append_link_flags.m4 2020-01-08 01:54:16.000000000 +0100 @@ -28,12 +28,33 @@ # # Copyright (c) 2011 Maarten Bosmans <[email protected]> # -# Copying and distribution of this file, with or without modification, are -# permitted in any medium without royalty provided the copyright notice -# and this notice are preserved. This file is offered as-is, without any -# warranty. +# 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 <https://www.gnu.org/licenses/>. +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. -#serial 7 +#serial 6 AC_DEFUN([AX_APPEND_LINK_FLAGS], [AX_REQUIRE_DEFINED([AX_CHECK_LINK_FLAG]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gjs-1.58.3/m4/ax_check_compile_flag.m4 new/gjs-1.58.4/m4/ax_check_compile_flag.m4 --- old/gjs-1.58.3/m4/ax_check_compile_flag.m4 2019-11-25 18:18:59.000000000 +0100 +++ new/gjs-1.58.4/m4/ax_check_compile_flag.m4 2020-01-08 01:54:16.000000000 +0100 @@ -29,12 +29,33 @@ # Copyright (c) 2008 Guido U. Draheim <[email protected]> # Copyright (c) 2011 Maarten Bosmans <[email protected]> # -# Copying and distribution of this file, with or without modification, are -# permitted in any medium without royalty provided the copyright notice -# and this notice are preserved. This file is offered as-is, without any -# warranty. +# 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 <https://www.gnu.org/licenses/>. +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. -#serial 6 +#serial 5 AC_DEFUN([AX_CHECK_COMPILE_FLAG], [AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_IF diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gjs-1.58.3/m4/ax_check_link_flag.m4 new/gjs-1.58.4/m4/ax_check_link_flag.m4 --- old/gjs-1.58.3/m4/ax_check_link_flag.m4 2019-11-25 18:18:59.000000000 +0100 +++ new/gjs-1.58.4/m4/ax_check_link_flag.m4 2020-01-08 01:54:16.000000000 +0100 @@ -29,12 +29,33 @@ # Copyright (c) 2008 Guido U. Draheim <[email protected]> # Copyright (c) 2011 Maarten Bosmans <[email protected]> # -# Copying and distribution of this file, with or without modification, are -# permitted in any medium without royalty provided the copyright notice -# and this notice are preserved. This file is offered as-is, without any -# warranty. +# 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 <https://www.gnu.org/licenses/>. +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. -#serial 6 +#serial 5 AC_DEFUN([AX_CHECK_LINK_FLAG], [AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_IF diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gjs-1.58.3/m4/ax_compiler_flags_cflags.m4 new/gjs-1.58.4/m4/ax_compiler_flags_cflags.m4 --- old/gjs-1.58.3/m4/ax_compiler_flags_cflags.m4 2019-11-25 18:18:59.000000000 +0100 +++ new/gjs-1.58.4/m4/ax_compiler_flags_cflags.m4 2020-01-08 01:54:16.000000000 +0100 @@ -26,7 +26,7 @@ # and this notice are preserved. This file is offered as-is, without any # warranty. -#serial 17 +#serial 16 AC_DEFUN([AX_COMPILER_FLAGS_CFLAGS],[ AC_REQUIRE([AC_PROG_SED]) @@ -72,19 +72,6 @@ ],ax_warn_cflags_variable,[$ax_compiler_flags_test]) AS_IF([test "$ax_enable_compile_warnings" != "no"],[ - if test "$ax_compiler_cxx" = "no" ; then - # C-only flags. Warn in C++ - AX_APPEND_COMPILE_FLAGS([ dnl - -Wnested-externs dnl - -Wmissing-prototypes dnl - -Wstrict-prototypes dnl - -Wdeclaration-after-statement dnl - -Wimplicit-function-declaration dnl - -Wold-style-definition dnl - -Wjump-misses-init dnl - ],ax_warn_cflags_variable,[$ax_compiler_flags_test]) - fi - # "yes" flags AX_APPEND_COMPILE_FLAGS([ dnl -Wall dnl @@ -126,6 +113,18 @@ $6 dnl $7 dnl ],ax_warn_cflags_variable,[$ax_compiler_flags_test]) + if test "$ax_compiler_cxx" = "no" ; then + # C-only flags. Warn in C++ + AX_APPEND_COMPILE_FLAGS([ dnl + -Wnested-externs dnl + -Wmissing-prototypes dnl + -Wstrict-prototypes dnl + -Wdeclaration-after-statement dnl + -Wimplicit-function-declaration dnl + -Wold-style-definition dnl + -Wjump-misses-init dnl + ],ax_warn_cflags_variable,[$ax_compiler_flags_test]) + fi ]) AS_IF([test "$ax_enable_compile_warnings" = "error"],[ # "error" flags; -Werror has to be appended unconditionally because diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gjs-1.58.3/m4/ax_cxx_compile_stdcxx.m4 new/gjs-1.58.4/m4/ax_cxx_compile_stdcxx.m4 --- old/gjs-1.58.3/m4/ax_cxx_compile_stdcxx.m4 2019-11-25 18:18:59.000000000 +0100 +++ new/gjs-1.58.4/m4/ax_cxx_compile_stdcxx.m4 2020-01-08 01:54:16.000000000 +0100 @@ -33,18 +33,19 @@ # Copyright (c) 2014, 2015 Google Inc.; contributed by Alexey Sokolov <[email protected]> # Copyright (c) 2015 Paul Norman <[email protected]> # Copyright (c) 2015 Moritz Klammler <[email protected]> -# Copyright (c) 2016, 2018 Krzesimir Nowak <[email protected]> +# Copyright (c) 2016 Krzesimir Nowak <[email protected]> # # Copying and distribution of this file, with or without modification, are # permitted in any medium without royalty provided the copyright notice # and this notice are preserved. This file is offered as-is, without any # warranty. -#serial 10 +#serial 7 dnl This macro is based on the code from the AX_CXX_COMPILE_STDCXX_11 macro dnl (serial version number 13). +AX_REQUIRE_DEFINED([AC_MSG_WARN]) AC_DEFUN([AX_CXX_COMPILE_STDCXX], [dnl m4_if([$1], [11], [ax_cxx_compile_alternatives="11 0x"], [$1], [14], [ax_cxx_compile_alternatives="14 1y"], @@ -60,6 +61,14 @@ [m4_fatal([invalid third argument `$3' to AX_CXX_COMPILE_STDCXX])]) AC_LANG_PUSH([C++])dnl ac_success=no + AC_CACHE_CHECK(whether $CXX supports C++$1 features by default, + ax_cv_cxx_compile_cxx$1, + [AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])], + [ax_cv_cxx_compile_cxx$1=yes], + [ax_cv_cxx_compile_cxx$1=no])]) + if test x$ax_cv_cxx_compile_cxx$1 = xyes; then + ac_success=yes + fi m4_if([$2], [noext], [], [dnl if test x$ac_success = xno; then @@ -130,6 +139,7 @@ [define if the compiler supports basic C++$1 syntax]) fi AC_SUBST(HAVE_CXX$1) + m4_if([$1], [17], [AC_MSG_WARN([C++17 is not yet standardized, so the checks may change in incompatible ways anytime])]) ]) @@ -577,12 +587,20 @@ #error "This is not a C++ compiler" -#elif __cplusplus < 201703L +#elif __cplusplus <= 201402L #error "This is not a C++17 compiler" #else +#if defined(__clang__) + #define REALLY_CLANG +#else + #if defined(__GNUC__) + #define REALLY_GCC + #endif +#endif + #include <initializer_list> #include <utility> #include <type_traits> @@ -590,12 +608,16 @@ namespace cxx17 { +#if !defined(REALLY_CLANG) namespace test_constexpr_lambdas { + // TODO: test it with clang++ from git + constexpr int foo = [](){return 42;}(); } +#endif // !defined(REALLY_CLANG) namespace test::nested_namespace::definitions { @@ -830,9 +852,12 @@ } +#if !defined(REALLY_CLANG) namespace test_template_argument_deduction_for_class_templates { + // TODO: test it with clang++ from git + template <typename T1, typename T2> struct pair { @@ -851,6 +876,7 @@ } } +#endif // !defined(REALLY_CLANG) namespace test_non_type_auto_template_parameters { @@ -864,9 +890,12 @@ } +#if !defined(REALLY_CLANG) namespace test_structured_bindings { + // TODO: test it with clang++ from git + int arr[2] = { 1, 2 }; std::pair<int, int> pr = { 1, 2 }; @@ -898,10 +927,14 @@ const auto [ x3, y3 ] = f3(); } +#endif // !defined(REALLY_CLANG) +#if !defined(REALLY_CLANG) namespace test_exception_spec_type_system { + // TODO: test it with clang++ from git + struct Good {}; struct Bad {}; @@ -919,6 +952,7 @@ static_assert (std::is_same_v<Good, decltype(f(g1, g2))>); } +#endif // !defined(REALLY_CLANG) namespace test_inline_variables { @@ -943,6 +977,6 @@ } // namespace cxx17 -#endif // __cplusplus < 201703L +#endif // __cplusplus <= 201402L ]]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gjs-1.58.3/m4/libtool.m4 new/gjs-1.58.4/m4/libtool.m4 --- old/gjs-1.58.3/m4/libtool.m4 2019-11-25 18:19:09.000000000 +0100 +++ new/gjs-1.58.4/m4/libtool.m4 2020-01-08 01:54:29.000000000 +0100 @@ -2867,9 +2867,6 @@ # before this can be enabled. hardcode_into_libs=yes - # Add ABI-specific directories to the system library path. - sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" - # Ideally, we could use ldconfig to report *all* directores which are # searched for libraries, however this is still not possible. Aside from not # being certain /sbin/ldconfig is available, command @@ -2878,7 +2875,7 @@ # appending ld.so.conf contents (and includes) to the search path. if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` - sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gjs-1.58.3/m4/pkg.m4 new/gjs-1.58.4/m4/pkg.m4 --- old/gjs-1.58.3/m4/pkg.m4 2019-11-25 18:18:59.000000000 +0100 +++ new/gjs-1.58.4/m4/pkg.m4 2020-01-08 01:54:16.000000000 +0100 @@ -1,5 +1,5 @@ # pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- -# serial 11 (pkg-config-0.29.1) +# serial 12 (pkg-config-0.29.2) dnl Copyright © 2004 Scott James Remnant <[email protected]>. dnl Copyright © 2012-2015 Dan Nicholson <[email protected]> @@ -41,7 +41,7 @@ dnl See the "Since" comment for each macro you use to see what version dnl of the macros you require. m4_defun([PKG_PREREQ], -[m4_define([PKG_MACROS_VERSION], [0.29.1]) +[m4_define([PKG_MACROS_VERSION], [0.29.2]) m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1, [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])]) ])dnl PKG_PREREQ @@ -142,7 +142,7 @@ AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl pkg_failed=no -AC_MSG_CHECKING([for $1]) +AC_MSG_CHECKING([for $2]) _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) _PKG_CONFIG([$1][_LIBS], [libs], [$2]) @@ -152,11 +152,11 @@ See the pkg-config man page for more details.]) if test $pkg_failed = yes; then - AC_MSG_RESULT([no]) + AC_MSG_RESULT([no]) _PKG_SHORT_ERRORS_SUPPORTED if test $_pkg_short_errors_supported = yes; then $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` - else + else $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` fi # Put the nasty error message in config.log where it belongs @@ -173,7 +173,7 @@ _PKG_TEXT])[]dnl ]) elif test $pkg_failed = untried; then - AC_MSG_RESULT([no]) + AC_MSG_RESULT([no]) m4_default([$4], [AC_MSG_FAILURE( [The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full @@ -273,71 +273,3 @@ AS_VAR_IF([$1], [""], [$5], [$4])dnl ])dnl PKG_CHECK_VAR - -dnl PKG_WITH_MODULES(VARIABLE-PREFIX, MODULES, -dnl [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND], -dnl [DESCRIPTION], [DEFAULT]) -dnl ------------------------------------------ -dnl -dnl Prepare a "--with-" configure option using the lowercase -dnl [VARIABLE-PREFIX] name, merging the behaviour of AC_ARG_WITH and -dnl PKG_CHECK_MODULES in a single macro. -AC_DEFUN([PKG_WITH_MODULES], -[ -m4_pushdef([with_arg], m4_tolower([$1])) - -m4_pushdef([description], - [m4_default([$5], [build with ]with_arg[ support])]) - -m4_pushdef([def_arg], [m4_default([$6], [auto])]) -m4_pushdef([def_action_if_found], [AS_TR_SH([with_]with_arg)=yes]) -m4_pushdef([def_action_if_not_found], [AS_TR_SH([with_]with_arg)=no]) - -m4_case(def_arg, - [yes],[m4_pushdef([with_without], [--without-]with_arg)], - [m4_pushdef([with_without],[--with-]with_arg)]) - -AC_ARG_WITH(with_arg, - AS_HELP_STRING(with_without, description[ @<:@default=]def_arg[@:>@]),, - [AS_TR_SH([with_]with_arg)=def_arg]) - -AS_CASE([$AS_TR_SH([with_]with_arg)], - [yes],[PKG_CHECK_MODULES([$1],[$2],$3,$4)], - [auto],[PKG_CHECK_MODULES([$1],[$2], - [m4_n([def_action_if_found]) $3], - [m4_n([def_action_if_not_found]) $4])]) - -m4_popdef([with_arg]) -m4_popdef([description]) -m4_popdef([def_arg]) - -])dnl PKG_WITH_MODULES - -dnl PKG_HAVE_WITH_MODULES(VARIABLE-PREFIX, MODULES, -dnl [DESCRIPTION], [DEFAULT]) -dnl ----------------------------------------------- -dnl -dnl Convenience macro to trigger AM_CONDITIONAL after PKG_WITH_MODULES -dnl check._[VARIABLE-PREFIX] is exported as make variable. -AC_DEFUN([PKG_HAVE_WITH_MODULES], -[ -PKG_WITH_MODULES([$1],[$2],,,[$3],[$4]) - -AM_CONDITIONAL([HAVE_][$1], - [test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"]) -])dnl PKG_HAVE_WITH_MODULES - -dnl PKG_HAVE_DEFINE_WITH_MODULES(VARIABLE-PREFIX, MODULES, -dnl [DESCRIPTION], [DEFAULT]) -dnl ------------------------------------------------------ -dnl -dnl Convenience macro to run AM_CONDITIONAL and AC_DEFINE after -dnl PKG_WITH_MODULES check. HAVE_[VARIABLE-PREFIX] is exported as make -dnl and preprocessor variable. -AC_DEFUN([PKG_HAVE_DEFINE_WITH_MODULES], -[ -PKG_HAVE_WITH_MODULES([$1],[$2],[$3],[$4]) - -AS_IF([test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"], - [AC_DEFINE([HAVE_][$1], 1, [Enable ]m4_tolower([$1])[ support])]) -])dnl PKG_HAVE_DEFINE_WITH_MODULES diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gjs-1.58.3/modules/cairo-context.cpp new/gjs-1.58.4/modules/cairo-context.cpp --- old/gjs-1.58.3/modules/cairo-context.cpp 2019-11-25 18:14:10.000000000 +0100 +++ new/gjs-1.58.4/modules/cairo-context.cpp 2020-01-07 17:53:12.000000000 +0100 @@ -234,9 +234,6 @@ _GJS_CAIRO_CONTEXT_DEFINE_FUNC_END typedef struct { - void *dummy; - JSContext *context; - JSObject *object; cairo_t * cr; } GjsCairoContext; @@ -260,8 +257,6 @@ g_assert(!priv_from_js(context, obj)); JS_SetPrivate(obj, priv); - priv->context = context; - priv->object = obj; priv->cr = cairo_reference(cr); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gjs-1.58.3/modules/cairo-path.cpp new/gjs-1.58.4/modules/cairo-path.cpp --- old/gjs-1.58.3/modules/cairo-path.cpp 2019-11-25 18:14:10.000000000 +0100 +++ new/gjs-1.58.4/modules/cairo-path.cpp 2020-01-07 17:53:12.000000000 +0100 @@ -31,8 +31,6 @@ #include "modules/cairo-private.h" // IWYU pragma: keep typedef struct { - JSContext *context; - JSObject *object; cairo_path_t *path; } GjsCairoPath; @@ -92,8 +90,6 @@ g_assert(!priv_from_js(context, object)); JS_SetPrivate(object, priv); - priv->context = context; - priv->object = object; priv->path = path; return object; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gjs-1.58.3/modules/cairo-pattern.cpp new/gjs-1.58.4/modules/cairo-pattern.cpp --- old/gjs-1.58.3/modules/cairo-pattern.cpp 2019-11-25 18:14:10.000000000 +0100 +++ new/gjs-1.58.4/modules/cairo-pattern.cpp 2020-01-07 17:53:12.000000000 +0100 @@ -32,9 +32,6 @@ #include "modules/cairo-private.h" typedef struct { - void *dummy; - JSContext *context; - JSObject *object; cairo_pattern_t *pattern; } GjsCairoPattern; @@ -123,8 +120,6 @@ g_assert(!priv_from_js(context, object)); JS_SetPrivate(object, priv); - priv->context = context; - priv->object = object; priv->pattern = cairo_pattern_reference(pattern); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gjs-1.58.3/modules/cairo-region.cpp new/gjs-1.58.4/modules/cairo-region.cpp --- old/gjs-1.58.3/modules/cairo-region.cpp 2019-11-25 18:14:10.000000000 +0100 +++ new/gjs-1.58.4/modules/cairo-region.cpp 2020-01-07 17:53:12.000000000 +0100 @@ -38,8 +38,6 @@ #include "modules/cairo-private.h" typedef struct { - JSContext *context; - JSObject *object; cairo_region_t *region; } GjsCairoRegion; @@ -255,8 +253,6 @@ g_assert(!priv_from_js(context, obj)); JS_SetPrivate(obj, priv); - priv->context = context; - priv->object = obj; priv->region = cairo_region_reference(region); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gjs-1.58.3/modules/cairo-surface.cpp new/gjs-1.58.4/modules/cairo-surface.cpp --- old/gjs-1.58.3/modules/cairo-surface.cpp 2019-11-25 18:14:10.000000000 +0100 +++ new/gjs-1.58.4/modules/cairo-surface.cpp 2020-01-07 17:53:12.000000000 +0100 @@ -36,9 +36,6 @@ #include "modules/cairo-private.h" typedef struct { - void *dummy; - JSContext *context; - JSObject *object; cairo_surface_t *surface; } GjsCairoSurface; @@ -162,8 +159,6 @@ g_assert(!priv_from_js(context, object)); JS_SetPrivate(object, priv); - priv->context = context; - priv->object = object; priv->surface = cairo_surface_reference(surface); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gjs-1.58.3/modules/overrides/Gio.js new/gjs-1.58.4/modules/overrides/Gio.js --- old/gjs-1.58.3/modules/overrides/Gio.js 2019-10-29 04:39:05.000000000 +0100 +++ new/gjs-1.58.4/modules/overrides/Gio.js 2020-01-07 17:51:04.000000000 +0100 @@ -534,20 +534,33 @@ _realInit: Gio.Settings.prototype._init, // add manually, not enumerable _init(props = {}) { // 'schema' is a deprecated alias for schema_id - const requiredProps = ['schema', 'schema-id', 'schema_id', 'schemaId', - 'settings-schema', 'settings_schema', 'settingsSchema']; - if (requiredProps.every(prop => !(prop in props))) { + const schemaIdProp = ['schema', 'schema-id', 'schema_id', + 'schemaId'].find(prop => prop in props); + const settingsSchemaProp = ['settings-schema', 'settings_schema', + 'settingsSchema'].find(prop => prop in props); + if (!schemaIdProp && !settingsSchemaProp) { throw new Error('One of property \'schema-id\' or ' + '\'settings-schema\' are required for Gio.Settings'); } - const checkSchemasProps = ['schema', 'schema-id', 'schema_id', 'schemaId']; const source = Gio.SettingsSchemaSource.get_default(); - for (const prop of checkSchemasProps) { - if (!(prop in props)) - continue; - if (source.lookup(props[prop], true) === null) - throw new Error(`GSettings schema ${props[prop]} not found`); + const settingsSchema = settingsSchemaProp + ? props[settingsSchemaProp] + : source.lookup(props[schemaIdProp], true); + + if (!settingsSchema) + throw new Error(`GSettings schema ${props[schemaIdProp]} not found`); + + const settingsSchemaPath = settingsSchema.get_path(); + if (props['path'] === undefined && !settingsSchemaPath) { + throw new Error('Attempting to create schema ' + + `'${settingsSchema.get_id()}' without a path`); + } + + if (props['path'] !== undefined && settingsSchemaPath && + props['path'] !== settingsSchemaPath) { + throw new Error(`GSettings created for path '${props['path']}'` + + `, but schema specifies '${settingsSchemaPath}'`); } return this._realInit(props); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gjs-1.58.3/win32/config.h.win32 new/gjs-1.58.4/win32/config.h.win32 --- old/gjs-1.58.3/win32/config.h.win32 2019-11-25 18:22:13.000000000 +0100 +++ new/gjs-1.58.4/win32/config.h.win32 2020-01-08 01:59:24.000000000 +0100 @@ -10,7 +10,7 @@ /* #undef ENABLE_GTK */ /* The gjs version as an integer */ -#define GJS_VERSION 15803 +#define GJS_VERSION 15804 /* define if the compiler supports basic C++11 syntax */ #define HAVE_CXX11 1 @@ -71,7 +71,7 @@ #define PACKAGE_NAME "gjs" /* Define to the full name and version of this package. */ -#define PACKAGE_STRING "gjs 1.58.3" +#define PACKAGE_STRING "gjs 1.58.4" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "gjs" @@ -80,10 +80,10 @@ #define PACKAGE_URL "" /* Define to the version of this package. */ -#define PACKAGE_VERSION "1.58.3" +#define PACKAGE_VERSION "1.58.4" /* Define to 1 if you have the ANSI C header files. */ #define STDC_HEADERS 1 /* Version number of package */ -#define VERSION "1.58.3" +#define VERSION "1.58.4"
