Skip to content

Instantly share code, notes, and snippets.

@syneart
Last active May 8, 2024 06:23
Show Gist options
  • Save syneart/4a8724cd479d31f0f742f499f807dcb2 to your computer and use it in GitHub Desktop.
Save syneart/4a8724cd479d31f0f742f499f807dcb2 to your computer and use it in GitHub Desktop.
Meld v3.21.0(r4) hotfix on MacOS with Sonoma(14) Intel CPU / Apple silicon (M1,M2,M3) CPU with Rosetta
### Test on https://github.com/yousseb/meld/releases/tag/osx-20
### OSX - 3.21.0 (r4) Sonoma
### !!! Note: You need put the Meld.app r4 build to the /Applications path first.
#!/bin/zsh
#Fix libpng16.16.dylib not found
install_name_tool -change /usr/local/opt/libpng/lib/libpng16.16.dylib @executable_path/../Frameworks/libpng16.16.dylib /Applications/Meld.app/Contents/Frameworks/libfreetype.6.20.0.dylib
#Fix libbrotlidec.1.dylib not found
install_name_tool -change /usr/local/opt/brotli/lib/libbrotlidec.1.dylib @executable_path/../Frameworks/libbrotlidec.1.dylib /Applications/Meld.app/Contents/Frameworks/libfreetype.6.20.0.dylib
#Make MacOS trust Meld.app
xattr -rd com.apple.quarantine /Applications/Meld.app
#if CPU type is Apple silicon, use Rosetta to execute
/usr/libexec/PlistBuddy -c "Set :LSRequiresNativeExecution false" /Applications/Meld.app/Contents/Info.plist
#Try to open Meld
open /Applications/Meld.app
#Meld CLI Setup
curl https://gist.githubusercontent.com/syneart/4a8724cd479d31f0f742f499f807dcb2/raw/meld_setup_cli.sh | zsh
#!/bin/zsh
RC_FILES=( .bashrc .zshrc )
for RC_FILE in "${RC_FILES[@]}"
do
[ -f ~/${RC_FILE} ] && {
( cat ~/${RC_FILE} | grep "alias meld=" ) && {
echo "Already put it at ~/${RC_FILE}"
}|| {
echo "alias meld='meld_script(){ /Applications/Meld.app/Contents/MacOS/Meld \$* 2>/dev/null & };meld_script'" >> ~/${RC_FILE}
. ~/${RC_FILE}
echo "Put it at ~/${RC_FILE} .. ok"
}
}
done
echo "[!] You may need to reopen your Terminal."
@LentoYe
Copy link

LentoYe commented Jan 12, 2024

Use below command to hotfix the Meld v3.21.0 (r4) from https://github.com/yousseb/meld/ on your own MacOS Sonoma. curl https://gist.githubusercontent.com/syneart/4a8724cd479d31f0f742f499f807dcb2/raw/meld_hotfix_sonoma.sh | zsh

Thanks a lot! Success right away.:)

@ilyagr
Copy link

ilyagr commented Jan 12, 2024

Very nice!

I failed at first, but that was because I was using the Homebrew version of Meld. The script worked immediately after I installed the correct version.

@ilyagr
Copy link

ilyagr commented Jan 12, 2024

I feel like this should also link to the relevant issue: yousseb/meld#151 (comment)

@syneart
Copy link
Author

syneart commented Jan 14, 2024

Use below command to hotfix the Meld v3.21.0 (r4) from https://github.com/yousseb/meld/ on your own MacOS Sonoma. curl https://gist.githubusercontent.com/syneart/4a8724cd479d31f0f742f499f807dcb2/raw/meld_hotfix_sonoma.sh | zsh

Thanks a lot! Success right away.:)

I’m glad this script has been helpful to you !

@syneart
Copy link
Author

syneart commented Jan 14, 2024

Very nice!

I failed at first, but that was because I was using the Homebrew version of Meld. The script worked immediately after I installed the correct version.

Thank you for your feedback. :)

@syneart
Copy link
Author

syneart commented Jan 14, 2024

I feel like this should also link to the relevant issue: yousseb/meld#151 (comment)

Yes, you are right. And hope this script snippet can help everyone.

@kanatos92
Copy link

It works like a charm, thanks @syneart
For people who don't read the comment lines (like me), this is for Meld v3.21.0 (r4). The "latest dmg" at Meld for OSX points to Meld v3.21.0 (r2), for which I think the script might work as well if substituting "libfreetype.6.dylib" for "libfreetype.6.20.0.dylib", but I have not tried it.

@AgilentGCMS
Copy link

AgilentGCMS commented Feb 3, 2024

Use below command to hotfix the Meld v3.21.0 (r4) from https://github.com/yousseb/meld/ on your own MacOS Sonoma. curl https://gist.githubusercontent.com/syneart/4a8724cd479d31f0f742f499f807dcb2/raw/meld_hotfix_sonoma.sh | zsh

Thanks a lot! Success right away.:)

