summaryrefslogtreecommitdiff
path: root/support-files/mysql.spec.sh
diff options
context:
space:
mode:
Diffstat (limited to 'support-files/mysql.spec.sh')
-rw-r--r--support-files/mysql.spec.sh396
1 files changed, 396 insertions, 0 deletions
diff --git a/support-files/mysql.spec.sh b/support-files/mysql.spec.sh
new file mode 100644
index 00000000000..bd50f3cfc4b
--- /dev/null
+++ b/support-files/mysql.spec.sh
@@ -0,0 +1,396 @@
+%define mysql_version @VERSION@
+%define shared_lib_version @SHARED_LIB_VERSION@
+%define release 1
+%define mysqld_user mysql
+
+%define see_base For a description of MySQL see the base MySQL RPM or http://www.mysql.com
+
+Name: MySQL
+Summary: MySQL: a very fast and reliable SQL database engine
+Group: Applications/Databases
+Summary(pt_BR): MySQL: Um servidor SQL rápido e confiável.
+Group(pt_BR): Aplicações/Banco_de_Dados
+Version: @MYSQL_NO_DASH_VERSION@
+Release: %{release}
+Copyright: GPL / LGPL
+Source: http://www.mysql.com/Downloads/MySQL-@MYSQL_BASE_VERSION@/mysql-%{mysql_version}.tar.gz
+Icon: mysql.gif
+URL: http://www.mysql.com/
+Packager: David Axmark <david@mysql.com>
+Provides: msqlormysql MySQL-server
+Obsoletes: mysql
+
+# Think about what you use here since the first step is to
+# run a rm -rf
+BuildRoot: /var/tmp/mysql
+
+# From the manual
+%description
+MySQL is a true multi-user, multi-threaded SQL (Structured Query
+Language) database server. MySQL is a client/server implementation
+that consists of a server daemon (mysqld) and many different client
+programs/libraries.
+
+The main goals of MySQL are speed, robustness and ease of use. MySQL
+was originally developed because we needed a SQL server that could
+handle very big databases with magnitude higher speed than what any
+database vendor could offer to us. And since we did not need all the
+features that made their server slow we made our own. We have now been
+using MySQL since 1996 in a environment with more than 40 databases,
+10,000 tables, of which more than 500 have more than 7 million
+rows. This is about 200G of data.
+
+The base upon which MySQL is built is a set of routines that have been
+used in a highly demanding production environment for many
+years. While MySQL is still in development, it already offers a rich
+and highly useful function set.
+
+See the documentation for more information
+
+%description -l pt_BR
+O MySQL é um servidor de banco de dados SQL realmente multiusuário e\
+multi-tarefa. A linguagem SQL é a mais popular linguagem para banco de\
+dados no mundo. O MySQL é uma implementação cliente/servidor que\
+consiste de um servidor chamado mysqld e diversos\
+programas/bibliotecas clientes. Os principais objetivos do MySQL são:\
+velocidade, robustez e facilidade de uso. O MySQL foi originalmente\
+desenvolvido porque nós na Tcx precisávamos de um servidor SQL que\
+pudesse lidar com grandes bases de dados e com uma velocidade muito\
+maior do que a que qualquer vendedor podia nos oferecer. Estamos\
+usando\
+o MySQL desde 1996 em um ambiente com mais de 40 bases de dados com 10.000\
+tabelas, das quais mais de 500 têm mais de 7 milhões de linhas. Isto é o\
+equivalente a aproximadamente 50G de dados críticos. A base da construção do\
+MySQL é uma série de rotinas que foram usadas em um ambiente de produção com\
+alta demanda por muitos anos. Mesmo o MySQL estando ainda em desenvolvimento,\
+ele já oferece um conjunto de funções muito ricas e úteis. Veja a documentação\
+para maiores informações.
+
+%package client
+Release: %{release}
+Summary: MySQL - Client
+Group: Applications/Databases
+Summary(pt_BR): MySQL - Cliente
+Group(pt_BR): Aplicações/Banco_de_Dados
+Obsoletes: mysql-client
+
+%description client
+This package contains the standard MySQL clients.
+
+%{see_base}
+
+%description client -l pt_BR
+Este pacote contém os clientes padrão para o MySQL.
+
+%package bench
+Release: %{release}
+Requires: MySQL-client MySQL-DBI-perl-bin perl
+Summary: MySQL - Benchmarks
+Group: Applications/Databases
+Summary(pt_BR): MySQL - Medições de desempenho
+Group(pt_BR): Aplicações/Banco_de_Dados
+Obsoletes: mysql-bench
+
+%description bench
+This package contains MySQL benchmark scripts and data.
+
+%{see_base}
+
+%description bench -l pt_BR
+Este pacote contém medições de desempenho de scripts e dados do MySQL.
+
+%package devel
+Release: %{release}
+Requires: MySQL-client
+Summary: MySQL - Development header files and libraries
+Group: Applications/Databases
+Summary(pt_BR): MySQL - Medições de desempenho
+Group(pt_BR): Aplicações/Banco_de_Dados
+Obsoletes: mysql-devel
+
+%description devel
+This package contains the development header files and libraries
+necessary to develop MySQL client applications.
+
+%{see_base}
+
+%description devel -l pt_BR
+Este pacote contém os arquivos de cabeçalho (header files) e bibliotecas
+necessárias para desenvolver aplicações clientes do MySQL.
+
+%package shared
+Release: %{release}
+Summary: MySQL - Shared libraries
+Group: Applications/Databases
+
+%description shared
+This package contains the shared libraries (*.so*) which certain
+languages and applications need to dynamically load and use MySQL.
+
+%prep
+%setup -n mysql-%{mysql_version}
+
+%build
+# The all-static flag is to make the RPM work on different
+# distributions. This version tries to put shared mysqlcliet libraries
+# in a separate package.
+
+BuildMySQL() {
+# The --enable-assembler simply does nothing on systems that does not
+# support assembler speedups.
+sh -c "PATH=\"${MYSQL_BUILD_PATH:-/bin:/usr/bin}\" \
+ CC=\"${MYSQL_BUILD_CC:-egcs}\" \
+ CFLAGS=\"${MYSQL_BUILD_CFLAGS:- -O6 -fomit-frame-pointer}\" \
+ CXX=\"${MYSQL_BUILD_CXX:-egcs}\" \
+ CXXFLAGS=\"${MYSQL_BUILD_CXXFLAGS:- -O6 -fomit-frame-pointer \
+ -felide-constructors -fno-exceptions -fno-rtti}\" \
+ ./configure \
+ $* \
+ --enable-assembler \
+ --with-mysqld-user=%{mysqld_user} \
+ --with-unix-socket-path=/var/lib/mysql/mysql.sock \
+ --prefix=/ \
+ --with-extra-charsets=complex \
+ --exec-prefix=/usr \
+ --libexecdir=/usr/sbin \
+ --sysconfdir=/etc \
+ --datadir=/usr/share \
+ --localstatedir=/var/lib/mysql \
+ --infodir=/usr/info \
+ --includedir=/usr/include \
+ --mandir=/usr/man \
+ --with-comment=\"Official MySQL RPM\";
+ # Add this for more debugging support
+ # --with-debug
+ "
+
+ # benchdir does not fit in above model. Maybe a separate bench distribution
+ make benchdir=$RPM_BUILD_ROOT/usr/share/sql-bench
+}
+
+# Use the build root for temporary storage of the shared libraries.
+
+RBR=$RPM_BUILD_ROOT
+MBD=$RPM_BUILD_DIR/mysql-%{mysql_version}
+if test -z "$RBR" -o "$RBR" = "/"
+then
+ echo "RPM_BUILD_ROOT has stupid value"
+ exit 1
+fi
+rm -rf $RBR
+mkdir -p $RBR
+
+BuildMySQL "--enable-shared --enable-thread-safe-client --without-server"
+
+# Save everything for debus
+tar cf $RBR/all.tar .
+
+# Save shared libraries
+(cd libmysql/.libs; tar cf $RBR/shared-libs.tar *.so*)
+
+# Save manual to avoid rebuilding
+mv Docs/manual.ps Docs/manual.ps.save
+make distclean
+mv Docs/manual.ps.save Docs/manual.ps
+
+BuildMySQL "--disable-shared" \
+ "--with-mysqld-ldflags='-all-static'" \
+ "--with-client-ldflags='-all-static'"
+
+%install -n mysql-%{mysql_version}
+RBR=$RPM_BUILD_ROOT
+MBD=$RPM_BUILD_DIR/mysql-%{mysql_version}
+# Ensure that needed directories exists
+install -d $RBR/etc/{logrotate.d,rc.d/init.d}
+install -d $RBR/var/lib/mysql/mysql
+install -d $RBR/usr/share/sql-bench
+install -d $RBR/usr/{sbin,share,man,include}
+install -d $RBR/usr/doc/MySQL-%{mysql_version}
+install -d $RBR/usr/lib
+# Make install
+make install DESTDIR=$RBR benchdir=/usr/share/sql-bench
+
+# Install shared libraries (Disable for architectures that don't support it)
+(cd $RBR/usr/lib; tar xf $RBR/shared-libs.tar)
+
+# Install logrotate and autostart
+install -m644 $MBD/support-files/mysql-log-rotate $RBR/etc/logrotate.d/mysql
+install -m755 $MBD/support-files/mysql.server $RBR/etc/rc.d/init.d/mysql
+
+# Install docs
+install -m644 $RPM_BUILD_DIR/mysql-%{mysql_version}/Docs/mysql.info \
+ $RBR/usr/info/mysql.info
+for file in README COPYING COPYING.LIB Docs/manual_toc.html Docs/manual.html \
+ Docs/manual.txt Docs/manual.texi Docs/manual.ps \
+ support-files/my-huge.cnf support-files/my-large.cnf \
+ support-files/my-medium.cnf support-files/my-small.cnf
+do
+ b=`basename $file`
+ install -m644 $MBD/$file $RBR/usr/doc/MySQL-%{mysql_version}/$b
+done
+
+%pre
+if test -x /etc/rc.d/init.d/mysql
+then
+ /etc/rc.d/init.d/mysql stop > /dev/null 2>&1
+ echo "Giving mysqld a couple of seconds to exit nicely"
+ sleep 5
+fi
+
+%post
+mysql_datadir=/var/lib/mysql
+
+# Create data directory if needed
+if test ! -d $mysql_datadir; then mkdir $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
+
+# Make MySQL start/shutdown automatically when the machine does it.
+/sbin/chkconfig --add mysql
+
+# Create a MySQL user. Do not report any problems if it already
+# exists. This is redhat specific and should be handled more portable
+useradd -M -r -d $mysql_datadir -s /bin/bash -c "MySQL server" mysql 2> /dev/null || true
+
+# Change permissions so that the user that will run the MySQL daemon
+# owns all database files.
+chown -R mysql $mysql_datadir
+
+# Initiate databases
+mysql_install_db -IN-RPM
+
+# Change permissions again to fix any new files.
+chown -R mysql $mysql_datadir
+
+# Fix permissions for the permission database so that only the user
+# can read them.
+chmod -R og-rw $mysql_datadir/mysql
+
+# Restart in the same way that mysqld will be started normally.
+/etc/rc.d/init.d/mysql start
+
+# Allow safe_mysqld to start mysqld and print a message before we exit
+sleep 2
+
+%preun
+if test -x /etc/rc.d/init.d/mysql
+then
+ /etc/rc.d/init.d/mysql stop > /dev/null
+fi
+# Remove autostart of mysql
+if test $1 = 0
+then
+ /sbin/chkconfig --del mysql
+fi
+# We do not remove the mysql user since it may still own a lot of
+# database files.
+
+%files
+%attr(-, root, root) %doc /usr/doc/MySQL-%{mysql_version}/
+
+%attr(755, root, root) /usr/bin/isamchk
+%attr(755, root, root) /usr/bin/isamlog
+%attr(755, root, root) /usr/bin/pack_isam
+%attr(755, root, root) /usr/bin/myisamchk
+%attr(755, root, root) /usr/bin/myisamlog
+%attr(755, root, root) /usr/bin/myisampack
+%attr(755, root, root) /usr/bin/mysql_fix_privilege_tables
+%attr(755, root, root) /usr/bin/mysql_convert_table_format
+%attr(755, root, root) /usr/bin/mysql_install_db
+%attr(755, root, root) /usr/bin/mysql_config
+%attr(755, root, root) /usr/bin/mysql_setpermission
+%attr(755, root, root) /usr/bin/mysql_zap
+%attr(755, root, root) /usr/bin/mysqlbug
+%attr(755, root, root) /usr/bin/mysqlhotcopy
+%attr(755, root, root) /usr/bin/perror
+%attr(755, root, root) /usr/bin/replace
+%attr(755, root, root) /usr/bin/resolveip
+%attr(755, root, root) /usr/bin/safe_mysqld
+%attr(755, root, root) /usr/bin/my_print_defaults
+
+%attr(644, root, root) /usr/info/mysql.info
+
+%attr(755, root, root) /usr/sbin/mysqld
+
+%attr(644, root, root) /etc/logrotate.d/mysql
+%attr(755, root, root) /etc/rc.d/init.d/mysql
+
+%attr(755, root, root) /usr/share/mysql/
+
+%files client
+%attr(755, root, root) /usr/bin/msql2mysql
+%attr(755, root, root) /usr/bin/mysql
+%attr(755, root, root) /usr/bin/mysqlaccess
+%attr(755, root, root) /usr/bin/mysqladmin
+%attr(755, root, root) /usr/bin/mysql_find_rows
+%attr(755, root, root) /usr/bin/mysqldump
+%attr(755, root, root) /usr/bin/mysqlimport
+%attr(755, root, root) /usr/bin/mysqlshow
+%attr(755, root, root) /usr/bin/mysqlbinlog
+
+%attr(644, root, man) %doc /usr/man/man1/mysql.1
+
+%post shared
+/sbin/ldconfig
+
+%postun shared
+/sbin/ldconfig
+
+%files devel
+%attr(755, root, root) /usr/bin/comp_err
+%attr(755, root, root) /usr/include/mysql/
+%attr(755, root, root) /usr/lib/mysql/
+%attr(755, root, root) /usr/bin/mysql_config
+
+%files shared
+# Shared libraries (omit for architectures that don't support them)
+%attr(755, root, root) /usr/lib/*
+
+%files bench
+%attr(-, root, root) /usr/share/sql-bench
+
+%changelog
+
+* Wed Sep 28 1999 David Axmark <davida@mysql.com>
+
+- Added the support-files/my-example.cnf to the docs directory.
+
+- Removed devel dependency on base since it is about client
+ development.
+
+* Wed Sep 8 1999 David Axmark <davida@mysql.com>
+
+- Cleaned up some for 3.23.
+
+* Thu Jul 1 1999 David Axmark <davida@mysql.com>
+
+- Added support for shared libraries in a separate sub
+ package. Original fix by David Fox (dsfox@cogsci.ucsd.edu)
+
+- The --enable-assembler switch is now automatically disables on
+ platforms there assembler code is unavailable. This should allow
+ building this RPM on non i386 systems.
+
+* Mon Feb 22 1999 David Axmark <david@detron.se>
+
+- Removed unportable cc switches from the spec file. The defaults can
+ now be overridden with environment variables. This feature is used
+ to compile the official RPM with optimal (but compiler version
+ specific) switches.
+
+- Removed the repetitive description parts for the sub rpms. Maybe add
+ again if RPM gets a multiline macro capability.
+
+- Added support for a pt_BR translation. Translation contributed by
+ Jorge Godoy <jorge@bestway.com.br>.
+
+* Wed Nov 4 1998 David Axmark <david@detron.se>
+
+- A lot of changes in all the rpm and install scripts. This may even
+ be a working RPM :-)
+
+* Sun Aug 16 1998 David Axmark <david@detron.se>
+
+- A developers changelog for MySQL is available in the source RPM. And
+ there is a history of major user visible changed in the Reference
+ Manual. Only RPM specific changes will be documented here.