TagUI: dyld: Library not loaded error on macOS (OpenSSL missing)

Welcome to TagUI GitHub page 🤖! TagUI is a free RPA tool by AI Singapore (to automate digital processes). There’s a Python package built on TagUI called RPA for Python 🐍 with a similar issue and already has an automated fix.

This error is happening because macOS decided to drop OpenSSL and switched to LibreSSL. Furthermore, macOS Homebrew switched from OpenSSL v.1.0 to v1.1, breaking many other apps that are dependent on OpenSSL v1.0. The solution below may or may not work for other apps, be sure to check with their respective maintainers to confirm.

===== PROBLEM =====

I’ve come across a feedback from a macOS user that below error happens when running TagUI.

dyld: Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib

===== RECOMMENDED SOLUTION =====

Hi Guys, for TagUI @Stwissel may have found the permanent solution. Note that this solution may not help for other projects. Download directly from following link. After unzipping, put contents of unzipped folder into tagui/src/phantomjs folder. https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-macosx.zip

Though above zip is PhantomJS v2.1.1 (same as TagUI packaged PJS), total file size for this zip after extraction is different. It might be Ariya, creator of PhantomJS, put in a fix already just to solve this headache with macOS/OpenSSL/Homebrew.

===== DEPRECATED SOLUTION =====

There is a new dependency in newer versions of macOS. To fix the error do the following. It installs Homebrew (a package manager for macOS) and installs OpenSSL for https connections. There are 2 uninstall commands below to first remove OpenSSL v1.1, then remove any dead OpenSSL v1.0, before installing a custom OpenSSL v1.0 formula which works without having to build with Xcode.

If you don’t have Homebrew or don’t know what is it

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
brew uninstall openssl; brew uninstall openssl; brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

Or if you already have Homebrew installed

brew uninstall openssl; brew uninstall openssl; brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

One last thing… If you encounter problems using brew, try the solution from @mrtoadsc near bottom of this page.

About this issue

  • Original URL
  • State: closed
  • Created 6 years ago
  • Reactions: 623
  • Comments: 118 (32 by maintainers)

Commits related to this issue

Most upvoted comments

This worked for me:

brew install rbenv/tap/openssl@1.0
ln -sfn /usr/local/Cellar/openssl@1.0/1.0.2t /usr/local/opt/openssl

Update April 2021

Old answer (February 2020)

I resolved the issue by switching my active OpenSSL version after installing the custom tap provided above

brew switch openssl 1.0.2t

Source: https://stackoverflow.com/questions/59006602/dyld-library-not-loaded-usr-local-opt-openssl-lib-libssl-1-0-0-dylib

Here’s what worked for me

  1. I did what @mrtoadsc had suggested in https://github.com/kelaberetiv/TagUI/issues/86#issuecomment-532462565
  2. I modified the solution of @kensoh https://github.com/kelaberetiv/TagUI/issues/86#issuecomment-560139852
brew uninstall --ignore-dependencies openssl; brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

Hope this helps

Update: Keep in mind, that I had to use --ignore-dependencies flag, because I have other packages installed that depend on OpenSSL.

This worked for me:

brew install rbenv/tap/openssl@1.0
ln -sfn /usr/local/Cellar/openssl@1.0/1.0.2t /usr/local/opt/openssl

Thank you @KungFuLucky7. You are a gentleman and a scholar! Worked for me on Catalina and Homebrew 2.5.8

There is a new dependency possibly in newer versions of macOS. To fix the error do the following. It installs Homebrew (a package manager for macOS) and installs OpenSSL for https connections.

If you do not have Homebrew or don’t know what is Homebrew

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew uninstall openssl; brew uninstall openssl; brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

Or if you already have Homebrew installed

brew uninstall openssl; brew uninstall openssl; brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

  If you encounter problems using brew, try the solution from @mrtoadsc near bottom of this page.

Switch to an older openssl package, via SO

brew switch openssl 1.0.2s

Just do a brew switch openssl 1.0.2t, in my case the only openssl 1.0.x version previously installed with brew

