yousseb / meld

Meld for macOS
https://yousseb.github.io/meld/
GNU General Public License v2.0
2.31k stars 120 forks source link

Latest version no longer works after upgrading to Sonoma #147

Open sammirata opened 1 year ago

sammirata commented 1 year ago

I upgraded my mac to sonoma and now the software crashes on startup. Here is the crash message:

Translated Report (Full Report Below)

Process: Meld [13083] Path: /Applications/Meld.app/Contents/MacOS/Meld Identifier: org.gnome.meld Version: 3.21.0.osx2 (3.21.0.osx2) Code Type: ARM-64 (Translated) Parent Process: launchd [1] User ID: 501

Date/Time: 2023-06-09 09:27:14.8923 -0400 OS Version: macOS 14.0 (23A5257q) Report Version: 12 Anonymous UUID: 24976634-5085-2C39-8A49-4462CB674113

Sleep/Wake UUID: BB6CB32F-0CE4-43D8-AC9B-A12741CB7AE9

Time Awake Since Boot: 62000 seconds Time Since Wake: 3052 seconds

System Integrity Protection: enabled

Crashed Thread: 0 Dispatch queue: com.apple.main-thread

Exception Type: EXC_CRASH (SIGABRT) Exception Codes: 0x0000000000000000, 0x0000000000000000

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread 0 ??? 0x7ff89732aa78 ??? 1 libsystem_kernel.dylib 0x7ff8075ea88e pthread_kill + 10 2 libsystem_pthread.dylib 0x7ff807622f30 pthread_kill + 262 3 libsystem_c.dylib 0x7ff807542a71 abort + 126 4 libsystem_c.dylib 0x7ff807541d84 __assert_rtn + 314 5 libcairo.2.dylib 0x10df39aa3 _cairo_surface_release_source_image.cold.1 + 35 6 libcairo.2.dylib 0x10dedad50 _cairo_surface_release_source_image + 32 7 libcairo.2.dylib 0x10df05899 DataProviderReleaseCallback + 25 8 CoreGraphics 0x7ff80ce467f1 data_release_info + 31 9 CoreGraphics 0x7ff80cdff8bd data_provider_finalize + 54 10 CoreGraphics 0x7ff80cdc7a68 data_provider_retain_count + 74 11 CoreFoundation 0x7ff8077c6906 _CFRelease + 515 12 CoreGraphics 0x7ff80ce25e93 image_finalize + 103 13 CoreFoundation 0x7ff8077c681b _CFRelease + 280 14 CoreGraphics 0x7ff80ce6d411 CG::DisplayListResourceImage::~DisplayListResourceImage() + 23 15 CoreGraphics 0x7ff80ce6d3ea CG::DisplayListResourceImage::~DisplayListResourceImage() + 14 16 CoreGraphics 0x7ff80d41a407 std::1::shared_ptr::~shared_ptr[abi:v160002]() + 49 17 CoreGraphics 0x7ff80d412893 std::1::tree<std::1::shared_ptr, CG::CompareResourceImage, std::1::allocator<std::1::shared_ptr>>::destroy(std::1::tree_node<std::__1::shared_ptr, void>) + 47 18 CoreGraphics 0x7ff80d41287e std::1::tree<std::1::shared_ptr, CG::CompareResourceImage, std::1::allocator<std::1::shared_ptr>>::destroy(std::1::tree_node<std::1::shared_ptr, void>) + 26 19 CoreGraphics 0x7ff80d41287e std::1::tree<std::__1::shared_ptr, CG::CompareResourceImage, std::1::allocator<std::1::shared_ptr>>::destroy(std::1::tree_node<std::1::shared_ptr, void>) + 26 20 CoreGraphics 0x7ff80ce6d2d3 CG::DisplayList::~DisplayList() + 301 21 CoreFoundation 0x7ff8077c681b _CFRelease + 280 22 libobjc.A.dylib 0x7ff8072640d5 object_cxxDestructFromClass(objc_object, objc_class) + 83 23 libobjc.A.dylib 0x7ff80725d2f0 objc_destructInstance + 96 24 libobjc.A.dylib 0x7ff80725d289 _objc_rootDealloc + 62 25 AppKit 0x7ff80b4c8b6e -[NSViewBackingStoreImage dealloc] + 41 26 QuartzCore 0x7ff80fec40d5 CA::release_objects(X::List<void const>) + 21 27 QuartzCore 0x7ff80feb5258 CA::Transaction::commit() + 1548 28 AppKit 0x7ff80ad2b0bd 62+[CATransaction(NSCATransaction) NS_setFlushesWithDisplayLink]_blockinvoke + 285 29 AppKit 0x7ff80b66ce99 NSRunLoopObserverCreateWithHandler_block_invoke + 41 30 CoreFoundation 0x7ff8076fdfac CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION + 23 31 CoreFoundation 0x7ff8076fded1 CFRunLoopDoObservers + 493 32 CoreFoundation 0x7ff8076fd453 CFRunLoopRun + 850 33 CoreFoundation 0x7ff8076fcae9 CFRunLoopRunSpecific + 557 34 HIToolbox 0x7ff812312819 RunCurrentEventLoopInMode + 292 35 HIToolbox 0x7ff812312456 ReceiveNextEventCommon + 201 36 HIToolbox 0x7ff812312371 _BlockUntilNextEventMatchingListInModeWithFilter + 66 37 AppKit 0x7ff80abce571 _DPSNextEvent + 880 38 AppKit 0x7ff80abcd2d3 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 1304 39 libgdk-3.0.dylib 0x10f5abc4c poll_func + 172 40 libglib-2.0.0.dylib 0x10d82648d g_main_context_iterate + 445 41 libglib-2.0.0.dylib 0x10d826594 g_main_context_iteration + 100 42 libgio-2.0.0.dylib 0x10e4f823d g_application_run + 541

