#63455 closed defect (duplicate)
mysql8 @8.0.26_0: build fails under trace mode
Reported by: | chrstphrchvz (Christopher Chavez) | Owned by: | herbygillot (Herby Gillot) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.7.1 |
Keywords: | Cc: | cooljeanius (Eric Gallager) | |
Port: | mysql8 |
Description (last modified by chrstphrchvz (Christopher Chavez))
On macOS 10.15.7, the build fails during a linker command if run in trace mode:
[ 70%] Linking CXX static library libsql_main.a cd /opt/local/var/macports/build/_opt_local_var_macports_sources_github.com_macports_macports-ports_databases_mysql8/mysql8/work/build/sql && /opt/local/bin/cmake -P CMakeFiles/sql_main.dir/cmake_clean_target.cmake cd /opt/local/var/macports/build/_opt_local_var_macports_sources_github.com_macports_macports-ports_databases_mysql8/mysql8/work/build/sql && /opt/local/bin/cmake -E cmake_link_script CMakeFiles/sql_main.dir/link.txt --verbose=ON libtool -static -no_warning_for_no_symbols -o libsql_main.a CMakeFiles/sql_main.dir/sql_yacc.cc.o CMakeFiles/sql_main.dir/sql_hints.yy.cc.o CMakeFiles/sql_main.dir/sql_builtin.cc.o CMakeFiles/sql_main.dir/abstract_query_plan.cc.o CMakeFiles/sql_main.dir/auth/auth_acls.cc.o CMakeFiles/sql_main.dir/auth/auth_common.cc.o CMakeFiles/sql_main.dir/auth/dynamic_privileges_impl.cc.o CMakeFiles/sql_main.dir/auth/dynamic_privilege_table.cc.o CMakeFiles/sql_main.dir/auth/acl_table_user.cc.o CMakeFiles/sql_main.dir/auth/sql_authentication.cc.o CMakeFiles/sql_main.dir/auth/sql_auth_cache.cc.o CMakeFiles/sql_main.dir/auth/sql_authorization.cc.o CMakeFiles/sql_main.dir/auth/sql_user_table.cc.o CMakeFiles/sql_main.dir/auth/sql_user.cc.o CMakeFiles/sql_main.dir/auth/partial_revokes.cc.o CMakeFiles/sql_main.dir/auth/password.cc.o CMakeFiles/sql_main.dir/auth/password_policy_service.cc.o CMakeFiles/sql_main.dir/auth/sql_security_ctx.cc.o CMakeFiles/sql_main.dir/auth/service_security_context.cc.o CMakeFiles/sql_main.dir/auto_thd.cc.o CMakeFiles/sql_main.dir/keyring_service.cc.o CMakeFiles/sql_main.dir/auth/roles.cc.o CMakeFiles/sql_main.dir/auth/role_tables.cc.o CMakeFiles/sql_main.dir/auth/sha2_password_common.cc.o CMakeFiles/sql_main.dir/auth/sha2_password.cc.o CMakeFiles/sql_main.dir/ssl_wrapper_service.cc.o CMakeFiles/sql_main.dir/bka_iterator.cc.o CMakeFiles/sql_main.dir/bootstrap.cc.o CMakeFiles/sql_main.dir/check_stack.cc.o CMakeFiles/sql_main.dir/conn_handler/connection_handler_manager.cc.o CMakeFiles/sql_main.dir/clone_handler.cc.o CMakeFiles/sql_main.dir/composite_iterators.cc.o CMakeFiles/sql_main.dir/create_field.cc.o CMakeFiles/sql_main.dir/current_thd.cc.o CMakeFiles/sql_main.dir/dd_sql_view.cc.o CMakeFiles/sql_main.dir/dd_sp.cc.o CMakeFiles/sql_main.dir/dd_table_share.cc.o CMakeFiles/sql_main.dir/debug_sync.cc.o CMakeFiles/sql_main.dir/default_values.cc.o CMakeFiles/sql_main.dir/derror.cc.o CMakeFiles/sql_main.dir/error_handler.cc.o CMakeFiles/sql_main.dir/field.cc.o CMakeFiles/sql_main.dir/field_conv.cc.o CMakeFiles/sql_main.dir/filesort.cc.o CMakeFiles/sql_main.dir/filesort_utils.cc.o CMakeFiles/sql_main.dir/aggregate_check.cc.o CMakeFiles/sql_main.dir/gstream.cc.o CMakeFiles/sql_main.dir/handler.cc.o CMakeFiles/sql_main.dir/hash_join_buffer.cc.o CMakeFiles/sql_main.dir/hash_join_chunk.cc.o CMakeFiles/sql_main.dir/hash_join_iterator.cc.o CMakeFiles/sql_main.dir/histograms/equi_height.cc.o CMakeFiles/sql_main.dir/histograms/equi_height_bucket.cc.o CMakeFiles/sql_main.dir/histograms/histogram.cc.o CMakeFiles/sql_main.dir/histograms/singleton.cc.o CMakeFiles/sql_main.dir/histograms/value_map.cc.o CMakeFiles/sql_main.dir/hostname_cache.cc.o CMakeFiles/sql_main.dir/init.cc.o CMakeFiles/sql_main.dir/log_resource.cc.o CMakeFiles/sql_main.dir/item.cc.o CMakeFiles/sql_main.dir/item_buff.cc.o CMakeFiles/sql_main.dir/item_cmpfunc.cc.o CMakeFiles/sql_main.dir/item_create.cc.o CMakeFiles/sql_main.dir/item_func.cc.o CMakeFiles/sql_main.dir/item_pfs_func.cc.o CMakeFiles/sql_main.dir/item_json_func.cc.o CMakeFiles/sql_main.dir/item_regexp_func.cc.o CMakeFiles/sql_main.dir/item_row.cc.o CMakeFiles/sql_main.dir/item_strfunc.cc.o CMakeFiles/sql_main.dir/item_subselect.cc.o CMakeFiles/sql_main.dir/item_sum.cc.o CMakeFiles/sql_main.dir/window.cc.o CMakeFiles/sql_main.dir/item_timefunc.cc.o CMakeFiles/sql_main.dir/item_xmlfunc.cc.o CMakeFiles/sql_main.dir/item_inetfunc.cc.o CMakeFiles/sql_main.dir/join_optimizer/access_path.cc.o CMakeFiles/sql_main.dir/join_optimizer/estimate_selectivity.cc.o CMakeFiles/sql_main.dir/join_optimizer/explain_access_path.cc.o CMakeFiles/sql_main.dir/join_optimizer/hypergraph.cc.o CMakeFiles/sql_main.dir/join_optimizer/interesting_orders.cc.o CMakeFiles/sql_main.dir/join_optimizer/join_optimizer.cc.o CMakeFiles/sql_main.dir/join_optimizer/make_join_hypergraph.cc.o CMakeFiles/sql_main.dir/join_optimizer/print_utils.cc.o CMakeFiles/sql_main.dir/json_binary.cc.o CMakeFiles/sql_main.dir/json_diff.cc.o CMakeFiles/sql_main.dir/json_dom.cc.o CMakeFiles/sql_main.dir/json_path.cc.o CMakeFiles/sql_main.dir/json_schema.cc.o CMakeFiles/sql_main.dir/json_syntax_check.cc.o CMakeFiles/sql_main.dir/key.cc.o CMakeFiles/sql_main.dir/key_spec.cc.o CMakeFiles/sql_main.dir/keycaches.cc.o CMakeFiles/sql_main.dir/lock.cc.o CMakeFiles/sql_main.dir/locked_tables_list.cc.o CMakeFiles/sql_main.dir/locking_service.cc.o CMakeFiles/sql_main.dir/locks/shared_spin_lock.cc.o CMakeFiles/sql_main.dir/log.cc.o CMakeFiles/sql_main.dir/mdl.cc.o CMakeFiles/sql_main.dir/mdl_context_backup.cc.o CMakeFiles/sql_main.dir/migrate_keyring.cc.o CMakeFiles/sql_main.dir/my_decimal.cc.o CMakeFiles/sql_main.dir/mysqld.cc.o CMakeFiles/sql_main.dir/mysqld_thd_manager.cc.o CMakeFiles/sql_main.dir/opt_costconstantcache.cc.o CMakeFiles/sql_main.dir/opt_costconstants.cc.o CMakeFiles/sql_main.dir/opt_costmodel.cc.o CMakeFiles/sql_main.dir/opt_explain.cc.o CMakeFiles/sql_main.dir/opt_explain_format.cc.o CMakeFiles/sql_main.dir/opt_explain_traditional.cc.o CMakeFiles/sql_main.dir/opt_explain_json.cc.o CMakeFiles/sql_main.dir/opt_hints.cc.o CMakeFiles/sql_main.dir/opt_range.cc.o CMakeFiles/sql_main.dir/opt_statistics.cc.o CMakeFiles/sql_main.dir/opt_sum.cc.o CMakeFiles/sql_main.dir/opt_trace.cc.o CMakeFiles/sql_main.dir/opt_trace2server.cc.o CMakeFiles/sql_main.dir/pack_rows.cc.o CMakeFiles/sql_main.dir/parse_file.cc.o CMakeFiles/sql_main.dir/parse_tree_handler.cc.o CMakeFiles/sql_main.dir/parse_tree_helpers.cc.o CMakeFiles/sql_main.dir/parse_tree_hints.cc.o CMakeFiles/sql_main.dir/parse_tree_items.cc.o CMakeFiles/sql_main.dir/parse_tree_node_base.cc.o CMakeFiles/sql_main.dir/parse_tree_nodes.cc.o CMakeFiles/sql_main.dir/parse_tree_partitions.cc.o CMakeFiles/sql_main.dir/parse_tree_window.cc.o CMakeFiles/sql_main.dir/select_lex_visitor.cc.o CMakeFiles/sql_main.dir/parser_service.cc.o CMakeFiles/sql_main.dir/partition_info.cc.o CMakeFiles/sql_main.dir/partitioning/partition_handler.cc.o CMakeFiles/sql_main.dir/persisted_variable.cc.o CMakeFiles/sql_main.dir/protocol_classic.cc.o CMakeFiles/sql_main.dir/psi_memory_key.cc.o CMakeFiles/sql_main.dir/query_result.cc.o CMakeFiles/sql_main.dir/records.cc.o CMakeFiles/sql_main.dir/regexp/errors.cc.o CMakeFiles/sql_main.dir/regexp/regexp_engine.cc.o CMakeFiles/sql_main.dir/regexp/regexp_facade.cc.o CMakeFiles/sql_main.dir/resourcegroups/thread_resource_control.cc.o CMakeFiles/sql_main.dir/resourcegroups/platform/thread_attrs_api_common.cc.o CMakeFiles/sql_main.dir/resourcegroups/resource_group_mgr.cc.o CMakeFiles/sql_main.dir/resourcegroups/resource_group_sql_cmd.cc.o CMakeFiles/sql_main.dir/rpl_group_replication.cc.o CMakeFiles/sql_main.dir/rpl_transaction_ctx.cc.o CMakeFiles/sql_main.dir/rpl_transaction_write_set_ctx.cc.o CMakeFiles/sql_main.dir/rpl_write_set_handler.cc.o CMakeFiles/sql_main.dir/rules_table_service.cc.o CMakeFiles/sql_main.dir/rwlock_scoped_lock.cc.o CMakeFiles/sql_main.dir/sd_notify.cc.o CMakeFiles/sql_main.dir/sdi_utils.cc.o CMakeFiles/sql_main.dir/session_tracker.cc.o CMakeFiles/sql_main.dir/set_var.cc.o CMakeFiles/sql_main.dir/sorting_iterator.cc.o CMakeFiles/sql_main.dir/sp.cc.o CMakeFiles/sql_main.dir/sp_cache.cc.o CMakeFiles/sql_main.dir/sp_head.cc.o CMakeFiles/sql_main.dir/sp_instr.cc.o CMakeFiles/sql_main.dir/sp_pcontext.cc.o CMakeFiles/sql_main.dir/sp_rcontext.cc.o CMakeFiles/sql_main.dir/spatial.cc.o CMakeFiles/sql_main.dir/string_service.cc.o CMakeFiles/sql_main.dir/sql_admin.cc.o CMakeFiles/sql_main.dir/sql_alloc_error_handler.cc.o CMakeFiles/sql_main.dir/sql_alter.cc.o CMakeFiles/sql_main.dir/sql_alter_instance.cc.o CMakeFiles/sql_main.dir/sql_backup_lock.cc.o CMakeFiles/sql_main.dir/sql_base.cc.o CMakeFiles/sql_main.dir/sql_bootstrap.cc.o CMakeFiles/sql_main.dir/sql_initialize.cc.o CMakeFiles/sql_main.dir/sql_call.cc.o CMakeFiles/sql_main.dir/sql_check_constraint.cc.o CMakeFiles/sql_main.dir/sql_class.cc.o CMakeFiles/sql_main.dir/sql_component.cc.o CMakeFiles/sql_main.dir/sql_const_folding.cc.o CMakeFiles/sql_main.dir/sql_cmd_ddl_table.cc.o CMakeFiles/sql_main.dir/sql_cmd_srs.cc.o CMakeFiles/sql_main.dir/sql_connect.cc.o CMakeFiles/sql_main.dir/sql_constraint.cc.o CMakeFiles/sql_main.dir/sql_cursor.cc.o CMakeFiles/sql_main.dir/sql_data_change.cc.o CMakeFiles/sql_main.dir/sql_db.cc.o CMakeFiles/sql_main.dir/sql_delete.cc.o CMakeFiles/sql_main.dir/sql_derived.cc.o CMakeFiles/sql_main.dir/sql_digest.cc.o CMakeFiles/sql_main.dir/sql_do.cc.o CMakeFiles/sql_main.dir/sql_error.cc.o CMakeFiles/sql_main.dir/sql_exception_handler.cc.o CMakeFiles/sql_main.dir/sql_executor.cc.o CMakeFiles/sql_main.dir/sql_get_diagnostics.cc.o CMakeFiles/sql_main.dir/sql_handler.cc.o CMakeFiles/sql_main.dir/sql_help.cc.o CMakeFiles/sql_main.dir/sql_import.cc.o CMakeFiles/sql_main.dir/sql_insert.cc.o CMakeFiles/sql_main.dir/sql_join_buffer.cc.o CMakeFiles/sql_main.dir/sql_lex.cc.o CMakeFiles/sql_main.dir/sql_lex_hash.cc.o CMakeFiles/sql_main.dir/sql_lex_hints.cc.o CMakeFiles/sql_main.dir/sql_list.cc.o CMakeFiles/sql_main.dir/sql_load.cc.o CMakeFiles/sql_main.dir/sql_locale.cc.o CMakeFiles/sql_main.dir/sql_manager.cc.o CMakeFiles/sql_main.dir/sql_optimizer.cc.o CMakeFiles/sql_main.dir/sql_parse.cc.o CMakeFiles/sql_main.dir/sql_partition.cc.o CMakeFiles/sql_main.dir/sql_partition_admin.cc.o CMakeFiles/sql_main.dir/sql_planner.cc.o CMakeFiles/sql_main.dir/sql_plugin.cc.o CMakeFiles/sql_main.dir/sql_plugin_var.cc.o CMakeFiles/sql_main.dir/sql_prepare.cc.o CMakeFiles/sql_main.dir/sql_profile.cc.o CMakeFiles/sql_main.dir/sql_query_rewrite.cc.o CMakeFiles/sql_main.dir/sql_reload.cc.o CMakeFiles/sql_main.dir/sql_rename.cc.o CMakeFiles/sql_main.dir/sql_resolver.cc.o CMakeFiles/sql_main.dir/sql_restart_server.cc.o CMakeFiles/sql_main.dir/sql_rewrite.cc.o CMakeFiles/sql_main.dir/sql_select.cc.o CMakeFiles/sql_main.dir/sql_servers.cc.o CMakeFiles/sql_main.dir/sql_show.cc.o CMakeFiles/sql_main.dir/sql_show_status.cc.o CMakeFiles/sql_main.dir/sql_show_processlist.cc.o CMakeFiles/sql_main.dir/sql_signal.cc.o CMakeFiles/sql_main.dir/sql_state.cc.o CMakeFiles/sql_main.dir/sql_table.cc.o CMakeFiles/sql_main.dir/sql_tablespace.cc.o CMakeFiles/sql_main.dir/sql_test.cc.o CMakeFiles/sql_main.dir/sql_thd_internal_api.cc.o CMakeFiles/sql_main.dir/sql_thd_api.cc.o CMakeFiles/sql_main.dir/sql_time.cc.o CMakeFiles/sql_main.dir/sql_timer.cc.o CMakeFiles/sql_main.dir/sql_tmp_table.cc.o CMakeFiles/sql_main.dir/sql_trigger.cc.o CMakeFiles/sql_main.dir/sql_truncate.cc.o CMakeFiles/sql_main.dir/sql_udf.cc.o CMakeFiles/sql_main.dir/sql_union.cc.o CMakeFiles/sql_main.dir/sql_update.cc.o CMakeFiles/sql_main.dir/sql_view.cc.o CMakeFiles/sql_main.dir/ssl_acceptor_context_iterator.cc.o CMakeFiles/sql_main.dir/ssl_acceptor_context_data.cc.o CMakeFiles/sql_main.dir/ssl_acceptor_context_operator.cc.o CMakeFiles/sql_main.dir/ssl_init_callback.cc.o CMakeFiles/sql_main.dir/stateless_allocator.cc.o CMakeFiles/sql_main.dir/strfunc.cc.o CMakeFiles/sql_main.dir/sys_vars.cc.o CMakeFiles/sql_main.dir/sys_vars_resource_mgr.cc.o CMakeFiles/sql_main.dir/system_variables.cc.o CMakeFiles/sql_main.dir/table.cc.o CMakeFiles/sql_main.dir/table_cache.cc.o CMakeFiles/sql_main.dir/table_function.cc.o CMakeFiles/sql_main.dir/table_trigger_dispatcher.cc.o CMakeFiles/sql_main.dir/tc_log.cc.o CMakeFiles/sql_main.dir/thr_malloc.cc.o CMakeFiles/sql_main.dir/time_zone_common.cc.o CMakeFiles/sql_main.dir/transaction.cc.o CMakeFiles/sql_main.dir/transaction_info.cc.o CMakeFiles/sql_main.dir/trigger.cc.o CMakeFiles/sql_main.dir/trigger_creation_ctx.cc.o CMakeFiles/sql_main.dir/trigger_chain.cc.o CMakeFiles/sql_main.dir/tztime.cc.o CMakeFiles/sql_main.dir/uniques.cc.o CMakeFiles/sql_main.dir/window_iterators.cc.o CMakeFiles/sql_main.dir/xa.cc.o CMakeFiles/sql_main.dir/daemon_proxy_keyring/daemon_proxy_keyring.cc.o CMakeFiles/sql_main.dir/resourcegroups/platform/thread_attrs_api_apple.cc.o CMakeFiles/sql_main.dir/__/extra/lz4/lz4-1.9.3/xxhash.c.o CMakeFiles/sql_main.dir/__/libmysql/errmsg.cc.o CMakeFiles/sql_main.dir/__/sql-common/client.cc.o CMakeFiles/sql_main.dir/__/sql-common/client_plugin.cc.o CMakeFiles/sql_main.dir/__/sql-common/client_authentication.cc.o CMakeFiles/sql_main.dir/__/sql-common/compression.cc.o CMakeFiles/sql_main.dir/__/sql-common/get_password.cc.o CMakeFiles/sql_main.dir/__/sql-common/my_path_permissions.cc.o CMakeFiles/sql_main.dir/__/sql-common/net_ns.cc.o CMakeFiles/sql_main.dir/__/sql-common/net_serv.cc.o CMakeFiles/sql_main.dir/__/sql-common/sql_string.cc.o CMakeFiles/sql_main.dir/__/sql-common/bind_params.cc.o CMakeFiles/sql_main.dir/command_service.cc.o CMakeFiles/sql_main.dir/conn_handler/channel_info.cc.o CMakeFiles/sql_main.dir/conn_handler/connection_handler_per_thread.cc.o CMakeFiles/sql_main.dir/conn_handler/connection_handler_one_thread.cc.o CMakeFiles/sql_main.dir/conn_handler/socket_connection.cc.o CMakeFiles/sql_main.dir/conn_handler/init_net_server_extension.cc.o CMakeFiles/sql_main.dir/event_data_objects.cc.o CMakeFiles/sql_main.dir/event_db_repository.cc.o CMakeFiles/sql_main.dir/event_parse_data.cc.o CMakeFiles/sql_main.dir/event_queue.cc.o CMakeFiles/sql_main.dir/event_scheduler.cc.o CMakeFiles/sql_main.dir/events.cc.o CMakeFiles/sql_main.dir/mf_iocache.cc.o CMakeFiles/sql_main.dir/protocol_callback.cc.o CMakeFiles/sql_main.dir/signal_handler.cc.o CMakeFiles/sql_main.dir/sql_audit.cc.o CMakeFiles/sql_main.dir/sql_client.cc.o CMakeFiles/sql_main.dir/srv_session.cc.o CMakeFiles/sql_main.dir/srv_session_info_service.cc.o CMakeFiles/sql_main.dir/srv_session_service.cc.o CMakeFiles/sql_main.dir/mysqld_daemon.cc.o sh: /bin/ps: Operation not permitted Error running link command: In^Valid argument
(That last line tends to appear as Error running link command: Inalid argument
because there is a SYN (^V
) control character)
Attachments (1)
Change History (26)
comment:1 Changed 3 years ago by chrstphrchvz (Christopher Chavez)
Description: | modified (diff) |
---|
Changed 3 years ago by chrstphrchvz (Christopher Chavez)
comment:2 Changed 3 years ago by laggardkernel (laggardkernel)
I don't think ^V
is related, it seems an accidental typing made by you.
The mysql8 build never succeeded. You got a 404 page when access https://packages.macports.org/mysql8
Besides, the mysql56, mysql57 also failed to build. There's mysql*-server ports, but they are just wrappers to help start the service, which is easy to be built.
The same thing happens with mariadb-10.2 to mariadb-10.6, all fail to build. If you do web development, you'd better keep away from MacPorts. The rabbitmq is old, no port for kafka, etc. It just lacks maintainers in this part.
The port health check just don't work as expected. Check the links one by one.
https://packages.macports.org/mysql55
https://packages.macports.org/mysql56
https://packages.macports.org/mysql57
https://packages.macports.org/mysql8
https://packages.macports.org/mariadb-10.1
https://packages.macports.org/mariadb-10.2
https://packages.macports.org/mariadb-10.3
https://packages.macports.org/mariadb-10.4
comment:3 follow-up: 5 Changed 3 years ago by chrstphrchvz (Christopher Chavez)
The stray SYN ^V
character reliably appears, and so far I have only ever noticed it in the context of this issue. It is not of my doing, as it even appears in main.log.
I’m inclined to say that, at the time I reported the issue, any other failed mysql8 build not using trace mode was for reasons unrelated to this one.
Off-topic:
Do not rely on https://packages.macports.org for determining port health. https://packages.macports.org is for prebuilt binaries of ports. You will not find any prebuilt MySQL/MariaDB ports, because they are built with OpenSSL 1.1, which MySQL/MariaDB themselves being licensed under GPL do not allow binary redistribution of (this condition may go away if the ports are migrated to OpenSSL 3, which is GPL compatible). (edit: the MySQL ports still use OpenSSL 1.1 but the ports now reflect that recent MySQL is licensed with OpenSSL linking exception, so binary archives should be available for them.)
The build status/port health, even for ports not binary redistributable, is shown on https://ports.macports.org. Many MySQL/MariaDB ports do currently build on various macOS versions, though there are various unresolved and unreported failures.
Also, I personally am not surprised by some audiences finding MacPorts of limited use (or maybe even a waste of their time!), including due to it offering far more ports than it can reasonably expect to maintain. But I could only wish that it instead focused on only doing more of what it is relatively good at. So for now, I have tried to remove far more from MacPorts than I have added to it, but there are obstacles (e.g. lack of more formal policy, preferences of influential members) to deleting even more of the old, outdated, and/or long-broken ports which I believe are unused, unusable, are now useless, and/or shouldn’t be used or offered anymore.
comment:4 follow-up: 19 Changed 3 years ago by chrstphrchvz (Christopher Chavez)
Note: I’m not a MacPorts member, so my criticisms are from the “armchair” and not authoritative.
comment:5 follow-up: 6 Changed 3 years ago by chrstphrchvz (Christopher Chavez)
Replying to chrstphrchvz:
You will not find any prebuilt MySQL/MariaDB ports, because they are built with OpenSSL 1.1, which MySQL/MariaDB themselves being licensed under GPL do not allow binary redistribution of (this condition may go away if the ports are migrated to OpenSSL 3, which is GPL compatible).
MySQL/MariaDB ports have been migrated to OpenSSL 3, so this should no longer be an issue (edit: this was not successful). However, even though OpenSSL 1.1-GPL incompatibility was previously why MacPorts claimed it could not offer prebuilt MySQL/MariaDB ports, this may not have reflected whether either of these upstream projects may actually have granted an OpenSSL linking exception (applicable to unofficial 3rd-party binary distributions). For example, MySQL licensing since 5.6 has the following text https://downloads.mysql.com/docs/licenses/mysqld-5.6-gpl-en.pdf:
This distribution of MySQL 5.6.46 (and later) is distributed with certain software (including but not limited to OpenSSL) that is licensed under separate terms, as designated in a particular file or component or in the license documentation. Without limiting your rights under the GPLv2, the authors of MySQL hereby grant you an additional permission to link the program and your derivative works with the separately licensed software that they have included with the program.
comment:6 follow-up: 7 Changed 3 years ago by laggardkernel (laggardkernel)
Replying to chrstphrchvz:
Do not rely on https://packages.macports.org for determining port health. https://packages.macports.org is for prebuilt binaries of ports. You will not find any prebuilt MySQL/MariaDB ports, because they are built with OpenSSL 1.1, which MySQL/MariaDB themselves being licensed under GPL do not allow binary redistribution of (this condition may go away if the ports are migrated to OpenSSL 3, which is GPL compatible).
Thanks for your explanation, I didn't know that before. mysql8 does failed to be built on macOS 10.14 according to the port health, maybe I should have a try to build mariadb from source.
comment:7 Changed 3 years ago by chrstphrchvz (Christopher Chavez)
Replying to laggardkernel:
mysql8 does failed to be built on macOS 10.14 according to the port health
Ticket opened: #63875
comment:9 Changed 3 years ago by kencu (Ken)
I believe older libtool versions don't understand no_warning_for_no_symbols
comment:10 Changed 3 years ago by kencu (Ken)
according to llvm, only libtool version 862 and up support that flag
comment:11 Changed 3 years ago by kencu (Ken)
Summary: | mysql8 @8.0.26_0: build fails under trace mode → mysql8 @8.0.26_0: build fails under trace mode due to too-old libtool |
---|
comment:12 follow-up: 14 Changed 3 years ago by chrstphrchvz (Christopher Chavez)
I do not believe this issue is due to too-old libtool, because the port now only supports macOS 10.13 and later, implying that Xcode 9 or later is used, implying that cctools 900 or later are used. Error running link command: Invalid argument
still happens even on macOS 12 with Xcode 13.2 CLT, where /usr/bin/libtool is from cctools 986 (just as new as MacPorts’ cctools).
To avoid confusion, I proposed cleaning up the “allow newer libtool” patching: https://github.com/macports/macports-ports/pull/13541, but that made no difference to this problem. I only notice that it prevents trace mode from saying:
Warning: The following existing files were hidden from the build system by trace mode: … /opt/local/bin/libtool
because [122fca8e4617/macports-ports] was done without specifying cctools as a build dependency, meaning that using trace mode defeats the purpose of that change. Similar patching is still done in e.g. mysql56 and mariadb; should those instead add cctools build dependency and patch to use ${prefix}/bin/libtool
on older systems?
comment:13 Changed 3 years ago by kencu (Ken)
lucky thing here is you could resolve the question definitively in 15 seconds on an affected machine by running the link manually using each libtool.
comment:14 follow-up: 16 Changed 3 years ago by kencu (Ken)
Replying to chrstphrchvz:
To avoid confusion, I proposed cleaning up the “allow newer libtool” patching: https://github.com/macports/macports-ports/pull/13541
There are many ports that build calling "libtool
". About the only port that specifically forces /usr/bin/libtool
is mysql*
, which it should never have done.
So you might best revert your cleanup and put the fix back so that /usr/bin/libtool
is not inappropriately forced.
It should be upstreamed to get them to take out /usr/bin/libtool
and just use libtool
.
There is no need to specifically patch mysql to use ${prefix}/bin/libtool
, as our proper mechanisms will work, like they are working for all the other ports that call libtool
. The macports-compiler spec enforces cctools be used at runtime, which means all newer tools including libtool are used.
because [122fca8e4617/macports-ports] was done without specifying cctools as a build dependency, meaning that using trace mode defeats the purpose of that change.
All older systems that use macports-clang-* already have added a dep for cctools as you can see here:
https://ports.macports.org/port/clang-9.0/details/
so the purpose of the change was not defeated for the indication at the time.
But the use of the cctools
version of libtool
may now need to be extended to more situations.
What you may (or may not, we wait to see) have found here in this ticket appears to be that on some newer versions of macos (that are not presently using a macports-clang compiler to build mysql) /usr/bin/libtool
fails when building mysql, but the libtool provided by cctools does build it.
That new information might mean now adding a dep on cctools to such systems in mysql (which would be redundant for systems that build using a macports-clang compiler, but that's fine), and again putting back the fix to stop mysql from forcing the use of /usr/bin/libtool
which is always wrong to force.
comment:15 Changed 3 years ago by chrstphrchvz (Christopher Chavez)
I am abandoning this ticket. While I believe there is something very strange going on, I do not wish to elaborate without identifying a definitive cause, which I am unlikely to provide. There are some inaccuracies (incomplete findings, speculation) in my previous comments which I am not going to bother correcting.
comment:16 Changed 3 years ago by chrstphrchvz (Christopher Chavez)
I identified a possible issue in CMake which is triggered by trace mode: #64368. I found that fixing that issue resolves the issue I reported in this ticket. However, I have no interest in persuading others that libtool is irrelevant to this ticket. If no one else is interested in reproducing the issue in this ticket, then it can be closed as worksforme/wontfix/invalid.
Replying to kencu:
It should be upstreamed to get them to take out
/usr/bin/libtool
and just uselibtool
.
I will not propose this, and I suggest others not do so either. Upstream has little interest in folks compiling MySQL from source (especially with toolchains differing from the exact one they use—even if supported according to the documentation) rather than installing it from the official binary distribution, and zero interest in it being compiled with unsupported toolchains and/or run on unsupported OS versions.
comment:17 Changed 3 years ago by kencu (Ken)
Summary: | mysql8 @8.0.26_0: build fails under trace mode due to too-old libtool → mysql8 @8.0.26_0: build fails under trace mode |
---|
comment:18 Changed 3 years ago by kencu (Ken)
there you go.
one previous build error (with a newer clang on older systems) was certainly due to the too old libtool being forced by /usr/bin/libtool.
there might be others. There are probably many others :>
If I upset you in some fashion, please accept my apologies.
comment:19 Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)
Replying to chrstphrchvz:
Note: I’m not a MacPorts member, so my criticisms are from the “armchair” and not authoritative.
I haven't counted, but I estimate you've made about a zillion contributions to MacPorts, certainly more than some of our committers, and your experience and input is highly valued and appreciated!
comment:20 follow-up: 21 Changed 3 years ago by kencu (Ken)
This port builds through fine (on even older Mojave) without cctools installed, without trace mode. So that puts the libtool question to bed, if was out of bed, in a couple of minutes.
comment:21 Changed 3 years ago by chrstphrchvz (Christopher Chavez)
Replying to kencu:
This port builds through fine (on even older Mojave) without cctools installed, without trace mode. So that puts the libtool question to bed, if was out of bed, in a couple of minutes.
Thank you for checking.
Suggestions of likely causes from you and other experts have greatly expanded my familiarity with the kind of work that goes into MacPorts and tend to save quite a bit of time, so even though I think this issue is a rather unusual exception to that, I appreciate those suggestions. My rude remarks aren’t excusable, but are made mainly out of feeling that I keep “biting off more than I can chew” and lack the patience and thoroughness and timeliness in communication which MacPorts expects, and less about feeling that this ticket was being derailed.
comment:22 Changed 3 years ago by kencu (Ken)
Just for fun, I thought I would try to install the current mysql8 on my 10.6.8 machine. I haven't tried in a while.
I went back to the Portfile from about September, and updated it to 8.0.28, and updated the checksums. I switched the legacysupport to 1.1. For interest, I build everything with clang-13 on my 10.6.8 system these days.
Everything seemed to go fine.
$ port -v installed mysql8 The following ports are currently installed: mysql8 @8.0.26_2 requested_variants='' platform='darwin 10' archs='x86_64' date='2022-01-19T14:10:52-0800' mysql8 @8.0.28_2 (active) requested_variants='' platform='darwin 10' archs='x86_64' date='2022-01-19T15:44:14-0800'
[I forgot to mention that I forced the Sept 2021 Portfile to build against openssl11 as well. Sorry about forgetting that point.]
comment:23 Changed 3 years ago by kencu (Ken)
I set you off by challenging your libtool change -- I took that reversion a bit too personally, I'm afraid.
Please overlook my many imperfections. Just trying to have some fun playing on the computer ;>
comment:24 Changed 3 years ago by kencu (Ken)
Resolution: | → duplicate |
---|---|
Status: | assigned → closed |
this issue turned out to be a generic issue with cmake, tracked generally here
comment:25 Changed 3 years ago by cooljeanius (Eric Gallager)
Cc: | cooljeanius added |
---|
(I personally do not use this port.)