summaryrefslogtreecommitdiff
path: root/mysys
diff options
context:
space:
mode:
authorDaniel Black <daniel@mariadb.org>2022-09-21 11:10:05 +1000
committerSergei Golubchik <serg@mariadb.org>2023-02-10 10:45:25 +0100
commitb30b040b733ff2045ffcd7bdd44f608c7f4912b5 (patch)
treed23e6e1aaa027fe26068e9a87994316d806c2b23 /mysys
parentce4a289f1c367987977f1a02bbb8d8b8e8e6bb53 (diff)
downloadmariadb-git-b30b040b733ff2045ffcd7bdd44f608c7f4912b5.tar.gz
MDEV-29582 deprecate mysql* names
Eventually mysql symlinks will go away, as MariaDB and MySQL keep diverging and we do not want to make it impossible to install MariaDB and MySQL side-by-side when users want it. It also useful if people start using MariaDB tools with MariaDB. If the exe doesn't begine with "mariadb" or is a symlink, print a warning to use the resolved name. In my_readlink, add check on my_thread_var as its used by comp_err and other build utils that also use my_init.
Diffstat (limited to 'mysys')
-rw-r--r--mysys/errors.c2
-rw-r--r--mysys/my_init.c10
-rw-r--r--mysys/my_symlink.c8
3 files changed, 17 insertions, 3 deletions
diff --git a/mysys/errors.c b/mysys/errors.c
index d88540fe277..a7b2f1ae603 100644
--- a/mysys/errors.c
+++ b/mysys/errors.c
@@ -60,6 +60,7 @@ const char *globerrs[GLOBERRS]=
"Lock Pages in memory access rights required",
"Memcntl %s cmd %s error",
"Warning: Charset id '%d' csname '%s' trying to replace existing csname '%s'",
+ "Notice: %s is deprecated and will be removed in a future release, use command '%s'"
};
void init_glob_errs(void)
@@ -109,6 +110,7 @@ void init_glob_errs()
EE(EE_PERM_LOCK_MEMORY)= "Lock Pages in memory access rights required";
EE(EE_MEMCNTL) = "Memcntl %s cmd %s error";
EE(EE_DUPLICATE_CHARSET)= "Warning: Charset id %d trying to replace csname %s with %s";
+ EE(EE_NAME_DEPRECATED) = "Notice: %s is deprecated and will be removed in a future release, use command '%s'"
}
#endif
diff --git a/mysys/my_init.c b/mysys/my_init.c
index 44488e5848a..9ca68e80c1d 100644
--- a/mysys/my_init.c
+++ b/mysys/my_init.c
@@ -170,7 +170,17 @@ my_bool my_init(void)
my_progname_short= "unknown";
if (my_progname)
+ {
+ char link_name[FN_REFLEN];
my_progname_short= my_progname + dirname_length(my_progname);
+ /*
+ If its a link a different program that doesn't begin with mariadb
+ like mariadb-repair might link to mariadb-check.
+ */
+ if (strncmp(my_progname_short, "mariadb", 7)
+ && my_readlink(link_name, my_progname, MYF(0)) == 0)
+ my_error(EE_NAME_DEPRECATED, MYF(MY_WME), my_progname, link_name);
+ }
/* Initialize our mutex handling */
my_mutex_init();
diff --git a/mysys/my_symlink.c b/mysys/my_symlink.c
index 8238e501e7f..e7833992f0d 100644
--- a/mysys/my_symlink.c
+++ b/mysys/my_symlink.c
@@ -45,7 +45,7 @@ int (*mysys_test_invalid_symlink)(const char *filename)= always_valid;
int my_readlink(char *to, const char *filename, myf MyFlags)
{
#ifndef HAVE_READLINK
- strmov(to,filename);
+ strnmov(to, filename, FN_REFLEN);
return 1;
#else
int result=0;
@@ -54,11 +54,13 @@ int my_readlink(char *to, const char *filename, myf MyFlags)
if ((length=readlink(filename, to, FN_REFLEN-1)) < 0)
{
+ if (my_thread_var)
+ my_errno= errno;
/* Don't give an error if this wasn't a symlink */
- if ((my_errno=errno) == EINVAL)
+ if (errno == EINVAL)
{
result= 1;
- strmov(to,filename);
+ strnmov(to, filename, FN_REFLEN);
}
else
{