Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 915156 - net-misc/networkmanager-1.44.2[vala] fails to build: FAILED: vapi/libnm.vapi
Summary: net-misc/networkmanager-1.44.2[vala] fails to build: FAILED: vapi/libnm.vapi
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Linux Gnome Desktop Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-10-04 00:41 UTC by HougeLangley
Modified: 2023-11-14 02:23 UTC (History)
5 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
Full-Build-Log (networkmanager-1.44.2-full_build_log.tar.bz2,27.27 KB, application/x-bzip2)
2023-10-04 00:44 UTC, HougeLangley
Details
emerge-info (emerge-info.log,7.67 KB, text/plain)
2023-10-04 00:45 UTC, HougeLangley
Details

Note You need to log in before you can comment on or make changes to this bug.
Description HougeLangley 2023-10-04 00:41:28 UTC
[883/906] env PKG_CONFIG_PATH=/var/tmp/portage/net-misc/networkmanager-1.44.2/temp/pkgconfig:/var/tmp/portage/net-misc/networkmanager-1.44.2/temp/python3.11/pkgconfig:/usr/share/pkgconfig:/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2-abi_x86_64.amd64/meson-uninstalled PKG_CONFIG_LIBDIR=/usr/lib64/pkgconfig CC=x86_64-pc-linux-gnu-gcc /usr/bin/g-ir-scanner --quiet --no-libtool --namespace=NM --nsversion=1.0 --warn-all --output src/libnm-client-impl/NM-1.0.gir --c-include=NetworkManager.h -DNETWORKMANAGER_COMPILATION -I/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2/src/libnm-client-impl -I/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2-abi_x86_64.amd64/src/libnm-client-impl -I/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2/src/libnm-core-public/. -I/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2-abi_x86_64.amd64/src/libnm-core-public/. -I/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2/src/. -I/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2-abi_x86_64.amd64/src/. -I/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2/. -I/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2-abi_x86_64.amd64/. -I/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2/src/libnm-client-public/. -I/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2-abi_x86_64.amd64/src/libnm-client-public/. --filelist=/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2-abi_x86_64.amd64/src/libnm-client-impl/libnm.so.0.1.0.p/NM_1.0_gir_filelist --include=Gio-2.0 --symbol-prefix=nm --identifier-prefix=NM --pkg-export=libnm --cflags-begin -I/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2/src/libnm-core-public/. -I/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2-abi_x86_64.amd64/src/libnm-core-public/. -I/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2/src/. -I/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2-abi_x86_64.amd64/src/. -I/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2/. -I/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2-abi_x86_64.amd64/. -I/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2/src/libnm-client-public/. -I/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2-abi_x86_64.amd64/src/libnm-client-public/. -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_40 -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_40 -I/usr/include/gio-unix-2.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/libmount -I/usr/include/blkid -I/usr/lib64/libffi/include -UGLIB_VERSION_MIN_REQUIRED -UGLIB_VERSION_MAX_ALLOWED -I/usr/include/gobject-introspection-1.0 --cflags-end -I/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2/src/libnm-core-public/. -I/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2-abi_x86_64.amd64/src/libnm-core-public/. -I/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2/src/libnm-client-public/. -I/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2-abi_x86_64.amd64/src/libnm-client-public/. -I/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2/src/. -I/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2-abi_x86_64.amd64/src/. -I/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2/. -I/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2-abi_x86_64.amd64/. --add-include-path=/usr/share/gir-1.0 --add-include-path=/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2/src/libnm-core-public/. --add-include-path=/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2-abi_x86_64.amd64/src/libnm-core-public/. --add-include-path=/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2/src/libnm-client-public/. --add-include-path=/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2-abi_x86_64.amd64/src/libnm-client-public/. --add-include-path=/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2/src/. --add-include-path=/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2-abi_x86_64.amd64/src/. --add-include-path=/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2/. --add-include-path=/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2-abi_x86_64.amd64/. -L/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2-abi_x86_64.amd64/src/libnm-client-impl --library nm --extra-library=gio-2.0 --extra-library=glib-2.0 --extra-library=gobject-2.0 --extra-library=gmodule-2.0 --extra-library=udev --extra-library=girepository-1.0 --sources-top-dirs /var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2/ --sources-top-dirs /var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2-abi_x86_64.amd64/
[884/906] /usr/bin/vapigen-0.56 --quiet --library=libnm --directory=/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2-abi_x86_64.amd64/vapi --pkg=gio-2.0 --metadatadir=/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2/vapi /var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2-abi_x86_64.amd64/src/libnm-client-impl/NM-1.0.gir
FAILED: vapi/libnm.vapi 
/usr/bin/vapigen-0.56 --quiet --library=libnm --directory=/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2-abi_x86_64.amd64/vapi --pkg=gio-2.0 --metadatadir=/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2/vapi /var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2-abi_x86_64.amd64/src/libnm-client-impl/NM-1.0.gir
[885/906] /usr/bin/g-ir-compiler src/libnm-client-impl/NM-1.0.gir --output src/libnm-client-impl/NM-1.0.typelib --includedir=/usr/share/gir-1.0
[886/906] x86_64-pc-linux-gnu-gcc  -o src/core/NetworkManager-all-sym src/core/NetworkManager-all-sym.p/main.c.o -flto -Wl,--as-needed -Wl,--no-undefined -Wl,--whole-archive -Wl,--start-group src/core/libNetworkManager.a src/core/libNetworkManagerBase.a src/libnm-core-aux-intern/libnm-core-aux-intern.a src/libnm-core-impl/libnm-core-impl.a src/libnm-crypto/libnm-crypto.a src/libnm-lldp/libnm-lldp.a src/libnm-platform/libnm-platform.a src/libnm-base/libnm-base.a src/libnm-log-core/libnm-log-core.a src/libnm-udev-aux/libnm-udev-aux.a src/libnm-glib-aux/libnm-glib-aux.a src/libnm-std-aux/libnm-std-aux.a src/libn-acd.a src/libn-dhcp4.a src/libc-rbtree.a src/libc-siphash.a -Wl,--no-whole-archive -flto-partition=none -O3 -march=znver3 -pipe -Wno-incompatible-function-pointer-types -Wl,-O1 -Wl,--as-needed src/libnm-systemd-core/libnm-systemd-core.a src/libnm-systemd-shared/libnm-systemd-shared.a src/libnm-crypto/libnm-crypto-nss.a -Wl,--no-gc-sections /usr/lib64/libgio-2.0.so /usr/lib64/libglib-2.0.so /usr/lib64/libgobject-2.0.so -Wl,--export-dynamic /usr/lib64/libgmodule-2.0.so -pthread -ldl /usr/lib64/libndp.so /usr/lib64/libudev.so /usr/lib64/libsystemd.so /usr/lib64/libcurl.so /usr/lib64/libuuid.so /usr/lib64/libssl3.so /usr/lib64/libsmime3.so /usr/lib64/libnss3.so /usr/lib64/libnssutil3.so /usr/lib64/libplds4.so /usr/lib64/libplc4.so /usr/lib64/libnspr4.so -Wl,--end-group
In function ‘explicit_bzero’,
    inlined from ‘nm_explicit_bzero’ at ../NetworkManager-1.44.2/src/libnm-glib-aux/nm-secret-utils.c:27:5,
    inlined from ‘nm_explicit_bzero’ at ../NetworkManager-1.44.2/src/libnm-glib-aux/nm-secret-utils.c:18:1,
    inlined from ‘nm_str_buf_set_size’ at ../NetworkManager-1.44.2/src/libnm-glib-aux/nm-str-buf.h:137:13,
    inlined from ‘nm_utils_fd_read’ at ../NetworkManager-1.44.2/src/libnm-glib-aux/nm-io-utils.c:586:9:
/usr/include/bits/string_fortified.h:72:3: warning: ‘__explicit_bzero_chk’ specified size between 9223372036854775809 and 18446744073709551615 exceeds maximum object size 9223372036854775807 [-Wstringop-overflow=]
   72 |   __explicit_bzero_chk (__dest, __len, __glibc_objsize0 (__dest));
      |   ^
In function ‘nm_str_buf_set_size’,
    inlined from ‘nm_utils_fd_read’ at ../NetworkManager-1.44.2/src/libnm-glib-aux/nm-io-utils.c:586:9:
../NetworkManager-1.44.2/src/libnm-glib-aux/nm-str-buf.h:137:38: note: destination object allocated here
  137 |             nm_explicit_bzero(&strbuf->_priv_str[new_len], strbuf->_priv_len - new_len);
      |                                      ^
/usr/include/bits/string_fortified.h: In function ‘nm_utils_fd_read’:
/usr/include/bits/string_fortified.h:66:6: note: in a call to function ‘__explicit_bzero_chk’ declared with attribute ‘access (write_only, 1, 2)’
   66 | void __explicit_bzero_chk (void *__dest, size_t __len, size_t __destlen)
      |      ^
In function ‘explicit_bzero’,
    inlined from ‘nm_explicit_bzero’ at ../NetworkManager-1.44.2/src/libnm-glib-aux/nm-secret-utils.c:27:5,
    inlined from ‘nm_explicit_bzero’ at ../NetworkManager-1.44.2/src/libnm-glib-aux/nm-secret-utils.c:18:1,
    inlined from ‘nm_str_buf_set_size’ at ../NetworkManager-1.44.2/src/libnm-glib-aux/nm-str-buf.h:137:13,
    inlined from ‘nm_utils_fd_read’ at ../NetworkManager-1.44.2/src/libnm-glib-aux/nm-io-utils.c:586:9,
    inlined from ‘helper_have_err_data’ at ../NetworkManager-1.44.2/src/core/nm-core-utils.c:5053:14:
/usr/include/bits/string_fortified.h:72:3: warning: ‘__explicit_bzero_chk’ specified size between 9223372036854775809 and 18446744073709551615 exceeds maximum object size 9223372036854775807 [-Wstringop-overflow=]
   72 |   __explicit_bzero_chk (__dest, __len, __glibc_objsize0 (__dest));
      |   ^
In function ‘nm_str_buf_set_size’,
    inlined from ‘nm_utils_fd_read’ at ../NetworkManager-1.44.2/src/libnm-glib-aux/nm-io-utils.c:586:9,
    inlined from ‘helper_have_err_data’ at ../NetworkManager-1.44.2/src/core/nm-core-utils.c:5053:14:
../NetworkManager-1.44.2/src/libnm-glib-aux/nm-str-buf.h:137:38: note: destination object allocated here
  137 |             nm_explicit_bzero(&strbuf->_priv_str[new_len], strbuf->_priv_len - new_len);
      |                                      ^
/usr/include/bits/string_fortified.h: In function ‘helper_have_err_data’:
/usr/include/bits/string_fortified.h:66:6: note: in a call to function ‘__explicit_bzero_chk’ declared with attribute ‘access (write_only, 1, 2)’
   66 | void __explicit_bzero_chk (void *__dest, size_t __len, size_t __destlen)
      |      ^

Reproducible: Always
Comment 1 HougeLangley 2023-10-04 00:44:40 UTC
Created attachment 872119 [details]
Full-Build-Log
Comment 2 HougeLangley 2023-10-04 00:45:42 UTC
Created attachment 872120 [details]
emerge-info
Comment 3 Nick Wallingford 2023-10-04 02:04:08 UTC
USE=-vala is a workaround.
Comment 4 HougeLangley 2023-10-04 03:20:02 UTC
(In reply to Nick Wallingford from comment #3)
> USE=-vala is a workaround.

Thanks, it's working for me now
Comment 5 Mart Raudsepp gentoo-dev 2023-10-05 07:10:51 UTC
I don't see how this could fail, and without really telling about the actual failure.
Here it works fine, but has a lot of warnings of this kind:
NM-1.0.metadata:124.69-125.12: warning: argument never used

Same vala version and everything.

Could you try to get to the failure again, cd into the build directory and run the vapigen-0.56 command manually. Perhaps it gives more details. If not, check `echo $?` right after for the exit code. If fails, try adding --disable-warnings to rule out the warnings I see making it fail for you instead for some reason, etc.
Comment 6 Petr Šourek 2023-10-05 18:21:29 UTC
(In reply to Mart Raudsepp from comment #5)
> I don't see how this could fail, and without really telling about the actual
> failure.
> Here it works fine, but has a lot of warnings of this kind:
> NM-1.0.metadata:124.69-125.12: warning: argument never used
> 
> Same vala version and everything.
> 
> Could you try to get to the failure again, cd into the build directory and
> run the vapigen-0.56 command manually. Perhaps it gives more details. If
> not, check `echo $?` right after for the exit code. If fails, try adding
> --disable-warnings to rule out the warnings I see making it fail for you
> instead for some reason, etc.

Just encountered the same error, well it was on step 807/829, but error seems the same.

When I cd to the work directory:
> cd /var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2-abi_x86_64.amd64/

And launch the vapigen-0.56, by simply copying the line before it FAILED:
> /usr/bin/vapigen-0.56 --quiet --library=libnm --directory=/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2-abi_x86_64.amd64/vapi --pkg=gio-2.0 --metadatadir=/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2/vapi /var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2-abi_x86_64.amd64/src/libnm-client-impl/NM-1.0.gir

I get this result:
> Neoprávněný přístup do paměti (SIGSEGV) (core dumped [obraz paměti uložen])
In english:
> Unprivileged access to memory (SIGSEGV) (core dumped [memory saved])

echo $? returns: 139

Should I try anything else?

Thanks,
Regards,
Petr Sourek
Comment 7 Mart Raudsepp gentoo-dev 2023-10-06 16:46:33 UTC
Could you get a backtrace of the crash? Should be simple if you have coredumpctl, as a core dump will be saved automatically and then you can process that. Might need to rebuild used vala slot with some debug symbols though.
https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Backtraces might help further on how to get one.
Comment 8 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2023-10-06 16:49:03 UTC
https://wiki.gentoo.org/wiki/Debugging#Per-package is a bit friendlier too
Comment 9 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2023-10-06 16:50:08 UTC
looks like q66 hit this too: https://gitlab.gnome.org/GNOME/vala/-/issues/1485
Comment 10 Mart Raudsepp gentoo-dev 2023-10-06 20:55:53 UTC
Was NM 1.44.0 failing too or not, btw?
Comment 11 Honza Macháček 2023-11-08 17:16:37 UTC
For me, net-misc/networkmanager-1.44.0-r1 compiles with USE="vala", net-misc/networkmanager-1.44.2 fails.

I've tried looking for their differences but I'm unable to make sense of them.

$ /usr/bin/vapigen-0.56 --library=libnm --directory=/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2-abi_x86_64.amd64/vapi --pkg=gio-2.0 --metadatadir=/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2/vapi /var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2-abi_x86_64.amd64/src/libnm-client-impl/NM-1.0.gir
Segmentation fault (core dumped)

$ /usr/bin/vapigen-0.56 --library=libnm --directory=/var/tmp/portage/net-misc/networkmanager-1.44.0-r1/work/NetworkManager-1.44.0-abi_x86_64.amd64/vapi --pkg=gio-2.0 --metadatadir=/var/tmp/portage/net-misc/networkmanager-1.44.0-r1/work/NetworkManager-1.44.0/vapi /var/tmp/portage/net-misc/networkmanager-1.44.0-r1/work/NetworkManager-1.44.0-abi_x86_64.amd64/src/libnm-client-impl/NM-1.0.gir
NM-1.0.metadata:21.69-22.13: warning: argument never used
   21 | SETTING_BOND_PORT_*         parent="NM.SettingBondPort"             name="SETTING_BOND_PORT_(.+)"
      |                                                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   22 | SETTING_BOND_*              parent="NM.SettingBond"                 name="SETTING_BOND_(.+)"
      | ~~~~~~~~~~~~~                                                                               
-------------------------- and so on up to ------------------------
NM-1.0.metadata:135.29-135.72: warning: argument never used
  135 | DEVICE_WPAN_*               parent="NM.DeviceWpan"                  name="DEVICE_WPAN_(.+)"
      |                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
Generation succeeded - 66 warning(s)

So I've tried to use the NM-1.0.gir of 1.44.0-r1 with all the other parameters of 1.44.2:

$ /usr/bin/vapigen-0.56 --library=libnm --directory=/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2-abi_x86_64.amd64/vapi --pkg=gio-2.0 --metadatadir=/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2/vapi /var/tmp/portage/net-misc/networkmanager-1.44.0-r1/work/NetworkManager-1.44.0-abi_x86_64.amd64/src/libnm-client-impl/NM-1.0.gir
NM-1.0.metadata:21.69-22.13: warning: argument never used
   21 | SETTING_BOND_PORT_*         parent="NM.SettingBondPort"             name="SETTING_BOND_PORT_(.+)"
      |                                                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   22 | SETTING_BOND_*              parent="NM.SettingBond"                 name="SETTING_BOND_(.+)"
      | ~~~~~~~~~~~~~                                                                               
------------------------------ and so on up to ----------------------------
NM-1.0.metadata:135.29-135.72: warning: argument never used
  135 | DEVICE_WPAN_*               parent="NM.DeviceWpan"                  name="DEVICE_WPAN_(.+)"
      |                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
Generation succeeded - 66 warning(s)

This is not much surprising, so what are the differences between thos two .gir files?

$ diff /var/tmp/portage/net-misc/networkmanager-1.44.0-r1/work/NetworkManager-1.44.0-abi_x86_64.amd64/src/libnm-client-impl/NM-1.0.gir /var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2-abi_x86_64.amd64/src/libnm-client-impl/NM-1.0.gir
28141c28141
<     <constant name="MICRO_VERSION" value="0" c:type="NM_MICRO_VERSION">
---
>     <constant name="MICRO_VERSION" value="2" c:type="NM_MICRO_VERSION">
50646,50647c50646,50648
<              line="730">How many additional levels of encapsulation are permitted to be prepended
< to packets. This property applies only to IPv6 tunnels. To disable this option, add %NM_IP_TUNNEL_FLAG_IP6_IGN_ENCAP_LIMIT to ip-tunnel flags.</doc>
---
>              line="741">How many additional levels of encapsulation are permitted to be prepended
> to packets. This property applies only to IPv6 tunnels. To disable this option,
> add %NM_IP_TUNNEL_FLAG_IP6_IGN_ENCAP_LIMIT to ip-tunnel flags.</doc>
50658c50659
<              line="806">Tunnel flags. Currently, the following values are supported:
---
>              line="826">Tunnel flags. Currently, the following values are supported:
50673c50674
<              line="749">The flow label to assign to tunnel packets. This property applies only to
---
>              line="769">The flow label to assign to tunnel packets. This property applies only to
50685c50686
<              line="768">The fwmark value to assign to tunnel packets. This property can be set
---
>              line="788">The fwmark value to assign to tunnel packets. This property can be set
50697c50698
<              line="698">The key used for tunnel input packets; the property is valid only for
---
>              line="709">The key used for tunnel input packets; the property is valid only for
50709c50710
<              line="612">The local endpoint of the tunnel; the value can be empty, otherwise it
---
>              line="623">The local endpoint of the tunnel; the value can be empty, otherwise it
50721,50722c50722,50726
<              line="593">The tunneling mode, for example %NM_IP_TUNNEL_MODE_IPIP or
< %NM_IP_TUNNEL_MODE_GRE.</doc>
---
>              line="593">The tunneling mode. Valid values: %NM_IP_TUNNEL_MODE_IPIP,
> %NM_IP_TUNNEL_MODE_GRE, %NM_IP_TUNNEL_MODE_SIT, %NM_IP_TUNNEL_MODE_ISATAP,
> %NM_IP_TUNNEL_MODE_VTI, %NM_IP_TUNNEL_MODE_IP6IP6, %NM_IP_TUNNEL_MODE_IPIP6,
> %NM_IP_TUNNEL_MODE_IP6GRE, %NM_IP_TUNNEL_MODE_VTI6, %NM_IP_TUNNEL_MODE_GRETAP
> and %NM_IP_TUNNEL_MODE_IP6GRETAP</doc>
50733c50737
<              line="787">If non-zero, only transmit packets of the specified size or smaller,
---
>              line="807">If non-zero, only transmit packets of the specified size or smaller,
50745c50749
<              line="714">The key used for tunnel output packets; the property is valid only for
---
>              line="725">The key used for tunnel output packets; the property is valid only for
50770c50774
<              line="682">Whether to enable Path MTU Discovery on this tunnel.</doc>
---
>              line="693">Whether to enable Path MTU Discovery on this tunnel.</doc>
50781c50785
<              line="628">The remote endpoint of the tunnel; the value must contain an IPv4 or IPv6
---
>              line="639">The remote endpoint of the tunnel; the value must contain an IPv4 or IPv6
50793c50797
<              line="663">The type of service (IPv4) or traffic class (IPv6) field to be set on
---
>              line="674">The type of service (IPv4) or traffic class (IPv6) field to be set on
50805c50809
<              line="644">The TTL to assign to tunneled packets. 0 is a special value meaning that
---
>              line="655">The TTL to assign to tunneled packets. 0 is a special value meaning that

These differences look rather innocent, perhaps with the exception of

50721,50722c50722,50726
<              line="593">The tunneling mode, for example %NM_IP_TUNNEL_MODE_IPIP or
< %NM_IP_TUNNEL_MODE_GRE.</doc>
---
>              line="593">The tunneling mode. Valid values: %NM_IP_TUNNEL_MODE_IPIP,
> %NM_IP_TUNNEL_MODE_GRE, %NM_IP_TUNNEL_MODE_SIT, %NM_IP_TUNNEL_MODE_ISATAP,
> %NM_IP_TUNNEL_MODE_VTI, %NM_IP_TUNNEL_MODE_IP6IP6, %NM_IP_TUNNEL_MODE_IPIP6,
> %NM_IP_TUNNEL_MODE_IP6GRE, %NM_IP_TUNNEL_MODE_VTI6, %NM_IP_TUNNEL_MODE_GRETAP
> and %NM_IP_TUNNEL_MODE_IP6GRETAP</doc>

so I've tried to copy the NM-1.0.gir file of 1.44.2 to NM-1.0b.gir, edit it a bit, just delete one line of the long list, and use it:

$ diff /var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2-abi_x86_64.amd64/src/libnm-client-impl/NM-1.0.gir /var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2-abi_x86_64.amd64/src/libnm-client-impl/NM-1.0b.gir
50725d50724
< %NM_IP_TUNNEL_MODE_IP6GRE, %NM_IP_TUNNEL_MODE_VTI6, %NM_IP_TUNNEL_MODE_GRETAP

$ /usr/bin/vapigen-0.56 --library=libnm --directory=/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2-abi_x86_64.amd64/vapi --pkg=gio-2.0 --metadatadir=/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2/vapi /var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2-abi_x86_64.amd64/src/libnm-client-impl/NM-1.0b.gir 
NM-1.0b.gir:3199.7-3199.64: error: `Client' already contains a definition for `.new'
 3199 |       <function name="new_async" c:identifier="nm_client_new_async">
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
NM-1.0b.gir:3120.7-3120.43: note: previous definition of `.new' was here
 3120 |       <constructor name="new" c:identifier="nm_client_new" throws="1">
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                           
NM-1.0b.gir:68039.7-68039.19: warning: Virtual method `NM.VpnEditorPlugin.get_vt' conflicts with method of the same name
68039 |       <virtual-method name="get_vt">
      |       ^~~~~~~~~~~~~                 
Generation failed: 1 error(s), 1 warning(s)

No segmentation fault now, but vapigen fails anyway, moreover complaining of new and new_async being the same name.

Just to check the part of NM-1.0.gir, apparently causing this error, is the same in 1.44.2 and 1.44.0-r1:

$ grep nm_client_new /var/tmp/portage/net-misc/networkmanager-1.44.0-r1/work/NetworkManager-1.44.0-abi_x86_64.amd64/src/libnm-client-impl/NM-1.0.gir
      <constructor name="new" c:identifier="nm_client_new" throws="1">
using g_async_initable_init_async() or nm_client_new_async() instead.
                   c:identifier="nm_client_new_finish"
             line="7979">Gets the result of an nm_client_new_async() call.</doc>
      <function name="new_async" c:identifier="nm_client_new_async">
nm_client_new_finish() to get the result.

$ grep nm_client_new /var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2-abi_x86_64.amd64/src/libnm-client-impl/NM-1.0.gir
      <constructor name="new" c:identifier="nm_client_new" throws="1">
using g_async_initable_init_async() or nm_client_new_async() instead.
                   c:identifier="nm_client_new_finish"
             line="7979">Gets the result of an nm_client_new_async() call.</doc>
      <function name="new_async" c:identifier="nm_client_new_async">
nm_client_new_finish() to get the result.

And if I replace the one supposedly problematic part of NM-1.0.gir of 1.44.2 completely with the respective part of that of 1.44.0-r1? The same result:

$ diff /var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2-abi_x86_64.amd64/src/libnm-client-impl/NM-1.0.gir /var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2-abi_x86_64.amd64/src/libnm-client-impl/NM-1.0b.gir
50722,50726c50722,50723
<              line="593">The tunneling mode. Valid values: %NM_IP_TUNNEL_MODE_IPIP,
< %NM_IP_TUNNEL_MODE_GRE, %NM_IP_TUNNEL_MODE_SIT, %NM_IP_TUNNEL_MODE_ISATAP,
< %NM_IP_TUNNEL_MODE_VTI, %NM_IP_TUNNEL_MODE_IP6IP6, %NM_IP_TUNNEL_MODE_IPIP6,
< %NM_IP_TUNNEL_MODE_IP6GRE, %NM_IP_TUNNEL_MODE_VTI6, %NM_IP_TUNNEL_MODE_GRETAP
< and %NM_IP_TUNNEL_MODE_IP6GRETAP</doc>
---
>              line="593">The tunneling mode, for example %NM_IP_TUNNEL_MODE_IPIP or
> %NM_IP_TUNNEL_MODE_GRE.</doc>

$ /usr/bin/vapigen-0.56 --library=libnm --directory=/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2-abi_x86_64.amd64/vapi --pkg=gio-2.0 --metadatadir=/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2/vapi /var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2-abi_x86_64.amd64/src/libnm-client-impl/NM-1.0b.gir 
NM-1.0b.gir:3199.7-3199.64: error: `Client' already contains a definition for `.new'
 3199 |       <function name="new_async" c:identifier="nm_client_new_async">
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
NM-1.0b.gir:3120.7-3120.43: note: previous definition of `.new' was here
 3120 |       <constructor name="new" c:identifier="nm_client_new" throws="1">
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                           
NM-1.0b.gir:68037.7-68037.19: warning: Virtual method `NM.VpnEditorPlugin.get_vt' conflicts with method of the same name
68037 |       <virtual-method name="get_vt">
      |       ^~~~~~~~~~~~~                 
Generation failed: 1 error(s), 1 warning(s)

Beats me.
Comment 12 Honza Macháček 2023-11-08 17:32:35 UTC
And one more puzzle: the segmentation fault apparently happens when vapigen is parsing a part of NM-1.0.gir that is identical between net-misc/networkmanager-1.44.2 and 1.44.0-r1:

$ gdb --args /usr/bin/vapigen-0.56 --library=libnm --directory=/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2-abi_x86_64.amd64/vapi --pkg=gio-2.0 --metadatadir=/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2/vapi /var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2-abi_x86_64.amd64/src/libnm-client-impl/NM-1.0.gir
GNU gdb (Gentoo 13.2 vanilla) 13.2
Copyright (C) 2023 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://bugs.gentoo.org/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/bin/vapigen-0.56...
Reading symbols from /usr/lib/debug//usr/bin/vapigen-0.56.debug...
(gdb) run
Starting program: /usr/bin/vapigen-0.56 --library=libnm --directory=/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2-abi_x86_64.amd64/vapi --pkg=gio-2.0 --metadatadir=/var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2/vapi /var/tmp/portage/net-misc/networkmanager-1.44.2/work/NetworkManager-1.44.2-abi_x86_64.amd64/src/libnm-client-impl/NM-1.0.gir
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7b72940 in ?? () from /lib64/libc.so.6
(gdb) bt
#0  0x00007ffff7b72940 in  () at /lib64/libc.so.6
#1  0x00007ffff7e80c69 in vala_markup_reader_text
    (self=self@entry=0x55555707b550 [ValaMarkupReader], end_char=end_char@entry=60 '<', rm_trailing_whitespace=rm_trailing_whitespace@entry=1) at valamarkupreader.c:996
#2  0x00007ffff7e81dfb in vala_markup_reader_read_token
    (self=0x55555707b550 [ValaMarkupReader], token_begin=token_begin@entry=0x7fffffffd1b0, token_end=token_end@entry=0x7fffffffd1c0) at valamarkupreader.c:899
#3  0x00007ffff7e32e0e in vala_gir_parser_next (self=0x555557077a00 [ValaGirParser])
    at valagirparser.c:1486
#4  0x00007ffff7e35f63 in vala_gir_parser_parse_symbol_doc
    (self=self@entry=0x555557077a00 [ValaGirParser]) at valagirparser.c:5218
#5  0x00007ffff7e39cf0 in vala_gir_parser_parse_symbol_doc
    (self=0x555557077a00 [ValaGirParser]) at valagirparser.c:5200
#6  vala_gir_parser_parse_function
    (self=0x555557077a00 [ValaGirParser], element_name=0x7ffff7f29a16 "method")
    at valagirparser.c:8288
#7  0x00007ffff7e442be in vala_gir_parser_parse_signal (self=0x555557077a00 [ValaGirParser])
    at valagirparser.c:9552
#8  vala_gir_parser_parse_class (self=0x555557077a00 [ValaGirParser]) at valagirparser.c:7622
#9  vala_gir_parser_parse_namespace (self=<optimized out>) at valagirparser.c:4907
#10 0x00007ffff7e4a868 in vala_gir_parser_parse_repository
    (self=0x555557077a00 [ValaGirParser]) at valagirparser.c:3682
#11 vala_gir_parser_parse_file
    (self=0x555557077a00 [ValaGirParser], source_file=<optimized out>)
    at valagirparser.c:1466
#12 0x00007ffff7dfddb1 in vala_code_context_accept
    (self=self@entry=0x555555597550 [ValaCodeContext], visitor=visitor@entry=0x555557077a00 [ValaGirParser]) at valacodecontext.c:2012
#13 0x00007ffff7e49e63 in vala_gir_parser_parse
    (self=self@entry=0x555557077a00 [ValaGirParser], context=<optimized out>)
    at valagirparser.c:1004
#14 0x000055555555f200 in vala_vapi_gen_run (self=0x5555555972a0 [ValaVAPIGen])
    at valavapigen.c:620
#15 vala_vapi_gen_main (args_length1=<optimized out>, args=<optimized out>)
    at valavapigen.c:940
#16 main (argc=<optimized out>, argv=<optimized out>) at valavapigen.c:949
(gdb) frame level 1
#1  0x00007ffff7e80c69 in vala_markup_reader_text (
    self=self@entry=0x55555707b550 [ValaMarkupReader], end_char=end_char@entry=60 '<', 
    rm_trailing_whitespace=rm_trailing_whitespace@entry=1) at valamarkupreader.c:996
996					if (g_str_has_prefix ((const gchar*) _tmp12_, "amp;")) {
(gdb) list
991					gchar* _tmp11_;
992					gchar* _tmp12_;
993					_tmp11_ = self->priv->current;
994					next_pos = _tmp11_ + g_unichar_to_utf8 (u, NULL);
995					_tmp12_ = next_pos;
996					if (g_str_has_prefix ((const gchar*) _tmp12_, "amp;")) {
997						GString* _tmp13_;
998						gchar* _tmp14_;
999						gchar* _tmp15_;
1000						gchar* _tmp16_;
(gdb) print _tmp12_
$1 = (gchar *) 0x7fffe9e3cef3 "lt;literal&gt;NM_IS_DEVICE_XXXX&lt;/literal&gt; functions to determine what kind of\ndevice member of the returned array is, and then you may use device-specific\nmethods such as nm_device_ethernet_get_"...
(gdb)

Laugh if you can.
Comment 13 Larry the Git Cow gentoo-dev 2023-11-14 02:23:05 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6c5ae9d7ce624ce57d6c05104ddee43f4d7d0387

commit 6c5ae9d7ce624ce57d6c05104ddee43f4d7d0387
Author:     Guillermo Joandet <gjoandet@gmail.com>
AuthorDate: 2023-11-13 12:36:30 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2023-11-14 02:21:47 +0000

    dev-lang/vala: Version bump to 0.56.14
    
    Closes: https://bugs.gentoo.org/915156
    Signed-off-by: Guillermo Joandet <gjoandet@gmail.com>
    Signed-off-by: Sam James <sam@gentoo.org>

 dev-lang/vala/Manifest            |  1 +
 dev-lang/vala/vala-0.56.14.ebuild | 48 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 49 insertions(+)