diff mbox series

[PATCHv2] glib: update 2.74.6 -> 2.76.0

Message ID 20230315070909.422721-1-f_l_k@t-online.de
State New
Headers show
Series [PATCHv2] glib: update 2.74.6 -> 2.76.0 | expand

Commit Message

Markus Volk March 15, 2023, 7:09 a.m. UTC
- remove backported patches
- update relocate-modules.patch

Signed-off-by: Markus Volk <f_l_k@t-online.de>
---
 ...-info-don-t-assume-million-in-one-ev.patch | 50 ------------
 ...build-do-not-use-can_run_host_binari.patch | 48 ------------
 .../glib-2.0/glib-2.0/cpp-null.patch          | 77 -------------------
 .../glib-2.0/glib-2.0/cpp-null2.patch         | 31 --------
 .../glib-2.0/glib-2.0/relocate-modules.patch  | 11 ++-
 meta/recipes-core/glib-2.0/glib-2.0/run-ptest |  2 +-
 ...{glib-2.0_2.74.6.bb => glib-2.0_2.76.0.bb} |  6 +-
 7 files changed, 9 insertions(+), 216 deletions(-)
 delete mode 100644 meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-g-file-info-don-t-assume-million-in-one-ev.patch
 delete mode 100644 meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-meson.build-do-not-use-can_run_host_binari.patch
 delete mode 100644 meta/recipes-core/glib-2.0/glib-2.0/cpp-null.patch
 delete mode 100644 meta/recipes-core/glib-2.0/glib-2.0/cpp-null2.patch
 rename meta/recipes-core/glib-2.0/{glib-2.0_2.74.6.bb => glib-2.0_2.76.0.bb} (87%)

Comments

Alexander Kanavin March 15, 2023, 7:27 a.m. UTC | #1
Which image did you build to run the test? Note that the fail happened in
core-image-ptest-glib-2.0, that’s what you should build and run. Guesswork
is a fast track to frustration.

Alex

On Wed 15. Mar 2023 at 8.09, Markus Volk <f_l_k@t-online.de> wrote:

