1#!/bin/sh 2 3LANG=C 4 5run() 6{ 7 "$@" 8 if test $? -ne 0; then 9 echo "Failed $@" 10 exit 1 11 fi 12} 13 14rpmbuild_options= 15 16. /vagrant/env.sh 17 18distribution=$(cut -d " " -f 1 /etc/redhat-release | tr "A-Z" "a-z") 19if grep -q Linux /etc/redhat-release; then 20 distribution_version=$(cut -d " " -f 4 /etc/redhat-release) 21else 22 distribution_version=$(cut -d " " -f 3 /etc/redhat-release) 23fi 24distribution_version=$(echo ${distribution_version} | sed -e 's/\..*$//g') 25 26architecture="$(arch)" 27case "${architecture}" in 28 i*86) 29 architecture=i386 30 ;; 31esac 32 33run yum groupinstall -y "Development Tools" 34run yum install -y rpm-build rpmdevtools tar wget 35 36if [ -x /usr/bin/rpmdev-setuptree ]; then 37 rm -rf .rpmmacros 38 run rpmdev-setuptree 39else 40 run cat <<EOM > ~/.rpmmacros 41%_topdir ${HOME}/rpmbuild 42EOM 43 run mkdir -p ~/rpmbuild/SOURCES 44 run mkdir -p ~/rpmbuild/SPECS 45 run mkdir -p ~/rpmbuild/BUILD 46 run mkdir -p ~/rpmbuild/RPMS 47 run mkdir -p ~/rpmbuild/SRPMS 48fi 49 50repository="/vagrant/repositories/${distribution}/${distribution_version}" 51rpm_dir="${repository}/${architecture}/Packages" 52srpm_dir="${repository}/source/SRPMS" 53run mkdir -p "${rpm_dir}" "${srpm_dir}" 54 55rpmbuild_options="" 56 57# for debug 58# rpmbuild_options="${rpmbuild_options} --define 'optflags -O0 -g3'" 59 60cd 61 62run cp /vagrant/tmp/${PACKAGE}-${VERSION}.* rpmbuild/SOURCES/ 63run cp /vagrant/tmp/${distribution}/*.spec rpmbuild/SPECS/ 64 65package_name=$(cd rpmbuild/SPECS; echo *.spec | sed -e 's/\.spec$//g') 66 67case ${distribution} in 68 fedora) 69 USE_MYSQLSERVICES_COMPAT=yes 70 run yum install -y mariadb-devel 71 ;; 72 centos) 73 release_rpm=groonga-release-1.3.0-1.noarch.rpm 74 if [ ${distribution_version} = 5 ]; then 75 wget http://packages.groonga.org/${distribution}/${release_rpm} 76 run yum install -y --nogpgcheck ${release_rpm} 77 rm -f ${release_rpm} 78 else 79 run yum install -y \ 80 http://packages.groonga.org/${distribution}/${release_rpm} 81 fi 82 run yum makecache 83 84 case ${package_name} in 85 mysql55-${PACKAGE}) 86 USE_MYSQLSERVICES_COMPAT=yes 87 run yum install -y scl-utils-build 88 if [ ${distribution_version} = 6 ]; then 89 run yum install -y centos-release-scl 90 fi 91 run yum install -y mysql55-mysql-devel mysql55-build 92 ;; 93 mysql5?-community-${PACKAGE}) 94 release_rpm=mysql-community-release-el${distribution_version}-7.noarch.rpm 95 run yum -y install http://repo.mysql.com/${release_rpm} 96 if [ "${package_name}" = "mysql57-community-${PACKAGE}" ]; then 97 run yum install -y yum-utils 98 run yum-config-manager --disable mysql56-community 99 run yum-config-manager --enable mysql57-community 100 if [ ${distribution_version} = 6 ]; then 101 run yum install -y cmake28 102 fi 103 fi 104 run yum install -y mysql-community-devel 105 ;; 106 mariadb-${PACKAGE}) 107 run yum install -y mariadb-devel 108 ;; 109 mariadb-10.1-${PACKAGE}) 110 if [ "${architecture}" = "x86_64" ]; then 111 mariadb_architecture="amd64" 112 else 113 mariadb_architecture="x86" 114 fi 115 cat <<REPO > /etc/yum.repos.d/MariaDB.repo 116[mariadb] 117name = MariaDB 118baseurl = http://yum.mariadb.org/10.1/${distribution}${distribution_version}-${mariadb_architecture} 119gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB 120gpgcheck=1 121REPO 122 run yum install -y MariaDB-devel 123 if [ ${distribution_version} = 6 ]; then 124 run yum install -y cmake28 125 fi 126 ;; 127 mariadb-10.2-${PACKAGE}) 128 if [ "${architecture}" = "x86_64" ]; then 129 mariadb_architecture="amd64" 130 else 131 mariadb_architecture="x86" 132 fi 133 cat <<REPO > /etc/yum.repos.d/MariaDB.repo 134[mariadb] 135name = MariaDB 136baseurl = http://yum.mariadb.org/10.2/${distribution}${distribution_version}-${mariadb_architecture} 137gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB 138gpgcheck=1 139REPO 140 run yum install -y MariaDB-devel 141 if [ ${distribution_version} = 6 ]; then 142 run yum install -y cmake28 143 fi 144 ;; 145 percona-server-56-${PACKAGE}) 146 release_rpm_version=0.1-4 147 release_rpm=percona-release-${release_rpm_version}.noarch.rpm 148 run yum install -y http://www.percona.com/downloads/percona-release/redhat/${release_rpm_version}/${release_rpm} 149 run yum install -y Percona-Server-devel-56 150 ;; 151 percona-server-57-${PACKAGE}) 152 release_rpm_version=0.1-4 153 release_rpm=percona-release-${release_rpm_version}.noarch.rpm 154 run yum install -y http://www.percona.com/downloads/percona-release/redhat/${release_rpm_version}/${release_rpm} 155 run yum install -y Percona-Server-devel-57 156 if [ ${distribution_version} = 6 ]; then 157 run yum install -y cmake28 158 fi 159 ;; 160 esac 161 ;; 162esac 163run yum install -y ${DEPENDED_PACKAGES} 164 165if [ "${package_name}" = "percona-server-56-${PACKAGE}" ]; then 166 if [ "${distribution_version}" = "7" ]; then 167 rpmbuild_options="$rpmbuild_options --define 'dist .el7'" 168 fi 169fi 170if [ "${package_name}" = "percona-server-57-${PACKAGE}" ]; then 171 if [ "${distribution_version}" = "7" ]; then 172 rpmbuild_options="$rpmbuild_options --define 'dist .el7'" 173 fi 174fi 175if [ "${USE_MYSQLSERVICES_COMPAT}" = "yes" ]; then 176 rpmbuild_options="$rpmbuild_options --define 'mroonga_configure_options --with-libmysqlservices-compat'" 177fi 178 179run eval rpmbuild -ba ${rpmbuild_options} rpmbuild/SPECS/${package_name}.spec 180 181run mv rpmbuild/RPMS/*/* "${rpm_dir}/" 182run mv rpmbuild/SRPMS/* "${srpm_dir}/" 183