Use scriptstub instead of links to avoid multilib conflicts
This commit is contained in:
parent
feb70c23cb
commit
5460e2a995
11
mariadb.spec
11
mariadb.spec
@ -32,6 +32,7 @@ License: GPLv2 with exceptions and LGPLv2 and BSD
|
|||||||
|
|
||||||
Source0: http://ftp.osuosl.org/pub/mariadb/mariadb-%{version}/kvm-tarbake-jaunty-x86/mariadb-%{version}.tar.gz
|
Source0: http://ftp.osuosl.org/pub/mariadb/mariadb-%{version}/kvm-tarbake-jaunty-x86/mariadb-%{version}.tar.gz
|
||||||
Source3: my.cnf
|
Source3: my.cnf
|
||||||
|
Source4: scriptstub.c
|
||||||
Source5: my_config.h
|
Source5: my_config.h
|
||||||
Source6: README.mysql-docs
|
Source6: README.mysql-docs
|
||||||
Source7: README.mysql-license
|
Source7: README.mysql-license
|
||||||
@ -337,6 +338,11 @@ cmake . -DBUILD_CONFIG=mysql_release \
|
|||||||
-DTMPDIR=/var/tmp \
|
-DTMPDIR=/var/tmp \
|
||||||
-DWITH_MYSQLD_LDFLAGS="-Wl,-z,relro,-z,now"
|
-DWITH_MYSQLD_LDFLAGS="-Wl,-z,relro,-z,now"
|
||||||
|
|
||||||
|
# this work-around works quite similar to links but using binary
|
||||||
|
# we avoid multilib conflicts, because binaries can conflict,
|
||||||
|
# while 64bit binary is prefered
|
||||||
|
gcc $CFLAGS $LDFLAGS -o scriptstub "-DLIBDIR=\"%{_libdir}/mysql\"" %{SOURCE4}
|
||||||
|
|
||||||
make %{?_smp_mflags} VERBOSE=1
|
make %{?_smp_mflags} VERBOSE=1
|
||||||
|
|
||||||
# debuginfo extraction scripts fail to find source files in their real
|
# debuginfo extraction scripts fail to find source files in their real
|
||||||
@ -448,10 +454,10 @@ chmod 644 ${RPM_BUILD_ROOT}%{_datadir}/mysql/config.*.ini
|
|||||||
|
|
||||||
# Fix scripts for multilib safety
|
# Fix scripts for multilib safety
|
||||||
mv ${RPM_BUILD_ROOT}%{_bindir}/mysql_config ${RPM_BUILD_ROOT}%{_libdir}/mysql/mysql_config
|
mv ${RPM_BUILD_ROOT}%{_bindir}/mysql_config ${RPM_BUILD_ROOT}%{_libdir}/mysql/mysql_config
|
||||||
ln -sf %{_libdir}/mysql/mysql_config ${RPM_BUILD_ROOT}%{_bindir}/mysql_config
|
install -p -m 0755 scriptstub ${RPM_BUILD_ROOT}%{_bindir}/mysql_config
|
||||||
|
|
||||||
mv ${RPM_BUILD_ROOT}%{_bindir}/mysqlbug ${RPM_BUILD_ROOT}%{_libdir}/mysql/mysqlbug
|
mv ${RPM_BUILD_ROOT}%{_bindir}/mysqlbug ${RPM_BUILD_ROOT}%{_libdir}/mysql/mysqlbug
|
||||||
ln -sf %{_libdir}/mysql/mysqlbug ${RPM_BUILD_ROOT}%{_bindir}/mysqlbug
|
install -p -m 0755 scriptstub ${RPM_BUILD_ROOT}%{_bindir}/mysqlbug
|
||||||
|
|
||||||
# Remove libmysqld.a
|
# Remove libmysqld.a
|
||||||
rm -f ${RPM_BUILD_ROOT}%{_libdir}/mysql/libmysqld.a
|
rm -f ${RPM_BUILD_ROOT}%{_libdir}/mysql/libmysqld.a
|
||||||
@ -750,6 +756,7 @@ fi
|
|||||||
- Create mariadb.service symlink
|
- Create mariadb.service symlink
|
||||||
- Fix multilib header location for arm
|
- Fix multilib header location for arm
|
||||||
- Enhance documentation in the unit file
|
- Enhance documentation in the unit file
|
||||||
|
- Use scriptstub instead of links to avoid multilib conflicts
|
||||||
|
|
||||||
* Sun Jul 28 2013 Dennis Gilmore <dennis@ausil.us> - 5.5.32-5
|
* Sun Jul 28 2013 Dennis Gilmore <dennis@ausil.us> - 5.5.32-5
|
||||||
- remove "Requires(pretrans): systemd" since its not possible
|
- remove "Requires(pretrans): systemd" since its not possible
|
||||||
|
32
scriptstub.c
Normal file
32
scriptstub.c
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
/* Translate call of myself into call of same-named script in LIBDIR */
|
||||||
|
/* The macro LIBDIR must be defined as a double-quoted string */
|
||||||
|
|
||||||
|
int main (int argc, char **argv)
|
||||||
|
{
|
||||||
|
char *basename;
|
||||||
|
char *fullname;
|
||||||
|
char **newargs;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
basename = strrchr(argv[0], '/');
|
||||||
|
if (basename)
|
||||||
|
basename++;
|
||||||
|
else
|
||||||
|
basename = argv[0];
|
||||||
|
fullname = malloc(strlen(LIBDIR) + strlen(basename) + 2);
|
||||||
|
sprintf(fullname, "%s/%s", LIBDIR, basename);
|
||||||
|
newargs = malloc((argc+1) * sizeof(char *));
|
||||||
|
newargs[0] = fullname;
|
||||||
|
for (i = 1; i < argc; i++)
|
||||||
|
newargs[i] = argv[i];
|
||||||
|
newargs[argc] = NULL;
|
||||||
|
|
||||||
|
execvp(fullname, newargs);
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user