Opened 4 years ago

Last modified 21 hours ago

#61987 reopened defect

gobject-introspection @1.60.2_4 : g-ir-scanner producing executable with linking problems

Reported by: serge-cohen (Serge Cohen) Owned by: mascguy (Christopher Nielsen)
Priority: Normal Milestone:
Component: ports Version: 2.6.4
Keywords: Cc: michaelld (Michael Dickens), ctreleaven (Craig Treleaven), evanmiller (Evan Miller), dkossack
Port: gobject-introspection

Description

I am currently working to compile a project using gobject introspection (ufo : https://github.com/ufo-kit/ufo-core.git).

This package uses gobject introspection for its python interface. In the build process g-ir-scanner is runned on the source to extract API information but fails with message :

[ 74%] Generating Ufo-1.0.gir
dyld: Symbol not found: _iconv
  Referenced from: /usr/lib/libarchive.2.dylib
  Expected in: /opt/local/lib/libiconv.2.dylib
 in /usr/lib/libarchive.2.dylib
Command '['/ActualUsers/serge/Projects-info/ufo-core/build-test/ufo/tmp-introspectlq7hfjl3/Ufo-1.0', '--introspect-dump=/ActualUsers/serge/Projects-info/ufo-core/build-test/ufo/tmp-introspectlq7hfjl3/functions.txt,/ActualUsers/serge/Projects-info/ufo-core/build-test/ufo/tmp-introspectlq7hfjl3/dump.xml']' died with <Signals.SIGABRT: 6>.
make[2]: *** [ufo/Ufo-1.0.gir] Error 1
make[1]: *** [ufo/CMakeFiles/gir.dir/all] Error 2
make: *** [all] Error 2

As I am not an expert in GIR, my understanding is likely (partly) wrong :

gi-r-scanner is producing an executable that is self-introspecting for generating the API file (in GIR format). But this executable is linked to the wrong version either of libarchive or libiconv. My guess is that both these should be taken from the MacPorts /opt/local/lib (rather than libarchive from the system and libiconv from MacPorts)

This is running MacOS 10.15.7 (Catalina) on a MBP 16p

Attachments (2)

main_241101.log (264.6 KB) - added by dkossack 3 days ago.
main_241104.log (244.0 KB) - added by dkossack 3 days ago.

Download all attachments as: .zip

Change History (28)

comment:1 Changed 4 years ago by kencu (Ken)

g-ir-scanner monkeys around with DYLD_LIBRARY_PATH and similar library linking guts, often with ill effects.

libiconv has been set up to flag these errors by having purposefully different symbols for system vs user installed versions of libiconv, so this library often shows the issue (as it is supposed to) but it is not the source of the problem.

In this case, /usr/lib/libarchive.2.dylib is thinking it is linked against /usr/lib/liconv.2.dylib, and so therefore uses the _iconv symbol, but it is being redirected to /opt/local/lib/libiconv.2.dylib that does not have that symbol.

% nm /usr/lib/libiconv.2.dylib | grep iconv
00000000000f2710 D __libiconv_version
0000000000002390 T _iconv
0000000000014170 s _iconv_2VersionNumber
0000000000014140 s _iconv_2VersionString
00000000000026ab T _iconv_canonicalize
00000000000023b2 T _iconv_close
0000000000001095 T _iconv_open
00000000000023bf T _iconvctl
00000000000024b4 T _iconvlist
0000000000013fac T _libiconv_set_relocation_prefix
% nm /opt/local/lib/libiconv.2.dylib | grep iconv
00000000000f60c0 D __libiconv_version
0000000000002ae9 T _iconv_canonicalize
0000000000002353 T _libiconv
0000000000002375 T _libiconv_close
0000000000001058 T _libiconv_open
0000000000002382 T _libiconv_open_into
0000000000015b87 t _libiconv_relocate
0000000000015c59 t _libiconv_relocate2
0000000000015ad1 T _libiconv_set_relocation_prefix
00000000000027f8 T _libiconvctl
00000000000028f0 T _libiconvlist

g-ir-scanner is a huge PITA for this reason, and we've been trying for months to get it right, without full success.

comment:2 Changed 4 years ago by serge-cohen (Serge Cohen)

Thank you for such a rapid answer, and sorry to see that indeed the problem is much larger than the «small one» I have with this package.

I understand, that the cause of my problem is rather «in the upstream» because of the way g-ir-scanner is mangling the environment in which it executes its necessary processes.

Is there anything I can do here to help ? Do you feel it would help you in anyway if I'd filled a bug report to GIR ?

Also, I had much troubles to find documentation on the way g-ir-scanner is processing its input. Do you have any pointers ? Maybe understanding how to «capture» the generated executable (which is currently in a temporary directory that I never managed to catch before it is destructed) would help finding a way around…

Again, thanks for the help, and in general with the work done by MacPorts !

Serge.

comment:3 Changed 4 years ago by kencu (Ken)

Well -- MacPorts has changed g-ir-scanner's code, so they won't be too happy about our bug report :>

Your best bet would probably be to dump as much info in this ticket as you can about how you're exactly trying to make this work, and see if we can get it working for you.

comment:4 Changed 4 years ago by michaelld (Michael Dickens)

I'm in agreement with @kencu here: Please post whatever info you can and we'll see if we can get the g-ir-scanner working. It looks like you need to set a compile variable to get the correct iconv symbols ... thinking there's an input argument/variable to tell g-ir-scanner what you want it to do here, but I can't recall specifics off the top of my head.

comment:5 Changed 4 years ago by michaelld (Michael Dickens)

Something that would be useful: actual commands you're using to download and build the project's code that uses GO-I / g-ir-scanner ...

comment:6 Changed 4 years ago by michaelld (Michael Dickens)

Cc: michaelld added

comment:7 in reply to:  3 Changed 4 years ago by jmroot (Joshua Root)

Replying to kencu:

Well -- MacPorts has changed g-ir-scanner's code, so they won't be too happy about our bug report :>

True, but the original issues that required us to change the code could be reported. Last I heard, the response was likely to be "We don't use macOS. Patches welcome," though.

comment:8 Changed 4 years ago by jmroot (Joshua Root)

Port: @1.60.2_4 removed

comment:9 Changed 4 years ago by ryandesign (Ryan Carsten Schmidt)

We did already report the problem upstream and they did not respond. Our main bug for the issue was #58574 and the upstream bug is https://gitlab.gnome.org/GNOME/gobject-introspection/-/issues/335.

g-ir-scanner must use DYLD_LIBRARY_PATH in order to find and use just-built libraries, but it erroneously adds system directories to that variable as well (anything the build used as -L flags) which is what causes the issue you experienced.

They "fixed" it by switching to using DYLD_FALLBACK_LIBRARY_PATH, but that is the wrong fix and must be reverted.

We have reverted that change in MacPorts and made additional changes that are supposed to ensure that system directories don't end up in DYLD_LIBRARY_PATH while local build directories do.

We have already had several cases where we thought we had it fixed and then a new situation was discovered that we hadn't considered. You may have found another such situation so we need more details about your build. Attach a build log if you can.

comment:10 Changed 4 years ago by mf2k (Frank Schima)

Cc: dbevans removed
Owner: set to dbevans
Status: newassigned

comment:11 Changed 3 years ago by ctreleaven (Craig Treleaven)

Cc: ctreleaven added

comment:12 Changed 3 years ago by mascguy (Christopher Nielsen)

Cc: evanmiller added
Owner: changed from dbevans to mascguy

comment:13 Changed 3 years ago by mascguy (Christopher Nielsen)

Resolution: fixed
Status: assignedclosed

Let us know if this is still an issue, after updating to the latest version (1.70.0).

comment:14 Changed 22 months ago by ryandesign (Ryan Carsten Schmidt)

Resolution: fixed
Status: closedreopened

comment:ticket:65905:2 says it's still a problem.

comment:15 Changed 7 days ago by ryandesign (Ryan Carsten Schmidt)

Cc: dkossack added

Has duplicate #71209.

Changed 3 days ago by dkossack

Attachment: main_241101.log added

comment:16 Changed 3 days ago by dkossack

I am at:

MacPorts base version 2.10.4

root# which g-ir-scanner
/opt/local/bin/g-ir-scanner

root# g-ir-scanner --version
g-ir-scanner 1.78.1

Build of Gexiv2 continues to fail...

Is this ticket/issue being actively pursued? Is there something here that I am missing, that will fix the issue?

tx
David

Last edited 3 days ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

comment:17 Changed 3 days ago by mascguy (Christopher Nielsen)

This is a long shot, but... can you provide the output of otool -L /opt/local/lib/libexiv2.dylib?

Another idea, can you run sudo port clean gexiv2 followed by sudo port -t install gexiv2? (I doubt this will help, but just throwing out ideas.) Assuming it fails, attach the main.log.

Changed 3 days ago by dkossack

Attachment: main_241104.log added

comment:18 in reply to:  17 ; Changed 3 days ago by dkossack

Replying to mascguy:

This is a long shot, but... can you provide the output of otool -L /opt/local/lib/libexiv2.dylib?

Another idea, can you run sudo port clean gexiv2 followed by sudo port -t install gexiv2? (I doubt this will help, but just throwing out ideas.) Assuming it fails, attach the main.log.

root# otool -L /opt/local/lib/libexiv2.dylib
/opt/local/lib/libexiv2.dylib:
	/Volumes/PEluard/opt/local/lib/libexiv2.27.dylib (compatibility version 27.0.0, current version 0.27.6)
	/Volumes/PEluard/opt/local/lib/libexpat.1.dylib (compatibility version 10.0.0, current version 10.10.0)
	/Volumes/PEluard/opt/local/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.13)
	/Volumes/PEluard/opt/local/lib/libiconv.2.dylib (compatibility version 9.0.0, current version 9.1.0)
	/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 902.1.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1281.100.1)
