Opened 3 years ago

Closed 2 years ago

Last modified 2 years ago

#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)

main.log (6.3 MB) - added by chrstphrchvz (Christopher Chavez) 3 years ago.

Change History (26)

comment:1 Changed 3 years ago by chrstphrchvz (Christopher Chavez)

Description: modified (diff)

(I personally do not use this port.)

Changed 3 years ago by chrstphrchvz (Christopher Chavez)

Attachment: main.log added

comment:2 Changed 2 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

https://packages.macports.org/mariadb-10.5

https://packages.macports.org/mariadb-10.6

Last edited 2 years ago by laggardkernel (laggardkernel) (previous) (diff)

comment:3 Changed 2 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.

Last edited 2 years ago by chrstphrchvz (Christopher Chavez) (previous) (diff)

comment:4 Changed 2 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 in reply to:  3 ; Changed 2 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.

Last edited 2 years ago by chrstphrchvz (Christopher Chavez) (previous) (diff)

comment:6 in reply to:  5 ; Changed 2 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 in reply to:  6 Changed 2 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:8 Changed 2 years ago by chrstphrchvz (Christopher Chavez)

Possibly related to #55086

comment:9 Changed 2 years ago by kencu (Ken)

I believe older libtool versions don't understand no_warning_for_no_symbols

comment:10 Changed 2 years ago by kencu (Ken)

according to llvm, only libtool version 862 and up support that flag

https://reviews.llvm.org/D27119

comment:11 Changed 2 years ago by kencu (Ken)

Summary: mysql8 @8.0.26_0: build fails under trace modemysql8 @8.0.26_0: build fails under trace mode due to too-old libtool

comment:12 Changed 2 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 2 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 in reply to:  12 ; Changed 2 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.

Last edited 2 years ago by kencu (Ken) (previous) (diff)

comment:15 Changed 2 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 in reply to:  14 Changed 2 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 use libtool.

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 2 years ago by kencu (Ken)

Summary: mysql8 @8.0.26_0: build fails under trace mode due to too-old libtoolmysql8 @8.0.26_0: build fails under trace mode

comment:18 Changed 2 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.

Last edited 2 years ago by kencu (Ken) (previous) (diff)

comment:19 in reply to:  4 Changed 2 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 Changed 2 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 in reply to:  20 Changed 2 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 2 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.]

Last edited 2 years ago by kencu (Ken) (previous) (diff)

comment:23 Changed 2 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 2 years ago by kencu (Ken)

Resolution: duplicate
Status: assignedclosed

this issue turned out to be a generic issue with cmake, tracked generally here

#64368

comment:25 Changed 2 years ago by cooljeanius (Eric Gallager)

Cc: cooljeanius added
Note: See TracTickets for help on using tickets.