I stumbled across this thread while trying to resolve my own dyld: Library not loaded libssl issue. In more recent versions of MacOS, they introduced a feature called System Integrity Protection which prevents packages from writing to protected directories like /bin or /usr/lib. Even commands like brew link openssl --force will not work.

You must disable SIP in order to copy/link the open ssl libraries to the correct destination, You can do this by going into Recovery Mode (reboot, Cmd-R at the Apple logo), open a Terminal and execute the command csrutil disable, reboot and then you can copy the files into /usr/lib. This is what worked for me. Perhaps you can copy the libssl, libcrypto files to /usr/loca/lib - which doesn’t require disabling SIP - but I didn’t try that.

Good luck!

1- Download the file: wget https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

2 - Run brew with the file downloaded: brew install openssl.rb

another datapoint the same user fixes the issue with just the following without doing the linking step (he already has Homebrew) so the first line /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" is not needed.

# outdated solution in this code block, see updated solution above
https://github.com/kelaberetiv/TagUI/issues/86#issue-303370944

another datapoint where a macos user encounters the same issue. it could be the 10.13 release change in behavior around OpenSSL.

Here’s what worked for me

  1. I did what @mrtoadsc had suggested in #86 (comment)
  2. I modified the solution of @kensoh #86 (comment)
brew uninstall --ignore-dependencies openssl; brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

Hope this helps

Update: Keep in mind, that I had to use --ignore-dependencies flag, because I have other packages installed that depend on OpenSSL.

For what it’s worth, i had to use brew intall openssl to make it work.

I followed the instructions outlined here and disabled System Integrity Protection. When I try to run these steps: brew uninstall openssl; brew uninstall openssl; brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb, I still get the following error:

Calling Non-checksummed download of openssl formula file from an arbitrary URL is disabled! Use 'brew extract' or 'brew create' and 'brew tap-new' to create a formula file in a tap on GitHub instead.

Any suggestions?

@kensoh this command

brew upgrade

can be a massive disrupter for your entire system with no way back, and shouldn’t be taken (nor recommended) lightheartedly. Depending on your system, it will get your computer busy for hours, and will upgrade every single package from your installation, which is something you probably (most certainly) do NOT want.

Recommending this with no warnings just to fix an openssl package is quite irresponsible, and is akin to burning an entire forest for someone who just wants to warm his dinner. I can’t believe this post was so overwhelmingly upvoted.

@JivanRoquet thanks for pointing that out! Running brew update $ brew upgrade got me in this situation in the first place. While looking for a fix I came across this thread. What worked for me were two of the lines from @sinaahmadi

brew uninstall --ignore-dependencies openssl
brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

Thanks! 😊

Just upgraded to macOS Catalina, I run into this same problem. I preferred not to modify anything regarding my System Integrity Protection, so the following could fix my problem:

brew uninstall --ignore-dependencies openssl
brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

Thanks mate. I have ceased my employment with my previous company recently. I am thinking about providing consultancy jobs related to AI. I intend to return to work in 6 to 12 months. I have a request for a robot office reception. Case illustration: a tablet at the office counter. It sense motion near it. Wakes up and say “Hi, are you here to visit an employee or deliver?” It listens for a name and search database & call employee to inform visitor. In the meantime, it will communicate with visitor to register name, contact & purpose of visit. It listens for “deliver” too. If yes, it will trigger a drop box open, and request the deliver person to drop the delivery. As the delivery man drop the item, a few video will be captured as proof of delivery. And the system will communicate with the delivery man for confirmation including generate a signed POD for print.

I am thinking it is somewhat related to your system but require chatbot integration, and ability to integrate with sensors.

Please share any guidance if available.,

On Tue, Apr 17, 2018 at 10:51 PM, Ken Soh notifications@github.com wrote:

I see… This step-by-step tutorial https://github.com/kelaberetiv/TagUI/blob/master/src/media/RPA Workshop.md may be useful. Or this video talk at FOSSASIA https://www.youtube.com/watch?v=u1x2HOV9Jmg with demo of TagUI features. Yes TagUI has integration with Sikuli to control UI interactions (including desktop applications) using visual recognition and OCR. But some automation scenarios needs greater control than this.