root# port clean gexiv2
--->  Cleaning gexiv2

root# port -t install gexiv2
--->  Computing dependencies for gexiv2
--->  Fetching archive for gexiv2
--->  Attempting to fetch gexiv2-0.14.3_0+python312.darwin_19.x86_64.tbz2 from https://packages.macports.org/gexiv2
--->  Attempting to fetch gexiv2-0.14.3_0+python312.darwin_19.x86_64.tbz2 from http://mirror.fcix.net/macports/packages/gexiv2
--->  Attempting to fetch gexiv2-0.14.3_0+python312.darwin_19.x86_64.tbz2 from https://ywg.ca.packages.macports.org/mirror/macports/packages/gexiv2
--->  Fetching distfiles for gexiv2
--->  Verifying checksums for gexiv2
--->  Extracting gexiv2
Warning: The following existing file was hidden from the build system by trace mode:
  /private/var/select/sh
Warning: The following file inside the MacPorts prefix not installed by a port was accessed:
  /Volumes/PEluard/opt/local/bin/xz
--->  Applying patches to gexiv2
Warning: The following existing file was hidden from the build system by trace mode:
  /private/var/select/sh
--->  Configuring gexiv2
Warning: The following existing files were hidden from the build system by trace mode:
  /opt/local/bin/meson-3.12
  /private/var/select/sh
