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)
Change History (28)
comment:1 Changed 4 years ago by kencu (Ken)
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 follow-up: 7 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 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: | new → assigned |
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: | assigned → closed |
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: | closed → reopened |
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
comment:17 follow-up: 18 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 follow-up: 19 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 bysudo port -t install gexiv2
? (I doubt this will help, but just throwing out ideas.) Assuming it fails, attach themain.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
comment:19 follow-up: 20 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 bysudo port -t install gexiv2
? (I doubt this will help, but just throwing out ideas.) Assuming it fails, attach themain.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?
comment:20 follow-up: 22 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 bysudo port -t install gexiv2
? (I doubt this will help, but just throwing out ideas.) Assuming it fails, attach themain.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/mesonFrom your latest
main.log
, the following failure occurs:configure sh: /Volumes/PEluard/opt/local/bin/meson: No such file or directoryWhich 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.12Assuming 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…
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 follow-up: 23 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 directoryWhich 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 follow-ups: 24 25 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 directoryWhich 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 directoryWarning: 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/mesonOk, /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 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 follow-up: 26 Changed 34 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 directoryWhich 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 directoryWarning: 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/mesonOk, /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 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.tbz2Thank you for your help with this. David
Thank you for the update, and glad this is no longer an issue for you!
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.
g-ir-scanner is a huge PITA for this reason, and we've been trying for months to get it right, without full success.