For example clicking on cell J10 on an Excel spreadsheet. Doing that by specifying a cell image to click on won’t find the right cell. Open-source apps such as AHK or Roro can have automation scripts to do such actions. Integrating with them will let TagUI do more types of automation.

Now the run step can be used to call AHK or Roro, thinking if there is a way to make it even easier.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/kelaberetiv/TagUI/issues/86#issuecomment-382021578, or mute the thread https://github.com/notifications/unsubscribe-auth/AjZE7AuvPLTomy_KgKtW_WBfDTEKf6heks5tpgF6gaJpZM4SiNIS .

@razvanphp / @snusmu - If it is mac, You can find the version of openssl from here - ls /usr/local/Cellar/openssl.

Based on version you find, you can switch your openssl version :

brew switch openssl 1.0.2r
# or 
brew switch openssl 1.0.2s
# or
brew switch openssl 1.0.2t

This will resolve the wget issue.

brew switch openssl 1.0.2t

After half a day of googling and attempting to install/reinstall openssl, this finally worked for me. Thanks

@kensoh this command

brew upgrade

can be a massive disrupter for your entire system with no way back, and shouldn’t be taken (nor recommended) lightheartedly. Depending on your system, it will get your computer busy for hours, and will upgrade every single package from your installation, which is something you probably (most certainly) do NOT want.

Recommending this with no warnings just to fix an openssl package is quite irresponsible, and is akin to burning an entire forest for someone who just wants to warm his dinner. I can’t believe this post was so overwhelmingly upvoted.

brew switch openssl 1.0.2t

Thank you ns11! That fixed it for me!! 👍

found this link since my wget was not working, for wget reinstalling it solved the issue on 10.15.4

brew uninstall wget
brew install wget

brew reinstall openssl@1.1

Brilliant - that solved one of the issues - thank you!!

But I still get the following, where it’s now looking in the /openssl/ rather than /openssl@1.1/ directory:

dyld: Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
  Referenced from: /usr/local/opt/mysql@5.7/bin/mysql
  Reason: image not found

Is there a way to install an unversioned version?? If I try brew reinstall openssl it says: Reinstalling openssl@1.1

you could try brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

im getting this error Error: Calling Non-checksummed download of openssl formula file from an arbitrary URL is disabled! Use ‘brew extract’ or ‘brew create’ and ‘brew tap-new’ to create a formula file in a tap on GitHub instead. If reporting this issue please do so at (not Homebrew/brew or Homebrew/core): https://github.com/tebelorg/Tump/issues/new

This worked for me:

brew install rbenv/tap/openssl@1.0
ln -sfn /usr/local/Cellar/openssl@1.0/1.0.2t /usr/local/opt/openssl

This works for me!

brew switch openssl 1.0.2r worked for me as 1.0.2t was showing: openssl does not have a version “1.0.2t” in the Cellar.

Welcome to TagUI GitHub repository! TagUI is a command-line tool for digital process automation (RPA). This error is happening because macOS decided to drop OpenSSL and switched to LibreSSL. There are many other apps having this error, the solution below may or may not work for other apps, be sure to check with their respective maintainers to confirm.

===== P R O B L E M =====

I’ve come across a feedback from a macOS user that below error happens when running TagUI.

dyld: Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib

===== S O L U T I O N =====

There is a new dependency in newer versions of macOS. To fix the error do the following. It installs Homebrew (a package manager for macOS) and installs OpenSSL for https connections.

If you do not have Homebrew or don’t know what is Homebrew

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew uninstall openssl; brew uninstall openssl; brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

Or if you already have Homebrew installed

brew uninstall openssl; brew uninstall openssl; brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

===== N O T E =====

If you encounter problems using brew, try the solution from @mrtoadsc near bottom of this page.

OMG. I love you.

if you install the current version and after that copy the old version to the folder actually works brew install // install 1.1 version download libcrypto.1.0.0.dylib and libssl.1.0.0.dylib so move them to /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib and /usr/local/opt/openssl/lib/libssl.1.0.0.dylib I know that is not an elegant way but if it works is better than nothing ah I search but for example this repository have that mentioned files https://github.com/zoom/zoom-sdk-macos/tree/master/ZoomSDK

I’m not sure what is the above command FJH that triggers the error message. Do you mean you have problems running MySQL? If yes, you should raise the issue on MySQL issues or community forum page.

If you mean an existing TagUI script now cannot work after installing MySQL, you can try the following to see if it works, by removing and installing OpenSSL again.

# outdated solution in this code block, see updated solution above
https://github.com/kelaberetiv/TagUI/issues/86#issue-303370944

1- Download the file: wget https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

2 - Run brew with the file downloaded: brew install openssl.rb

Works for me!

Thanks @heatherbooker @kolja-lucht and @JivanRoquet who originally pointed this out.

I agree that something should be done. This thread has 4000 unique visitors EVERY WEEK.

Though the official solution at the top is updated to remove this risky command, there are bits and pieces scattered in the whole thread which still has the brew upadate && brew upgrade command.

In order to avoid collateral damage by any visitors, I have decided and removed all references of this command, including posts made by users. Though this modification will somehow warp the conversation thread of how the solution developed, and may break the flow of what other users have shared.

It is still a smaller cost than if anyone accidentally run that supposed best practice command and got into issues with the dev environment. I found that command somewhere as the recommended solution but it was too long ago and probably the source has been updated.

Where the reference can’t be removed legibly, I over-wrote with below code block.

# outdated solution in this code block, see updated solution above
https://github.com/kelaberetiv/TagUI/issues/86#issue-303370944

Just upgraded to macOS Catalina, I run into this same problem. I preferred not to modify anything regarding my System Integrity Protection, so the following could fix my problem:

brew uninstall --ignore-dependencies openssl
brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

After this procedure, this message appears

dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.64.dylib Referenced from: /usr/local/opt/php@5.6/sbin/php-fpm Reason: image not found

MacOs Catalina PHP 5.6

I have a similar error after the same procedure quoted by @marcelloinfoweb , but with this error message ( Macos Catalina ) :

Library not loaded: /usr/local/opt/openssl@1.1/lib/libssl.1.1.dylib

Adding on, below flag will ensure uninstallation of openssl, but I’m won’t and can’t put this into the recommended solution at top of the page, at least for TagUI tool users.

brew uninstall --ignore-dependencies openssl

This is because the flag will force uninstallation even though there are other apps on the computer that requires the openssl version that is being uninstalled. While that may fix the problem for one app, it almost certainly will break some other app(s) on the Mac laptop.

For eg, it could make TagUI or the tool you are fixing to work, while breaking other apps that are dependent on a particular version of openssl. Will have to leave it to users to decide and make a call what is more important to be working.

For me i had to run brew reinstall php and i’m back up and running

You only need to update wget.

# outdated solution in this code block, see updated solution above
https://github.com/kelaberetiv/TagUI/issues/86#issue-303370944

is enough.

Here’s what worked for me

  1. I did what @mrtoadsc had suggested in #86 (comment)
  2. I modified the solution of @kensoh #86 (comment)
brew uninstall --ignore-dependencies openssl; brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

Hope this helps Update: Keep in mind, that I had to use --ignore-dependencies flag, because I have other packages installed that depend on OpenSSL.

For what it’s worth, i had to use brew intall openssl to make it work.

Thanks

FYI: In my case, the issue was stemming from a conflict betwen OSX (10.11) ssh installed version and a newly installed (via Brew) openssh client. {solution was simply to uninstall openssh: brew uninstall openssh}

I had that problem too today on macOS 10.14.6 The solution was: don’t touch brew - you don’t want OpenSSL 1.0 on your system Head over to the phantomJS download page and download the last release 2.1.1 Unzip the the download and locate the phantomjs file (in bin) replace the file in [taguihome]/src/phantomjs/bin with it. This will work with OpenSSL 1.1.1 (what’s current in brew)

As @DuckMasterAl said, the correct command is:

brew uninstall --ignore-dependencies openssl; brew uninstall --ignore-dependencies openssl; brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

Really depressing - the disasterous brew upgrade command has wrecked everything! I can’t even remember what problem I was trying to solve when I read that “solution”… now in a nightmare of variations on the following, no matter which advice I follow from above:

dyld: Library not loaded: /usr/local/opt/openssl@1.1/lib/libcrypto.1.1.dylib
  Referenced from: /usr/local/bin/php
  Reason: image not found

I use MAMP Pro on Mac Catalina - not sure if that and it’s diferent installation of php are hiding the problem… I also suspect that in my eagerness to get it fixed, running brew uninstall –ignore-dependencies openssl was probably stupid, as now a load of other programs have lost their dependencies… grrrrr.

Any other suggestions appreciated - I don’t want to disable SIP. Must be a better solution…!

brew reinstall openssl@1.1

Really depressing - the disasterous brew upgrade command has wrecked everything! I can’t even remember what problem I was trying to solve when I read that “solution”… now in a nightmare of variations on the following, no matter which advice I follow from above:

dyld: Library not loaded: /usr/local/opt/openssl@1.1/lib/libcrypto.1.1.dylib
  Referenced from: /usr/local/bin/php
  Reason: image not found

I use MAMP Pro on Mac Catalina - not sure if that and it’s diferent installation of php are hiding the problem… I also suspect that in my eagerness to get it fixed, running brew uninstall –ignore-dependencies openssl was probably stupid, as now a load of other programs have lost their dependencies… grrrrr.

Any other suggestions appreciated - I don’t want to disable SIP. Must be a better solution…!

I’m afraid I have not heard of any solution to have 2 different versions of OpenSSL running on the same Mac computer. I know that sucks, especially in situations where you want to use both software at the same time but can’t. Will look forward to hearing from other experts how that can be done.

After getting tired of being switching among versions, I have decided to look for one solution to my situation. I wanted to reinstall mongodb in order to see if mongo was truly dependent of openssl 1.0.2 or it was just my version of mongodb. I was surprised when I found that Homebrew has delete mongodb from its core formulas since mongo was migrated to a non open-source license. So, following this thread in stackOverflow I was able to install mongodb again using tap https://stackoverflow.com/questions/57856809/installing-mongodb-with-homebrew So I run this command in my terminal

brew tap mongodb/brew
brew install mongodb-community
brew services start mongodb-community

and voila, I can used mongo’s terminal commands with openssl 1.1

Solution give in this link is totally correct. But if still getting the same error, try to remove existing openssl and install it again.

brew remove openssl
brew install openssl

The perfect solution in macOS Catalina with PHP 7.2 https://github.com/kelaberetiv/TagUI/issues/86#issue-303370944

I’ve been having this same issue with wget, tried reinstalling openssl to no avail.

brew uninstall wget
brew install wget

^this finally made it work for me 🙌

@frakman1 the goal for this particular project is to make OpenSSL v1.0 available on macOS. Using uninstall twice is a more foolproof 1-liner to make sure any v1.1 is removed, followed by any dead and not working v1.0 is removed (which can happen and block the installation), before doing the installation from custom formula. More details in this thread - https://github.com/kelaberetiv/TagUI/issues/635#issuecomment-560185670