Warning: The following file inside the MacPorts prefix not installed by a port was accessed:
  /Volumes/PEluard/opt/local/bin/meson
Error: Failed to configure gexiv2: configure failure: command execution failed
Error: See /Volumes/PEluard/opt/local/var/macports/logs/_Volumes_PEluard_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_gnome_gexiv2/gexiv2/main.log for details.
Error: Follow https://guide.macports.org/#project.tickets if you believe there is a bug.
Error: Processing of port gexiv2 failed
Last edited 3 days ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

comment:19 in reply to:  18 ; Changed 3 days ago by mascguy (Christopher Nielsen)

Replying to dkossack:

Replying to mascguy:

This is a long shot, but... can you provide the output of otool -L /opt/local/lib/libexiv2.dylib?

root# otool -L /opt/local/lib/libexiv2.dylib
/opt/local/lib/libexiv2.dylib:
	/Volumes/PEluard/opt/local/lib/libexiv2.27.dylib (compatibility version 27.0.0, current version 0.27.6)
	/Volumes/PEluard/opt/local/lib/libexpat.1.dylib (compatibility version 10.0.0, current version 10.10.0)
	/Volumes/PEluard/opt/local/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.13)
	/Volumes/PEluard/opt/local/lib/libiconv.2.dylib (compatibility version 9.0.0, current version 9.1.0)
	/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 902.1.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1281.100.1)

Another idea, can you run sudo port clean gexiv2 followed by sudo port -t install gexiv2? (I doubt this will help, but just throwing out ideas.) Assuming it fails, attach the main.log.

root# port clean gexiv2
--->  Cleaning gexiv2

root# port -t install gexiv2
--->  Computing dependencies for gexiv2
--->  Fetching distfiles for gexiv2
--->  Verifying checksums for gexiv2
--->  Extracting gexiv2
Warning: The following existing file was hidden from the build system by trace mode:
  /private/var/select/sh
Warning: The following file inside the MacPorts prefix not installed by a port was accessed:
  /Volumes/PEluard/opt/local/bin/xz
--->  Applying patches to gexiv2
Warning: The following existing file was hidden from the build system by trace mode:
  /private/var/select/sh
--->  Configuring gexiv2
Warning: The following existing files were hidden from the build system by trace mode:
  /opt/local/bin/meson-3.12
  /private/var/select/sh
Warning: The following file inside the MacPorts prefix not installed by a port was accessed:
  /Volumes/PEluard/opt/local/bin/meson

From your latest main.log, the following failure occurs:

configure sh: /Volumes/PEluard/opt/local/bin/meson: No such file or directory

Which doesn't make any sense, as that almost suggests that Meson isn't installed. But it is based on the earlier entries in the log.

A related warning is this:

> Warning: The following existing files were hidden from the build system by trace mode:
>   /opt/local/bin/meson-3.12

