Hi, Rasmus! On Jun 13, Rasmus Johansson wrote:
revision-id: e35fb718eae (mariadb-10.4.5-44-ge35fb718eae) parent(s): 8e3a4be45c5 author: Rasmus Johansson <razze@iki.fi> committer: Rasmus Johansson <razze@iki.fi>
Is that an address you want to have in git history? You already have two, just making sure the third one is intentional.
timestamp: 2019-06-13 13:20:40 +0000 message:
MDEV-17591 Create MariaDB named commands/symlinks
diff --git a/cmake/install_macros.cmake b/cmake/install_macros.cmake index f28720e97bc..e49f296ed75 100644 --- a/cmake/install_macros.cmake +++ b/cmake/install_macros.cmake @@ -111,8 +111,10 @@ FUNCTION(INSTALL_SCRIPT) ENDIF()
INSTALL(PROGRAMS ${script} DESTINATION ${ARG_DESTINATION} ${COMP}) + string(REPLACE "${CMAKE_BINARY_DIR}/scripts/" "" dest ${script})
better not to assume that the script is in ${CMAKE_BINARY_DIR}/scripts/ I'd use get_filename_component() here. Like get_filename_component(dest "${scripts}" NAME)
+ CREATE_MARIADB_SYMLINK(${dest})
- INSTALL_MANPAGE(${script}) + INSTALL_MANPAGE(${dest}) ENDFUNCTION()
diff --git a/cmake/mysql_add_executable.cmake b/cmake/mysql_add_executable.cmake index d3a888f9a75..ad7320cd193 100644 --- a/cmake/mysql_add_executable.cmake +++ b/cmake/mysql_add_executable.cmake @@ -63,6 +63,9 @@ FUNCTION (MYSQL_ADD_EXECUTABLE) UNSET(EXCLUDE_FROM_ALL) ENDIF() ADD_EXECUTABLE(${target} ${WIN32} ${MACOSX_BUNDLE} ${EXCLUDE_FROM_ALL} ${sources}) + # create mariadb named symlink + CREATE_MARIADB_SYMLINK(${target}) + # tell CPack where to install IF(NOT ARG_EXCLUDE_FROM_ALL) IF(NOT ARG_DESTINATION) diff --git a/cmake/symlinks.cmake b/cmake/symlinks.cmake new file mode 100644 index 00000000000..0d0c637df5a --- /dev/null +++ b/cmake/symlinks.cmake @@ -0,0 +1,74 @@ +# MariaDB names for executables +list(APPEND MARIADB_SYMLINK_NAMES "mysql" "mariadb") +list(APPEND MARIADB_SYMLINK_NAMES "mysqlaccess" "mariadb-access") +list(APPEND MARIADB_SYMLINK_NAMES "mysqladmin" "mariadb-admin") +list(APPEND MARIADB_SYMLINK_NAMES "mariabackup" "mariadb-backup") +list(APPEND MARIADB_SYMLINK_NAMES "mysqlbinlog" "mariadb-binlog") +list(APPEND MARIADB_SYMLINK_NAMES "mysqlcheck" "mariadb-check") +list(APPEND MARIADB_SYMLINK_NAMES "mysql_client_test_embedded" "mariadb-client-test-embedded") +list(APPEND MARIADB_SYMLINK_NAMES "mariadb_config" "mariadb-config") +list(APPEND MARIADB_SYMLINK_NAMES "mysql_convert_table_format" "mariadb-convert-table-format") +list(APPEND MARIADB_SYMLINK_NAMES "mysqldump" "mariadb-dump") +list(APPEND MARIADB_SYMLINK_NAMES "mysqldumpslow" "mariadb-dumpslow") +list(APPEND MARIADB_SYMLINK_NAMES "mysql_embedded" "mariadb-embedded") +list(APPEND MARIADB_SYMLINK_NAMES "mysql_find_rows" "mariadb-find-rows") +list(APPEND MARIADB_SYMLINK_NAMES "mysql_fix_extensions" "mariadb-fix-extensions") +list(APPEND MARIADB_SYMLINK_NAMES "mysqlhotcopy" "mariadb-hotcopy") +list(APPEND MARIADB_SYMLINK_NAMES "mysqlimport" "mariadb-import") +list(APPEND MARIADB_SYMLINK_NAMES "mysql_install_db" "mariadb-install-db") +list(APPEND MARIADB_SYMLINK_NAMES "mysql_ldb" "mariadb-ldb") +list(APPEND MARIADB_SYMLINK_NAMES "mysql_plugin" "mariadb-plugin") +list(APPEND MARIADB_SYMLINK_NAMES "mysql_secure_installation" "mariadb-secure-installation") +list(APPEND MARIADB_SYMLINK_NAMES "mysql_setpermission" "mariadb-setpermission") +list(APPEND MARIADB_SYMLINK_NAMES "mysqlshow" "mariadb-show") +list(APPEND MARIADB_SYMLINK_NAMES "mysqlslap" "mariadb-slap") +list(APPEND MARIADB_SYMLINK_NAMES "mysqltest" "mariadb-test") +list(APPEND MARIADB_SYMLINK_NAMES "mysqltest_embedded" "mariadb-test-embedded") +list(APPEND MARIADB_SYMLINK_NAMES "mytop" "mariadb-top") +list(APPEND MARIADB_SYMLINK_NAMES "mysql_tzinfo_to_sql" "mariadb-tzinfo-to-sql") +list(APPEND MARIADB_SYMLINK_NAMES "mysql_upgrade" "mariadb-upgrade") +list(APPEND MARIADB_SYMLINK_NAMES "mysql_upgrade_service" "mariadb-upgrade-service") +list(APPEND MARIADB_SYMLINK_NAMES "mysql_upgrade_wizard" "mariadb-upgrade-wizard") +list(APPEND MARIADB_SYMLINK_NAMES "mysql_waitpid" "mariadb-waitpid") +list(APPEND MARIADB_SYMLINK_NAMES "mysqld" "mariadbd") +list(APPEND MARIADB_SYMLINK_NAMES "mysqld_multi" "mariadbd-multi") +list(APPEND MARIADB_SYMLINK_NAMES "mysqld_safe" "mariadbd-safe") +list(APPEND MARIADB_SYMLINK_NAMES "mysqld_safe_helper" "mariadbd-safe-helper") + +# Add MariaDB symlinks +macro(CREATE_MARIADB_SYMLINK src)
do you still skip Windows, as in the previous commit? I couldn't find it in this one.
+ # Find the MariaDB name for executable + list(FIND MARIADB_SYMLINK_NAMES ${src} _index) + + if (${_index} GREATER -1) + MATH(EXPR _index "${_index}+1") + list(GET MARIADB_SYMLINK_NAMES ${_index} _name) + MESSAGE(${_name})
I suspect this was a debugging aid that you forgot to remove
+ set(mariadbname ${_name}) + endif() + + if (mariadbname) + set(dest ${mariadbname}) + message("src: ${src}") + message("dest: ${dest}") + message("CMAKE_CURRENT_BINARY_DIR: ${CMAKE_CURRENT_BINARY_DIR}") + message("INSTALL_BINDIR: ${INSTALL_BINDIR}")
and that too
+ + add_custom_target( + symlink_${dest} ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${dest} + ) + + add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${dest} POST_BUILD + COMMAND ${CMAKE_COMMAND} -E create_symlink ${src} ${dest} + COMMENT "mklink ${src} -> ${dest}") + + set(symlink_install_dir ${INSTALL_BINDIR}) + # adjust install location if needed + if(${dest} MATCHES "mariadb-install-db") + set(symlink_install_dir ${INSTALL_SCRIPTDIR}) + endif()
this is very fragile. better to take the path from the ${src} also with get_filename_component().
+ + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${dest} DESTINATION ${symlink_install_dir} COMPONENT symlinks) + endif() +endmacro(CREATE_MARIADB_SYMLINK) diff --git a/debian/mariadb-client-10.4.links b/debian/mariadb-client-10.4.links index 4a504969246..b93d2d7f8fd 100644 --- a/debian/mariadb-client-10.4.links +++ b/debian/mariadb-client-10.4.links @@ -1,6 +1,44 @@ +usr/bin/mysql_find_rows usr/bin/mariadb-find-rows +usr/bin/mysql_fix_extensions usr/bin/mariadb-fix-extenstions +usr/bin/mysql_plugin usr/bin/mariadb-plugin +usr/bin/mysql_waitpid usr/bin/mariadb-waitpid +usr/bin/mysqlaccess usr/bin/mariadb-access +usr/bin/mysqladmin usr/bin/mariadb-admin +usr/bin/mysqlanalyze usr/bin/mariadb-analyze +usr/bin/mysqlbinlog usr/bin/mariadb-binlog +usr/bin/mysqlcheck usr/bin/mariadb-analyze +usr/bin/mysqlcheck usr/bin/mariadb-optimize +usr/bin/mysqlcheck usr/bin/mariadb-repair usr/bin/mysqlcheck usr/bin/mysqlanalyze usr/bin/mysqlcheck usr/bin/mysqloptimize usr/bin/mysqlcheck usr/bin/mysqlrepair +usr/bin/mysqldump usr/bin/mariadb-dump +usr/bin/mysqldumpslow usr/bin/mariadb-dump-slow +usr/bin/mysqlimport usr/bin/mariadb-import +usr/bin/mysqloptimize usr/bin/mariadb-optimize +usr/bin/mysqlrepair usr/bin/mariadb-repair +usr/bin/mysqlreport usr/bin/mariadb-report +usr/bin/mysqlslap usr/bin/mariadb-slap +usr/bin/mysqltest usr/bin/mariadb-test +usr/share/man/man1/mysql_find_rows.1.gz usr/share/man/man1/mariadb-find-rows.1.gz +usr/share/man/man1/mysql_fix_extensions.1.gz usr/share/man/man1/mariadb-fix-extensions.1.gz
manpages aren't symlinked in rpms or bintars. and symlinks depends only on MariaDB-client, while for example mysql_install_db is in the server package. may be just put symlinks into the same package as symlink targets? just like with debs?
+usr/share/man/man1/mysql_plugin.1.gz usr/share/man/man1/mariadb-plugin.1.gz +usr/share/man/man1/mysql_waitpid.1.gz usr/share/man/man1/mariadb-waitpid.1.gz +usr/share/man/man1/mysqlaccess.1.gz usr/share/man/man1/mariadb-access.1.gz +usr/share/man/man1/mysqladmin.1.gz usr/share/man/man1/mariadb-admin.1.gz +usr/share/man/man1/mysqlanalyze.1.gz usr/share/man/man1/mariadb-analyze.1.gz +usr/share/man/man1/mysqlbinlog.1.gz usr/share/man/man1/mariadb-binlog.1.gz +usr/share/man/man1/mysqlcheck.1.gz usr/share/man/man1/mariadb-analyze.1.gz +usr/share/man/man1/mysqlcheck.1.gz usr/share/man/man1/mariadb-optimize.1.gz +usr/share/man/man1/mysqlcheck.1.gz usr/share/man/man1/mariadb-repair.1.gz usr/share/man/man1/mysqlcheck.1.gz usr/share/man/man1/mysqlanalyze.1.gz usr/share/man/man1/mysqlcheck.1.gz usr/share/man/man1/mysqloptimize.1.gz usr/share/man/man1/mysqlcheck.1.gz usr/share/man/man1/mysqlrepair.1.gz +usr/share/man/man1/mysqldump.1.gz usr/share/man/man1/mariadb-dump.1.gz +usr/share/man/man1/mysqldumpslow.1.gz usr/share/man/man1/mariadb-dump-slow.1.gz +usr/share/man/man1/mysqlimport.1.gz usr/share/man/man1/mariadb-import.1.gz +usr/share/man/man1/mysqloptimize.1.gz usr/share/man/man1/mariadb-optimize.1.gz +usr/share/man/man1/mysqlrepair.1.gz usr/share/man/man1/mariadb-repair.1.gz +usr/share/man/man1/mysqlreport.1.gz usr/share/man/man1/mariadb-report.1.gz +usr/share/man/man1/mysqlslap.1.gz usr/share/man/man1/mariadb-slap.1.gz +usr/share/man/man1/mysqltest.1.gz usr/share/man/man1/mariadb-test.1.gz diff --git a/debian/mariadb-client-core-10.4.links b/debian/mariadb-client-core-10.4.links new file mode 100644 index 00000000000..4c5ff23b38b --- /dev/null +++ b/debian/mariadb-client-core-10.4.links @@ -0,0 +1,4 @@ +usr/bin/mysql usr/bin/mariadb +usr/bin/mysqlcheck usr/bin/mariadb-check +usr/share/man/man1/mysql.1.gz usr/share/man/man1/mariadb.1.gz +usr/share/man/man1/mysqlcheck.1.gz usr/share/man/man1/mariadb-check.1.gz diff --git a/debian/mariadb-server-10.4.install b/debian/mariadb-server-10.4.install index a9cbbfc8a99..8b4db99a421 100644 --- a/debian/mariadb-server-10.4.install +++ b/debian/mariadb-server-10.4.install @@ -87,9 +87,9 @@ usr/share/man/man1/replace.1 usr/share/man/man1/resolve_stack_dump.1 usr/share/man/man1/resolveip.1 usr/share/man/man1/wsrep_sst_common.1 +usr/share/man/man1/wsrep_sst_mariabackup.1 usr/share/man/man1/wsrep_sst_mysqldump.1 usr/share/man/man1/wsrep_sst_rsync.1 -usr/share/man/man1/wsrep_sst_mariabackup.1 usr/share/mysql/errmsg-utf8.txt usr/share/mysql/fill_help_tables.sql usr/share/mysql/maria_add_gis_sp_bootstrap.sql diff --git a/debian/mariadb-server-10.4.links b/debian/mariadb-server-10.4.links new file mode 100644 index 00000000000..65e0a6650d5 --- /dev/null +++ b/debian/mariadb-server-10.4.links @@ -0,0 +1,18 @@ +usr/bin/mysql_convert_table_format usr/bin/mariadb-convert-table-format +usr/bin/mysql_secure_installation usr/bin/mariadb-secure-installation +usr/bin/mysql_setpermission usr/bin/mariadb-setpermission +usr/bin/mysql_tzinfo_to_sql usr/bin/mariadb-tzinfo-to-sql +usr/bin/mysqld_multi usr/bin/mariadb-multi +usr/bin/mysqld_safe usr/bin/mariadb-safe +usr/bin/mysqld_safe_helper usr/bin/mariadb-safe-helper +usr/bin/mysqlhotcopy usr/bin/mariadb-hotcopy +usr/bin/mysqlshow usr/bin/mariadb-show +usr/share/man/man1/mysql_convert_table_format.1.gz usr/share/man/man1/mariadb-convert-table-format.1.gz +usr/share/man/man1/mysql_secure_installation.1.gz usr/share/man/man1/mariadb-secure-installation.1.gz +usr/share/man/man1/mysql_setpermission.1.gz usr/share/man/man1/mariadb-setpermission.1.gz +usr/share/man/man1/mysql_tzinfo_to_sql.1.gz usr/share/man/man1/mariadb-tzinfo-to-sql.1.gz +usr/share/man/man1/mysqld_multi.1.gz usr/share/man/man1/mariadb-multi.1.gz +usr/share/man/man1/mysqld_safe.1.gz usr/share/man/man1/mariadb-safe.1.gz +usr/share/man/man1/mysqld_safe_helper.1.gz usr/share/man/man1/mariadb-safe-helper.1.gz +usr/share/man/man1/mysqlhotcopy.1.gz usr/share/man/man1/mariadb-hotcopy.1.gz +usr/share/man/man1/mysqlshow.1.gz usr/share/man/man1/mariadb-show.1.gz diff --git a/debian/mariadb-server-core-10.4.links b/debian/mariadb-server-core-10.4.links new file mode 100644 index 00000000000..90ed9ee01cf --- /dev/null +++ b/debian/mariadb-server-core-10.4.links @@ -0,0 +1,4 @@ +usr/bin/mysql_install_db usr/bin/mariadb-install-db +usr/bin/mysql_upgrade usr/bin/mariadb-upgrade +usr/share/man/man1/mysql_install_db.1.gz usr/share/man/man1/mariadb-install-db.1.gz +usr/share/man/man1/mysql_upgrade.1.gz usr/share/man/man1/mariadb-upgrade-db.1.gz diff --git a/scripts/CMakeLists.txt b/scripts/CMakeLists.txt index 3d31cda4ceb..7be46ac1985 100644 --- a/scripts/CMakeLists.txt +++ b/scripts/CMakeLists.txt @@ -332,6 +332,7 @@ ELSE() COMPONENT ${${file}_COMPONENT} ) ENDFOREACH() + SET (wsrep_sst_rsync_wan ${CMAKE_CURRENT_BINARY_DIR}/wsrep_sst_rsync_wan) ADD_CUSTOM_COMMAND( OUTPUT ${wsrep_sst_rsync_wan}
Regards, Sergei Chief Architect MariaDB and security@mariadb.org