"port install meld" does not yield working executable

joerg van den hoff veedeehjay at gmail.com
Wed Mar 17 11:36:01 UTC 2021



On 17.03.21 11:07, Ryan Schmidt wrote:
> 
> 
> On Mar 17, 2021, at 04:07, joerg van den hoff wrote:
>> On 17.03.21 05:07, Ryan Schmidt wrote:
>>> On Mar 16, 2021, at 13:47, joerg van den hoff wrote:
>>>> "** (meld:70489): WARNING **: 19:46:07.080: Failed to load shared library './gtksourceview/libgtksourceview-4.0.dylib' referenced by the typelib: dlopen(./gtksourceview/libgtksourceview-4.0.dylib, 9): image not found
>>>> Meld requires GtkSourceView 4.0 or higher.
>>>> "
>>> Hmm.
>>> That's a relative path, but I don't know what it's meant to be relative to.
>>
>> yes, I noted this (and suspected that some (environment?) variable might not be set correctly somewhere so that $PWD is used as fallback in its place when constructing that path).
>>
>>> On my system, the gtksourceview4 port installs the file /opt/local/lib/libgtksourceview-4.0.dylib. Do you have that file?
>>
>> yes I do:
>>
>> -rwxr-xr-x  1 root  admin  803912 Mar  9 22:42 /opt/local/lib/libgtksourceview-4.0.dylib
> 
> Hmm again.
> 
> meld works fine for me on macOS High Sierra. What macOS and Xcode version are you using?

10.15.7 and 12.4

> 
> meld is a python script. I added some debugging to mine: right before this line:
> 
>              if version < (self.major_version, self.minor_version):
> 
> I added this line:
> 
>              print("version of %s is %s" % (mod.__name__, version))
> 
> Then when I started meld it says:
> 
> version of sys is sys.version_info(major=3, minor=8, micro=8, releaselevel='final', serial=0)
> version of gi.repository.Gtk is (3, 24)
> version of gi.repository.GLib is (2, 58)
> version of gi.repository.GtkSource is (4, 0)
> version of gi is (3, 38, 0)
> version of cairo is (1, 20, 0)

if I do the same I get this output:

version of sys is sys.version_info(major=3, minor=8, micro=8, releaselevel='final', serial=0)
version of gi.repository.Gtk is (3, 24)
version of gi.repository.GLib is (2, 58)

followed by the " Failed to load shared library './gtksourceview/libgtksourceview-4.0.dylib'" error.

> 
> The "gi" in gi.repository.GtkSource alerts me to the fact that this is created by gobject-introspection and is the file /opt/local/share/gir-1.0/GtkSource-4.gir. I think there is something wrong with your /opt/local/share/gir-1.0/GtkSource-4.gir. Specifically in mine, there is the line:
> 
> shared-library="/opt/local/lib/libgtksourceview-4.0.dylib"
> 
> and I think in yours the line is different. And I think it's this bug:

and I think you are very right :). indeed, that line in my case reads (surprise!)	

shared-library="./gtksourceview/libgtksourceview-4.0.dylib"

> 
> https://trac.macports.org/ticket/61792
> 
> and this bug:
> 
> https://trac.macports.org/ticket/62391
> 
> I think gobject-introspection is just broken for the moment. (Or it is fixed but we forgot to revbump all the affected ports to rebuild them.)
> 
> I guess you could manually edit affected .gir files to fix the shared-library paths to be the correct absolute ones.

unfortunately, that does not help. I still get the " Failed to load shared library 
'./gtksourceview/libgtksourceview-4.0.dylib' referenced by the typelib: 
dlopen(./gtksourceview/libgtksourceview-4.0.dylib, 9): image not found" error --  despite having 
fixed the/opt/local/share/gir-1.0/GtkSource-4.gir to provide

shared-library="/opt/local/lib/libgtksourceview-4.0.dylib

and grepping through the other gir-files in that location seems to indicate that this is the only 
reference to that dylib file :|.

so still no luck...

I don't know about this stuff (gobject-introspection): is it required to reboot or restart some 
process to make changes to the gir file effective? right now it seems `meld' gets that relative path 
all the same or from somewhere else....


More information about the macports-users mailing list