Assuming you installed MacPorts from scratch, via your custom prefix (/Volumes/PEluard/opt/local), all MacPorts-related paths should be prefixed with that. But the fact that /opt/local also exists, suggests something more is going on.

Is /opt/local a symlink to /Volumes/PEluard/opt/local? Or do you have another MacPorts setup installed in /opt/local?

EDIT: Or is /Volumes/PEluard your boot volume?

Last edited 3 days ago by mascguy (Christopher Nielsen) (previous) (diff)

comment:20 in reply to:  19 ; Changed 3 days ago by dkossack

Replying to mascguy:

Replying to dkossack:

Replying to mascguy:

This is a long shot, but... can you provide the output of otool -L /opt/local/lib/libexiv2.dylib?

root# otool -L /opt/local/lib/libexiv2.dylib
/opt/local/lib/libexiv2.dylib:
	/Volumes/PEluard/opt/local/lib/libexiv2.27.dylib (compatibility version 27.0.0, current version 0.27.6)
	/Volumes/PEluard/opt/local/lib/libexpat.1.dylib (compatibility version 10.0.0, current version 10.10.0)
	/Volumes/PEluard/opt/local/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.13)
	/Volumes/PEluard/opt/local/lib/libiconv.2.dylib (compatibility version 9.0.0, current version 9.1.0)
	/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 902.1.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1281.100.1)

Another idea, can you run sudo port clean gexiv2 followed by sudo port -t install gexiv2? (I doubt this will help, but just throwing out ideas.) Assuming it fails, attach the main.log.

root# port clean gexiv2
--->  Cleaning gexiv2

root# port -t install gexiv2
--->  Computing dependencies for gexiv2
--->  Fetching distfiles for gexiv2
--->  Verifying checksums for gexiv2
--->  Extracting gexiv2
Warning: The following existing file was hidden from the build system by trace mode:
  /private/var/select/sh
Warning: The following file inside the MacPorts prefix not installed by a port was accessed:
  /Volumes/PEluard/opt/local/bin/xz
--->  Applying patches to gexiv2
Warning: The following existing file was hidden from the build system by trace mode:
  /private/var/select/sh
--->  Configuring gexiv2
Warning: The following existing files were hidden from the build system by trace mode:
  /opt/local/bin/meson-3.12
  /private/var/select/sh
Warning: The following file inside the MacPorts prefix not installed by a port was accessed:
  /Volumes/PEluard/opt/local/bin/meson

From your latest main.log, the following failure occurs:

configure sh: /Volumes/PEluard/opt/local/bin/meson: No such file or directory

Which doesn't make any sense, as that almost suggests that Meson isn't installed. But it is based on the earlier entries in the log.

A related warning is this:

> Warning: The following existing files were hidden from the build system by trace mode:
>   /opt/local/bin/meson-3.12

Assuming you installed MacPorts from scratch, via your custom prefix (/Volumes/PEluard/opt/local), all MacPorts-related paths should be prefixed with that. But the fact that /opt/local also exists, suggests something more is going on.

Is /opt/local a symlink to /Volumes/PEluard/opt/local? Or do you have another MacPorts setup installed in /opt/local?

EDIT: Or is /Volumes/PEluard your boot volume?

Yes, it is a samlink:

Ghostship:var root# ls -l /opt/local
lrwxr-xr-x 1 root wheel 26 Apr  5  2019 /opt/local -> /Volumes/PEluard/opt/local

Ghostship:~ root# ls -l /opt/local/bin/meson*
lrwxr-xr-x 1 root wheel 25 Oct 24 10:26 /opt/local/bin/meson -> /opt/local/bin/meson-3.12
lrwxr-xr-x 1 root admin 70 Oct 24 11:32 /opt/local/bin/meson-3.12 -> /opt/local/Library/Frameworks/Python.framework/Versions/3.12/bin/meson
root# port clean gexiv2
--->  Cleaning gexiv2
Ghostship:gexiv2-master root# port install gexiv2
--->  Computing dependencies for gexiv2
--->  Fetching archive for gexiv2
--->  Attempting to fetch gexiv2-0.14.3_0+python312.darwin_19.x86_64.tbz2 from https://packages.macports.org/gexiv2
--->  Attempting to fetch gexiv2-0.14.3_0+python312.darwin_19.x86_64.tbz2 from http://mirror.fcix.net/macports/packages/gexiv2
--->  Attempting to fetch gexiv2-0.14.3_0+python312.darwin_19.x86_64.tbz2 from https://ywg.ca.packages.macports.org/mirror/macports/packages/gexiv2
--->  Fetching distfiles for gexiv2
--->  Verifying checksums for gexiv2
--->  Extracting gexiv2
--->  Applying patches to gexiv2
--->  Configuring gexiv2
--->  Building gexiv2                                    
Error: Failed to build gexiv2: command execution failed  
Error: See /Volumes/PEluard/opt/local/var/macports/logs/_Volumes_PEluard_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_gnome_gexiv2/gexiv2/main.log for details.
Error: Follow https://guide.macports.org/#project.tickets if you believe there is a bug.
Error: Processing of port gexiv2 failed
root# port clean gexiv2
--->  Cleaning gexiv2
root# port -t install gexiv2
--->  Computing dependencies for gexiv2
--->  Fetching archive for gexiv2
--->  Attempting to fetch gexiv2-0.14.3_0+python312.darwin_19.x86_64.tbz2 from https://packages.macports.org/gexiv2
--->  Attempting to fetch gexiv2-0.14.3_0+python312.darwin_19.x86_64.tbz2 from http://mirror.fcix.net/macports/packages/gexiv2
--->  Attempting to fetch gexiv2-0.14.3_0+python312.darwin_19.x86_64.tbz2 from https://ywg.ca.packages.macports.org/mirror/macports/packages/gexiv2
--->  Fetching distfiles for gexiv2
--->  Verifying checksums for gexiv2
--->  Extracting gexiv2
Warning: The following existing file was hidden from the build system by trace mode:
  /private/var/select/sh
Warning: The following file inside the MacPorts prefix not installed by a port was accessed:
  /Volumes/PEluard/opt/local/bin/xz
--->  Applying patches to gexiv2
Warning: The following existing file was hidden from the build system by trace mode:
  /private/var/select/sh
--->  Configuring gexiv2
Warning: The following existing files were hidden from the build system by trace mode:
  /opt/local/bin/meson-3.12
  /private/var/select/sh
Warning: The following file inside the MacPorts prefix not installed by a port was accessed:
  /Volumes/PEluard/opt/local/bin/meson
Error: Failed to configure gexiv2: configure failure: command execution failed
Error: See /Volumes/PEluard/opt/local/var/macports/logs/_Volumes_PEluard_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_gnome_gexiv2/gexiv2/main.log for details.
Error: Follow https://guide.macports.org/#project.tickets if you believe there is a bug.
Error: Processing of port gexiv2 failed
root# port clean gexiv2
--->  Cleaning gexiv2
root# port -tv install gexiv2
--->  Computing dependencies for gexiv2.
--->  Fetching archive for gexiv2
--->  gexiv2-0.14.3_0+python312.darwin_19.x86_64.tbz2 doesn't seem to exist in /Volumes/PEluard/opt/local/var/macports/incoming/verified
--->  Attempting to fetch gexiv2-0.14.3_0+python312.darwin_19.x86_64.tbz2 from https://packages.macports.org/gexiv2
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
--->  Attempting to fetch gexiv2-0.14.3_0+python312.darwin_19.x86_64.tbz2 from http://mirror.fcix.net/macports/packages/gexiv2
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0
--->  Attempting to fetch gexiv2-0.14.3_0+python312.darwin_19.x86_64.tbz2 from https://ywg.ca.packages.macports.org/mirror/macports/packages/gexiv2
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
--->  Fetching distfiles for gexiv2
--->  Verifying checksums for gexiv2
--->  Checksumming gexiv2-0.14.3.tar.xz
--->  Extracting gexiv2
--->  Extracting gexiv2-0.14.3.tar.xz
Executing:  cd "/Volumes/PEluard/opt/local/var/macports/build/_Volumes_PEluard_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_gnome_gexiv2/gexiv2/work" && /Volumes/PEluard/opt/local/bin/xz -dc '/Volumes/PEluard/opt/local/var/macports/distfiles/gexiv2/gexiv2-0.14.3.tar.xz' | /usr/bin/tar -xf - 
Warning: The following existing file was hidden from the build system by trace mode:
  /private/var/select/sh
Warning: The following file inside the MacPorts prefix not installed by a port was accessed:
  /Volumes/PEluard/opt/local/bin/xz
--->  Applying patches to gexiv2
--->  Applying patch-python-bins.diff
Executing:  cd "/Volumes/PEluard/opt/local/var/macports/build/_Volumes_PEluard_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_gnome_gexiv2/gexiv2/work/gexiv2-0.14.3" && /usr/bin/patch -t -N -p0 < '/Volumes/PEluard/opt/local/var/macports/sources/rsync.macports.org/macports/release/tarballs/ports/gnome/gexiv2/files/patch-python-bins.diff'
patching file meson.build
Hunk #1 succeeded at 114 (offset 63 lines).
--->  Patching meson.build: s|@@PYTHON3_BIN@@|/Volumes/PEluard/opt/local/bin/python3.12|
Warning: The following existing file was hidden from the build system by trace mode:
  /private/var/select/sh
--->  Configuring gexiv2
Executing:  cd "/Volumes/PEluard/opt/local/var/macports/build/_Volumes_PEluard_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_gnome_gexiv2/gexiv2/work/gexiv2-0.14.3" && /Volumes/PEluard/opt/local/bin/meson setup --prefix=/Volumes/PEluard/opt/local -Dgtk_doc=true /Volumes/PEluard/opt/local/var/macports/build/_Volumes_PEluard_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_gnome_gexiv2/gexiv2/work/gexiv2-0.14.3 /Volumes/PEluard/opt/local/var/macports/build/_Volumes_PEluard_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_gnome_gexiv2/gexiv2/work/build --wrap-mode=default 
sh: /Volumes/PEluard/opt/local/bin/meson: No such file or directory
Command failed:  cd "/Volumes/PEluard/opt/local/var/macports/build/_Volumes_PEluard_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_gnome_gexiv2/gexiv2/work/gexiv2-0.14.3" && /Volumes/PEluard/opt/local/bin/meson setup --prefix=/Volumes/PEluard/opt/local -Dgtk_doc=true /Volumes/PEluard/opt/local/var/macports/build/_Volumes_PEluard_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_gnome_gexiv2/gexiv2/work/gexiv2-0.14.3 /Volumes/PEluard/opt/local/var/macports/build/_Volumes_PEluard_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_gnome_gexiv2/gexiv2/work/build --wrap-mode=default 
Exit code: 127
Warning: The following existing files were hidden from the build system by trace mode:
  /opt/local/bin/meson-3.12
  /private/var/select/sh
Warning: The following file inside the MacPorts prefix not installed by a port was accessed:
  /Volumes/PEluard/opt/local/bin/meson
Error: Failed to configure gexiv2: configure failure: command execution failed
Error: See /Volumes/PEluard/opt/local/var/macports/logs/_Volumes_PEluard_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_gnome_gexiv2/gexiv2/main.log for details.
Error: Follow https://guide.macports.org/#project.tickets if you believe there is a bug.
Error: Processing of port gexiv2 failed

An attempt at building gexiv2 from GNOME source:

 root#  which meson
/opt/local/bin/meson

Ghostship:gexiv2-master root# meson setup build && cd build
The Meson build system
Version: 1.6.0
Source dir: /private/var/root/gexiv2-master
Build dir: /private/var/root/gexiv2-master/build
Build type: native build
Project name: gexiv2
Project version: 0.15.0
C compiler for the host machine: cc (clang 12.0.0 "Apple clang version 12.0.0 (clang-1200.0.32.29)")
C linker for the host machine: cc ld64 609.8
C++ compiler for the host machine: c++ (clang 12.0.0 "Apple clang version 12.0.0 (clang-1200.0.32.29)")
C++ linker for the host machine: c++ ld64 609.8
Host machine cpu family: x86_64
Host machine cpu: x86_64
Message: Project API version: 0.12
Found pkg-config: YES (/opt/local/bin/pkg-config) 0.29.2
Run-time dependency exiv2 found: YES 0.27.6
Run-time dependency gobject-2.0 found: YES 2.78.4
Run-time dependency gio-2.0 found: YES 2.78.4
Library m found: YES
Checking if "BMFF support in exiv2" with dependency exiv2 compiles: YES 
Checking if "DataBuf is sealead in exiv2" with dependency exiv2 compiles: NO 
Checking if "AnyError exists in exiv2" with dependency exiv2 compiles: YES 
Checking if "Xmpdatum has toLong() in exiv2" with dependency exiv2 compiles: YES 
Checking if "Exifdatum has toLong() in exiv2" with dependency exiv2 compiles: YES 
Configuring config.h using configuration
Program g-ir-scanner found: YES (/opt/local/bin/g-ir-scanner)
Vala compiler for the host machine: valac (valac 0.56.17)
Configuring gexiv2-version.h using configuration
Build-time dependency glib-2.0 found: YES 2.78.4
Program /opt/local/bin/glib-mkenums found: YES (/opt/local/bin/glib-mkenums)
Dependency glib-2.0 found: YES 2.78.4 (cached)
Program /opt/local/bin/glib-mkenums found: YES (/opt/local/bin/glib-mkenums)
Run-time dependency gobject-introspection-1.0 found: YES 1.78.1
Dependency gobject-introspection-1.0 found: YES 1.78.1 (cached)
Program /opt/local/bin/g-ir-scanner found: YES (/opt/local/bin/g-ir-scanner)
Dependency gobject-introspection-1.0 found: YES 1.78.1 (cached)
Program /opt/local/bin/g-ir-compiler found: YES (/opt/local/bin/g-ir-compiler)
Program vapigen found: YES (/opt/local/bin/vapigen)
Program python3 (gi) found: NO

