Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

osx 12.2.1 (Apple M1 Pro): Can't install Erlang 24.3.4 #251

Closed
7stud opened this issue May 11, 2022 · 1 comment
Closed

osx 12.2.1 (Apple M1 Pro): Can't install Erlang 24.3.4 #251

7stud opened this issue May 11, 2022 · 1 comment

Comments

@7stud
Copy link

7stud commented May 11, 2022

I used MacPorts to install the prerequisites listed for OSX here:

https://github.com/asdf-vm/asdf-erlang#osx

including wxWidgets. But, when I tried to install the latest Erlang, the output said something about wxWidgets:

  wx             : wxWidgets was not compiled with --enable-webview or wxWebView developer 
                     package is not installed, wxWebView will NOT be available

Here's the output:

~% asdf plugin add erlang https://github.com/asdf-vm/asdf-erlang.git
~% asdf latest erlang
24.3.4
~% asdf install erlang 24.3.4
asdf_24.3.4 is not a kerl-managed Erlang/OTP installation
No build named asdf_24.3.4
Downloading 24.3.4 to /Users/7stud/.asdf/downloads/erlang/24.3.4...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100  102M  100  102M    0     0  12.9M      0  0:00:07  0:00:07 --:--:-- 14.1M
Extracting source code
Building Erlang/OTP 24.3.4 (asdf_24.3.4), please wait...
APPLICATIONS DISABLED (See: /Users/7stud/.asdf/plugins/erlang/kerl-home/builds/asdf_24.3.4/otp_build_24.3.4.log)
 * jinterface     : No Java compiler found
 * odbc           : ODBC library - link check failed

APPLICATIONS INFORMATION (See: /Users/7stud/.asdf/plugins/erlang/kerl-home/builds/asdf_24.3.4/otp_build_24.3.4.log)
 * crypto         : Using OpenSSL 3.0 is not yet recommended for production code.
 * wx             : wxWidgets was not compiled with --enable-webview or wxWebView developer package is not installed, wxWebView will NOT be available
 *         wxWidgets must be installed on your system.
 *         Please check that wx-config is in path, the directory
 *         where wxWidgets libraries are installed (returned by
 *         'wx-config --libs' or 'wx-config --static --libs' command)
 *         is in LD_LIBRARY_PATH or equivalent variable and
 *         wxWidgets version is 3.0.2 or above.

Erlang/OTP 24.3.4 (asdf_24.3.4) has been successfully built
Cleaning up compilation products for 
Cleaned up compilation products for  under /Users/7stud/.asdf/plugins/erlang/kerl-home/builds

Luckily, issue #203 provided some guidance. I used MacPorts to uninstall wxWidgets, then I followed the instructions posted by conradwt to manually install wxWidgets. After some trials, I got ./configure, make, and sudo make install to run error free, but now I can't install Erlang:

~% asdf install erlang 24.3.4 
asdf_24.3.4 is not a kerl-managed Erlang/OTP installation
The asdf_24.3.4 build has been deleted
Extracting source code
Building Erlang/OTP 24.3.4 (asdf_24.3.4), please wait...
APPLICATIONS DISABLED (See: /Users/7stud/.asdf/plugins/erlang/kerl-home/builds/asdf_24.3.4/otp_build_24.3.4.log)
 * jinterface     : No Java compiler found
 * odbc           : ODBC library - link check failed

APPLICATIONS INFORMATION (See: /Users/7stud/.asdf/plugins/erlang/kerl-home/builds/asdf_24.3.4/otp_build_24.3.4.log)
 * crypto         : Using OpenSSL 3.0 is not yet recommended for production code.

Build failed.
1 warning generated.
1 warning generated.
1 warning generated.
1 warning generated.
1 warning generated.
1 warning generated.
1 warning generated.
make[2]: *** [opt] Error 2
make[1]: *** [opt] Error 2
make: *** [libs] Error 2

Please see /Users/7stud/.asdf/plugins/erlang/kerl-home/builds/asdf_24.3.4/otp_build_24.3.4.log for full details.

Here is the error listed in otp_build_24.3.4.log:

In file included from gen/wxe_wrapper_6.cpp:23:
In file included from /usr/local/include/wx-3.1/wx/wx.h:24:
In file included from /usr/local/include/wx-3.1/wx/event.h:22:
In file included from /usr/local/include/wx-3.1/wx/cursor.h:75:
/usr/local/include/wx-3.1/wx/utils.h:749:35: warning: default member initializer for non-static d$
    wxEventLoop* m_modalEventLoop = NULL;
                                  ^