It looks like the app you are using is still having a dependency for OpenSSL v1.0. You can try -

  1. ideally, if it’s possible to get an updated version of the app that uses OpenSSL v1.1
  2. check with the maintainer of the project (Django?) for advice what’s the right approach
  3. as a last resort, try the following self-hosted formula which helps to install OpenSSL v1.0 without user having to use XCode to build for macOS (the official method from Homebrew requires user to build (details here on why the self-hosted formula is used - #635)
brew uninstall openssl; brew uninstall openssl; brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

Note that above solution and this thread is to solve a problem faced by users using TagUI tool. Though it may solve similar problems faced by users of other apps, it may not. Do check the docs, issues or mailing list of the app you are using to see if they have found and recommended an official solution for their apps around this OpenSSL issue due to change in macOS (to switch to LibreSSL) and then later on a change in Homebrew (to move from OpenSSL v1.0 to v1.1).

I uninstalled the 1.1 version and installed the v1.0.0 version fixed this issue, seems like my django need a 1.0.0 version but I have 1.1 previously, thank you!

It looks like the app you are using is still having a dependency for OpenSSL v1.0. You can try -

  1. ideally, if it’s possible to get an updated version of the app that uses OpenSSL v1.1
  2. check with the maintainer of the project (Django?) for advice what’s the right approach
  3. as a last resort, try the following self-hosted formula which helps to install OpenSSL v1.0 without user having to use XCode to build for macOS (the official method from Homebrew requires user to build (details here on why the self-hosted formula is used - https://github.com/kelaberetiv/TagUI/issues/635)
brew uninstall openssl; brew uninstall openssl; brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

  Note that above solution and this thread is to solve a problem faced by users using TagUI tool. Though it may solve similar problems faced by users of other apps, it may not. Do check the docs, issues or mailing list of the app you are using to see if they have found and recommended an official solution for their apps around this OpenSSL issue due to change in macOS (to switch to LibreSSL) and then later on a change in Homebrew (to move from OpenSSL v1.0 to v1.1).

That’s great! You are absolutely right about dependencies. I have a dozen of other packages relying on openssl. So, if no better solution is found, the one I’ve posted should be considered only after Ken’s and Mark’s failed to resolve issue.

Updated solution to work with newer version of Homebrew which drops OpenSSL v1.0 for v1.1 More details on this updated solution to restore OpenSSL v1.0 at this issue https://github.com/kelaberetiv/TagUI/issues/635


===== S O L U T I O N =====

There is a new dependency in newer versions of macOS. To fix the error do the following. It installs Homebrew (a package manager for macOS) and installs OpenSSL for https connections.

If you do not have Homebrew or don’t know what is Homebrew

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew uninstall openssl; brew uninstall openssl; brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

Or if you already have Homebrew installed

brew uninstall openssl; brew uninstall openssl; brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

===== N O T E =====

If you encounter problems using brew, try the solution from @mrtoadsc here - https://github.com/kelaberetiv/TagUI/issues/86#issuecomment-532462565

Jamess-MacBook-Pro:src jameschan$ ./tagui samples/try1 chrome dyld: Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib Referenced from: /Users/jameschan/Downloads/tagui/src/phantomjs/bin/phantomjs Reason: image not found

i am reading the above can fix but can explain what is wrong?? Thanks

Hi Guys, for TagUI @Stwissel may have found the permanent solution. Note that this solution may not help for other projects. Download directly from below link. After unzipping, put contents of unzipped folder into tagui/src/phantomjs folder.

https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-macosx.zip

Though above zip is PhantomJS v2.1.1 (same as TagUI packaged PJS), total file size for this zip after extraction is different. It might be Ariya, creator of PhantomJS, put in a fix already just to solve this headache with macOS/OpenSSL/Homebrew.

@Maks1708 -> Head over to the phantomJS download page and download the last release 2.1.1 Unzip the the download and locate the phantomjs file (in bin) replace the file in [taguihome]/src/phantomjs/bin with it. This will work with OpenSSL 1.1.1 (what’s current in brew)

Any suggestions? Don’t bother with this approach. While SIP is a pita, it is there for a reason. Also you don’t want OpenSSL1.0 on your system. Follow the steps I outlined above and replace the phantomJS with a newer version.

The proper brew command should be brew uninstall --ignore-dependencies openssl; since openssl will probably be in some dependencies (at least it was for me)

@kensoh Thanks for all your work debugging in this thread!

https://github.com/kelaberetiv/TagUI/issues/86#issuecomment-371766145 was the first thing I tried and it would be awesome to have JivanRoquet’s disclaimer that one should be careful when running those lines added to that message, if you would consider that. 😃

Hi @JivanRoquet thanks for pointing out! I have the line brew update && brew upgrade as part of the solution when I originally research for the solution to the problem. Though this was way back and I can’t backtrace the source of having this command.

The solution works for me and I believe works for significant number of people, thus the upvotes and positive reinforcement that this is still the best solution. From your feedback, I can understand why this line could be a big problem, and I’ve removed that line from the solution summary.

Hopefully the solution still works without that line!

It theoretically should, because the solution has changed along the way with Homebrew migration to OpenSSL v1.1, to require hosting a custom formula in order to solve the problem, without having to use XCode to compiled from source on user laptops.

I’m afraid I have not heard of any solution to have 2 different versions of OpenSSL running on the same Mac computer. I know that sucks, especially in situations where you want to use both software at the same time but can’t. Will look forward to hearing from other experts how that can be done.

Just running

# outdated solution in this code block, see updated solution above
https://github.com/kelaberetiv/TagUI/issues/86#issue-303370944

worked for me; no need to uninstall/reinstall OpenSSL.

@kensoh

brew uninstall openssl; brew uninstall openssl; brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

Why do you uninstall openssl twice?

It looks like you have some developer tools installed on your laptop, and that OpenSSL v1.1 is also presented, installed through Homebrew. If the reason for uninstalling v1.1 to have v1.0 in order to use TagUI, then yes you can try uninstalling to ignore the dependencies to get v1.0. However, if v1.0 has issues later on for some of those apps above, then you’ll have to uninstall v1.0 to put back v1.1 for those apps to work.

Adding on, a permanent fix for this issue is being worked on now. First, PhantomJS has recently started active development, I’m checking with the maintainer on this to see if he can update to using v1.1 OpenSSL as the standard or better still, switch to LibreSSL which comes with macOS. Secondly, a POC on migrating TagUI’s execution engine to Node.js is being explored to see if that makes sense for the project and its users.

Thanks Pavel for sharing! Hate that there is so much user friction around this. @siowyisheng is now working on a POC to evaluate the possibility of overhauling TagUI to be based on NodeJS, instead of the current PhantomJS, as the execution engine.

If that is viable, the future major release would not subject users to these frictions. Also, I noticed that increasingly it becomes more friction for user and developers for macOS. Number of changes this year with macOS that need users and developers to change the way things are done and do extra. Windows does not seem to have similar issues.

PS - adding on, Pavel’s version to include --ignore-dependencies option is probably because there are other packages on his macOS that is dependent on OpenSSL. For the time being, I won’t put that as the primary method and leave it to user to decide. Because trying to let TagUI run by doing this might break other apps of user that requires OpenSSL v1.1 instead of v1.0.

Thanks @AnujAroshA for sharing your tip!

Thanks @ntoghrama for sharing your experience tackling this problem.

Adding on, I hate to say this (because macOS is my favourite OS), but it seems harder and harder to deploy open-source apps on macOS. First they remove OpenSSL last year, which introduced this issue. Recently they add strict security controls in the macOS Catalina update.

This create additional steps for users to use their apps. For eg, users may need to manually add PhantomJS (execution engine for TagUI) to the list of approved apps, and also manually allow Java (used by SikuliX visual automation engine) to control the mouse and read from the screen.

More details on the solutions at https://github.com/kelaberetiv/TagUI/issues/601 and https://github.com/kelaberetiv/TagUI/issues/598 (have also updated readme)

I don’t know how much more inconvenience is there going to be in future macOS releases 😢

Hi. I’m running Mac OS 10.12.6 (sierra).

After installing mysql connector cpp 8.0.17 this same issue happened:ENH-MBP:build enhering$ ./FJH dyld: Library not loaded: libssl.1.0.0.dylib Referenced from: /usr/local/mysql-connector-c+±8.0.17/lib64/libmysqlcppconn.7.dylib Reason: image not found Abort trap: 6 ENH-MBP:build enhering$

I already had openssl installed by brew. And I was using MySQL connector cpp 1.x.x before this without problems.

The MySQL connector cpp 8.0.17 package was downloaded from mysql website. They provide binaries for many distributions.