MySQL install from source??-did it!

Åke Svensson yellowdog-general@lists.terrasoftsolutions.com
Fri Apr 5 01:11:01 2002


I did it! But not without help from this list and the Yellowdog ftp site
where I picked up the most recent mysql-3.23.41-src.ppc.rpm and compiled and
some tweaking of config files (/etc/my.cnf). Seems that the 3.23.49 source
was too tough to handle, at least for me. The file structure of the MySQL
client-server package is almost incomprehensible with files in innumerous
different directories - phuhhh!

Thanks again guys!

Best Regards,

Ake Svensson

> Från: Jason Gallagher <jason@interragate.com>
> Organisation: Interragate Ltd
> Svara till: yellowdog-general@lists.terrasoftsolutions.com
> Datum: Thu, 04 Apr 2002 10:13:12 +0100
> Till: yellowdog-general@lists.terrasoftsolutions.com
> Ämne: Re: MySQL install from source??
> 
> Åke Svensson wrote:
> 
>> trying to install Mysql (3.23.49) from source onto YDL 2.0 but after rea=
ding
>> all the mysql.com manuals I can't get it to work. The errors I get are:
> 
> If you're still having problems you might find the spec file yellowdog
> use (attached) of some help. This is from the latest src rpm
> (mysql-3.23.41-1.src.rpm) I could find in 2.2.
> 
> Jason
> -- 
> Jason Gallagher                             mailto:jason@interragate.com
> Interragate Ltd                              http://www.interragate.com/
> Name: mysql
> Version: 3.23.41
> Release: 1
> Source0: http://www.mysql.com/Downloads/MySQL-3.23/mysql-%{version}.tar.b=
z2
> Source1: mysql.init
> Source2: mysql.logrotate
> Source3: my.cnf
> URL: http://www.mysql.com
> BuildRoot: %{_tmppath}/%{name}-%{version}-root
> Summary: MySQL client programs and shared library.
> License: GPL/LGPL
> Group: Applications/Databases
> Prereq: /sbin/ldconfig, /sbin/install-info, grep,  fileutils, chkconfig
> BuildRequires: gperf, perl, db3-devel, readline-devel
> BuildRequires: gcc-c++, ncurses-devel, zlib-devel
> Requires: bash >= 2
> Conflicts: MySQL
> Obsoletes: mysql-client mysql-bench mysql-perl
> 
> %description
> MySQL is a multi-user, multi-threaded SQL database server. MySQL is a
> client/server implementation consisting of a server daemon (mysqld)
> and many different client programs and libraries. This package
> contains the MySQL client programs, the client shared library, and
> generic MySQL files.
> 
> %package server
> 
> Summary: The MySQL server and related files.
> License: GPL
> Group: Applications/Databases
> Prereq: /sbin/chkconfig, /usr/sbin/useradd, /usr/sbin/userdel
> Requires: mysql = %{version}, sh-utils
> Conflicts: MySQL-server
> 
> %description server
> MySQL is a true multi-user, multi-threaded SQL database server. MySQL
> is a client/server implementation that consists of a server daemon
> (mysqld) and many different client programs and libraries. This
> package contains the MySQL server and some accompanying files and
> directories.
> 
> %package devel
> 
> Summary: Files for development of MySQL applications.
> License: LGPL
> Group: Applications/Databases
> Requires: %{name} = %{version}
> Conflicts: MySQL-devel
> 
> %description devel
> MySQL is a true multi-user, multi-threaded SQL database server. This
> package contains the libraries and header files that are needed for
> developing MySQL applications.
> 
> %prep
> %setup -q 
> 
> %build
> CFLAGS="%{optflags} -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOU=
RCE"
> CXXFLAGS="%{optflags} -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64
> -D_LARGEFILE_SOURCE"
> 
> %configure --without-debug \
> --without-readline \
> --enable-shared \
> --with-extra-charsets=complex \
> --with-bench \
> --localstatedir=/var/lib/mysql \
> --with-unix-socket-path=/var/lib/mysql/mysql.sock \
> --with-mysqld-user="mysql" \
> --with-extra-charsets=all \
> --disable-assember \
> %ifnarch alpha
> --with-berkeley-db --enable-large-files=yes --enable-largefile=yes \
> %endif
> --with-thread-safe-client \
> --enable-assembler
> 
> make
> make check
> %ifnarch s390 s390x ia64
> make test
> %endif
> 
> %install
> rm -rf $RPM_BUILD_ROOT
> 
> %makeinstall
> install -m 644 include/my_config.h $RPM_BUILD_ROOT/usr/include/mysql/
> mkdir -p $RPM_BUILD_ROOT/var/log
> touch $RPM_BUILD_ROOT/var/log/mysqld.log
> 
> # List the installed tree for RPM package maintenance purposes.
> find $RPM_BUILD_ROOT -print | sed "s|^$RPM_BUILD_ROOT||" | sort > ROOTFIL=
ES
> gzip $RPM_BUILD_ROOT/%{_infodir}/*
> rm -f $RPM_BUILD_ROOT/usr/share/mysql/mysql-*.spec
> rm -f $RPM_BUILD_ROOT/usr/share/mysql/mysql-log-rotate
> 
> 
> mkdir -p $RPM_BUILD_ROOT/etc/{rc.d/init.d,logrotate.d}
> mkdir -p $RPM_BUILD_ROOT/var/run/mysqld
> install -m 0755 -d $RPM_BUILD_ROOT/var/lib/mysql
> install -m 0755 %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/mysqld
> install -m 0644 %{SOURCE2} $RPM_BUILD_ROOT/etc/logrotate.d/mysqld
> install -m 0644 %{SOURCE3} $RPM_BUILD_ROOT/etc/my.cnf
> rm -f $RPM_BUILD_ROOT/%{_infodir}/dir*
> 
> %clean
> rm -rf $RPM_BUILD_ROOT
> 
> %pre server
> /usr/sbin/useradd -M -o -r -d /var/lib/mysql -s /bin/bash \
> -c "MySQL Server" -u 27 mysql > /dev/null 2>&1 || :
> 
> %post
> /sbin/install-info %{_infodir}/mysql.info.gz %{_infodir}/dir
> if ! grep '^/usr/lib/mysql$' /etc/ld.so.conf > /dev/null 2>&1
> then
> echo "/usr/lib/mysql" >> /etc/ld.so.conf
> fi
> /sbin/ldconfig /usr/lib/mysql
> 
> %post server
> if [ $1 = 1 ]; then
> /sbin/chkconfig --add mysqld
> fi
> /bin/chmod 0755 /var/lib/mysql
> /bin/touch /var/log/mysqld.log
> 
> %preun
> if [ $1 = 0 ]; then
> /sbin/install-info --delete %{_infodir}/mysql.info.gz %{_infodir}/dir
> fi
> 
> %preun server
> if [ $1 = 0 ]; then
> /sbin/chkconfig --del mysqld
> fi
> 
> %postun
> if [ $1 = 0 ] ; then
> if grep '^/usr/lib/mysql$' /etc/ld.so.conf > /dev/null 2>&1
> then
> grep -v '^/usr/lib/mysql$' /etc/ld.so.conf \
>> /etc/ld.so.conf.$$ 2> /dev/null
> mv /etc/ld.so.conf.$$ /etc/ld.so.conf
> fi
> /sbin/ldconfig /usr/lib/mysql
> fi
> 
> 
> %postun server
> if [ $1 -ge 1 ]; then
> /sbin/service mysqld condrestart >/dev/null 2>&1 || :
> fi
> 
> 
> %files
> %defattr(-,root,root)
> %doc INSTALL* README COPYING*
> %doc Docs/manual* Docs/mysqld_error.txt
> 
> # /usr/bin/* except mysqladmin and safe_mysqld
> /usr/bin/[a-ln-rt-z]*
> /usr/bin/msql2mysql
> /usr/bin/mysql
> /usr/bin/mysql_*
> /usr/bin/mysqlaccess
> /usr/bin/mysql[b-z]*
> /usr/bin/my_*
> /usr/bin/myisam*
> 
> %{_infodir}/*
> %{_mandir}/man1/*
> %dir /usr/lib/mysql
> /usr/lib/mysql/libmysqlclient*.so.*
> 
> %dir /usr/share/mysql
> /usr/share/mysql/*
> 
> %config(noreplace) /etc/my.cnf
> 
> %files server
> %defattr(-,root,root)
> /usr/bin/mysqladmin
> /usr/bin/safe_mysqld
> /usr/libexec/*
> /etc/rc.d/init.d/mysqld
> %attr(0755,mysql,mysql) %dir /var/run/mysqld
> %config(noreplace) /etc/logrotate.d/mysqld
> %attr(0755,mysql,mysql) %dir /var/lib/mysql
> %ghost %attr(0640,mysql,mysql) /var/log/mysqld.log
> 
> %files devel
> %defattr(-,root,root)
> /usr/include/mysql
> %dir /usr/lib/mysql
> /usr/lib/mysql/*.a
> /usr/lib/mysql/libmysqlclient*.so
> 
> %changelog
> * Tue Aug 14 2001 Trond Eivind Glomsrød <teg@redhat.com> 3.23.41-1
> - 3.23.41 bugfix release
> - disable innodb, to avoid the broken updates
> - Use "mysqladmin flush_logs" instead of kill -HUP in logrotate
> script (#51711)
> 
> * Sat Jul 21 2001 Trond Eivind Glomsrød <teg@redhat.com>
> - 3.23.40, bugfix release
> - Add zlib-devel to buildrequires:
> 
> * Fri Jul 20 2001 Trond Eivind Glomsrød <teg@redhat.com>
> - BuildRequires-tweaking
> 
> * Thu Jun 28 2001 Trond Eivind Glomsrød <teg@redhat.com>
> - Reenable test, but don't run them for s390, s390x or ia64
> - Make /etc/my.cnf config(noplace). Same for /etc/logrotate.d/mysqld
> 
> * Thu Jun 14 2001 Trond Eivind Glomsrød <teg@redhat.com>
> - 3.23.29
> - enable innodb
> - enable assembly again
> - disable tests for now..
> 
> * Tue May 15 2001 Trond Eivind Glomsrød <teg@redhat.com>
> - 3.23.38
> - Don't use BDB on Alpha - no fast mutexes
> 
> * Tue Apr 24 2001 Trond Eivind Glomsrød <teg@redhat.com>
> - 3.23.37
> - Add _GNU_SOURCE to the compile flags
> 
> * Wed Mar 28 2001 Trond Eivind Glomsrød <teg@redhat.com>
> - Make it obsolete our 6.2 PowerTools packages
> - 3.23.36 bugfix release - fixes some security issues
> which didn't apply to our standard configuration
> - Make "make test" part of the build process, except on IA64
> (it fails there)
> 
> * Tue Mar 20 2001 Trond Eivind Glomsrød <teg@redhat.com>
> - 3.23.35 bugfix release
> - Don't delete the mysql user on uninstall
> 
> * Tue Mar 13 2001 Trond Eivind Glomsrød <teg@redhat.com>
> - 3.23.34a bugfix release
> 
> * Wed Feb  7 2001 Trond Eivind Glomsrød <teg@redhat.com>
> - added readline-devel to BuildRequires:
> 
> * Tue Feb  6 2001 Trond Eivind Glomsrød <teg@redhat.com>
> - small i18n-fixes to initscript (action needs $)
> 
> * Tue Jan 30 2001 Trond Eivind Glomsrød <teg@redhat.com>
> - make it shut down and rotate logs without using mysqladmin
> (from #24909)
> 
> * Mon Jan 29 2001 Trond Eivind Glomsrød <teg@redhat.com>
> - conflict with "MySQL"
> 
> * Tue Jan 23 2001 Trond Eivind Glomsrød <teg@redhat.com>
> - improve gettextizing
> 
> * Mon Jan 22 2001 Trond Eivind Glomsrød <teg@redhat.com>
> - 3.23.32
> - fix logrotate script (#24589)
> 
> * Wed Jan 17 2001 Trond Eivind Glomsrød <teg@redhat.com>
> - gettextize
> - move the items in Requires(post): to Requires: in preparation
> for an errata for 7.0 when 3.23.31 is released
> - 3.23.31
> 
> * Tue Jan 16 2001 Trond Eivind Glomsrød <teg@redhat.com>
> - add the log file to the rpm database, and make it 0640
> (#24116)
> - as above in logrotate script
> - changes to the init sequence - put most of the data
> in /etc/my.cnf instead of hardcoding in the init script
> - use /var/run/mysqld/mysqld.pid instead of
> /var/run/mysqld/pid
> - use standard safe_mysqld
> - shut down cleaner
> 
> * Mon Jan 08 2001 Trond Eivind Glomsrød <teg@redhat.com>
> - 3.23.30
> - do an explicit chmod on /var/lib/mysql in post, to avoid
> any problems with broken permissons. There is a report
> of rm not changing this on its own (#22989)
> 
> * Mon Jan 01 2001 Trond Eivind Glomsrød <teg@redhat.com>
> - bzipped source
> - changed from 85 to 78 in startup, so it starts before
> apache (which can use modules requiring mysql)
> 
> * Wed Dec 27 2000 Trond Eivind Glomsrød <teg@redhat.com>
> - 3.23.29a
> 
> * Tue Dec 19 2000 Trond Eivind Glomsrød <teg@redhat.com>
> - add requirement for new libstdc++, build for errata
> 
> * Mon Dec 18 2000 Trond Eivind Glomsrød <teg@redhat.com>
> - 3.23.29
> 
> * Mon Nov 27 2000 Trond Eivind Glomsrød <teg@redhat.com>
> - 3.23.28 (gamma)
> - remove old patches, as they are now upstreamed
> 
> * Thu Nov 14 2000 Trond Eivind Glomsrød <teg@redhat.com>
> - Add a requirement for a new glibc (#20735)
> - build on IA64
> 
> * Wed Nov  1 2000 Trond Eivind Glomsrød <teg@redhat.com>
> - disable more assembly
> 
> * Wed Nov  1 2000 Jakub Jelinek <jakub@redhat.com>
> - fix mysql on SPARC (#20124)
> 
> * Tue Oct 31 2000 Trond Eivind Glomsrød <teg@redhat.com>
> - 3.23.27
> 
> * Wed Oct 25 2000 Trond Eivind Glomsrød <teg@redhat.com>
> - add patch for fixing bogus aliasing in mysql from Jakub,
> which should fix #18905 and #18620
> 
> * Mon Oct 23 2000 Trond Eivind Glomsrød <teg@redhat.com>
> - check for negative niceness values, and negate it
> if present (#17899)
> - redefine optflags on IA32 FTTB
> 
> * Wed Oct 18 2000 Trond Eivind Glomsrød <teg@redhat.com>
> - 3.23.26, which among other fixes now uses mkstemp()
> instead of tempnam().
> - revert changes made yesterday, the problem is now
> isolated
> 
> * Tue Oct 17 2000 Trond Eivind Glomsrød <teg@redhat.com>
> - use the compat C++ compiler FTTB. Argh.
> - add requirement of ncurses4 (see above)
> 
> * Sun Oct 01 2000 Trond Eivind Glomsrød <teg@redhat.com>
> - 3.23.25
> - fix shutdown problem (#17956)
> 
> * Tue Sep 26 2000 Trond Eivind Glomsrød <teg@redhat.com>
> - Don't try to include no-longer-existing PUBLIC file
> as doc (#17532)
> 
> * Thu Sep 12 2000 Trond Eivind Glomsrød <teg@redhat.com>
> - rename config file to /etc/my.cnf, which is what
> mysqld wants... doh. (#17432)
> - include a changed safe_mysqld, so the pid file option
> works. 
> - make mysql dir world readable to they can access the
> mysql socket. (#17432)
> - 3.23.24
> 
> * Wed Sep 06 2000 Trond Eivind Glomsrød <teg@redhat.com>
> - 3.23.23
> 
> * Sun Aug 27 2000 Trond Eivind Glomsrød <teg@redhat.com>
> - Add "|| :" to condrestart to avoid non-zero exit code
> 
> * Thu Aug 24 2000 Trond Eivind Glomsrød <teg@redhat.com>
> - it's mysql.com, not mysql.org and use correct path to
> source (#16830)
> 
> * Wed Aug 16 2000 Trond Eivind Glomsrød <teg@redhat.com>
> - source file from /etc/rc.d, not /etc/rd.d. Doh.
> 
> * Sun Aug 13 2000 Trond Eivind Glomsrød <teg@redhat.com>
> - don't run ldconfig -n, it doesn't update ld.so.cache
> (#16034)
> - include some missing binaries
> - use safe_mysqld to start the server (request from
> mysql developers)
> 
> * Sat Aug 05 2000 Bill Nottingham <notting@redhat.com>
> - condrestart fixes
> 
> * Mon Aug 01 2000 Trond Eivind Glomsrød <teg@redhat.com>
> - 3.23.22. Disable the old patches, they're now in.
> 
> * Thu Jul 27 2000 Trond Eivind Glomsrød <teg@redhat.com>
> - bugfixes in the initscript
> - move the .so link to the devel package
> 
> * Wed Jul 19 2000 Trond Eivind Glomsrød <teg@redhat.com>
> - rebuild due to glibc changes
> 
> * Tue Jul 18 2000 Trond Eivind Glomsrød <teg@redhat.com>
> - disable compiler patch
> - don't include info directory file
> 
> * Mon Jul 17 2000 Trond Eivind Glomsrød <teg@redhat.com>
> - move back to /etc/rc.d/init.d
> 
> * Fri Jul 14 2000 Trond Eivind Glomsrød <teg@redhat.com>
> - more cleanups in initscript
> 
> * Thu Jul 13 2000 Trond Eivind Glomsrød <teg@redhat.com>
> - add a patch to work around compiler bug
> (from monty@mysql.com)
> 
> * Wed Jul 12 2000 Trond Eivind Glomsrød <teg@redhat.com>
> - don't build the SQL daemon statically (glibc problems)
> - fix the logrotate script - only flush log if mysql
> is running
> - change the reloading procedure
> - remove icon - glint is obsolete a long time ago
> 
> * Wed Jul 12 2000 Prospector <bugzilla@redhat.com>
> - automatic rebuild
> 
> * Mon Jul 10 2000 Trond Eivind Glomsrød <teg@redhat.com>
> - try the new compiler again
> - build the SQL daemon statically
> - add compile time support for complex charsets
> - enable assembler
> - more cleanups in initscript
> 
> * Sun Jul 09 2000 Trond Eivind Glomsrød <teg@redhat.com>
> - use old C++ compiler
> - Exclusivearch x86
> 
> * Sat Jul 08 2000 Trond Eivind Glomsrød <teg@redhat.com>
> - move .so files to devel package
> - more cleanups
> - exclude sparc for now
> 
> * Wed Jul 05 2000 Trond Eivind Glomsrød <teg@redhat.com>
> - 3.23.21
> - remove file from /etc/sysconfig
> - Fix initscript a bit - initialization of databases doesn't
> work yet
> - specify the correct licenses
> - include a /etc/my.conf (empty, FTTB)
> - add conditional restart to spec file
> 
> * Tue Jul  2 2000 Jakub Jelinek <jakub@redhat.com>
> - Rebuild with new C++
> 
> * Fri Jun 30 2000 Trond Eivind Glomsrød <teg@redhat.com>
> - update to 3.23.20
> - use %%configure, %%makeinstall, %%{_tmppath}, %%{_mandir},
> %%{_infodir}, /etc/init.d
> - remove the bench package
> - change some of the descriptions a little bit
> - fix the init script
> - some compile fixes
> - specify mysql user
> - use mysql uid 27 (postgresql is 26)
> - don't build on ia64
> 
> * Sat Feb 26 2000 Jos Vos <jos@xos.nl>
> - Version 3.22.32 release XOS.1 for LinuX/OS 1.8.0
> - Upgrade from version 3.22.27 to 3.22.32.
> - Do "make install" instead of "make install-strip", because "install -s"
> now appears to fail on various scripts.  Afterwards, strip manually.
> - Reorganize subpackages, according to common Red Hat packages: the clien=
t
> program and shared library become the base package and the server and
> some accompanying files are now in a separate server package.  The
> server package implicitly requires the base package (shared library),
> but we have added a manual require tag anyway (because of the shared
> config file, and more).
> - Rename the mysql-benchmark subpackage to mysql-bench.
> 
> * Mon Jan 31 2000 Jos Vos <jos@xos.nl>
> - Version 3.22.27 release XOS.2 for LinuX/OS 1.7.1
> - Add post(un)install scripts for updating ld.so.conf (client subpackage)=
.
> 
> * Sun Nov 21 1999 Jos Vos <jos@xos.nl>
> - Version 3.22.27 release XOS.1 for LinuX/OS 1.7.0
> - Initial version.
> - Some ideas borrowed from Red Hat Powertools 6.1, although this spec
> file is a full rewrite from scratch.
>