cristifalcas commented 1 year ago

same here :(

u007 commented 1 year ago

mine no error, but blank window

Screenshot 2023-08-14 at 9 52 29 AM
vitaly-castLabs commented 1 year ago

All of a sudden stopped working on Ventura 13.5.1 as well. It shows the window but the buttons are not responsive

hekenji commented 1 year ago

I am using Ventura 13.5.2 and it is working well.

vitaly-castLabs commented 1 year ago

Could this be related to this issue in cairo? https://gitlab.freedesktop.org/cairo/cairo/-/issues/420

ivanopcode commented 1 year ago

same here on Sonoma RC

hekenji commented 1 year ago

On Sonoma (final, released today), Meld stopped working (segmentation fault meld)... :(

rybalkoss commented 1 year ago

same here

Couldn't set the locale: unsupported locale setting; falling back to 'C' locale

(meld:21109): Gtk-WARNING **: 12:47:23.135: Locale not supported by C library.
    Using the fallback 'C' locale.
jeroenhabets commented 1 year ago

Same here but I get a segmentation fault :

% meld data.tf ../../acc-rc/data.tf
zsh: segmentation fault  meld data.tf ../../acc-rc/data.tf

Crash report (first bits):

-------------------------------------
Translated Report (Full Report Below)
-------------------------------------

Process:               Meld [14269]
Path:                  /Applications/Meld.app/Contents/MacOS/Meld
Identifier:            org.gnome.meld
Version:               3.21.0.osx3 (3.21.0.osx3)
Code Type:             X86-64 (Native)
Parent Process:        zsh [11352]
Responsible:           iTerm2 [6336]
User ID:               501

Date/Time:             2023-09-27 17:58:20.9544 +0200
OS Version:            macOS 14.0 (23A344)
Report Version:        12
Bridge OS Version:     8.0 (21P365)
Anonymous UUID:        9A778F10-D4BE-A845-D9E7-478128BAF403

Sleep/Wake UUID:       B184D2AA-2DEA-4DF2-B33A-2C0652B2EE1D

Time Awake Since Boot: 44000 seconds
Time Since Wake:       15108 seconds

System Integrity Protection: enabled

Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:       KERN_INVALID_ADDRESS at 0x0000001000000050
Exception Codes:       0x0000000000000001, 0x0000001000000050

Termination Reason:    Namespace SIGNAL, Code 11 Segmentation fault: 11
Terminating Process:   exc handler [14269]

VM Region Info: 0x1000000050 is not in any region.  Bytes after previous region: 64115695697  Bytes before following region: 105484396789680
      REGION TYPE                    START - END         [ VSIZE] PRT/MAX SHRMOD  REGION DETAIL
      mapped file                 112672000-112682000    [   64K] rw-/rwx SM=PRV  ...t_id=5d0bc3c7
--->  GAP OF 0x5ffeed97e000 BYTES
      MALLOC_NANO              600000000000-600020000000 [512.0M] rw-/rwx SM=PRV  

Kernel Triage:
VM - (arg = 0x3) mach_vm_allocate_kernel failed within call to vm_map_enter
VM - (arg = 0x3) mach_vm_allocate_kernel failed within call to vm_map_enter
VM - (arg = 0x3) mach_vm_allocate_kernel failed within call to vm_map_enter
VM - (arg = 0x3) mach_vm_allocate_kernel failed within call to vm_map_enter
VM - (arg = 0x3) mach_vm_allocate_kernel failed within call to vm_map_enter
jeroenhabets commented 1 year ago

@yousseb in full appreciation of your work I have to ask: am I correct that you do not intend to release an update soon? In my case to fix the crash on Sonoma (which has now been released).

Is there something we can contribute?

JoeLyga commented 1 year ago

I tried building it from source, and it gets past the error (building it was a little tricky). So it doesn't look like any code changes are required, but probably just needs to be rebuilt. If I can package this up as a Mac App then I will share it.

Issues run into while building

After that, I was able to run meld from source

JoeLyga commented 1 year ago

image Sorry, no luck getting this packaged as a mac app. It works on my machine from ninja install, but it's only working with the homebrew dependencies and not the dependencies in the mac app. I spent a few hours struggling with dependencies, but it's getting into obscure gtk errors. The biggest issue is this was originally packaged for x86 processors and not m1, so the dependencies all need to be apple silicon.

However, it does work if you compile it from source like in the instructions.

We will have to wait for the author or someone more experienced with Mac app packaging.

alexolog commented 1 year ago

This is very frustrating

laoshaw commented 1 year ago

same problem, is there an alternative for meld?

JoeLyga commented 1 year ago

I wouldn't write off Meld, it just needs to be recompiled and repackaged. This Mac OS specific fork still works great. We just need someone more experienced with Mac OS development to put up a .app of it.

makapav commented 1 year ago

Meld was perfect when it worked earlier for folder comparison. I hope the author finds the time to update it.

alexolog commented 1 year ago

If it's just creating a package, it can be forked.

krdian commented 1 year ago

Same issue here:

$ meld Couldn't set the locale: unsupported locale setting; falling back to 'C' locale

(meld:25565): Gtk-WARNING **: 09:59:08.546: Locale not supported by C library. Using the fallback 'C' locale. Segmentation fault: 11

enryfox commented 1 year ago

I tried building it from source, and it gets past the error (building it was a little tricky). So it doesn't look like any code changes are required, but probably just needs to be rebuilt. If I can package this up as a Mac App then I will share it.

Issues run into while building

* lots of dependencies needed to be installed through brew and pip3 throughout the process (not an issue, but be aware of this if you're not experienced with building from source)

* py3cairo needed a package config file.  I generated one that package config seems to have liked (not sure of the proper method, I just used GPT-4)

* after running ninja install, the files actually were installed to the homebrew directory.  When running it, python was unable to find the meld.conf import.  Turns out they were installed to `/opt/homebrew/opt/homebrew/lib/python3.11/site-packages/meld/conf.py` and needed to be added to the python path

Can you share the py3cairo pkg file ? i'm stuck with meson _build failing to find py3cairo (though it is installed).

Thanks !

zorzella commented 1 year ago

Meld on Sonoma is broken for me as well.

enryfox commented 1 year ago
* after running ninja install, the files actually were installed to the homebrew directory.  When running it, python was unable to find the meld.conf import.  Turns out they were installed to `/opt/homebrew/opt/homebrew/lib/python3.11/site-packages/meld/conf.py` and needed to be added to the python path

I was able to compile meld in Sonoma on M1 and run the ninja installer; i moved the meld pkg from /opt/homebrew/opt/homebrew/lib/python3.11/site-packages to /opt/homebrew/lib/python3.11/site-packages (I think it is where it was supposed to be...) but when I start meld I'm greeted with the error:

Traceback (most recent call last): File "/opt/homebrew/bin/meld", line 111, in import meld.conf # noqa: E402 ^^^^^^^^^^^^^^^^ File "/opt/homebrew/lib/python3.11/site-packages/meld/conf.py", line 5, in from Foundation import NSBundle ModuleNotFoundError: No module named 'Foundation'

I installed both python modules Foundation and PyObjC, but it is still not working. I personally hate python, it always has problem like that ....

JoeLyga commented 1 year ago

I don't have the py3cairo package file. I tried searching for it but I might've overwritten it at some point when rebuilding.

For the meld.conf issue: I ran into the same problem with unable to import meld.conf. The solution is adding the path of the meld library in site packages to your pythonpath. I tried finding some method of integrating it into the the script itself, but was still getting errors. So I made it part of my zshrc export PYTHONPATH="$PYTHONPATH:/opt/homebrew/opt/homebrew/lib/python3.11/site-packages/meld"

jeremycopinlm commented 1 year ago

please fix, very useful tool

rybalkoss commented 1 year ago

Traceback (most recent call last): File "/opt/homebrew/bin/meld", line 111, in import meld.conf # noqa: E402 ^^^^^^^^^^^^^^^^ File "/opt/homebrew/lib/python3.11/site-packages/meld/conf.py", line 5, in from Foundation import NSBundle ModuleNotFoundError: No module named 'Foundation'

I installed both python modules Foundation and PyObjC, but it is still not working. I personally hate python, it always has problem like that ....

does anyone know how to resolve that?

JoeLyga commented 1 year ago

I personally didn’t run into that when compiling or running. But try seeing if you can install it from pip.


From: rybalkoss @.> Sent: Thursday, October 5, 2023 6:57:57 AM To: yousseb/meld @.> Cc: Lyga, Joe @.>; Comment @.> Subject: Re: [yousseb/meld] Latest version no longer works after upgrading to Sonoma (Issue #147)

Traceback (most recent call last): File "/opt/homebrew/bin/meld", line 111, in import meld.conf # noqa: E402 ^^^^^^^^^^^^^^^^ File "/opt/homebrew/lib/python3.11/site-packages/meld/conf.py", line 5, in from Foundation import NSBundle ModuleNotFoundError: No module named 'Foundation' I installed both python modules Foundation and PyObjC, but it is still not working. I personally hate python, it always has problem like that .... does anyone know how to resolve that? — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: ***@***.***>
AravindGopala commented 1 year ago

Meld on Sonoma is broken for me as well.

Uluwatta commented 1 year ago

Same here :(

imndx commented 1 year ago

Flow the build guide,but end with: jhbuild build: failed to unpack /Users/imndx/gtk/source/pkgs/zlib-1.3.tar.xz

carcinocron commented 1 year ago

same problem, is there an alternative for meld?

yes, and they are all hot garbage. I thought meld performed a little slow on OSX and went on a brief tour seeing what else is out there. Almost everything else was 1.) also slow or slower 2.) missing extremely basic 101 features.

eaanillol commented 1 year ago

Hi Meld team. Are there news? This is an important tool to work.

JoeLyga commented 1 year ago

Hi all, for everyone’s info: This is a fork of Meld designed to make it work on Mac. This is not part of the main Meld project. I don’t know if the original person who created this fork is still working on the project. But if anyone is able to build and package a recompiled version of this, than that would be awesome. I tried myself, but got stuck on the packaging part.

thomas-hansen-afterpay commented 1 year ago

Having the same issue on Mac OS Sonoma 14.0 the app keeps crashing when trying to launch. Is there any way to install the Meld app via homebrew?

imndx commented 1 year ago

@JoeLyga @enryfox Could you share you compile progress?I try to build meld from source, but with no lucky. Thanks.

venugopalnaiduch-connsecure commented 1 year ago

I'm facing an issue with my local build. Can anyone help if they've encountered the same issue before?

Build Errors

Build type: native build Project name: meld Project version: 3.21.2 Host machine cpu family: aarch64 Host machine cpu: aarch64 Program python3 found: YES (/Library/Frameworks/Python.framework/Versions/3.11/bin/python3) Found pkg-config: /opt/homebrew/bin/pkg-config (0.29.2) Run-time dependency python3 found: YES 3.11 Run-time dependency gtk+-3.0 found: YES 3.24.38 Run-time dependency glib-2.0 found: YES 2.78.0 Run-time dependency gtksourceview-4 found: YES 4.8.4 Run-time dependency pygobject-3.0 found: YES 3.46.0 Found CMake: /opt/homebrew/bin/cmake (3.27.7) Run-time dependency py3cairo found: NO (tried pkgconfig and cmake)

meson.build:23:0: ERROR: Dependency "py3cairo" not found, tried pkgconfig and cmake

A full log can be found at /Users/venugopalnaidu/PycharmProjects/meld/_build/meson-logs/meson-log.txt WARNING: Running the setup command as meson [options] instead of meson setup [options] is ambiguous and deprecated.

Thanks In Advance.

krdian commented 1 year ago

@venugopalnaiduch-connsecure

Have yoou tried to install py3cairo ?
brew install py3cairo

krdian commented 1 year ago

On my laptop I can build and install meld but afterwards, when i trying to run it i'm getting error:

meld Traceback (most recent call last): File "/opt/homebrew/bin/meld", line 96, in import meld.conf # noqa: E402 ModuleNotFoundError: No module named 'meld'

EDIT:

Looks like wrong site-packages path is defined, instead of '/opt/homebrew/lib/python3.11/site-packages/meld' has been chosen: '/opt/homebrew/opt/homebrew/lib/python3.11/site-packages/meld'. I need to check installation script.

enryfox commented 1 year ago

py3cairo (for reason beyond me) is missing its pkgfile so that pkg-config can find it during the configure stage. Anyway in the end I was not able to run meld, python is complaining for a missing import (Foundation) which is indeed installed and present. I needed urgently this tool for work and this project is abandoned by the original author so we are on our own. In the end I had to buy a license for Beyond Compare.

fekete-robert commented 1 year ago

@thomas-hansen-afterpay : the version installed with brew crashes as well :(

8thHalfHour commented 1 year ago

@fekete-robert @thomas-hansen-afterpay I can confirm this is true today with the brew installation on Sonoma v14.0.0.

rybalkoss commented 1 year ago

Solution for missing Foundation

Foundation is the part of pyobjc, but if I installed using pip3,Foundation was still missing. I installed objc from source, and it worked https://github.com/ronaldoussoren/pyobjc

u007 commented 1 year ago

Solution for missing Foundation

Foundation is the part of pyobjc, but if I installed using pip3,Foundation was still missing. I installed objc from source, and it worked https://github.com/ronaldoussoren/pyobjc

nice, did it crash on open?

imndx commented 1 year ago

@rybalkoss

Thanks for your comment, and I've made some progress.

git clone https://github.com/ronaldoussoren/pyobjc
cd pyobjc
python3 pyobjc/setup.py install
brew install gtk-mac-integration
./bin/meld

Then I cna launch Meld

image
imndx commented 1 year ago

More comment:

Python: 3.11

brew install gtk+3
brew install gtksourceview4
brew install gnome-icon-theme
canhascodez commented 1 year ago

Pieced together from a few days worth of wrangling:

pip3 install pyobjc
brew install gtk+3 gtksourceview4 gnome-icon-theme desktop-file-utils itstool py3cairo cmake pygobject3 meson
mkdir /usr/local/Cellar/py3cairo/1.25.0/lib/pkgconfig
cat << 'EOF' > /usr/local/Cellar/py3cairo/1.25.0/lib/pkgconfig/py3cairo.pc
prefix=/usr

Name: Pycairo
Description: Python 3 bindings for cairo
Version: 1.25.0
Requires: cairo
Cflags: -I${prefix}/include/pycairo
Libs:
EOF
ln -s /usr/local/Cellar/py3cairo/1.25.0/lib/pkgconfig/py3cairo.pc /usr/local/lib/pkgconfig/py3cairo.pc

That should probably allow meld to be built, installed, run, unless I missed something.

u007 commented 1 year ago

Pieced together from a few days worth of wrangling:

pip3 install pyobjc
brew install gtk+3 gtksourceview4 gnome-icon-theme desktop-file-utils itstool py3cairo cmake pygobject3 meson
mkdir /usr/local/Cellar/py3cairo/1.25.0/lib/pkgconfig
cat << 'EOF' > /usr/local/Cellar/py3cairo/1.25.0/lib/pkgconfig/py3cairo.pc
prefix=/usr

Name: Pycairo
Description: Python 3 bindings for cairo
Version: 1.25.0
Requires: cairo
Cflags: -I${prefix}/include/pycairo
Libs:
EOF
ln -s /usr/local/Cellar/py3cairo/1.25.0/lib/pkgconfig/py3cairo.pc /usr/local/lib/pkgconfig/py3cairo.pc

That should probably allow meld to be built, installed, run, unless I missed something.

still getting a blank window

pequeurb commented 1 year ago

I managed to build and install with ninja with the help of the replies above. (which wasn't easy as a 2 week old mac user, it didn't help that everywhere there's the assumption that things are installed in /usr , but for me it's usually in /opt for some reason 😓)

But when I try to start meld after that, I get this:

Traceback (most recent call last):
  File "/opt/homebrew/bin/meld", line 111, in <module>
    import meld.conf  # noqa: E402
    ^^^^^^^^^^^^^^^^
ModuleNotFoundError: No module named 'meld'

I found some post saying to specify the version in the meld file, but unfortunately that didn't work either.

yousseb commented 1 year ago

I will try to put some time to prepare a new meld build this week-end. I don't expect this to be an easy/fast fix and I do think that it will take a couple of weeks to rebuild the whole thing. My apologies, guys, but I seriously think that the whole GTK-3 on macOS is just an after-thought and that GTK-4 is key prior to do any work. On the other hand, I can see how this is affecting too many people, so I will try to do my best.

For the record: meld/GTK-4 is finally seeing some action. https://gitlab.gnome.org/GNOME/meld/-/issues/664

JoeLyga commented 1 year ago

Thanks Yousseb! Your work on the MacOS port is very much appreciated by all of us :)

mrasco commented 1 year ago

Firstable, hat off to @yousseb for his work!

Got it work by following @canhascodez instructions but menu is not complete, only "python" menu: image

idemax commented 1 year ago

here is @yousseb ?