From: Markus Volk <f_l_k@t-online.de>
To: richard.purdie@linuxfoundation.org
Cc: openembedded-core@lists.openembedded.org
Subject: Re: [oe-core][PATCHv2] glib-2.0: update 2.82.4 -> 2.84.0
Date: Tue, 11 Mar 2025 15:16:07 +0100 [thread overview]
Message-ID: <VAQYSS.10I1DUCUOUO4@t-online.de> (raw)
In-Reply-To: <182B144118A90ED3.31525@lists.openembedded.org>
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset=windows-1251; format=flowed, Size: 10441 bytes --]
Here is what I found out after looking at the problem with the glib
ptest
I did run the ptest on my yocto-based image booted from an USB drive
like this:
sudo ptest-runner glib-2.0 > glib.log
There were two faulty tests
SUMMARY: total=291; passed=289; skipped=0; failed=2; user=233.4s;
system=126.5s; maxrss=516636
FAIL: glib/gi-compile-repository.py.test (Child process exited with
code 1)
FAIL: glib/static-link.test (Child process exited with code 1)
As for the first issue, I think the main problem is that the files in
/usr/share/gir-1.0 are not installed and thus
the compilation test fails:
Running test: glib/gi-compile-repository.py.test
TAP version 13
ok 1 __main__.TestGICompileRepository.test_open_failure
# gir path set to [PosixPath('/usr/share/gir-1.0'),
PosixPath('/usr/share/gir-1.0')]
# gi-compile-repository: /bin/gi-compile-repository
# tmpdir: /tmp/tmphbnveywd
# Running: ['/bin/gi-compile-repository', 'this-is/not/a-file.gir',
'--output', '/tmp/tmphbnveywd/invalid.typelib']
# Return code: 1
# Output:
#
# Error:
# Error parsing file ‘this-is/not/a-file.gir’: Failed to open file
“this-is/not/a-file.gir”: No such file or directory
not ok 2 __main__.TestGICompileRepositoryForGLib.test_compile
# gir path set to [PosixPath('/usr/share/gir-1.0'),
PosixPath('/usr/share/gir-1.0')]
# gi-compile-repository: /bin/gi-compile-repository
# tmpdir: /tmp/tmpe1jgjuiz
---
message: |
Traceback (most recent call last):
File
"/usr/libexec/installed-tests/glib/gi-compile-repository.py", line 98,
in test_compile
result = self.runTestProgram(argv)
File
"/usr/libexec/installed-tests/glib/gi-compile-repository.py", line 72,
in runTestProgram
self.fail(f"Could not find {self.GIR_NAME}.gir in
{self._gir_paths}")
~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: Could not find GLib-2.0.gir in
[PosixPath('/usr/share/gir-1.0'), PosixPath('/usr/share/gir-1.0')]
...
not ok 3 __main__.TestGICompileRepositoryForGLib.test_write_failure
# gi-compile-repository: /bin/gi-compile-repository
# tmpdir: /tmp/tmpuw8gkqkv
---
message: |
Traceback (most recent call last):
File
"/usr/libexec/installed-tests/glib/gi-compile-repository.py", line 85,
in test_write_failure
result = self.runTestProgram(
["--output", typelib_path],
should_fail=True,
)
File
"/usr/libexec/installed-tests/glib/gi-compile-repository.py", line 72,
in runTestProgram
self.fail(f"Could not find {self.GIR_NAME}.gir in
{self._gir_paths}")
~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: Could not find GLib-2.0.gir in
[PosixPath('/usr/share/gir-1.0'), PosixPath('/usr/share/gir-1.0')]
...
not ok 4 __main__.TestGICompileRepositoryForGObject.test_compile
# gir path set to [PosixPath('/usr/share/gir-1.0'),
PosixPath('/usr/share/gir-1.0')]
# gi-compile-repository: /bin/gi-compile-repository
# tmpdir: /tmp/tmphw3q1vf2
---
message: |
Traceback (most recent call last):
File
"/usr/libexec/installed-tests/glib/gi-compile-repository.py", line 98,
in test_compile
result = self.runTestProgram(argv)
File
"/usr/libexec/installed-tests/glib/gi-compile-repository.py", line 72,
in runTestProgram
self.fail(f"Could not find {self.GIR_NAME}.gir in
{self._gir_paths}")
~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: Could not find GObject-2.0.gir in
[PosixPath('/usr/share/gir-1.0'), PosixPath('/usr/share/gir-1.0')]
...
not ok 5 __main__.TestGICompileRepositoryForGObject.test_write_failure
# gi-compile-repository: /bin/gi-compile-repository
# tmpdir: /tmp/tmp2ad5g34h
---
message: |
Traceback (most recent call last):
File
"/usr/libexec/installed-tests/glib/gi-compile-repository.py", line 85,
in test_write_failure
result = self.runTestProgram(
["--output", typelib_path],
should_fail=True,
)
File
"/usr/libexec/installed-tests/glib/gi-compile-repository.py", line 72,
in runTestProgram
self.fail(f"Could not find {self.GIR_NAME}.gir in
{self._gir_paths}")
~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: Could not find GObject-2.0.gir in
[PosixPath('/usr/share/gir-1.0'), PosixPath('/usr/share/gir-1.0')]
...
not ok 6 __main__.TestGICompileRepositoryForGio.test_compile
# gir path set to [PosixPath('/usr/share/gir-1.0'),
PosixPath('/usr/share/gir-1.0')]
# gi-compile-repository: /bin/gi-compile-repository
# tmpdir: /tmp/tmp5shfyrv4
---
message: |
Traceback (most recent call last):
File
"/usr/libexec/installed-tests/glib/gi-compile-repository.py", line 98,
in test_compile
result = self.runTestProgram(argv)
File
"/usr/libexec/installed-tests/glib/gi-compile-repository.py", line 72,
in runTestProgram
self.fail(f"Could not find {self.GIR_NAME}.gir in
{self._gir_paths}")
~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: Could not find Gio-2.0.gir in
[PosixPath('/usr/share/gir-1.0'), PosixPath('/usr/share/gir-1.0')]
...
not ok 7 __main__.TestGICompileRepositoryForGio.test_write_failure
# gi-compile-repository: /bin/gi-compile-repository
# tmpdir: /tmp/tmpzl3y3tcj
---
message: |
Traceback (most recent call last):
File
"/usr/libexec/installed-tests/glib/gi-compile-repository.py", line 85,
in test_write_failure
result = self.runTestProgram(
["--output", typelib_path],
should_fail=True,
)
File
"/usr/libexec/installed-tests/glib/gi-compile-repository.py", line 72,
in runTestProgram
self.fail(f"Could not find {self.GIR_NAME}.gir in
{self._gir_paths}")
~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Assertion
Adding IMAGE_INSTALL:append = “ glib-2.0-dev” to local.conf fixed
the problem
I'm pretty confident that this was enough, but I'm not entirely sure
though, as I'm running in my local build with
updated gobject-introspection and, to unbreak vapi, also with updated
vala.
For the second failed test I assume that it was already broken before
and the fail is reasonable ?
This test is bloated. It compiles glib and tries to link it statically.
Since it has heavy runtime requirements (pkgconfig meson ninja gcc and
all glib dependencies with support for static)
it is guarded by an env variable GLIB_TEST_COMPILATION
If thats not in env (the current state) the test doesn't do anything
but exits with '77'.
<https://gitlab.gnome.org/GNOME/glib/-/blob/main/gio/tests/static-link.py#L35>
test can be activated by editing glib run-ptest file like this:
su glib2-test -c 'G_TEST_TMPDIR=`readlink -f /tmp`
GLIB_TEST_COMPILATION=1 gnome-desktop-testing-runner glib'
The test then compiles glib and fails because it cannot find any
statically linked libraries.
Source dir: /usr/libexec/installed-tests/glib/static-link
Build dir: /tmp/tmpvt9w2_ri
Build type: native build
Project name: test-static-link
Project version: undefined
C compiler for the host machine: ccache cc (gcc 14.2.0 "cc (GCC)
14.2.0")
C linker for the host machine: cc ld.bfd 2.44
Host machine cpu family: x86_64
Host machine cpu: x86_64
Found pkg-config: YES (/bin/pkg-config) 0.29.2
WARNING: Static library 'gio-2.0' not found for dependency 'gio-2.0',
may not be statically linked
WARNING: Static library 'gmodule-2.0' not found for dependency
'gio-2.0', may not be statically linked
WARNING: Static library 'z' not found for dependency 'gio-2.0', may not
be statically linked
WARNING: Static library 'mount' not found for dependency 'gio-2.0', may
not be statically linked
WARNING: Static library 'blkid' not found for dependency 'gio-2.0', may
not be statically linked
WARNING: Static library 'gobject-2.0' not found for dependency
'gio-2.0', may not be statically linked
WARNING: Static library 'ffi' not found for dependency 'gio-2.0', may
not be statically linked
WARNING: Static library 'glib-2.0' not found for dependency 'gio-2.0',
may not be statically linked
WARNING: Static library 'atomic' not found for dependency 'gio-2.0',
may not be statically linked
WARNING: Static library 'pcre2-8' not found for dependency 'gio-2.0',
may not be statically linked
Run-time dependency gio-2.0 found: YES 2.84.0
Build targets in project: 1
Found ninja-1.12.1 at /bin/ninja
WARNING: Running the setup command as `meson [options]` instead of
`meson setup [options]` is ambiguous and deprecated.
ninja: Entering directory `/tmp/tmpvt9w2_ri'
[1/3] Compiling C object test-static-link.p/app.c.o
[2/3] Linking target test-static-link
[2/3] Running all tests
1/1 test-static-link OK 0.00s
Ok: 1
Expected Fail: 0
Fail: 0
Unexpected Pass: 0
Skipped: 0
Timeout: 0
Full log written to /tmp/tmpvt9w2_ri/meson-logs/testlog.txt
test-static-link is dynamically linked on libgio
FAIL: glib/static-link.test (Child process exited with code 1)
I assume that's reasonable because we dont support it?
On Sun, Mar 9 2025 at 09:13:10 +01:00:00, Markus Volk
<f_l_k@t-online.de> wrote:
> Yes, sorry.
>
> v2 fixed only the installed-vs-shipped issue I have seen if building
> without PACKAGECONFIG[test]
>
> I'll have a look at the ptest issue tomorrow.
>
> On Sat, Mar 8 2025 at 18:07:12 +00:00:00, Richard Purdie via
> lists.openembedded.org
> <richard.purdie=linuxfoundation.org@lists.openembedded.org> wrote:
>> On Fri, 2025-03-07 at 17:37 +0100, Markus Volk via
>> lists.openembedded.org wrote:
>>> - Add option for tests to prevent them from being built without
>>> PACKAGECONFIG[tests] being selected
>>
>> The v2 still has ptest failures:
>>
>> <https://autobuilder.yoctoproject.org/valkyrie/#/builders/61/builds/1074>
>> <https://autobuilder.yoctoproject.org/valkyrie/#/builders/73/builds/1077>
>>
>> Cheers,
>>
>> Richard
>>
[-- Attachment #2: Type: text/html, Size: 14136 bytes --]
next prev parent reply other threads:[~2025-03-11 14:15 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-07 16:37 [oe-core][PATCHv2] glib-2.0: update 2.82.4 -> 2.84.0 Markus Volk
2025-03-08 18:07 ` Richard Purdie
2025-03-09 8:13 ` Markus Volk
[not found] ` <182B144118A90ED3.31525@lists.openembedded.org>
2025-03-11 14:16 ` Markus Volk [this message]
2025-03-11 18:15 ` Khem Raj
2025-03-12 11:42 ` Alexander Kanavin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=VAQYSS.10I1DUCUOUO4@t-online.de \
--to=f_l_k@t-online.de \
--cc=openembedded-core@lists.openembedded.org \
--cc=richard.purdie@linuxfoundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox