MySQL install from source??

Jason Gallagher yellowdog-general@lists.terrasoftsolutions.com
Thu Apr 4 02:13:01 2002


This is a multi-part message in MIME format.
--------------DC2598B7ADE29D0C2D7BF74B
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit

Åke Svensson wrote:

> trying to install Mysql (3.23.49) from source onto YDL 2.0 but after reading
> 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/
--------------DC2598B7ADE29D0C2D7BF74B
Content-Type: text/plain; charset=iso-8859-1;
 name="mysql.spec"
Content-Transfer-Encoding: 8bit
Content-Disposition: inline;
 filename="mysql.spec"

Name: mysql
Version: 3.23.41
Release: 1
Source0: http://www.mysql.com/Downloads/MySQL-3.23/mysql-%{version}.tar.bz2
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_SOURCE"
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 > ROOTFILES
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 client
  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.

--------------DC2598B7ADE29D0C2D7BF74B--