Ditto! Even though the meld app icon had a big circle with a diagonal slash icon when I opened the dmg file, as if it was for the wrong OS, applying the hotfix made it work. Thanks @syneart!

@Burkazoid
Copy link

Thank you so much for this - worked perfectly on latest Mac with the version of Meld linked in the gist.

@sylviaegn
Copy link

THANK YOU !!!!

@syneart
Copy link
Author

syneart commented Mar 2, 2024

It works like a charm, thanks @syneart For people who don't read the comment lines (like me), this is for Meld v3.21.0 (r4). The "latest dmg" at Meld for OSX points to Meld v3.21.0 (r2), for which I think the script might work as well if substituting "libfreetype.6.dylib" for "libfreetype.6.20.0.dylib", but I have not tried it.

Thank you for your feedback. :)
In fact, making the corresponding modifications is not a problem. However, there may be some unknown issues when using the r2 version on macOS Sonoma. We'll have to wait and see what the author's next strategy is.

@msbahal
Copy link

msbahal commented Mar 5, 2024

Thank you! This is such a lifesaver! Worked perfectly on M1 Mac.

@mvasilkov
Copy link

This is glorious, thank you so much!

Meld is such a great app, but installing it got ridiculously hard at this point...

@yosepg
Copy link

yosepg commented Apr 2, 2024

It works like a charm, thanks @syneart For people who don't read the comment lines (like me), this is for Meld v3.21.0 (r4). The "latest dmg" at Meld for OSX points to Meld v3.21.0 (r2), for which I think the script might work as well if substituting "libfreetype.6.dylib" for "libfreetype.6.20.0.dylib", but I have not tried it.

thank you so much for enlighten me because I'm using Meld v3.21.0 (r2) and it doesn't work.
change it to Meld v3.21.0 (r4) now it works like charm..

thanks for the author @syneart

@robwilkerson
Copy link

robwilkerson commented Apr 25, 2024

I get a different error on a M3 silicon mac: Screenshot 2024-01-09 at 4 34 06 PM

I'm seeing the same thing on my work laptop (M1 chip). It looks like the r4 build may not be signed and my org has a policy that doesn't allow unsigned apps to be installed. Does that track with anyone else's understanding or experience?

If that's accurate, then the r2 release must be signed because it opens just fine. Is there any way to port this script so that it works for the r2 release as well?

@syneart
Copy link
Author

syneart commented May 2, 2024

I get a different error on a M3 silicon mac: Screenshot 2024-01-09 at 4 34 06 PM

I'm seeing the same thing on my work laptop (M1 chip). It looks like the r4 build may not be signed and my org has a policy that doesn't allow unsigned apps to be installed. Does that track with anyone else's understanding or experience?

If that's accurate, then the r2 release must be signed because it opens just fine. Is there any way to port this script so that it works for the r2 release as well?

Hi, If you are unable to use command to make MacOS trust, you can try the manual method.

or just use below command to hotfix the Meld v3.21.0 (r4). Note: you need put the Meld.app r4 build to the /Applications path first.
curl https://gist.githubusercontent.com/syneart/4a8724cd479d31f0f742f499f807dcb2/raw/meld_hotfix_sonoma.sh | zsh

Looking forward to hearing good news from you.

@robwilkerson
Copy link

Can confirm that this removes the untrusted aspect of r4! Still doesn't let me diff directories or files from the command line, which is unfortunate, but it's something...

@syneart
Copy link
Author

syneart commented May 3, 2024

Can confirm that this removes the untrusted aspect of r4! Still doesn't let me diff directories or files from the command line, which is unfortunate, but it's something...

According to the original functionality of the author, you can try the following alias commands I've created.

alias meld='meld_script(){ /Applications/Meld.app/Contents/MacOS/Meld $* 2>/dev/null & };meld_script'

And then try to use it in the same terminal, such as,

meld --diff /tmp /tmp ~/Pictures --diff /tmp ~/Documents

I've also added this functionality to this gist, you can just Overwrite with the original file and rerun the below script.

curl https://gist.githubusercontent.com/syneart/4a8724cd479d31f0f742f499f807dcb2/raw/meld_hotfix_sonoma.sh | zsh

Hoping it can help everyone.

@robwilkerson
Copy link

Updated my alias and I no longer get the error because of the redirection. The alias does launch meld, but it's an empty launch. Nothing actually being diffed.

meld ./.github/workflows/ ./.github/workflows/
[2] 79913

I haven't had a chance to mess with it much and will try to do so more today, but thanks for all of the work on this!

@robwilkerson
Copy link

My bad! I had double quotes in my alias. When I changed it to single, it's all good. This is genuinely huge for me. Thank you again!

@robwilkerson
Copy link

Can confirm that these steps work, @syneart , thank you again! I can launch app and, from the command line, diff both files and directories. Your patch seems to give me everything I really expect from Meld, so I'm crazy happy that I don't have to start using diffmerge or something else that just isn't as good.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment