Opened 5 years ago
Closed 5 years ago
#58555 closed defect (worksforme)
mysql8 @8.0.16 build failure: No rule to make target `/opt/local/lib/libsasl2.dylib'
Reported by: | haraldgroven (Harald) | Owned by: | herbygillot (Herby Gillot) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.5.4 |
Keywords: | Cc: | ||
Port: | mysql8 |
Description
I was able to build mysql8-server+mysql8 on a clean install mac running 10.14 Mojave. However, when trying to install on a similar machine with mysql57-server already installed, upgrade to mysql8-server failed. After reinstalling macports, the build error persisted.
Maybe this build error affect other standard Mysql upgrades.
:info:build make: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_databases_mysql8/mysql8/work/build' :info:build Command failed: cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_databases_mysql8/mysql8/work/build" && /usr/bin/make -j12 -w all VERBOSE=ON :info:build Exit code: 2 :error:build Failed to build mysql8: command execution failed :debug:build Error code: CHILDSTATUS 53988 2 :debug:build Backtrace: command execution failed :debug:build while executing :debug:build "system {*}$notty {*}$nice $fullcmdstring" :debug:build invoked from within :debug:build "command_exec build" :debug:build (procedure "portbuild::build_main" line 8) :debug:build invoked from within :debug:build "$procedure $targetname" :error:build See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_databases_mysql8/mysql8/main.log for details.
Attached /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_databases_mysql8/mysql8/main.log
Attachments (1)
Change History (17)
Changed 5 years ago by haraldgroven (Harald)
Attachment: | mysql8_main_errorlog.txt added |
---|
comment:1 follow-up: 3 Changed 5 years ago by herbygillot (Herby Gillot)
comment:2 Changed 5 years ago by haraldgroven (Harald)
The following ports are currently installed:
apache2 @2.4.39_0+preforkmpm apr @1.6.5_0 apr-util @1.6.1_2 autoconf @2.69_5 bzip2 @1.0.6_0 cmake @3.14.4_0 curl @7.64.1_0+ssl curl-ca-bundle @7.64.1_0 db48 @4.8.30_4 expat @2.2.6_1 freetype @2.10.0_0 gdbm @1.18.1_1 gettext @0.19.8.1_2 ghc @7.8.3_6 giflib @4.2.3_0+x11 glib2 @2.58.3_0+x11 gmp @6.1.2_1 gsed @4.7_0 hs-aeson @0.7.0.4_1 hs-alex @3.1.3_1 hs-async @2.0.1.5_1 hs-attoparsec @0.10.4.0_4 hs-base-unicode-symbols @0.2.2.4_2 hs-base64-bytestring @1.0.0.1_5 hs-blaze-builder @0.3.3.4_1 hs-blaze-html @0.7.0.3_1 hs-blaze-markup @0.6.2.0_1 hs-conduit @1.2.3.1_1 hs-data-default @0.5.3_4 hs-data-default-class @0.0.1_3 hs-data-default-instances-base @0.0.1_3 hs-data-default-instances-containers @0.0.1_3 hs-data-default-instances-dlist @0.0.1_4 hs-data-default-instances-old-locale @0.0.1_3 hs-deepseq-generics @0.1.1.2_1 hs-digest @0.0.1.2_5 hs-dlist @0.6.0.1_2 hs-enclosed-exceptions @1.0.1_1 hs-exceptions @0.6.1_1 hs-extensible-exceptions @0.1.1.4_3 hs-happy @1.19.4_1 hs-hashable @1.2.2.0_1 hs-highlighting-kate @0.5.11.1_1 hs-hslua @0.3.9_2 hs-http @4000.2.10_1 hs-lifted-base @0.2.1.1_2 hs-mmorph @1.0.0_2 hs-monad-control @0.3.2.2_2 hs-mtl @2.1.3.1_1 hs-nats @0.1.2_2 hs-network @2.4.2.3_1 hs-pandoc-types @1.12.4.1_2 hs-parsec @3.1.5_1 hs-pcre-light @0.4.0.3_1 hs-primitive @0.5.2.1_1 hs-quickcheck @2.6_3 hs-random @1.0.1.1_5 hs-resourcet @1.1.3.3_1 hs-scientific @0.2.0.2_1 hs-semigroups @0.16.0.1_1 hs-sha @1.6.4.1_1 hs-stm @2.4.2_3 hs-syb @0.4.1_1 hs-tagsoup @0.13.3_1 hs-temporary @1.2.0.3_1 hs-texmath @0.6.6.3_1 hs-text @1.1.0.0_1 hs-transformers-base @0.4.1_2 hs-unordered-containers @0.2.4.0_1 hs-utf8-string @0.3.7_5 hs-vector @0.10.9.1_1 hs-void @0.7_1 hs-xml @1.3.13_3 hs-yaml @0.8.10.1_1 hs-zip-archive @0.1.4_1 hs-zlib @0.5.4.1_4 icu @58.2_2 jpeg @9c_0 libarchive @3.3.3_1 libcxx @5.0.1_4 libedit @20190324-3.1_0 libffi @3.2.1_0 libiconv @1.16_0 libidn2 @2.2.0_0 libmcrypt @2.5.8_1 libpng @1.6.37_0 libpsl @0.21.0-20190419_0 libtool @2.4.6_6 libunistring @0.9.10_0 libuv @1.29.1_0 libxml2 @2.9.9_1 libxslt @1.1.33_1 libzip @1.5.2_0 llvm-3.5 @3.5.2_9 llvm_select @2_0 lz4 @1.9.1_0 lzo2 @2.10_0 mhash @0.9.9.9_1 mysql57 @5.7.26_0 mysql57-server @5.7.26_0 mysql_select @0.1.2_3 ncurses @6.1_0 openssl @1.0.2s_0 pandoc @1.12.4.2_1 pcre @8.43_0 pcre2 @10.33_0 perl5 @5.26.1_0+perl5_28 perl5.28 @5.28.2_0 php73 @7.3.5_0+libedit php73-apache2handler @7.3.5_0 php73-cgi @7.3.5_0 php73-fpm @7.3.5_0 php73-gd @7.3.5_0 php73-mbstring @7.3.5_0 php73-mcrypt @1.0.2_0 php73-mysql @7.3.5_0+mysqlnd php73-odbc @7.3.5_0+unixodbc php73-postgresql @7.3.5_0+postgresql10 php73-sqlite @7.3.5_0 php73-zip @1.15.4_0 php_select @1.0_0 phpmyadmin @4.8.5_0+php73 pkgconfig @0.29.2_0 postgresql10 @10.8_1 postgresql_select @0.4_0 python2_select @0.0_3 python27 @2.7.16_1 python_select @0.3_8 readline @8.0.000_0 sqlite3 @3.28.0_0 tiff @4.0.10_1 unixODBC @2.3.7_1 webp @1.0.2_0 xorg-libice @1.0.9_1 xorg-libpthread-stubs @0.4_0 xorg-libsm @1.2.3_0 xorg-libX11 @1.6.7_0 xorg-libXau @1.0.9_0 xorg-libxcb @1.13.1_0+python27 xorg-libXdmcp @1.1.3_0 xorg-xcb-proto @1.13_1+python27 xorg-xorgproto @2018.4_0 xz @5.2.4_0 zlib @1.2.11_0 zstd @1.4.0_0
comment:3 Changed 5 years ago by jmroot (Joshua Root)
Cc: | herbygillot removed |
---|---|
Keywords: | mysql8 removed |
Owner: | set to herbygillot |
Port: | mysql8 added; mysql8-server removed |
Priority: | Not set → Normal |
Status: | new → assigned |
Summary: | mysql8-server Failed to build mysql8 → mysql8 @8.0.16 build failure: No rule to make target `/opt/local/lib/libsasl2.dylib' |
Replying to herbygillot:
Might it be possible for you to list what's currently active on the machine where the build is failing? (port list active)
Don't use port list
for this; it will show you the available version of each specified port, not the version that is installed. Use port installed
(e.g. port installed active
) to find out what is installed.
comment:4 Changed 5 years ago by herbygillot (Herby Gillot)
Thank you for the correction, jmroot. haraldgroven, I'm actually unable to reproduce - I have MySQL8 successfully building and running alongside MySQL 5.7. What is the OS and XCode version where this is happening? Is it also Mojave? The following command might help:
echo "macOS $(sw_vers -productVersion) $(sw_vers -buildVersion)"; echo "Xcode $(xcodebuild -version | awk '{print $NF}' | tr '\n' ' ')"
And also perhaps you can try running @jmroot's suggestion as well.
comment:5 Changed 5 years ago by haraldgroven (Harald)
Thank you @herbygillot for looking into this issue.
According to the error log (attached), is it possible to infer which step in the build process it is crashing? Maybe the install script assumes some directory or file permissions which may deviate from a clean install OS. Since the problem persisted after I reinstalled Macports, I assume that its not caused by conflicts with other ports.
Environment:
echo "macOS $(sw_vers -productVersion) $(sw_vers -buildVersion)"; echo "Xcode $(xcodebuild -version | awk '{print $NF}' | tr '\n' ' ')" macOS 10.14.4 18E226 Xcode 10.2.1 10E1001
comment:6 Changed 5 years ago by herbygillot (Herby Gillot)
@haraldgroven thanks for your patience on this.
I've installed the dependencies you listed in a fresh 10.14 environment and was able to successfully build MySQL 8 alongside 5.7 again, so unfortunately I am again unable to reproduce this issue.
Looking at the log again:
:info:build make[2]: *** No rule to make target `/opt/local/lib/libsasl2.dylib', needed by `plugin_output_directory/authentication_ldap_sasl_client.so'. Stop. 584 :info:build make[2]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_databases_mysql8/mysql8/work/build' 585 :info:build /Applications/Xcode.app/Contents/Developer/usr/bin/make -f storage/csv/CMakeFiles/csv.dir/build.make storage/csv/CMakeFiles/csv.dir/build 586 :info:build make[1]: *** [libmysql/authentication_ldap/CMakeFiles/authentication_ldap_sasl_client.dir/all] Error 2 587 :info:build make[1]: *** Waiting for unfinished jobs....
...this is definitely weird. Even after the dependency install and build, I don't see a copy of libsasl2.dylib in the Macports tree (/opt/local/lib). This seems to be a macOS system lib, found in /usr/lib, so the build process trying to either find or build it in /opt/local/lib is abnormal.
You mention you are uninstalling and reinstalling MacPorts - did that include removing your prior MacPorts tree? ie., did you delete /opt/local as part of the uninstall process? That might be a bit of a hassle, but I think doing that would be a proper clean reset. You will probably want to backup configuration files you care about from /opt/local/etc and data from /opt/local/var/db beforehand.
The MacPorts official guide actually recommends an even more thorough process:
https://guide.macports.org/chunked/installing.macports.uninstalling.html
I wish I had a better suggestion, but as I am unable to reproduce the issue, I think it's worth trying a full MacPorts reset to see if the issue still persists afterwards.
comment:7 Changed 5 years ago by josephsacco
mysql8 does not build if boost @1.66 is installed. In theory that should not matter since the mysql8 build downloads boost @1.69 into the work directory. In practice there are some include-path issues. If boost @1.66 is temporarily deactivated, mysql8 builds and runs.
-Joseph
comment:8 Changed 5 years ago by herbygillot (Herby Gillot)
Thanks @josephsacco. I've created a separate issue to track this: #58563
comment:9 Changed 5 years ago by herbygillot (Herby Gillot)
Cc: | herbygillot added |
---|
comment:10 Changed 5 years ago by herbygillot (Herby Gillot)
Cc: | herbygillot removed |
---|
comment:11 Changed 5 years ago by jmroot (Joshua Root)
% port provides /opt/local/lib/libsasl2.dylib /opt/local/lib/libsasl2.dylib is provided by: cyrus-sasl2
Could this port have been installed previously? The attached log is not from a clean build (starts with the configure phase already complete); have you tried cleaning? Even if that doesn't solve the problem, having a complete log may help.
If mysql8 is opportunistically using cyrus-sasl2 without declaring a dependency, that should be fixed.
comment:13 Changed 5 years ago by herbygillot (Herby Gillot)
OK, we're just adding cyrus-sasl2
as a build dependency and building MySQL 8's libsasl
requirement against that. The fix has been merged into master.
comment:14 Changed 5 years ago by herbygillot (Herby Gillot)
@haraldgroven can you verify you're all good here? I think we can close this one out.
comment:15 Changed 5 years ago by haraldgroven (Harald)
I was unable to make mysql8-server
install successfully by cleaning and reinstalling Macports.
Solved by making a clean install of OSX, Macports and mysql8-server
.
comment:16 Changed 5 years ago by mf2k (Frank Schima)
Resolution: | → worksforme |
---|---|
Status: | assigned → closed |
Thanks for reporting this, Harald.
Might it be possible for you to list what's currently active on the machine where the build is failing? (port list active)