> - remove backported patches
> - update relocate-modules.patch
>
> Signed-off-by: Markus Volk <f_l_k@t-online.de>
> ---
>  ...-info-don-t-assume-million-in-one-ev.patch | 50 ------------
>  ...build-do-not-use-can_run_host_binari.patch | 48 ------------
>  .../glib-2.0/glib-2.0/cpp-null.patch          | 77 -------------------
>  .../glib-2.0/glib-2.0/cpp-null2.patch         | 31 --------
>  .../glib-2.0/glib-2.0/relocate-modules.patch  | 11 ++-
>  meta/recipes-core/glib-2.0/glib-2.0/run-ptest |  2 +-
>  ...{glib-2.0_2.74.6.bb => glib-2.0_2.76.0.bb} |  6 +-
>  7 files changed, 9 insertions(+), 216 deletions(-)
>  delete mode 100644
> meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-g-file-info-don-t-assume-million-in-one-ev.patch
>  delete mode 100644
> meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-meson.build-do-not-use-can_run_host_binari.patch
>  delete mode 100644 meta/recipes-core/glib-2.0/glib-2.0/cpp-null.patch
>  delete mode 100644 meta/recipes-core/glib-2.0/glib-2.0/cpp-null2.patch
>  rename meta/recipes-core/glib-2.0/{glib-2.0_2.74.6.bb =>
> glib-2.0_2.76.0.bb} (87%)
>
> diff --git
> a/meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-g-file-info-don-t-assume-million-in-one-ev.patch
> b/meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-g-file-info-don-t-assume-million-in-one-ev.patch
> deleted file mode 100644
> index 57ada66907..0000000000
> ---
> a/meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-g-file-info-don-t-assume-million-in-one-ev.patch
> +++ /dev/null
> @@ -1,50 +0,0 @@
> -From 3c56ff21b9a5fe18f9cec9b97ae1788fdf5d563e Mon Sep 17 00:00:00 2001
> -From: Ross Burton <ross.burton@arm.com>
> -Date: Tue, 6 Jul 2021 19:26:03 +0100
> -Subject: [PATCH] gio/tests/g-file-info: don't assume million-in-one events
> -
> -Upstream-Status: Backport [
> https://gitlab.gnome.org/GNOME/glib/-/merge_requests/2990]
> -Signed-off-by: Ross Burton <ross.burton@arm.com>
> -
> - don't happen
> -
> -The access and creation time tests create a file, gets the time in
> -seconds, then gets the time in microseconds and assumes that the
> -difference between the two has to be above 0.
> -
> -As rare as this may be, it can happen:
> -
> -$ stat g-file-info-test-50A450 -c %y
> -2021-07-06 18:24:56.000000767 +0100
> -
> -Change the test to simply assert that the difference not negative to
> -handle this case.
> -
> -This is the same fix as 289f8b, but that was just modification time.
> -
> ----
> - gio/tests/g-file-info.c | 4 ++--
> - 1 file changed, 2 insertions(+), 2 deletions(-)
> -
> -diff --git a/gio/tests/g-file-info.c b/gio/tests/g-file-info.c
> -index d9ad045..c9b12b0 100644
> ---- a/gio/tests/g-file-info.c
> -+++ b/gio/tests/g-file-info.c
> -@@ -307,7 +307,7 @@ test_g_file_info_access_time (void)
> -   g_assert_nonnull (dt_usecs);
> -
> -   ts = g_date_time_difference (dt_usecs, dt);
> --  g_assert_cmpint (ts, >, 0);
> -+  g_assert_cmpint (ts, >=, 0);
> -   g_assert_cmpint (ts, <, G_USEC_PER_SEC);
> -
> -   /* Try again with nanosecond precision. */
> -@@ -442,7 +442,7 @@ test_g_file_info_creation_time (void)
> -   g_assert_nonnull (dt_usecs);
> -
> -   ts = g_date_time_difference (dt_usecs, dt);
> --  g_assert_cmpint (ts, >, 0);
> -+  g_assert_cmpint (ts, >=, 0);
> -   g_assert_cmpint (ts, <, G_USEC_PER_SEC);
> -
> -   /* Try again with nanosecond precision. */
> diff --git
> a/meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-meson.build-do-not-use-can_run_host_binari.patch
> b/meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-meson.build-do-not-use-can_run_host_binari.patch
> deleted file mode 100644
> index db08b5af55..0000000000
> ---
> a/meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-meson.build-do-not-use-can_run_host_binari.patch
> +++ /dev/null
> @@ -1,48 +0,0 @@
> -From fdbffaea2fa85c203cc6aacb5734acac65aeaa19 Mon Sep 17 00:00:00 2001
> -From: Alexander Kanavin <alex@linutronix.de>
> -Date: Fri, 11 Nov 2022 13:12:42 +0100
> -Subject: [PATCH] tests/meson.build: do not use can_run_host_binaries()
> -
> -can_run_host_binaries() returns true even when cross compiling,
> -if there is an executable wrapper defined that can run
> -cross-binaries under some kind of emulation.
> -
> -Unfortunately, custom_target() will not use the wrapper
> -and will attempt to execute the command directly. Until
> -this is addressed in meson upstream, we have to disable
> -these targets in cross scenarios.
> -
> -Upstream-Status: Submitted [
> https://gitlab.gnome.org/GNOME/glib/-/merge_requests/3067]
> -Signed-off-by: Alexander Kanavin <alex@linutronix.de>
> -
> ----
> - gio/tests/meson.build  | 2 +-
> - glib/tests/meson.build | 2 +-
> - 2 files changed, 2 insertions(+), 2 deletions(-)
> -
> -diff --git a/gio/tests/meson.build b/gio/tests/meson.build
> -index 49cfa25ce..ea59656f9 100644
> ---- a/gio/tests/meson.build
> -+++ b/gio/tests/meson.build
> -@@ -652,7 +652,7 @@ if installed_tests_enabled
> -   endforeach
> - endif
> -
> --if meson.can_run_host_binaries()
> -+if not meson.is_cross_build()
> -
> -   compiler_type = '--compiler=@0@'.format(cc.get_id())
> -
> -diff --git a/glib/tests/meson.build b/glib/tests/meson.build
> -index 69508178e..e4f75f302 100644
> ---- a/glib/tests/meson.build
> -+++ b/glib/tests/meson.build
> -@@ -411,7 +411,7 @@ executable('testing-helper', 'testing-helper.c',
> - )
> -
> - # some testing of gtester functionality
> --if meson.can_run_host_binaries() and host_system != 'windows'
> -+if not meson.is_cross_build() and host_system != 'windows'
> -   xmllint = find_program('xmllint', required: false)
> -   if xmllint.found()
> -     tmpsample_xml = custom_target('tmpsample.xml',
> diff --git a/meta/recipes-core/glib-2.0/glib-2.0/cpp-null.patch
> b/meta/recipes-core/glib-2.0/glib-2.0/cpp-null.patch
> deleted file mode 100644
> index 63cbf90ab2..0000000000
> --- a/meta/recipes-core/glib-2.0/glib-2.0/cpp-null.patch
> +++ /dev/null
> @@ -1,77 +0,0 @@
> -From 0ca5254c5d92aec675b76b4bfa72a6885cde6066 Mon Sep 17 00:00:00 2001
> -From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= <mail@3v1n0.net>
> -Date: Sat, 29 Oct 2022 04:30:52 +0200
> -Subject: [PATCH] glib/gmacros: Always define NULL as nullptr in C++11 and
> - newer
> -
> -Upstream-Status: Backport [
> https://gitlab.gnome.org/GNOME/glib/-/commit/0ca5254c5d92aec675b76b4bfa72a6885cde6066
> ]
> -Signed-off-by: Alexander Kanavin <alex@linutronix.de>
> ----
> - glib/gmacros.h     |  9 ++++++++-
> - glib/tests/cxx.cpp | 13 -------------
> - 2 files changed, 8 insertions(+), 14 deletions(-)
> -
> -diff --git a/glib/gmacros.h b/glib/gmacros.h
> -index 5302841105..9fe8270822 100644
> ---- a/glib/gmacros.h
> -+++ b/glib/gmacros.h
> -@@ -870,10 +870,17 @@
> -  */
> - #ifndef NULL
> - #  ifdef __cplusplus
> --#  define NULL        (0L)
> -+#    if __cplusplus >= 201103L
> -+#      define NULL (nullptr)
> -+#    else
> -+#      define NULL (0L)
> -+#    endif /* __cplusplus >= 201103L */
> - #  else /* !__cplusplus */
> - #  define NULL        ((void*) 0)
> - #  endif /* !__cplusplus */
> -+#elif defined (__cplusplus) && __cplusplus >= 201103L
> -+#  undef NULL
> -+#  define NULL (nullptr)
> - #endif
> -
> - #ifndef       FALSE
> -diff --git a/glib/tests/cxx.cpp b/glib/tests/cxx.cpp
> -index 6ac60791c8..045457c6e2 100644
> ---- a/glib/tests/cxx.cpp
> -+++ b/glib/tests/cxx.cpp
> -@@ -34,21 +34,12 @@ test_typeof (void)
> -   MyObject *obj3 = g_atomic_pointer_get (&obj2);
> -   g_assert_true (obj3 == obj);
> -
> --#if __cplusplus >= 201103L
> --  MyObject *obj4 = nullptr;
> --#else
> -   MyObject *obj4 = NULL;
> --#endif
> -   g_atomic_pointer_set (&obj4, obj3);
> -   g_assert_true (obj4 == obj);
> -
> --#if __cplusplus >= 201103L
> --  MyObject *obj5 = nullptr;
> --  g_atomic_pointer_compare_and_exchange (&obj5, nullptr, obj4);
> --#else
> -   MyObject *obj5 = NULL;
> -   g_atomic_pointer_compare_and_exchange (&obj5, NULL, obj4);
> --#endif
> -   g_assert_true (obj5 == obj);
> -
> -   MyObject *obj6 = g_steal_pointer (&obj5);
> -@@ -195,11 +186,7 @@ test_steal_pointer (void)
> - int
> - main (int argc, char *argv[])
> - {
> --#if __cplusplus >= 201103L
> --  g_test_init (&argc, &argv, nullptr);
> --#else
> -   g_test_init (&argc, &argv, NULL);
> --#endif
> -
> -   g_test_add_func ("/C++/typeof", test_typeof);
> -   g_test_add_func ("/C++/atomic-pointer-compare-and-exchange",
> test_atomic_pointer_compare_and_exchange);
> ---
> -GitLab
> -
> diff --git a/meta/recipes-core/glib-2.0/glib-2.0/cpp-null2.patch
> b/meta/recipes-core/glib-2.0/glib-2.0/cpp-null2.patch
> deleted file mode 100644
> index 763d5ce539..0000000000
> --- a/meta/recipes-core/glib-2.0/glib-2.0/cpp-null2.patch
> +++ /dev/null
> @@ -1,31 +0,0 @@
> -From 7dc19632f3115e3f517c6bc80436fe72c1dcdeb4 Mon Sep 17 00:00:00 2001
> -From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= <mail@3v1n0.net>
> -Date: Sat, 29 Oct 2022 04:16:00 +0200
> -Subject: [PATCH] glib/tests/cxx: Ensure NULL is always casted to a pointer
> - type
> -
> -Otherwise it may not be recognized as valid sentinel
> -Upstream-Status: Backport [
> https://gitlab.gnome.org/GNOME/glib/-/commit/7dc19632f3115e3f517c6bc80436fe72c1dcdeb4
> ]
> -Signed-off-by: Alexander Kanavin <alex@linutronix.de>
> ----
> - glib/tests/cxx.cpp | 4 ++++
> - 1 file changed, 4 insertions(+)
> -
> -diff --git a/glib/tests/cxx.cpp b/glib/tests/cxx.cpp
> -index 045457c6e2..aa5e0cb576 100644
> ---- a/glib/tests/cxx.cpp
> -+++ b/glib/tests/cxx.cpp
> -@@ -186,7 +186,11 @@ test_steal_pointer (void)
> - int
> - main (int argc, char *argv[])
> - {
> -+#if __cplusplus >= 201103L
> -   g_test_init (&argc, &argv, NULL);
> -+#else
> -+  g_test_init (&argc, &argv, static_cast<void *>(NULL));
> -+#endif
> -
> -   g_test_add_func ("/C++/typeof", test_typeof);
> -   g_test_add_func ("/C++/atomic-pointer-compare-and-exchange",
> test_atomic_pointer_compare_and_exchange);
> ---
> -GitLab
> diff --git a/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch
> b/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch
> index ae6881b61e..4a2eb3b1a7 100644
> --- a/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch
> +++ b/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch
> @@ -14,6 +14,9 @@ Signed-off-by: Ross Burton <ross.burton@intel.com>
>  Port patch to 2.48
>  Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
>
> +Port patch to 2.75
> +Signed-off-by: Markus Volk <f_l_k@t-online.de>
> +
>  ---
>   gio/giomodule.c | 12 +++++++++++-
>   1 file changed, 11 insertions(+), 1 deletion(-)
> @@ -31,7 +34,7 @@ index f5dbb45..c926e77 100644
>   #endif
>   #include <glib/gstdio.h>
>
> -@@ -1261,7 +1263,15 @@ get_gio_module_dir (void)
> +@@ -1270,7 +1272,15 @@
>                                        NULL);
>         g_free (install_dir);
>   #else
> @@ -45,6 +48,6 @@ index f5dbb45..c926e77 100644
>  +      } else {
>  +        module_dir = g_strdup (GIO_MODULE_DIR);
>  +      }
> - #endif
> -     }
> -
> + #ifdef __APPLE__
> + #include "TargetConditionals.h"
> + #if TARGET_OS_OSX
> diff --git a/meta/recipes-core/glib-2.0/glib-2.0/run-ptest
> b/meta/recipes-core/glib-2.0/glib-2.0/run-ptest
> index c476d67310..b10a72ffa1 100644
> --- a/meta/recipes-core/glib-2.0/glib-2.0/run-ptest
> +++ b/meta/recipes-core/glib-2.0/glib-2.0/run-ptest
> @@ -5,6 +5,6 @@ if id -u glib2-test; then
>     userdel glib2-test
>  fi
>  useradd glib2-test
> -cd /tmp
> +cd /var/volatile/tmp
>  su glib2-test -c 'gnome-desktop-testing-runner glib'
>  userdel glib2-test
> diff --git a/meta/recipes-core/glib-2.0/glib-2.0_2.74.6.bb
> b/meta/recipes-core/glib-2.0/glib-2.0_2.76.0.bb
> similarity index 87%
> rename from meta/recipes-core/glib-2.0/glib-2.0_2.74.6.bb
> rename to meta/recipes-core/glib-2.0/glib-2.0_2.76.0.bb
> index 5b79ae481c..550b5cab4c 100644
> --- a/meta/recipes-core/glib-2.0/glib-2.0_2.74.6.bb
> +++ b/meta/recipes-core/glib-2.0/glib-2.0_2.76.0.bb
> @@ -14,14 +14,10 @@ SRC_URI =
> "${GNOME_MIRROR}/glib/${SHRT_VER}/glib-${PV}.tar.xz \
>             file://0001-Do-not-write-bindir-into-pkg-config-files.patch \
>             file://0001-meson-Run-atomics-test-on-clang-as-well.patch \
>
> file://0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch \
> -
>  file://0001-gio-tests-g-file-info-don-t-assume-million-in-one-ev.patch \
> -
>  file://0001-gio-tests-meson.build-do-not-use-can_run_host_binari.patch \
> -           file://cpp-null.patch \
> -           file://cpp-null2.patch \
>             "
>  SRC_URI:append:class-native = " file://relocate-modules.patch"
>
> -SRC_URI[sha256sum] =
> "069cf7e51cd261eb163aaf06c8d1754c6835f31252180aff5814e5afc7757fbc"
> +SRC_URI[sha256sum] =
> "525bb703b807142e1aee5ccf222c344e8064b21c0c45677ef594e587874c6797"
>
>  # Find any meson cross files in FILESPATH that are relevant for the
> current
>  # build (using siteinfo) and add them to EXTRA_OEMESON.
> --
> 2.34.1
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#178523):
> https://lists.openembedded.org/g/openembedded-core/message/178523
> Mute This Topic: https://lists.openembedded.org/mt/97622689/1686489
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [
> alex.kanavin@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
>
Markus Volk March 15, 2023, 3:06 p.m. UTC | #2
Am Mi, 15. Mär 2023 um 08:27:33 +0100 schrieb Alexander Kanavin 
<alex.kanavin@gmail.com>:
> Guesswork is a fast track to frustration.

True :D But thats what always happens to me if I dont know enough and 
can't find a way to reproduce.
Thanks to your hint on  core-image-ptest-glib-2.0 I was able to 
reproduce the issue. Running the test from /var/volatile/tmp didn't 
solve the issue. But compared to core-image-ptest-glib-2.0 where /tmp 
links to /var/tmp the tmpdir is handled by systemd tmp.mount in my 
image and thus is not a symbolic link.

According to systemd ducumentation /var/tmp and /tmp are not the same 
and are handled differently
<https://systemd.io/TEMPORARY_DIRECTORIES/>

Still I have no idea how this should be fixed or if the failed test 
could maybe ignored but I was able to pass the tests in  
core-image-ptest-glib-2.0 by removing the /tmp symlink and adding this 
line to fstab:
tmpfs /tmp tmpfs defaults 0 0

After a reboot the tests completed successful
Alexander Kanavin March 15, 2023, 3:51 p.m. UTC | #3
You probably need to find out what links /var/tmp to /tmp in ptest
images, and see if it can be reconfigured to do the same thing as the
image where the tests passed.

Alex

On Wed, 15 Mar 2023 at 16:07, Markus Volk <f_l_k@t-online.de> wrote:
>
> Am Mi, 15. Mär 2023 um 08:27:33 +0100 schrieb Alexander Kanavin <alex.kanavin@gmail.com>:
>
> Guesswork is a fast track to frustration.
>
>
> True :D But thats what always happens to me if I dont know enough and can't find a way to reproduce.
> Thanks to your hint on  core-image-ptest-glib-2.0 I was able to reproduce the issue. Running the test from /var/volatile/tmp didn't solve the issue. But compared to core-image-ptest-glib-2.0 where /tmp links to /var/tmp the tmpdir is handled by systemd tmp.mount in my image and thus is not a symbolic link.
>
> According to systemd ducumentation /var/tmp and /tmp are not the same and are handled differently
> https://systemd.io/TEMPORARY_DIRECTORIES/
>
> Still I have no idea how this should be fixed or if the failed test could maybe ignored but I was able to pass the tests in  core-image-ptest-glib-2.0 by removing the /tmp symlink and adding this line to fstab:
> tmpfs /tmp tmpfs defaults 0 0
>
> After a reboot the tests completed successful
Markus Volk March 15, 2023, 5:21 p.m. UTC | #4
That linking is done in initscripts. Removing this line will fix the 
issue
<https://git.yoctoproject.org/poky/tree/meta/recipes-core/initscripts/initscripts-1.0/volatiles?h=master-next#n32>

But that would affect not only ptest images. It would additionally be 
needed to adjust that recently added commit:
<https://git.yoctoproject.org/poky/commit/meta?h=master-next&id=d5d40479d706cbb382850b9479c5dd9bfb801c99>

So this would be quite invasive. Overall the logic here is just the 
other way around as described in the systemd documentation, where /tmp 
should be volatile and /var/tmp should be covered by physical memory

Am Mi, 15. Mär 2023 um 16:51:34 +0100 schrieb Alexander Kanavin 
<alex.kanavin@gmail.com>:
> You probably need to find out what links /var/tmp to /tmp in ptest
> images, and see if it can be reconfigured to do the same thing as the
> image where the tests passed.
> 
> Alex
> 
> On Wed, 15 Mar 2023 at 16:07, Markus Volk <f_l_k@t-online.de 
> <mailto:f_l_k@t-online.de>> wrote:
>> 
>>  Am Mi, 15. Mär 2023 um 08:27:33 +0100 schrieb Alexander Kanavin 
>> <alex.kanavin@gmail.com <mailto:alex.kanavin@gmail.com>>:
>> 
>>  Guesswork is a fast track to frustration.
>> 
>> 
>>  True :D But thats what always happens to me if I dont know enough 
>> and can't find a way to reproduce.
>>  Thanks to your hint on  core-image-ptest-glib-2.0 I was able to 
>> reproduce the issue. Running the test from /var/volatile/tmp didn't 
>> solve the issue. But compared to core-image-ptest-glib-2.0 where 
>> /tmp links to /var/tmp the tmpdir is handled by systemd tmp.mount in 
>> my image and thus is not a symbolic link.
>> 
>>  According to systemd ducumentation /var/tmp and /tmp are not the 
>> same and are handled differently
>>  <https://systemd.io/TEMPORARY_DIRECTORIES/>
>> 
>>  Still I have no idea how this should be fixed or if the failed test 
>> could maybe ignored but I was able to pass the tests in  
>> core-image-ptest-glib-2.0 by removing the /tmp symlink and adding 
>> this line to fstab:
>>  tmpfs /tmp tmpfs defaults 0 0
>> 
>>  After a reboot the tests completed successful
> 
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#178581): 
> <https://lists.openembedded.org/g/openembedded-core/message/178581>
> Mute This Topic: <https://lists.openembedded.org/mt/97622689/3618223>
> Group Owner: openembedded-core+owner@lists.openembedded.org 
> <mailto:openembedded-core+owner@lists.openembedded.org>
> Unsubscribe: 
> <https://lists.openembedded.org/g/openembedded-core/unsub> 
> [f_l_k@t-online.de <mailto:f_l_k@t-online.de>]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Alexander Kanavin March 15, 2023, 5:46 p.m. UTC | #5
I suppose we do want to align this between systemd and initscripts
based images, so if you can work on the needed adjustments, would be
much appreciated. I was hoping setting VOLATILE_TMP_DIR correctly
would be enough.

Alex

On Wed, 15 Mar 2023 at 18:21, Markus Volk <f_l_k@t-online.de> wrote:
>
> That linking is done in initscripts. Removing this line will fix the issue
> https://git.yoctoproject.org/poky/tree/meta/recipes-core/initscripts/initscripts-1.0/volatiles?h=master-next#n32
>
> But that would affect not only ptest images. It would additionally be needed to adjust that recently added commit:
> https://git.yoctoproject.org/poky/commit/meta?h=master-next&id=d5d40479d706cbb382850b9479c5dd9bfb801c99
>
> So this would be quite invasive. Overall the logic here is just the other way around as described in the systemd documentation, where /tmp should be volatile and /var/tmp should be covered by physical memory
>
> Am Mi, 15. Mär 2023 um 16:51:34 +0100 schrieb Alexander Kanavin <alex.kanavin@gmail.com>:
>
> You probably need to find out what links /var/tmp to /tmp in ptest images, and see if it can be reconfigured to do the same thing as the image where the tests passed. Alex On Wed, 15 Mar 2023 at 16:07, Markus Volk <f_l_k@t-online.de> wrote:
>
> Am Mi, 15. Mär 2023 um 08:27:33 +0100 schrieb Alexander Kanavin <alex.kanavin@gmail.com>: Guesswork is a fast track to frustration. True :D But thats what always happens to me if I dont know enough and can't find a way to reproduce. Thanks to your hint on core-image-ptest-glib-2.0 I was able to reproduce the issue. Running the test from /var/volatile/tmp didn't solve the issue. But compared to core-image-ptest-glib-2.0 where /tmp links to /var/tmp the tmpdir is handled by systemd tmp.mount in my image and thus is not a symbolic link. According to systemd ducumentation /var/tmp and /tmp are not the same and are handled differently https://systemd.io/TEMPORARY_DIRECTORIES/ Still I have no idea how this should be fixed or if the failed test could maybe ignored but I was able to pass the tests in core-image-ptest-glib-2.0 by removing the /tmp symlink and adding this line to fstab: tmpfs /tmp tmpfs defaults 0 0 After a reboot the tests completed successful
>
> -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#178581): https://lists.openembedded.org/g/openembedded-core/message/178581 Mute This Topic: https://lists.openembedded.org/mt/97622689/3618223 Group Owner: openembedded-core+owner@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [f_l_k@t-online.de] -=-=-=-=-=-=-=-=-=-=-=-
Markus Volk March 15, 2023, 6:04 p.m. UTC | #6
Am Mi, 15. Mär 2023 um 18:46:29 +0100 schrieb Alexander Kanavin 
<alex.kanavin@gmail.com>:
>  I was hoping setting VOLATILE_TMP_DIR correctly
> would be enough.

I guess it will be enough to pass the test, but it won't resolve the 
logic gap between systemd and sysvinit. Unfortunately I am quite busy 
for the next week but if it is planned to include glib-2.0-2.76.0 in 
mickledore, I can check that route as it seems to be the less invasive 
one for now.
Alexander Kanavin March 16, 2023, 8:11 a.m. UTC | #7
On Wed, 15 Mar 2023 at 19:04, Markus Volk <f_l_k@t-online.de> wrote:
>
> Am Mi, 15. Mär 2023 um 18:46:29 +0100 schrieb Alexander Kanavin <alex.kanavin@gmail.com>:
>
> I was hoping setting VOLATILE_TMP_DIR correctly would be enough.
>
>
> I guess it will be enough to pass the test, but it won't resolve the logic gap between systemd and sysvinit. Unfortunately I am quite busy for the next week but if it is planned to include glib-2.0-2.76.0 in mickledore, I can check that route as it seems to be the less invasive one for now.

You can check that regardless. Patches not eligible for mickledore
will be stashed by integrators until master merge window reopens.

Alex
Markus Volk March 17, 2023, 5:58 a.m. UTC | #8
Am Do, 16. Mär 2023 um 09:11:59 +0100 schrieb Alexander Kanavin 
<alex.kanavin@gmail.com>:
> You can check that regardless. Patches not eligible for mickledore
> will be stashed by integrators until master merge window reopens.

I did some tesing and found both ways are generally working. I'll send 
patches for it marked as RFC

The less invasive patch will remove the symlink if ptest is in 
DISTRO_FEATURES. Downside here ... this is set in 
POKY_DEFAULT_DISTRO_FEATURES and thus will affect any poky based 
distro. And it doesn't mount a tmpfs for /tmp yet

The other one tries to align to what systemd expects.

Both did fix the glib ptest issue for me
diff mbox series

Patch

diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-g-file-info-don-t-assume-million-in-one-ev.patch b/meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-g-file-info-don-t-assume-million-in-one-ev.patch
deleted file mode 100644
index 57ada66907..0000000000
--- a/meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-g-file-info-don-t-assume-million-in-one-ev.patch
+++ /dev/null
@@ -1,50 +0,0 @@ 
-From 3c56ff21b9a5fe18f9cec9b97ae1788fdf5d563e Mon Sep 17 00:00:00 2001
-From: Ross Burton <ross.burton@arm.com>
-Date: Tue, 6 Jul 2021 19:26:03 +0100
-Subject: [PATCH] gio/tests/g-file-info: don't assume million-in-one events
-
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/merge_requests/2990]
-Signed-off-by: Ross Burton <ross.burton@arm.com>
-
- don't happen
-
-The access and creation time tests create a file, gets the time in
-seconds, then gets the time in microseconds and assumes that the
-difference between the two has to be above 0.
-
-As rare as this may be, it can happen:
-
-$ stat g-file-info-test-50A450 -c %y
-2021-07-06 18:24:56.000000767 +0100
-
-Change the test to simply assert that the difference not negative to
-handle this case.
-
-This is the same fix as 289f8b, but that was just modification time.
-
----
- gio/tests/g-file-info.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/gio/tests/g-file-info.c b/gio/tests/g-file-info.c
-index d9ad045..c9b12b0 100644
---- a/gio/tests/g-file-info.c
-+++ b/gio/tests/g-file-info.c
-@@ -307,7 +307,7 @@ test_g_file_info_access_time (void)
-   g_assert_nonnull (dt_usecs);
- 
-   ts = g_date_time_difference (dt_usecs, dt);
--  g_assert_cmpint (ts, >, 0);
-+  g_assert_cmpint (ts, >=, 0);
-   g_assert_cmpint (ts, <, G_USEC_PER_SEC);
- 
-   /* Try again with nanosecond precision. */
-@@ -442,7 +442,7 @@ test_g_file_info_creation_time (void)
-   g_assert_nonnull (dt_usecs);
- 
-   ts = g_date_time_difference (dt_usecs, dt);
--  g_assert_cmpint (ts, >, 0);
-+  g_assert_cmpint (ts, >=, 0);
-   g_assert_cmpint (ts, <, G_USEC_PER_SEC);
- 
-   /* Try again with nanosecond precision. */
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-meson.build-do-not-use-can_run_host_binari.patch b/meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-meson.build-do-not-use-can_run_host_binari.patch
deleted file mode 100644
index db08b5af55..0000000000
--- a/meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-meson.build-do-not-use-can_run_host_binari.patch
+++ /dev/null
@@ -1,48 +0,0 @@ 
-From fdbffaea2fa85c203cc6aacb5734acac65aeaa19 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex@linutronix.de>
-Date: Fri, 11 Nov 2022 13:12:42 +0100
-Subject: [PATCH] tests/meson.build: do not use can_run_host_binaries()
-
-can_run_host_binaries() returns true even when cross compiling,
-if there is an executable wrapper defined that can run
-cross-binaries under some kind of emulation.
-
-Unfortunately, custom_target() will not use the wrapper
-and will attempt to execute the command directly. Until
-this is addressed in meson upstream, we have to disable
-these targets in cross scenarios.
-
-Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/glib/-/merge_requests/3067]
-Signed-off-by: Alexander Kanavin <alex@linutronix.de>
-
----
- gio/tests/meson.build  | 2 +-
- glib/tests/meson.build | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/gio/tests/meson.build b/gio/tests/meson.build
-index 49cfa25ce..ea59656f9 100644
---- a/gio/tests/meson.build
-+++ b/gio/tests/meson.build
-@@ -652,7 +652,7 @@ if installed_tests_enabled
-   endforeach
- endif
- 
--if meson.can_run_host_binaries()
-+if not meson.is_cross_build()
- 
-   compiler_type = '--compiler=@0@'.format(cc.get_id())
- 
-diff --git a/glib/tests/meson.build b/glib/tests/meson.build
-index 69508178e..e4f75f302 100644
---- a/glib/tests/meson.build
-+++ b/glib/tests/meson.build
-@@ -411,7 +411,7 @@ executable('testing-helper', 'testing-helper.c',
- )
- 
- # some testing of gtester functionality
--if meson.can_run_host_binaries() and host_system != 'windows'
-+if not meson.is_cross_build() and host_system != 'windows'
-   xmllint = find_program('xmllint', required: false)
-   if xmllint.found()
-     tmpsample_xml = custom_target('tmpsample.xml',
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/cpp-null.patch b/meta/recipes-core/glib-2.0/glib-2.0/cpp-null.patch
deleted file mode 100644
index 63cbf90ab2..0000000000
--- a/meta/recipes-core/glib-2.0/glib-2.0/cpp-null.patch
+++ /dev/null
@@ -1,77 +0,0 @@ 
-From 0ca5254c5d92aec675b76b4bfa72a6885cde6066 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= <mail@3v1n0.net>
-Date: Sat, 29 Oct 2022 04:30:52 +0200
-Subject: [PATCH] glib/gmacros: Always define NULL as nullptr in C++11 and
- newer
-
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/commit/0ca5254c5d92aec675b76b4bfa72a6885cde6066]
-Signed-off-by: Alexander Kanavin <alex@linutronix.de>
----
- glib/gmacros.h     |  9 ++++++++-
- glib/tests/cxx.cpp | 13 -------------
- 2 files changed, 8 insertions(+), 14 deletions(-)
-
-diff --git a/glib/gmacros.h b/glib/gmacros.h
-index 5302841105..9fe8270822 100644
---- a/glib/gmacros.h
-+++ b/glib/gmacros.h
-@@ -870,10 +870,17 @@
-  */
- #ifndef NULL
- #  ifdef __cplusplus
--#  define NULL        (0L)
-+#    if __cplusplus >= 201103L
-+#      define NULL (nullptr)
-+#    else
-+#      define NULL (0L)
-+#    endif /* __cplusplus >= 201103L */
- #  else /* !__cplusplus */
- #  define NULL        ((void*) 0)
- #  endif /* !__cplusplus */
-+#elif defined (__cplusplus) && __cplusplus >= 201103L
-+#  undef NULL
-+#  define NULL (nullptr)
- #endif
- 
- #ifndef	FALSE
-diff --git a/glib/tests/cxx.cpp b/glib/tests/cxx.cpp
-index 6ac60791c8..045457c6e2 100644
---- a/glib/tests/cxx.cpp
-+++ b/glib/tests/cxx.cpp
-@@ -34,21 +34,12 @@ test_typeof (void)
-   MyObject *obj3 = g_atomic_pointer_get (&obj2);
-   g_assert_true (obj3 == obj);
- 
--#if __cplusplus >= 201103L
--  MyObject *obj4 = nullptr;
--#else
-   MyObject *obj4 = NULL;
--#endif
-   g_atomic_pointer_set (&obj4, obj3);
-   g_assert_true (obj4 == obj);
- 
--#if __cplusplus >= 201103L
--  MyObject *obj5 = nullptr;
--  g_atomic_pointer_compare_and_exchange (&obj5, nullptr, obj4);
--#else
-   MyObject *obj5 = NULL;
-   g_atomic_pointer_compare_and_exchange (&obj5, NULL, obj4);
--#endif
-   g_assert_true (obj5 == obj);
- 
-   MyObject *obj6 = g_steal_pointer (&obj5);
-@@ -195,11 +186,7 @@ test_steal_pointer (void)
- int
- main (int argc, char *argv[])
- {
--#if __cplusplus >= 201103L
--  g_test_init (&argc, &argv, nullptr);
--#else
-   g_test_init (&argc, &argv, NULL);
--#endif
- 
-   g_test_add_func ("/C++/typeof", test_typeof);
-   g_test_add_func ("/C++/atomic-pointer-compare-and-exchange", test_atomic_pointer_compare_and_exchange);
--- 
-GitLab
-
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/cpp-null2.patch b/meta/recipes-core/glib-2.0/glib-2.0/cpp-null2.patch
deleted file mode 100644
index 763d5ce539..0000000000
--- a/meta/recipes-core/glib-2.0/glib-2.0/cpp-null2.patch
+++ /dev/null
@@ -1,31 +0,0 @@ 
-From 7dc19632f3115e3f517c6bc80436fe72c1dcdeb4 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= <mail@3v1n0.net>
-Date: Sat, 29 Oct 2022 04:16:00 +0200
-Subject: [PATCH] glib/tests/cxx: Ensure NULL is always casted to a pointer
- type
-
-Otherwise it may not be recognized as valid sentinel
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/commit/7dc19632f3115e3f517c6bc80436fe72c1dcdeb4]
-Signed-off-by: Alexander Kanavin <alex@linutronix.de>
----
- glib/tests/cxx.cpp | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/glib/tests/cxx.cpp b/glib/tests/cxx.cpp
-index 045457c6e2..aa5e0cb576 100644
---- a/glib/tests/cxx.cpp
-+++ b/glib/tests/cxx.cpp
-@@ -186,7 +186,11 @@ test_steal_pointer (void)
- int
- main (int argc, char *argv[])
- {
-+#if __cplusplus >= 201103L
-   g_test_init (&argc, &argv, NULL);
-+#else
-+  g_test_init (&argc, &argv, static_cast<void *>(NULL));
-+#endif
- 
-   g_test_add_func ("/C++/typeof", test_typeof);
-   g_test_add_func ("/C++/atomic-pointer-compare-and-exchange", test_atomic_pointer_compare_and_exchange);
--- 
-GitLab
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch b/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch
index ae6881b61e..4a2eb3b1a7 100644
--- a/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch
+++ b/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch
@@ -14,6 +14,9 @@  Signed-off-by: Ross Burton <ross.burton@intel.com>
 Port patch to 2.48
 Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
 
+Port patch to 2.75
+Signed-off-by: Markus Volk <f_l_k@t-online.de>
+
 ---
  gio/giomodule.c | 12 +++++++++++-
  1 file changed, 11 insertions(+), 1 deletion(-)
@@ -31,7 +34,7 @@  index f5dbb45..c926e77 100644
  #endif
  #include <glib/gstdio.h>
  
-@@ -1261,7 +1263,15 @@ get_gio_module_dir (void)
+@@ -1270,7 +1272,15 @@
                                       NULL);
        g_free (install_dir);
  #else
@@ -45,6 +48,6 @@  index f5dbb45..c926e77 100644
 +      } else {
 +        module_dir = g_strdup (GIO_MODULE_DIR);
 +      }
- #endif
-     }
- 
+ #ifdef __APPLE__
+ #include "TargetConditionals.h"
+ #if TARGET_OS_OSX
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/run-ptest b/meta/recipes-core/glib-2.0/glib-2.0/run-ptest
index c476d67310..b10a72ffa1 100644
--- a/meta/recipes-core/glib-2.0/glib-2.0/run-ptest
+++ b/meta/recipes-core/glib-2.0/glib-2.0/run-ptest
@@ -5,6 +5,6 @@  if id -u glib2-test; then
    userdel glib2-test
 fi
 useradd glib2-test
-cd /tmp
+cd /var/volatile/tmp
 su glib2-test -c 'gnome-desktop-testing-runner glib'
 userdel glib2-test
diff --git a/meta/recipes-core/glib-2.0/glib-2.0_2.74.6.bb b/meta/recipes-core/glib-2.0/glib-2.0_2.76.0.bb
similarity index 87%
rename from meta/recipes-core/glib-2.0/glib-2.0_2.74.6.bb
rename to meta/recipes-core/glib-2.0/glib-2.0_2.76.0.bb
index 5b79ae481c..550b5cab4c 100644
--- a/meta/recipes-core/glib-2.0/glib-2.0_2.74.6.bb
+++ b/meta/recipes-core/glib-2.0/glib-2.0_2.76.0.bb
@@ -14,14 +14,10 @@  SRC_URI = "${GNOME_MIRROR}/glib/${SHRT_VER}/glib-${PV}.tar.xz \
            file://0001-Do-not-write-bindir-into-pkg-config-files.patch \
            file://0001-meson-Run-atomics-test-on-clang-as-well.patch \
            file://0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch \
-           file://0001-gio-tests-g-file-info-don-t-assume-million-in-one-ev.patch \
-           file://0001-gio-tests-meson.build-do-not-use-can_run_host_binari.patch \
-           file://cpp-null.patch \
-           file://cpp-null2.patch \
            "
 SRC_URI:append:class-native = " file://relocate-modules.patch"
 
-SRC_URI[sha256sum] = "069cf7e51cd261eb163aaf06c8d1754c6835f31252180aff5814e5afc7757fbc"
+SRC_URI[sha256sum] = "525bb703b807142e1aee5ccf222c344e8064b21c0c45677ef594e587874c6797"
 
 # Find any meson cross files in FILESPATH that are relevant for the current
 # build (using siteinfo) and add them to EXTRA_OEMESON.