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