* Re: [PR PATCH] [Updated] libpanel: update to 1.2.0.
2023-03-22 10:50 [PR PATCH] libpanel: update to 1.2.0 oreo639
@ 2023-03-22 10:55 ` oreo639
2023-03-22 11:23 ` oreo639
` (4 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: oreo639 @ 2023-03-22 10:55 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 1248 bytes --]
There is an updated pull request by oreo639 against master on the void-packages repository
https://github.com/oreo639/void-packages libpanel
https://github.com/void-linux/void-packages/pull/42922
libpanel: update to 1.2.0.
<!-- Uncomment relevant sections and delete options which are not applicable -->
#### Testing the changes
- I tested the changes in this PR: **briefly**
<!--
#### New package
- This new package conforms to the [package requirements](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#package-requirements): **YES**|**NO**
-->
<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!--
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
- aarch64-musl
- armv7l
- armv6l-musl
-->
A patch file from https://github.com/void-linux/void-packages/pull/42922.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-libpanel-42922.patch --]
[-- Type: text/x-diff, Size: 18702 bytes --]
From 2a9c7ad3cf70cc255eb014c59a84db02557c3342 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Tue, 21 Mar 2023 19:30:06 -0700
Subject: [PATCH 1/2] glib: update to 2.76.0.
---
...2f81cc59751fcc689731dcd60af5da5723ba.patch | 138 ++++++++++++++++++
.../glib/patches/disable-broken-tests.patch | 23 ++-
.../fix-segfault-g_param_value_is_valid.patch | 35 -----
srcpkgs/glib/patches/fix-test-cxxcpp.patch | 26 ++++
.../glib/patches/gnome-console-support.patch | 62 --------
srcpkgs/glib/patches/test-error-musl.patch | 50 -------
srcpkgs/glib/template | 15 +-
7 files changed, 186 insertions(+), 163 deletions(-)
create mode 100644 srcpkgs/glib/patches/cc7f2f81cc59751fcc689731dcd60af5da5723ba.patch
delete mode 100644 srcpkgs/glib/patches/fix-segfault-g_param_value_is_valid.patch
create mode 100644 srcpkgs/glib/patches/fix-test-cxxcpp.patch
delete mode 100644 srcpkgs/glib/patches/gnome-console-support.patch
delete mode 100644 srcpkgs/glib/patches/test-error-musl.patch
diff --git a/srcpkgs/glib/patches/cc7f2f81cc59751fcc689731dcd60af5da5723ba.patch b/srcpkgs/glib/patches/cc7f2f81cc59751fcc689731dcd60af5da5723ba.patch
new file mode 100644
index 000000000000..8a7c6e60c5b6
--- /dev/null
+++ b/srcpkgs/glib/patches/cc7f2f81cc59751fcc689731dcd60af5da5723ba.patch
@@ -0,0 +1,138 @@
+From cc7f2f81cc59751fcc689731dcd60af5da5723ba Mon Sep 17 00:00:00 2001
+From: Xi Ruoyao <xry111@xry111.site>
+Date: Mon, 13 Mar 2023 16:23:37 +0800
+Subject: [PATCH] gstrfuncs: Improve inline version of g_strdup() to avoid
+ breaking C++ code
+
+Wrap the logic into a G_ALWAYS_INLINE function, instead of using a
+complex statement-expression which is not allowed in braced initializer
+lists and expanded into some bad thing when it's used as
+`::g_strdup(...)`.
+
+We cannot use `__builtin_constant_p (str)` because GCC documentation
+clearly states that it always produces 0 when str is a const char *
+argument of an inline function. But `__builtin_constant_p (!str)`,
+`__builtin_constant_p (!!str)`, and
+`__builtin_constant_p (strlen (str))` functions properly with `-O1` or
+above enabled.
+
+Fixes #2936.
+---
+ glib/gstrfuncs.h | 43 ++++++++++++++++++++++++++-----------------
+ glib/tests/cxx.cpp | 32 ++++++++++++++++++++++++++++++++
+ 2 files changed, 58 insertions(+), 17 deletions(-)
+
+diff --git a/glib/gstrfuncs.h b/glib/gstrfuncs.h
+index 8a6830294f..cb021b658d 100644
+--- a/glib/gstrfuncs.h
++++ b/glib/gstrfuncs.h
+@@ -204,23 +204,6 @@ gboolean (g_str_has_prefix) (const gchar *str,
+ (g_str_has_suffix) (STR, SUFFIX) \
+ )
+
+-#define g_strdup(STR) \
+- (__builtin_constant_p ((STR)) ? \
+- (G_LIKELY ((STR) != NULL) ? \
+- G_GNUC_EXTENSION ({ \
+- const char *const ___str = ((STR)); \
+- const char *const __str = _G_STR_NONNULL (___str); \
+- const size_t __str_len = strlen (__str) + 1; \
+- char *__dup_str = (char *) g_malloc (__str_len); \
+- (char *) memcpy (__dup_str, __str, __str_len); \
+- }) \
+- : \
+- (char *) (NULL) \
+- ) \
+- : \
+- (g_strdup) ((STR)) \
+- )
+-
+ #endif /* !defined (__GI_SCANNER__) */
+ #endif /* !defined (__GTK_DOC_IGNORE__) */
+ #endif /* G_GNUC_CHECK_VERSION (2, 0) */
+@@ -318,6 +301,32 @@ GLIB_AVAILABLE_IN_ALL
+ gchar* g_strjoin (const gchar *separator,
+ ...) G_GNUC_MALLOC G_GNUC_NULL_TERMINATED;
+
++#if G_GNUC_CHECK_VERSION(2, 0)
++#ifndef __GTK_DOC_IGNORE__
++#ifndef __GI_SCANNER__
++
++G_ALWAYS_INLINE static inline char *
++g_strdup_inline (const char *str)
++{
++ if (__builtin_constant_p (!str) && !str)
++ return NULL;
++
++ if (__builtin_constant_p (!!str) && !!str && __builtin_constant_p (strlen (str)))
++ {
++ const size_t len = strlen (str) + 1;
++ char *dup_str = (char *) g_malloc (len);
++ return (char *) memcpy (dup_str, str, len);
++ }
++
++ return g_strdup (str);
++}
++
++#define g_strdup(x) g_strdup_inline (x)
++
++#endif /* !defined (__GI_SCANNER__) */
++#endif /* !defined (__GTK_DOC_IGNORE__) */
++#endif /* G_GNUC_CHECK_VERSION (2, 0) */
++
+ /* Make a copy of a string interpreting C string -style escape
+ * sequences. Inverse of g_strescape. The recognized sequences are \b
+ * \f \n \r \t \\ \" and the octal format.
+diff --git a/glib/tests/cxx.cpp b/glib/tests/cxx.cpp
+index 2431340092..bc7967ccee 100644
+--- a/glib/tests/cxx.cpp
++++ b/glib/tests/cxx.cpp
+@@ -349,6 +349,36 @@ test_strdup_macro (void)
+ g_free (str);
+ }
+
++static void
++test_strdup_macro_qualified (void)
++{
++ gchar *str;
++
++ g_assert_null (::g_strdup (NULL));
++
++ str = ::g_strdup ("C++ is cool too!");
++ g_assert_nonnull (str);
++ g_assert_cmpstr (str, ==, "C++ is cool too!");
++ g_free (str);
++}
++
++static void
++test_strdup_macro_nested_initializer (void)
++{
++ struct
++ {
++ char *p, *q;
++ } strings = {
++ g_strdup (NULL),
++ g_strdup ("C++ is cool too!"),
++ };
++
++ g_assert_null (strings.p);
++ g_assert_nonnull (strings.q);
++ g_assert_cmpstr (strings.q, ==, "C++ is cool too!");
++ g_free (strings.q);
++}
++
+ static void
+ test_str_has_prefix (void)
+ {
+@@ -527,6 +557,8 @@ main (int argc, char *argv[])
+ g_test_add_func ("/C++/str-equal", test_str_equal);
+ g_test_add_func ("/C++/strdup", test_strdup);
+ g_test_add_func ("/C++/strdup/macro", test_strdup_macro);
++ g_test_add_func ("/C++/strdup/macro/qualified", test_strdup_macro_qualified);
++ g_test_add_func ("/C++/strdup/macro/nested-initializer", test_strdup_macro_nested_initializer);
+ g_test_add_func ("/C++/str-has-prefix", test_str_has_prefix);
+ g_test_add_func ("/C++/str-has-prefix/macro", test_str_has_prefix_macro);
+ g_test_add_func ("/C++/str-has-suffix", test_str_has_suffix);
+--
+GitLab
+
diff --git a/srcpkgs/glib/patches/disable-broken-tests.patch b/srcpkgs/glib/patches/disable-broken-tests.patch
index 91345d2b1d26..f6e0328b214e 100644
--- a/srcpkgs/glib/patches/disable-broken-tests.patch
+++ b/srcpkgs/glib/patches/disable-broken-tests.patch
@@ -1,14 +1,14 @@
--- a/gio/tests/meson.build
+++ b/gio/tests/meson.build
-@@ -56,7 +56,6 @@ gio_tests = {
+@@ -63,7 +63,6 @@ gio_tests = {
# FIXME: https://gitlab.gnome.org/GNOME/glib/-/issues/1392 / https://gitlab.gnome.org/GNOME/glib/-/issues/1251
- 'should_fail' : host_system == 'darwin',
+ 'can_fail' : host_system == 'darwin',
},
- 'converter-stream' : {},
'credentials' : {},
'data-input-stream' : {},
'data-output-stream' : {},
-@@ -198,7 +197,6 @@ endif
+@@ -227,7 +226,6 @@ endif
# Test programs buildable on UNIX only
if host_machine.system() != 'windows'
gio_tests += {
@@ -16,7 +16,7 @@
'gdbus-peer-object-manager' : {},
'gdbus-sasl' : {},
'live-g-file' : {},
-@@ -814,14 +812,6 @@ if meson.can_run_host_binaries()
+@@ -951,13 +949,6 @@ if not meson.is_cross_build()
test_resources_binary2,
]
endif
@@ -24,18 +24,17 @@
- gio_tests += {
- 'resources' : {
- 'extra_sources' : resources_extra_sources,
-- # FIXME: https://gitlab.gnome.org/GNOME/glib/-/issues/1392
-- 'should_fail' : host_system == 'darwin',
+- 'depends' : resource_plugin,
- },
- }
endif
- foreach test_name, extra_args : gio_tests
+ test_extra_programs_targets = {}
diff --git a/glib/tests/meson.build b/glib/tests/meson.build
index d74617823..1de81a825 100644
--- a/glib/tests/meson.build
+++ b/glib/tests/meson.build
-@@ -11,22 +11,14 @@ glib_tests = {
+@@ -12,22 +12,14 @@ glib_tests = {
'cache' : {},
'charset' : {},
'checksum' : {},
@@ -46,19 +45,19 @@ index d74617823..1de81a825 100644
'dataset' : {},
- 'date' : {
- # FIXME: https://gitlab.gnome.org/GNOME/glib/-/issues/1392
-- 'should_fail' : host_system == 'darwin',
+- 'can_fail' : host_system == 'darwin',
- },
'dir' : {},
'environment' : {
# FIXME: https://gitlab.gnome.org/GNOME/glib/-/issues/1392
- 'should_fail' : host_system == 'darwin',
+ 'can_fail' : host_system == 'darwin',
},
- 'error' : {},
- 'fileutils' : {},
'gdatetime' : {
'suite' : ['slow'],
- },
-@@ -65,7 +57,6 @@ glib_tests = {
+ 'can_fail' : host_system == 'windows',
+@@ -70,7 +62,6 @@ glib_tests = {
'node' : {},
'once' : {},
'onceinit' : {},
diff --git a/srcpkgs/glib/patches/fix-segfault-g_param_value_is_valid.patch b/srcpkgs/glib/patches/fix-segfault-g_param_value_is_valid.patch
deleted file mode 100644
index cacaecb695d0..000000000000
--- a/srcpkgs/glib/patches/fix-segfault-g_param_value_is_valid.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-This fixes segfault when editing color of text in gimp.
-
-From ea3f17d598d550345e94e4571130e429443e91cb Mon Sep 17 00:00:00 2001
-From: Emmanuele Bassi <ebassi@gnome.org>
-Date: Sun, 25 Sep 2022 14:20:24 +0100
-Subject: [PATCH] Empty values are not valid GParamSpec
-
-The validate() vfunc for GParamSpecParam returns FALSE for empty GValue,
-which means the is_valid() vfunc should do the same.
-
-This avoids a segfault when calling g_param_value_is_valid() on a
-GParamSpecParam.
-
-Fixes: #2770
----
- gobject/gparamspecs.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/gobject/gparamspecs.c b/gobject/gparamspecs.c
-index f17b3488b9..17b8606572 100644
---- a/gobject/gparamspecs.c
-+++ b/gobject/gparamspecs.c
-@@ -894,6 +894,9 @@ param_param_is_valid (GParamSpec *pspec,
- {
- GParamSpec *param = value->data[0].v_pointer;
-
-+ if (param == NULL)
-+ return FALSE;
-+
- return g_value_type_compatible (G_PARAM_SPEC_TYPE (param), G_PARAM_SPEC_VALUE_TYPE (pspec));
- }
-
---
-GitLab
-
diff --git a/srcpkgs/glib/patches/fix-test-cxxcpp.patch b/srcpkgs/glib/patches/fix-test-cxxcpp.patch
new file mode 100644
index 000000000000..2b1ad5b4e6ad
--- /dev/null
+++ b/srcpkgs/glib/patches/fix-test-cxxcpp.patch
@@ -0,0 +1,26 @@
+Fails to build on musl.
+../glib/tests/cxx.cpp:509:15: error: missing sentinel in function call [-Werror=format=]
+g_test_init (&argc, &argv, NULL);
+
+--- a/glib/tests/cxx.cpp
++++ a/glib/tests/cxx.cpp
+@@ -505,7 +505,7 @@ test_string_free (void)
+ int
+ main (int argc, char *argv[])
+ {
+ #if G_CXX_STD_CHECK_VERSION (11)
+- g_test_init (&argc, &argv, NULL);
++ g_test_init (&argc, &argv, nullptr);
+ #else
+ g_test_init (&argc, &argv, static_cast<void *>(NULL));
+--- a/gio/tests/cxx.cpp
++++ a/gio/tests/cxx.cpp
+@@ -59,7 +59,7 @@ int
+ main (int argc, char **argv)
+ {
+ #if G_CXX_STD_CHECK_VERSION (11)
+- g_test_init (&argc, &argv, NULL);
++ g_test_init (&argc, &argv, nullptr);
+ #else
+ g_test_init (&argc, &argv, static_cast<void *>(NULL));
+ #endif
diff --git a/srcpkgs/glib/patches/gnome-console-support.patch b/srcpkgs/glib/patches/gnome-console-support.patch
deleted file mode 100644
index b142aa0b7514..000000000000
--- a/srcpkgs/glib/patches/gnome-console-support.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-Currently glib hardcodes a list of terminals and that list will not be expanding.
-The hope being that it will eventually be replaced with some kind of api.
-Until then, we might as well add gnome-console/kgx to the list
-
-See: https://gitlab.gnome.org/GNOME/gnome-build-meta/-/merge_requests/1404#note_1331262
-Source: https://github.com/NixOS/nixpkgs/commit/c987121acf5c87436a0b05ca75cd70bf38c452ca
-
-diff --git a/gio/gdesktopappinfo.c b/gio/gdesktopappinfo.c
-index 60d6debb2..a441bfec9 100644
---- a/gio/gdesktopappinfo.c
-+++ b/gio/gdesktopappinfo.c
-@@ -2627,6 +2627,7 @@ prepend_terminal_to_vector (int *argc,
- int i, j;
- char **term_argv = NULL;
- int term_argc = 0;
-+ gboolean pass_cmd_as_single_arg = FALSE;
- char *check;
- char **the_argv;
-
-@@ -2672,6 +2673,11 @@ prepend_terminal_to_vector (int *argc,
- }
- else
- {
-+ if (check == NULL) {
-+ check = g_find_program_in_path ("kgx");
-+ if (check != NULL)
-+ pass_cmd_as_single_arg = TRUE;
-+ }
- if (check == NULL)
- check = g_find_program_in_path ("tilix");
- if (check == NULL)
-@@ -2697,14 +2703,27 @@ prepend_terminal_to_vector (int *argc,
- }
- }
-
-- real_argc = term_argc + *argc;
-+ real_argc = term_argc + (pass_cmd_as_single_arg ? 1 : *argc);
- real_argv = g_new (char *, real_argc + 1);
-
- for (i = 0; i < term_argc; i++)
- real_argv[i] = term_argv[i];
-
-- for (j = 0; j < *argc; j++, i++)
-- real_argv[i] = (char *)the_argv[j];
-+ if (pass_cmd_as_single_arg) {
-+ char **quoted_argv = g_new (char *, *argc + 1);
-+
-+ for (j = 0; j < *argc; j++) {
-+ quoted_argv[j] = g_shell_quote (the_argv[j]);
-+ g_free (the_argv[j]);
-+ }
-+ quoted_argv[j] = NULL;
-+
-+ real_argv[i++] = g_strjoinv (" ", quoted_argv);
-+ g_strfreev (quoted_argv);
-+ } else {
-+ for (j = 0; j < *argc; j++, i++)
-+ real_argv[i] = (char *)the_argv[j];
-+ }
-
- real_argv[i] = NULL;
-
diff --git a/srcpkgs/glib/patches/test-error-musl.patch b/srcpkgs/glib/patches/test-error-musl.patch
deleted file mode 100644
index 427df3de13c7..000000000000
--- a/srcpkgs/glib/patches/test-error-musl.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 902ba0bc0db50ede3473af576bddd2b6a2f9e326 Mon Sep 17 00:00:00 2001
-From: Michal Vasilek <michal@vasilek.cz>
-Date: Sun, 18 Sep 2022 17:30:41 +0200
-Subject: [PATCH] tests: Only run g_error_new_valist() programmer error test on
- glibc
-
-The musl implementation of vasprintf segfaults with NULL
----
- glib/tests/error.c | 18 +++++++++---------
- 1 file changed, 9 insertions(+), 9 deletions(-)
-
-diff --git a/glib/tests/error.c b/glib/tests/error.c
-index 7ea04ea3ce..fa3a25969d 100644
---- a/glib/tests/error.c
-+++ b/glib/tests/error.c
-@@ -123,12 +123,12 @@ static void
- test_new_valist_invalid_va (gpointer dummy,
- ...)
- {
--#ifdef __linux__
-- /* Only worth testing this on Linux; if other platforms regress on this legacy
-- * behaviour, we don’t care. In particular, calling g_error_new_valist() with
-- * a %NULL format will crash on FreeBSD as its implementation of vasprintf()
-- * is less forgiving than Linux’s. That’s fine: it’s a programmer error in
-- * either case. */
-+#if defined(__linux__) && defined(__GLIBC__)
-+ /* Only worth testing this on Linux with glibc; if other platforms regress on
-+ * this legacy behaviour, we don’t care. In particular, calling
-+ * g_error_new_valist() with a %NULL format will crash on FreeBSD as its
-+ * implementation of vasprintf() is less forgiving than Linux’s. That’s
-+ * fine: it’s a programmer error in either case. */
- const struct
- {
- GQuark domain;
-@@ -182,9 +182,9 @@ test_new_valist_invalid_va (gpointer dummy,
-
- va_end (ap);
- }
--#else /* if !__linux__ */
-- g_test_skip ("g_error_new_valist() programmer error handling is only relevant on Linux");
--#endif /* !__linux__ */
-+#else /* if !__linux__ || !__GLIBC__ */
-+ g_test_skip ("g_error_new_valist() programmer error handling is only relevant on Linux with glibc");
-+#endif /* !__linux__ || ! __GLIBC__ */
- }
-
- static void
---
-GitLab
-
diff --git a/srcpkgs/glib/template b/srcpkgs/glib/template
index e250af446b0b..027d0cbea53d 100644
--- a/srcpkgs/glib/template
+++ b/srcpkgs/glib/template
@@ -1,7 +1,7 @@
# Template file for 'glib'
pkgname=glib
-version=2.74.0
-revision=3
+version=2.76.0
+revision=1
build_style=meson
# static version is necessary for qemu-user-static;
# also disable LTO, otherwise there are multiple failures when linking qemu
@@ -14,10 +14,10 @@ short_desc="GNU library of C routines"
maintainer="Michal Vasilek <michal@vasilek.cz>"
license="LGPL-2.1-or-later"
homepage="https://wiki.gnome.org/Projects/GLib"
-#changelog="https://gitlab.gnome.org/GNOME/glib/raw/glib-2-74/NEWS"
+#changelog="https://gitlab.gnome.org/GNOME/glib/raw/glib-2-76/NEWS"
changelog="https://gitlab.gnome.org/GNOME/glib/raw/main/NEWS"
distfiles="${GNOME_SITE}/glib/${version%.*}/glib-${version}.tar.xz"
-checksum=3652c7f072d7b031a6b5edd623f77ebc5dcd2ae698598abcc89ff39ca75add30
+checksum=525bb703b807142e1aee5ccf222c344e8064b21c0c45677ef594e587874c6797
make_check_pre="dbus-run-session"
build_options="gtk_doc"
@@ -27,6 +27,13 @@ if [ -z "$CROSS_BUILD" ]; then
build_options_default+=" gtk_doc"
fi
+post_patch() {
+ # Timer test is flaky on 32 bit (does float comparisons)
+ if [ "${XBPS_TARGET_WORDSIZE}" = "32" ]; then
+ vsed -e "s/'timer' : {},//" -i glib/tests/meson.build
+ fi
+}
+
pre_check() {
# machine-id is a random, non-zero value
echo 'dcb30309cd6c8b7cc20383d85a5c7012' > /etc/machine-id
From dfbb6753f35bc2e9dc7b2a8e704ac4d7b2bd9068 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Wed, 22 Mar 2023 02:23:31 -0700
Subject: [PATCH 2/2] libpanel: update to 1.2.0.
---
srcpkgs/libpanel/template | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/srcpkgs/libpanel/template b/srcpkgs/libpanel/template
index 27e92532463d..5df28807d162 100644
--- a/srcpkgs/libpanel/template
+++ b/srcpkgs/libpanel/template
@@ -1,6 +1,6 @@
# Template file for 'libpanel'
pkgname=libpanel
-version=1.0.2
+version=1.2.0
revision=1
build_style=meson
build_helper="gir"
@@ -10,10 +10,9 @@ short_desc="Dock/panel library for GTK 4"
maintainer="Michal Vasilek <michal@vasilek.cz>"
license="LGPL-3.0-or-later"
homepage="https://gitlab.gnome.org/GNOME/libpanel"
-#changelog="https://gitlab.gnome.org/GNOME/libpanel/-/raw/main/NEWS"
-changelog="https://gitlab.gnome.org/GNOME/libpanel/-/raw/libpanel-1.0/NEWS"
+changelog="https://gitlab.gnome.org/GNOME/libpanel/-/raw/main/NEWS"
distfiles="${GNOME_SITE}/libpanel/${version%.*}/libpanel-${version}.tar.xz"
-checksum=a672043a48ae20050097c9a9f9d98f2a73a1ec8547822ae7bba54d3cc88d7fe2
+checksum=d9055bbbab9625f3f5ce6d1fd7132eb6ea34a6ba07a87e9938901fb8b31581e2
pre_build() {
# help gi-docgen find gi files on cross
^ permalink raw reply [flat|nested] 7+ messages in thread