null+****@clear*****
null+****@clear*****
2011年 9月 28日 (水) 17:13:48 JST
Kouhei Sutou 2011-09-28 08:13:48 +0000 (Wed, 28 Sep 2011) New Revision: 2058c1c595bc054ed62d3f8c6804e5d0c51250c3 Log: [yum][centos] use system MySQL for CentOS 6. Modified files: rpm/centos/mysql-groonga.spec.in yum/build-in-chroot.sh yum/build-rpm.sh Modified: rpm/centos/mysql-groonga.spec.in (+36 -5) =================================================================== --- rpm/centos/mysql-groonga.spec.in 2011-09-28 06:56:32 +0000 (091de6f) +++ rpm/centos/mysql-groonga.spec.in 2011-09-28 08:13:48 +0000 (587b8a5) @@ -1,6 +1,16 @@ +%{!?use_system_mysql:%define use_system_mysql 0} + +%if %{use_system_mysql} +%define mysql_version 5.1.52 +%define mysql_release 1 +%define mysql_dist el6_0.1 +%define mysql_download_base_url http://ftp.iij.ad.jp/pub/linux/centos/6/updates/SRPMS +%else %define mysql_version 5.5.16 %define mysql_release 1 %define mysql_dist rhel5 +%define mysql_download_base_url http://ftp.jaist.ac.jp/pub/mysql/Downloads/MySQL-5.5 +%endif %define groonga_required_version 1.2.6 @@ -18,25 +28,37 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-%(%{__id_u} -n) BuildRequires: groonga-devel >= %{groonga_required_version} BuildRequires: wget Requires: groonga-libs >= %{groonga_required_version} +%if %{use_system_mysql} +Requires: mysql-server +Requires: mysql +%else Requires: MySQL-server = %{mysql_version}-%{mysql_release} Requires: MySQL-client = %{mysql_version}-%{mysql_release} +%endif %description Groonga storage engine is a MySQL storage plugin. %prep %setup -q -n groonga-storage-engine-%{version} + mysql_full_version=%{mysql_version}-%{mysql_release}.%{mysql_dist} +%if %{use_system_mysql} +srpm=mysql-${mysql_full_version}.src.rpm +if [ ! -f ../../SRPMS/$srpm ]; then + wget -O ../../SRPMS/$srpm %{mysql_download_base_url}/$srpm + rpm -Uvh ../../SRPMS/$srpm +fi +%else srpm=MySQL-${mysql_full_version}.src.rpm if [ ! -f ../../SRPMS/$srpm ]; then - mysql_download_base=http://ftp.jaist.ac.jp/pub/mysql/Downloads/MySQL-5.5 - wget -O ../../SRPMS/$srpm $mysql_download_base/$srpm + wget -O ../../SRPMS/$srpm %{mysql_download_base_url}/$srpm rpm -Uvh ../../SRPMS/$srpm for package in client devel embedded server shared test; do rpm=MySQL-${package}-${mysql_full_version}.%{_arch}.rpm mkdir -p ../../RPMS/%{_arch} if [ ! -f ../../RPMS/%{_arch}/$rpm ]; then - wget -O ../../RPMS/%{_arch}/$rpm $mysql_download_base/$rpm + wget -O ../../RPMS/%{_arch}/$rpm $mysql_download_base_url/$rpm fi done fi @@ -46,13 +68,22 @@ if ! rpm -q MySQL-devel 2>&1 | grep $mysql_full_version > /dev/null; then echo "install MySQL-devel by hand: sudo rpm -Uvh $(pwd)/$rpm" && \ exit 1 fi +%endif %build -mysql_source=../mysql-%{mysql_version}/mysql-%{mysql_version} +%if %{use_system_mysql} + mysql_source=../mysql-%{mysql_version} + spec_base="mysql.spec" +%else + mysql_source=../mysql-%{mysql_version}/mysql-%{mysql_version} + spec_base="mysql.%{mysql_version}.spec" +%endif if [ ! -d ${mysql_source} ]; then + specs_dir= MYSQL_RPMBUILD_TEST=no rpmbuild -bp \ + --define 'runselftest 0' \ --define 'optflags -O0' \ - ../../SPECS/mysql.%{mysql_version}.spec + ../../SPECS/${spec_base} fi %configure --with-mysql-source=${mysql_source} make %{?_smp_mflags} Modified: yum/build-in-chroot.sh (+1 -1) =================================================================== --- yum/build-in-chroot.sh 2011-09-28 06:56:32 +0000 (8d8f5d4) +++ yum/build-in-chroot.sh 2011-09-28 08:13:48 +0000 (948e88e) @@ -113,7 +113,7 @@ build() run mkdir -p $source_pool_dir run cp -p $rpm_dir/*-${VERSION}* $binary_pool_dir run cp -p $srpm_dir/*-${VERSION}* $source_pool_dir - if [ $distribution = "centos" ]; then + if [ $distribution = "centos" -a $distribution_version -eq 5 ]; then run cp -p $rpm_dir/MySQL-* $binary_pool_dir run cp -p $srpm_dir/MySQL-* $source_pool_dir fi Modified: yum/build-rpm.sh (+22 -3) =================================================================== --- yum/build-rpm.sh 2011-09-28 06:56:32 +0000 (26171f3) +++ yum/build-rpm.sh 2011-09-28 08:13:48 +0000 (cd52237) @@ -18,7 +18,17 @@ run() } distribution=$(cut -d ' ' -f 1 /etc/redhat-release | tr 'A-Z' 'a-z') -distribution_version=$(cut -d ' ' -f 3 /etc/redhat-release) +case $distribution in + fedora) + distribution_version=$(cut -d ' ' -f 3 /etc/redhat-release) + ;; + centos) + distribution_version=$(cut -d ' ' -f 4 /etc/redhat-release) + ;; +esac + +rpmbuild_options="" + if ! rpm -q ${distribution}-release > /dev/null 2>&1; then packages_dir=/var/cache/yum/core/packages release_rpm=${distribution}-release-${distribution_version}-*.rpm @@ -36,6 +46,13 @@ case $distribution in DEPENDED_PACKAGES="$DEPENDED_PACKAGES cmake libaio-devel systemtap-sdt-devel" ;; centos) + case $distribution_version in + 6.*) + DEPENDED_PACKAGES="$DEPENDED_PACKAGES mysql-devel" + DEPENDED_PACKAGES="$DEPENDED_PACKAGES perl-Time-HiRes" + rpmbuild_options="$rpmbuild_options --define 'use_system_mysql 1'" + ;; + esac ;; esac @@ -47,6 +64,9 @@ if ! id $USER_NAME >/dev/null 2>&1; then run useradd -m $USER_NAME fi +# for debug +# rpmbuild_options="$rpmbuild_options --define 'optflags -O0 -ggdb3'" + cat <<EOF > $BUILD_SCRIPT #!/bin/sh @@ -68,8 +88,7 @@ cp /tmp/${PACKAGE}.spec rpm/SPECS/ chmod o+rx . rpm rpm/RPMS rpm/SRPMS -# rpmbuild -ba --define 'optflags -O0 -ggdb3' rpm/SPECS/${PACKAGE}.spec -rpmbuild -ba rpm/SPECS/${PACKAGE}.spec +rpmbuild -ba $rpmbuild_options rpm/SPECS/${PACKAGE}.spec EOF run chmod +x $BUILD_SCRIPT