diff options
Diffstat (limited to 'support-files/mysql.spec.sh')
-rw-r--r-- | support-files/mysql.spec.sh | 224 |
1 files changed, 164 insertions, 60 deletions
diff --git a/support-files/mysql.spec.sh b/support-files/mysql.spec.sh index 42958a3a871..5860e612e66 100644 --- a/support-files/mysql.spec.sh +++ b/support-files/mysql.spec.sh @@ -1,8 +1,15 @@ %define mysql_version @VERSION@ + # use "rpmbuild --with static" or "rpm --define '_with_static 1'" (for RPM 3.x) # to enable static linking (off by default) %{?_with_static:%define STATIC_BUILD 1} %{!?_with_static:%define STATIC_BUILD 0} + +# use "rpmbuild --with yassl" or "rpm --define '_with_yassl 1'" (for RPM 3.x) +# to build with yaSSL support (off by default) +%{?_with_yassl:%define YASSL_BUILD 1} +%{!?_with_yassl:%define YASSL_BUILD 0} + %if %{STATIC_BUILD} %define release 0 %else @@ -28,7 +35,7 @@ Release: %{release} License: %{license} Source: http://www.mysql.com/Downloads/MySQL-@MYSQL_BASE_VERSION@/mysql-%{mysql_version}.tar.gz URL: http://www.mysql.com/ -Packager: Lenz Grimmer <build@mysql.com> +Packager: MySQL Production Engineering Team <build@mysql.com> Vendor: MySQL AB Provides: msqlormysql MySQL-server mysql BuildRequires: ncurses-devel @@ -189,7 +196,7 @@ Optional MySQL server binary that supports additional features like: - Archive Storage Engine - CSV Storage Engine - Example Storage Engine - - MyISAM RAID + - Federated Storage Engine - User Defined Functions (UDFs). To activate this binary, just install this package in addition to @@ -197,24 +204,24 @@ the standard MySQL package. Please note that this is a dynamically linked binary! -%package embedded -Requires: %{name}-devel -Summary: MySQL - embedded library -Group: Applications/Databases -Obsoletes: mysql-embedded - -%description embedded -This package contains the MySQL server as an embedded library. - -The embedded MySQL server library makes it possible to run a -full-featured MySQL server inside the client application. -The main benefits are increased speed and more simple management -for embedded applications. - -The API is identical for the embedded MySQL version and the -client/server version. - -%{see_base} +#%package embedded +#Requires: %{name}-devel +#Summary: MySQL - embedded library +#Group: Applications/Databases +#Obsoletes: mysql-embedded +# +#%description embedded +#This package contains the MySQL server as an embedded library. +# +#The embedded MySQL server library makes it possible to run a +#full-featured MySQL server inside the client application. +#The main benefits are increased speed and more simple management +#for embedded applications. +# +#The API is identical for the embedded MySQL version and the +#client/server version. +# +#%{see_base} %prep %setup -n mysql-%{mysql_version} @@ -239,6 +246,9 @@ sh -c "PATH=\"${MYSQL_BUILD_PATH:-$PATH}\" \ --with-unix-socket-path=/var/lib/mysql/mysql.sock \ --prefix=/ \ --with-extra-charsets=complex \ +%if %{YASSL_BUILD} + --with-yassl \ +%endif --exec-prefix=%{_exec_prefix} \ --libexecdir=%{_sbindir} \ --libdir=%{_libdir} \ @@ -249,11 +259,9 @@ sh -c "PATH=\"${MYSQL_BUILD_PATH:-$PATH}\" \ --includedir=%{_includedir} \ --mandir=%{_mandir} \ --enable-thread-safe-client \ - --with-readline ; + --with-readline ; \ # Add this for more debugging support # --with-debug - # Add this for MyISAM RAID support: - # --with-raid " # benchdir does not fit in above model. Maybe a separate bench distribution @@ -296,23 +304,34 @@ then fi BuildMySQL "--enable-shared \ - --without-openssl \ --with-berkeley-db \ --with-innodb \ --with-ndbcluster \ - --with-raid \ --with-archive-storage-engine \ --with-csv-storage-engine \ --with-example-storage-engine \ --with-blackhole-storage-engine \ - --with-embedded-server \ - --with-comment=\"MySQL Community Edition - Max (GPL)\" \ - --with-server-suffix='-Max'" + --with-federated-storage-engine \ + --with-big-tables \ + --with-comment=\"MySQL Community Edition - Experimental (GPL)\" \ + --with-server-suffix='-max'" + +# We might want to save the config log file +if test -n "$MYSQL_MAXCONFLOG_DEST" +then + cp -fp config.log "$MYSQL_MAXCONFLOG_DEST" +fi make -i test-force || true # Save mysqld-max -mv sql/mysqld sql/mysqld-max +# check if mysqld was installed in .libs/ +if test -f sql/.libs/mysqld +then + cp sql/.libs/mysqld sql/mysqld-max +else + cp sql/mysqld sql/mysqld-max +fi nm --numeric-sort sql/mysqld-max > sql/mysqld-max.sym # Save the perror binary so it supports the NDB error codes (BUG#13740) mv extra/perror extra/perror.ndb @@ -320,9 +339,6 @@ mv extra/perror extra/perror.ndb # Install the ndb binaries (cd ndb; make install DESTDIR=$RBR) -# Install embedded server library in the build root -install -m 644 libmysqld/libmysqld.a $RBR%{_libdir}/mysql/ - # Include libgcc.a in the devel subpackage (BUG 4921) if expr "$CC" : ".*gcc.*" > /dev/null ; then @@ -337,6 +353,7 @@ fi # Save libraries (cd libmysql/.libs; tar cf $RBR/shared-libs.tar *.so*) (cd libmysql_r/.libs; tar rf $RBR/shared-libs.tar *.so*) +(cd ndb/src/.libs; tar rf $RBR/shared-libs.tar *.so*) # Now clean up make clean @@ -356,12 +373,21 @@ BuildMySQL "--disable-shared \ %endif --with-comment=\"MySQL Community Edition - Standard (GPL)\" \ --with-server-suffix='%{server_suffix}' \ - --without-embedded-server \ - --without-berkeley-db \ + --with-archive-storage-engine \ --with-innodb \ - --without-vio \ - --without-openssl" -nm --numeric-sort sql/mysqld > sql/mysqld.sym + --with-big-tables" +if test -f sql/.libs/mysqld +then + nm --numeric-sort sql/.libs/mysqld > sql/mysqld.sym +else + nm --numeric-sort sql/mysqld > sql/mysqld.sym +fi + +# We might want to save the config log file +if test -n "$MYSQL_CONFLOG_DEST" +then + cp -fp config.log "$MYSQL_CONFLOG_DEST" +fi make -i test-force || true @@ -386,18 +412,22 @@ make install-strip DESTDIR=$RBR benchdir_root=%{_datadir} (cd $RBR%{_libdir}; tar xf $RBR/shared-libs.tar; rm -f $RBR/shared-libs.tar) # install saved mysqld-max -install -s -m755 $MBD/sql/mysqld-max $RBR%{_sbindir}/mysqld-max +install -s -m 755 $MBD/sql/mysqld-max $RBR%{_sbindir}/mysqld-max # install saved perror binary with NDB support (BUG#13740) -install -s -m755 $MBD/extra/perror.ndb $RBR%{_bindir}/perror +install -s -m 755 $MBD/extra/perror.ndb $RBR%{_bindir}/perror # install symbol files ( for stack trace resolution) -install -m644 $MBD/sql/mysqld-max.sym $RBR%{_libdir}/mysql/mysqld-max.sym -install -m644 $MBD/sql/mysqld.sym $RBR%{_libdir}/mysql/mysqld.sym +install -m 644 $MBD/sql/mysqld-max.sym $RBR%{_libdir}/mysql/mysqld-max.sym +install -m 644 $MBD/sql/mysqld.sym $RBR%{_libdir}/mysql/mysqld.sym # Install logrotate and autostart -install -m644 $MBD/support-files/mysql-log-rotate $RBR%{_sysconfdir}/logrotate.d/mysql -install -m755 $MBD/support-files/mysql.server $RBR%{_sysconfdir}/init.d/mysql +install -m 644 $MBD/support-files/mysql-log-rotate $RBR%{_sysconfdir}/logrotate.d/mysql +install -m 755 $MBD/support-files/mysql.server $RBR%{_sysconfdir}/init.d/mysql + +# Install embedded server library in the build root +# FIXME No libmysqld on 5.0 yet +#install -m 644 libmysqld/libmysqld.a $RBR%{_libdir}/mysql/ # Create a symlink "rcmysql", pointing to the init.script. SuSE users # will appreciate that, as all services usually offer this. @@ -407,9 +437,11 @@ ln -s %{_sysconfdir}/init.d/mysql $RPM_BUILD_ROOT%{_sbindir}/rcmysql # (safe_mysqld will be gone in MySQL 4.1) ln -sf ./mysqld_safe $RBR%{_bindir}/safe_mysqld -# Touch the place where the my.cnf config file might be located +# Touch the place where the my.cnf config file and mysqlmanager.passwd +# (MySQL Instance Manager password file) might be located # Just to make sure it's in the file list and marked as a config file touch $RBR%{_sysconfdir}/my.cnf +touch $RBR%{_sysconfdir}/mysqlmanager.passwd %pre server # Shut down a previously installed server first @@ -429,7 +461,7 @@ fi mysql_datadir=%{mysqldatadir} # Create data directory if needed -if test ! -d $mysql_datadir; then mkdir -m755 $mysql_datadir; fi +if test ! -d $mysql_datadir; then mkdir -m 755 $mysql_datadir; fi if test ! -d $mysql_datadir/mysql; then mkdir $mysql_datadir/mysql; fi if test ! -d $mysql_datadir/test; then mkdir $mysql_datadir/test; fi @@ -476,7 +508,7 @@ sleep 2 mysql_clusterdir=/var/lib/mysql-cluster # Create cluster directory if needed -if test ! -d $mysql_clusterdir; then mkdir -m755 $mysql_clusterdir; fi +if test ! -d $mysql_clusterdir; then mkdir -m 755 $mysql_clusterdir; fi %post Max @@ -521,8 +553,6 @@ fi %doc %attr(644, root, root) %{_infodir}/mysql.info* -%doc %attr(644, root, man) %{_mandir}/man1/isamchk.1* -%doc %attr(644, root, man) %{_mandir}/man1/isamlog.1* %doc %attr(644, root, man) %{_mandir}/man1/myisamchk.1* %doc %attr(644, root, man) %{_mandir}/man1/myisamlog.1* %doc %attr(644, root, man) %{_mandir}/man1/myisampack.1* @@ -531,17 +561,16 @@ fi %doc %attr(644, root, man) %{_mandir}/man1/mysqld_safe.1* %doc %attr(644, root, man) %{_mandir}/man1/mysql_fix_privilege_tables.1* %doc %attr(644, root, man) %{_mandir}/man1/mysqlhotcopy.1* +%doc %attr(644, root, man) %{_mandir}/man1/mysqlmanager.1* %doc %attr(644, root, man) %{_mandir}/man1/mysql.server.1* %doc %attr(644, root, man) %{_mandir}/man1/mysql_zap.1* -%doc %attr(644, root, man) %{_mandir}/man1/pack_isam.1* %doc %attr(644, root, man) %{_mandir}/man1/perror.1* %doc %attr(644, root, man) %{_mandir}/man1/replace.1* %doc %attr(644, root, man) %{_mandir}/man1/safe_mysqld.1* %ghost %config(noreplace,missingok) %{_sysconfdir}/my.cnf +%ghost %config(noreplace,missingok) %{_sysconfdir}/mysqlmanager.passwd -%attr(755, root, root) %{_bindir}/isamchk -%attr(755, root, root) %{_bindir}/isamlog %attr(755, root, root) %{_bindir}/myisamchk %attr(755, root, root) %{_bindir}/myisam_ftdump %attr(755, root, root) %{_bindir}/myisamlog @@ -562,7 +591,6 @@ fi %attr(755, root, root) %{_bindir}/mysqltest %attr(755, root, root) %{_bindir}/mysql_tzinfo_to_sql %attr(755, root, root) %{_bindir}/mysql_zap -%attr(755, root, root) %{_bindir}/pack_isam %attr(755, root, root) %{_bindir}/perror %attr(755, root, root) %{_bindir}/replace %attr(755, root, root) %{_bindir}/resolveip @@ -570,6 +598,7 @@ fi %attr(755, root, root) %{_bindir}/safe_mysqld %attr(755, root, root) %{_sbindir}/mysqld +%attr(755, root, root) %{_sbindir}/mysqlmanager %attr(755, root, root) %{_sbindir}/rcmysql %attr(644, root, root) %{_libdir}/mysql/mysqld.sym @@ -647,7 +676,6 @@ fi %{_includedir}/mysql/* %{_libdir}/mysql/libdbug.a %{_libdir}/mysql/libheap.a -%{_libdir}/mysql/libmerge.a %if %{have_libgcc} %{_libdir}/mysql/libmygcc.a %endif @@ -659,8 +687,14 @@ fi %{_libdir}/mysql/libmysqlclient_r.la %{_libdir}/mysql/libmystrings.a %{_libdir}/mysql/libmysys.a -%{_libdir}/mysql/libnisam.a +%{_libdir}/mysql/libndbclient.a +%{_libdir}/mysql/libndbclient.la %{_libdir}/mysql/libvio.a +%if %{STATIC_BUILD} +%else +%{_libdir}/mysql/libz.a +%{_libdir}/mysql/libz.la +%endif %files shared %defattr(-, root, root, 0755) @@ -672,33 +706,50 @@ fi %attr(-, root, root) %{_datadir}/sql-bench %attr(-, root, root) %{_datadir}/mysql-test %attr(755, root, root) %{_bindir}/mysql_client_test -%attr(755, root, root) %{_bindir}/mysqlmanager -%attr(755, root, root) %{_bindir}/mysqlmanagerc -%attr(755, root, root) %{_bindir}/mysqlmanager-pwgen +%attr(755, root, root) %{_bindir}/mysqltestmanager +%attr(755, root, root) %{_bindir}/mysqltestmanager-pwgen +%attr(755, root, root) %{_bindir}/mysqltestmanagerc %files Max %defattr(-, root, root, 0755) %attr(755, root, root) %{_sbindir}/mysqld-max %attr(644, root, root) %{_libdir}/mysql/mysqld-max.sym -%files embedded -%defattr(-, root, root, 0755) -%attr(644, root, root) %{_libdir}/mysql/libmysqld.a +#%files embedded +#%defattr(-, root, root, 0755) +# %attr(644, root, root) %{_libdir}/mysql/libmysqld.a # The spec file changelog only includes changes made to the spec file # itself - note that they must be ordered by date (important when # merging BK trees) %changelog +* Fri Mar 03 2006 Kent Boortz <kent@mysql.com> + +- Don't output an embedded package as it is empty +- Can't use bundled zlib when doing static build. Might be a + automake/libtool problem, having two .la files, "libmysqlclient.la" + and "libz.la", on the same command line to link "thread_test" + expands to too many "-lc", "-lpthread" and other libs giving hard + to nail down duplicate symbol defintion problems. + * Fri Jan 10 2006 Joerg Bruehe <joerg@mysql.com> - Use "-i" on "make test-force"; this is essential for later evaluation of this log file. +* Fri Dec 12 2005 Rodrigo Novo <rodrigo@mysql.com> + +- Added zlib to the list of (static) libraries installed +- Added check against libtool wierdness (WRT: sql/mysqld || sql/.libs/mysqld) +- Compile MySQL with bundled zlib +- Fixed %packager name to "MySQL Production Engineering Team" + * Mon Dec 05 2005 Joerg Bruehe <joerg@mysql.com> - Avoid using the "bundled" zlib on "shared" builds: As it is not installed (on the build system), this gives dependency problems with "libtool" causing the build to fail. + (Change was done on Nov 11, but left uncommented.) * Tue Nov 22 2005 Joerg Bruehe <joerg@mysql.com> @@ -709,6 +760,34 @@ fi - added more man pages +* Wed Oct 19 2005 Kent Boortz <kent@mysql.com> + +- Made yaSSL support an option (off by default) + +* Wed Oct 19 2005 Kent Boortz <kent@mysql.com> + +- Enabled yaSSL support + +* Sat Oct 15 2005 Kent Boortz <kent@mysql.com> + +- Give mode arguments the same way in all places +- Moved copy of mysqld.a to "standard" build, but + disabled it as we don't do embedded yet in 5.0 + +* Fri Oct 14 2005 Kent Boortz <kent@mysql.com> + +- For 5.x, always compile with --with-big-tables +- Copy the config.log file to location outside + the build tree + +* Fri Oct 14 2005 Kent Boortz <kent@mysql.com> + +- Removed unneeded/obsolete configure options +- Added archive engine to standard server +- Removed the embedded server from experimental server +- Changed suffix "-Max" => "-max" +- Changed comment string "Max" => "Experimental" + * Thu Oct 13 2005 Lenz Grimmer <lenz@mysql.com> - added a usermod call to assign a potential existing mysql user to the @@ -748,6 +827,7 @@ fi * Mon Jun 06 2005 Lenz Grimmer <lenz@mysql.com> - added mysql_client_test to the "bench" subpackage (BUG 10676) +- added the libndbclient static and shared libraries (BUG 10676) * Wed Jun 01 2005 Lenz Grimmer <lenz@mysql.com> @@ -769,6 +849,21 @@ fi - removed the MySQL manual files (html/ps/texi) - they have been removed from the MySQL sources and are now available seperately. +* Mon Apr 4 2005 Petr Chardin <petr@mysql.com> + +- old mysqlmanager, mysqlmanagerc and mysqlmanager-pwger renamed into + mysqltestmanager, mysqltestmanager and mysqltestmanager-pwgen respectively + +* Fri Mar 18 2005 Lenz Grimmer <lenz@mysql.com> + +- Disabled RAID in the Max binaries once and for all (it has finally been + removed from the source tree) + +* Sun Feb 20 2005 Petr Chardin <petr@mysql.com> + +- Install MySQL Instance Manager together with mysqld, touch mysqlmanager + password file + * Mon Feb 14 2005 Lenz Grimmer <lenz@mysql.com> - Fixed the compilation comments and moved them into the separate build sections @@ -784,6 +879,15 @@ fi - replaced obsoleted "BuildPrereq" with "BuildRequires" instead +* Thu Jan 13 2005 Lenz Grimmer <lenz@mysql.com> + +- enabled the "Federated" storage engine for the max binary + +* Tue Jan 04 2005 Petr Chardin <petr@mysql.com> + +- ISAM and merge storage engines were purged. As well as appropriate + tools and manpages (isamchk and isamlog) + * Thu Dec 31 2004 Lenz Grimmer <lenz@mysql.com> - enabled the "Archive" storage engine for the max binary |