meson.build:117:29: ERROR: python3 is missing modules: gi

A full log can be found at /private/var/root/gexiv2-master/build/meson-logs/meson-log.txt

So meson is there…

Last edited 3 days ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

comment:21 Changed 3 days ago by ryandesign (Ryan Carsten Schmidt)

Please remember to use WikiFormatting. Specifically, you will want to enclose terminal output in {{{ and }}}.

comment:22 in reply to:  20 ; Changed 3 days ago by ryandesign (Ryan Carsten Schmidt)

Replying to dkossack:

Replying to mascguy:

From your latest main.log, the following failure occurs:

configure sh: /Volumes/PEluard/opt/local/bin/meson: No such file or directory

Which doesn't make any sense, as that almost suggests that Meson isn't installed. But it is based on the earlier entries in the log.

Is /opt/local a symlink to /Volumes/PEluard/opt/local? Or do you have another MacPorts setup installed in /opt/local?

Yes, it is a samlink:

sh: /Volumes/PEluard/opt/local/bin/meson: No such file or directory
Warning: The following existing files were hidden from the build system by trace mode:
  /opt/local/bin/meson-3.12
  /private/var/select/sh
Warning: The following file inside the MacPorts prefix not installed by a port was accessed:
  /Volumes/PEluard/opt/local/bin/meson

Ok, /Volumes/PEluard/opt/local/bin/meson is not visible to the port because MacPorts doesn't think it was installed by a port and because you have enabled trace mode (-t).

Users were never intended to replace /opt/local by a symlink. You may have discovered another of the surprising ways in which this can fail. I haven't looked into it but off the top of my head I'm not sure why this is happening or how it might be corrected, short of either not using trace mode or removing the symlink and moving /Volumes/PEluard/opt/local back to /opt/local.

comment:23 in reply to:  22 ; Changed 2 days ago by dkossack

Replying to ryandesign:

Replying to dkossack:

Replying to mascguy:

From your latest main.log, the following failure occurs:

configure sh: /Volumes/PEluard/opt/local/bin/meson: No such file or directory

Which doesn't make any sense, as that almost suggests that Meson isn't installed. But it is based on the earlier entries in the log.

Is /opt/local a symlink to /Volumes/PEluard/opt/local? Or do you have another MacPorts setup installed in /opt/local?

Yes, it is a samlink:

sh: /Volumes/PEluard/opt/local/bin/meson: No such file or directory
Warning: The following existing files were hidden from the build system by trace mode:
  /opt/local/bin/meson-3.12
  /private/var/select/sh
Warning: The following file inside the MacPorts prefix not installed by a port was accessed:
  /Volumes/PEluard/opt/local/bin/meson

Ok, /Volumes/PEluard/opt/local/bin/meson is not visible to the port because MacPorts doesn't think it was installed by a port and because you have enabled trace mode (-t).

Users were never intended to replace /opt/local by a symlink. You may have discovered another of the surprising ways in which this can fail. I haven't looked into it but off the top of my head I'm not sure why this is happening or how it might be corrected, short of either not using trace mode or removing the symlink and moving /Volumes/PEluard/opt/local back to /opt/local.

The trace mode was at the request of mascguy (Christopher Nielsen) earlier in the thread... The symlink has been working ok, in the past there were some breaks but I have straightened out most of the issues at this point. I don't think this is the problem. @mascguy (Christopher Nielsen): GIMP2 was working before, I didn't even know that gexiv2 existed. What really changed between gexiv2 0.14.2 and gexiv2 0.14.3 ?? I looked for a copy of gexiv2 0.14.2 to reinstall so I can get GIMP2.10.38 working again but I didn't come up with anything. Am I the only one having this issue??

comment:24 in reply to:  23 Changed 2 days ago by ryandesign (Ryan Carsten Schmidt)

Replying to dkossack:

Is there something here that I am missing, that will fix the issue?

If a fix were known, it would be in the port and the ticket would be closed.

Replying to dkossack:

The trace mode was at the request of mascguy (Christopher Nielsen) earlier in the thread... The symlink has been working ok, in the past there were some breaks but I have straightened out most of the issues at this point. I don't think this is the problem.

Ok, well, evidently trace mode doesn't work when the MacPorts prefix has been replaced with a symlink, at least not with this port, so let's stop trying to use trace mode now.

What really changed between gexiv2 0.14.2 and gexiv2 0.14.3 ??

Per [9cac4f2540a9aa366fdc2142973c58b2600da110/macports-ports], nothing changed with the port other than the version update.

The changes listed for 0.14.3 in gexiv2's NEWS file don't sound relevant to this issue.

I looked for a copy of gexiv2 0.14.2 to reinstall so I can get GIMP2.10.38 working again but I didn't come up with anything.

You can try wiki:howto/InstallingOlderPort however it's by no means certain that the gexiv2 0.14.3 update is what causes the problem to happen; it could instead be an update to one of its dependencies, for example. Or it could be, as Chris suggested, interference from other installed ports that are not dependencies which, using trace mode, if it worked, would rule out.

Am I the only one having this issue??

At least the person who reported this ticket four years ago experienced the issue, and the other people who filed duplicate bug reports since then, and per earlier comments there were several other similar tickets that we thought we had fixed but evidently haven't.

No gobject-introspection developer has ever responded to the bug report I filed four years ago so they obviously don't care that their software doesn't work.

comment:25 in reply to:  23 ; Changed 33 hours ago by dkossack

Replying to dkossack:

Replying to ryandesign:

Replying to dkossack:

Replying to mascguy:

From your latest main.log, the following failure occurs:

configure sh: /Volumes/PEluard/opt/local/bin/meson: No such file or directory

Which doesn't make any sense, as that almost suggests that Meson isn't installed. But it is based on the earlier entries in the log.

Is /opt/local a symlink to /Volumes/PEluard/opt/local? Or do you have another MacPorts setup installed in /opt/local?

Yes, it is a samlink:

sh: /Volumes/PEluard/opt/local/bin/meson: No such file or directory
Warning: The following existing files were hidden from the build system by trace mode:
  /opt/local/bin/meson-3.12
  /private/var/select/sh
Warning: The following file inside the MacPorts prefix not installed by a port was accessed:
  /Volumes/PEluard/opt/local/bin/meson

Ok, /Volumes/PEluard/opt/local/bin/meson is not visible to the port because MacPorts doesn't think it was installed by a port and because you have enabled trace mode (-t).

Users were never intended to replace /opt/local by a symlink. You may have discovered another of the surprising ways in which this can fail. I haven't looked into it but off the top of my head I'm not sure why this is happening or how it might be corrected, short of either not using trace mode or removing the symlink and moving /Volumes/PEluard/opt/local back to /opt/local.

The trace mode was at the request of mascguy (Christopher Nielsen) earlier in the thread... The symlink has been working ok, in the past there were some breaks but I have straightened out most of the issues at this point. I don't think this is the problem. @mascguy (Christopher Nielsen): GIMP2 was working before, I didn't even know that gexiv2 existed. What really changed between gexiv2 0.14.2 and gexiv2 0.14.3 ?? I looked for a copy of gexiv2 0.14.2 to reinstall so I can get GIMP2.10.38 working again but I didn't come up with anything. Am I the only one having this issue??

---

I did a clean install of macports in /opt/local. Reinstalling my Requested both gexiv2 and gimp2 were installed without issue...

Ghostship:~ root# port installed gexiv2 The following ports are currently installed:

gexiv2 @0.14.3_0+python312 (active)

Ghostship:~ root# port installed gimp2 The following ports are currently installed:

gimp2 @2.10.38_2+python27 (active)

Ghostship:~ root# port location gimp2 Port gimp2 2.10.38_2+python27 is installed as an image in: /opt/local/var/macports/software/gimp2/gimp2-2.10.38_2+python27.darwin_19.x86_64 Ghostship:~ root# port location gexiv2 Port gexiv2 0.14.3_0+python312 is installed as an image in: /opt/local/var/macports/software/gexiv2/gexiv2-0.14.3_0+python312.darwin_19.x86_64.tbz2

Thank you for your help with this. David

comment:26 in reply to:  25 Changed 21 hours ago by mascguy (Christopher Nielsen)

Replying to dkossack:

I did a clean install of macports in /opt/local. Reinstalling my Requested both gexiv2 and gimp2 were installed without issue...

Ghostship:~ root# port installed  gexiv2
The following ports are currently installed:
  gexiv2 @0.14.3_0+python312 (active)
Ghostship:~ root# port installed gimp2
The following ports are currently installed:
  gimp2 @2.10.38_2+python27 (active)

Ghostship:~ root# port location gimp2
Port gimp2 2.10.38_2+python27 is installed as an image in:
/opt/local/var/macports/software/gimp2/gimp2-2.10.38_2+python27.darwin_19.x86_64
Ghostship:~ root# port location gexiv2
Port gexiv2 0.14.3_0+python312 is installed as an image in:
/opt/local/var/macports/software/gexiv2/gexiv2-0.14.3_0+python312.darwin_19.x86_64.tbz2

Thank you for your help with this. David

Thank you for the update, and glad this is no longer an issue for you!

Note: See TracTickets for help on using tickets.