gen/wxe_wrapper_7.cpp:2342:58: error: call to member function 'AddTool' is ambiguous
  wxToolBarToolBase * Result = (wxToolBarToolBase*)This->AddTool(toolId,label,*bitmap,shortHelp,k$
                                                  ~~~~~~^~~~~~~
/usr/local/include/wx-3.1/wx/tbarbase.h:311:24: note: candidate function
    wxToolBarToolBase *AddTool(int toolid,
                       ^
/usr/local/include/wx-3.1/wx/tbarbase.h:527:24: note: candidate function
    wxToolBarToolBase *AddTool(int toolid,
                       ^
1 warning and 1 error generated.

I also can't install Erlang 23.3.4.14:

~% asdf install erlang 23.3.4.14
asdf_23.3.4.14 is not a kerl-managed Erlang/OTP installation
No build named asdf_23.3.4.14
Downloading 23.3.4.14 to /Users/7stud/.asdf/downloads/erlang/23.3.4.14...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 94.7M  100 94.7M    0     0  12.4M      0  0:00:07  0:00:07 --:--:-- 14.3M
Extracting source code
Building Erlang/OTP 23.3.4.14 (asdf_23.3.4.14), please wait...
APPLICATIONS DISABLED (See: /Users/7stud/.asdf/plugins/erlang/kerl-home/builds/asdf_23.3.4.14/otp_build_23.3.4.14.log)
 * jinterface     : No Java compiler found
 * odbc           : ODBC library - link check failed

Build failed.
In file included from /usr/local/include/wx-3.1/wx/event.h:22:
In file included from /usr/local/include/wx-3.1/wx/cursor.h:75:
/usr/local/include/wx-3.1/wx/utils.h:749:35: warning: default member initializer for non-static data member is a C++11 extension [-Wc++11-extensions]
    wxEventLoop* m_modalEventLoop = NULL;
                                  ^
1 warning generated.
1 warning generated.
make[2]: *** [opt] Error 2
make[1]: *** [opt] Error 2
make: *** [libs] Error 2

Please see /Users/7stud/.asdf/plugins/erlang/kerl-home/builds/asdf_23.3.4.14/otp_build_23.3.4.14.log for full details.

From otp_build_23.3.4.14.log:

In file included from wxe_callback_impl.cpp:21:
In file included from /usr/local/include/wx-3.1/wx/wx.h:24:
In file included from /usr/local/include/wx-3.1/wx/event.h:22:
In file included from /usr/local/include/wx-3.1/wx/cursor.h:75:
/usr/local/include/wx-3.1/wx/utils.h:749:35: warning: default member initializer for non-static d$
    wxEventLoop* m_modalEventLoop = NULL;
                                  ^
1 warning generated.
 CXX    arm-apple-darwin21.4.0/wxe_gl.o
1 warning generated.
 CXX    arm-apple-darwin21.4.0/gl_funcs.o   
gen/wxe_funcs.cpp:8289:28: error: taking the address of a temporary object of type 'wxBitmap' [-W$
 const wxBitmap * Result = &This->GetBitmap(); 
                           ^~~~~~~~~~~~~~~~~~
gen/wxe_funcs.cpp:8495:57: error: call to member function 'AddTool' is ambiguous
 wxToolBarToolBase * Result = (wxToolBarToolBase*)This->AddTool(*toolid,label,*bitmap,shortHelp,k$
                                                  ~~~~~~^~~~~~~
/usr/local/include/wx-3.1/wx/tbarbase.h:311:24: note: candidate function
    wxToolBarToolBase *AddTool(int toolid,
                       ^
/usr/local/include/wx-3.1/wx/tbarbase.h:527:24: note: candidate function
    wxToolBarToolBase *AddTool(int toolid,
                       ^
In file included from wxe_return.cpp:21:
In file included from ./wxe_return.h:31:
In file included from ./wxe_impl.h:29:
In file included from /usr/local/include/wx-3.1/wx/glcanvas.h:18:

Okay...somehow I got erlang 24.3.4 installed. The last thing I tried was deleting my manual installation of wxWidgets and manually reinstalling wxWidgets (manual installation instructions are listed in issue #203 by conradwt):

~% ls
Computing	Downloads	Music		erlang_programs
Desktop		Library		Pictures	wxWidgets
Documents	Movies		Public

~% rm -rf ./wxWidgets

I did add one flag to ~/.zshrc:

--with-ssl-incl=/opt/local:

So, this is what I have for asdf in my ~/.zshrc file:

#For asdf:                                                                    
. $HOME/.asdf/asdf.sh                                                         
                                                                              
#For asdf erlang installs with wxWidgets:                                     
export KERL_BUILD_DOCS=yes                                                    
export KERL_INSTALL_MANPAGES=yes                                              
export wxUSE_MACOSX_VERSION_MIN=11.3                                          
export EGREP=egrep                                                            
export CC=clang                                                               
export CPP="clang -E"                                                         
export KERL_USE_AUTOCONF=0                                                    
                                                                              
export KERL_CONFIGURE_OPTIONS="--disable-debug \                              
                               --disable-hipe \                               
                               --disable-sctp \                               
                               --disable-silent-rules \                       
                               --enable-darwin-64bit \                        
                               --enable-dynamic-ssl-lib \                     
                               --enable-kernel-poll \                         
                               --enable-shared-zlib \                         
                               --enable-smp-support \                         
                               --enable-threads \                             
                               --enable-wx \                                  
                               --with-ssl=/opt/local \                        
                               --with-ssl-incl=/opt/local \                   
                               --with-wx-config=/usr/local/bin/wx-config \    
                               --without-javac \                              
                               --without-jinterface \                         
                               --without-odbc"

Maybe those flags need to be setup up in ~/.zshrc BEFORE installing wxWidgets? Of course, make sure you start a new shell whenever you make any changes to ~/.zshrc! My macbook asked to update my system last night, and I stupidly said yes, and now I see that I have macOS 12.3.1, so I think that update is the most likely reason I was suddenly able to install erlang without error.

Here's the terminal output produced by the successful installation:

~% asdf latest erlang
24.3.4

~% asdf install erlang 24.3.4
asdf_24.3.4 is not a kerl-managed Erlang/OTP installation
The asdf_24.3.4 build has been deleted
Extracting source code
Building Erlang/OTP 24.3.4 (asdf_24.3.4), please wait...
APPLICATIONS DISABLED (See: /Users/7stud/.asdf/plugins/erlang/kerl-home/builds/asdf_24.3.4/otp_build_24.3.4.log)
 * jinterface     : Java compiler disabled by user
 * jinterface     : User gave --without-jinterface option
 * odbc           : User gave --without-odbc option

APPLICATIONS INFORMATION (See: /Users/7stud/.asdf/plugins/erlang/kerl-home/builds/asdf_24.3.4/otp_build_24.3.4.log)
 * crypto         : Using OpenSSL 3.0 is not yet recommended for production code.

Building docs...
Erlang/OTP 24.3.4 (asdf_24.3.4) has been successfully built
Cleaning up compilation products for 
Cleaned up compilation products for  under /Users/7stud/.asdf/plugins/erlang/kerl-home/builds
~% 

Then I did:

~% erl
No version is set for command erl
Consider adding one of the following versions in your config file at 
erlang 24.3.4

~% asdf list erlang
  24.3.4

~% asdf global erlang 24.3.4

~% erl
Erlang/OTP 24 [erts-12.3.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1]

Eshell V12.3.2  (abort with ^G)
1>    

I tested wxWidgets by launching observer in the shell:

1> observer:start().
ok

and the observer window popped up, so wxWidgets seems to be working.

Good luck!

@7stud 7stud closed this as completed May 11, 2022
@alecernas
Copy link

Had similar problems with M1 osx 13, erlang 25.3.2.4,
I tweaked KERL_CONFIGURE_OPTIONS to this

export KERL_CONFIGURE_OPTIONS="--disable-debug \
                               --disable-hipe \
                               --disable-sctp \
                               --disable-silent-rules \
                               --enable-darwin-64bit \
                               --enable-dynamic-ssl-lib \
                               --enable-kernel-poll \
                               --enable-shared-zlib \
                               --enable-smp-support \
                               --enable-threads \
                               --enable-wx \
                               --with-wx-config=/usr/local/bin/wx-config \
                               --without-javac \
                               --without-jinterface \
                               --without-odbc"

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants