Magellan Linux

Contents of /branches/magellan-next/extras/mysql/mysql-5.5.20-r1.smage2

Parent Directory Parent Directory | Revision Log Revision Log


Revision 9856 - (show annotations) (download)
Fri Jan 13 16:14:48 2012 UTC (12 years, 4 months ago) by niro
File size: 7949 byte(s)
auto added: ver bump to 5.5.20-r1
1 # $Id$
2
3 PNAME="mysql"
4 PVER="5.5.20"
5 PBUILD="r1"
6
7 SPLIT_PACKAGES="mysql-libs mysql-clients mysql"
8
9 PCATEGORIE="dev-db"
10 HOMEPAGE="http://www.mysql.com/"
11
12 COMMON_DEPEND=">= sys-libs/zlib-1.2
13 >= sys-libs/libstdc++-4.6
14 >= dev-libs/openssl-1.0.0
15 >= sys-apps/tcp-wrappers-7"
16 SDEPEND="${COMMON_DEPEND}"
17
18 SRCFILE="${PNAME/5/}-${PVER}.tar.gz"
19 SRCDIR="${BUILDDIR}/${PNAME/5/}-${PVER}"
20
21 # support variable pname in postinstall
22 myPNAME="${PNAME}"
23 SPECIAL_VARS="myPNAME"
24
25 sminclude mtools cmake
26
27 SRC_URI=(
28 ftp://ftp.mysql.com/pub/${PNAME}/src/${SRCFILE}
29 http://ftp.gwdg.de/pub/misc/${PNAME}/Downloads/MySQL-${PVER%.*}/${SRCFILE}
30 mirror://${PNAME}/${SRCFILE}
31 mirror://${PNAME}/mysql.tmpfile
32 mirror://${PNAME}/mysqld.service
33 mirror://${PNAME}/mysqld.socket
34 mirror://${PNAME}/${PNAME}-5.5.19-cnf-defaults.patch
35 )
36
37 UP2DATE="updatecmd http://dev.mysql.com/ | grep GA | sed 's/.*\ \([0-9].*\)/\1/;q'"
38
39 split_info_mysql-libs()
40 {
41 DESCRIPTION="MySQL client libraries"
42 DEPEND="${COMMON_DEPEND}"
43 }
44
45 split_info_mysql-clients()
46 {
47 DESCRIPTION="MySQL client utilities."
48 DEPEND="== dev-db/mysql-libs-${PVER}"
49 }
50
51 split_info_mysql()
52 {
53 DESCRIPTION="MySQL is a SQL (Structured Query Language) database server."
54 DEPEND="== dev-db/mysql-clients-${PVER}"
55 }
56
57 src_prepare()
58 {
59 # warn about /proc in chroot environments
60 [[ ! -d /proc/sys ]] && die "Please make sure /proc is mounted in chroot-environments."
61
62 munpack ${SRCFILE} || die
63 cd ${SRCDIR}
64
65 # apply our configuration
66 mpatch ${PNAME}-5.5.19-cnf-defaults.patch || die
67 }
68
69 src_compile()
70 {
71 cd ${SRCDIR}
72
73 # fixes some issues
74 export CFLAGS="${CFLAGS} -fno-exceptions -fno-strict-aliasing -DBIG_JOINS=1 -fomit-frame-pointer"
75 export CXXFLAGS="${CXXFLAGS} -felide-constructors -fno-rtti -fno-implicit-templates -fno-strict-aliasing -DBIG_JOINS=1 "
76
77 # fix PIC issues
78 export CFLAGS="${CFLAGS} -fPIC"
79 export CXXFLAGS="${CXXFLAGS} -fPIC"
80
81 cmake_configure \
82 -DWITH_COMMENT="Magellan MySQL ${PVER}-${PBUILD}" \
83 $(cmake_install BINDIR bin) \
84 $(cmake_install SBINDIR sbin) \
85 $(cmake_install DOCDIR share/doc/${PNAME}) \
86 $(cmake_install DOCREADMEDIR share/doc/${PNAME}) \
87 $(cmake_install INCLUDEDIR include/${PNAME}) \
88 $(cmake_install INFODIR share/info) \
89 $(cmake_install LIBDIR $(mlibdir)/${PNAME}) \
90 $(cmake_install MANDIR share/man) \
91 $(cmake_install MYSQLDATADIR /var/lib/${PNAME}) \
92 $(cmake_install MYSQLSHAREDIR share/${PNAME}) \
93 $(cmake_install MYSQLTESTDIR share/${PNAME}/mysql-test) \
94 $(cmake_install PLUGINDIR $(mlibdir)/${PNAME}/plugin) \
95 $(cmake_install SCRIPTDIR share/${PNAME}/scripts) \
96 $(cmake_install SQLBENCHDIR share/${PNAME}) \
97 $(cmake_install SUPPORTFILESDIR /usr/share/${PNAME}) \
98 $(cmake_opt SYSCONFDIR /etc/${PNAME}) \
99 $(cmake_opt MYSQL_USER mysql) \
100 $(cmake_opt MYSQL_UNIX_ADDR /run/${PNAME}/mysqld.sock) \
101 $(cmake_opt ENABLED_LOCAL_INFILE ON) \
102 $(cmake_opt EXTRA_CHARSETS all) \
103 $(cmake_without READLINE) \
104 $(cmake_with ZLIB system) \
105 $(cmake_with SSL system) \
106 $(cmake_with LIBWRAP) \
107 $(cmake_with EXTRA_CHARSETS complex) \
108 $(cmake_with EMBEDDED_SERVER) \
109 $(cmake_with INNOBASE_STORAGE_ENGINE) \
110 $(cmake_with PARTITION_STORAGE_ENGINE) \
111 $(cmake_without EXAMPLE_STORAGE_ENGINE) \
112 $(cmake_without ARCHIVE_STORAGE_ENGINE) \
113 $(cmake_without BLACKHOLE_STORAGE_ENGINE) \
114 $(cmake_without FEDERATED_STORAGE_ENGINE) \
115 $(cmake_without UNIT_TESTS) \
116 || die
117
118 mmake || die
119 }
120
121 src_install_mysql-libs()
122 {
123 cd ${SRCDIR}
124
125 # install only includes and clients libraries
126 local i
127 for i in include libmysql libmysqld libservices
128 do
129 mmake -C ${i} DESTDIR=${BINDIR} install || die
130 done
131
132 # symlink client libs to libdir
133 pushd ${BINDIR}/usr/$(mlibdir) || die
134 for i in mysql/libmysqlclient{,_r}.so*
135 do
136 mlink ${i} /usr/$(mlibdir) || die
137 done
138 popd
139
140 # mysql-config
141 minstallexec scripts/mysql_config || die
142
143 # man-pages
144 for i in mysql_config mysql_client_test_embedded mysqltest_embedded
145 do
146 minstallman man/${i}.1 || die
147 done
148 }
149
150 src_install_mysql-clients()
151 {
152 cd ${SRCDIR}
153 mmake -C client DESTDIR=${BINDIR} install || die
154
155 # some common symlinks
156 for i in mysqlanalyze mysqlrepair mysqloptimize
157 do
158 mlink mysqlcheck /usr/bin/${i} || die
159 done
160
161 # man-pages
162 local i
163 for i in mysql mysqladmin mysqlcheck mysqldump mysqlimport mysqlshow mysqlslap
164 do
165 minstallman man/${i}.1 || die
166 done
167
168 # provided by mysql
169 rm ${BINDIR}/usr/bin/mysql_upgrade || die
170 rm ${BINDIR}/usr/bin/mysqlbinlog || die
171 rm ${BINDIR}/usr/bin/mysqltest || die
172 }
173
174 src_install_mysql()
175 {
176 cd ${SRCDIR}
177 mmake DESTDIR=${BINDIR} install || die
178
179 # remove all unneeded stuff
180 local i
181 # dirs
182 for i in sql-bench mysql-test
183 do
184 if [[ -d ${BINDIR}/usr/share/${PNAME}/${i} ]]
185 then
186 rm -r ${BINDIR}/usr/share/${PNAME}/${i} || die
187 fi
188 done
189 if [[ -d ${BINDIR}/usr/data ]]
190 then
191 rm -r ${BINDIR}/usr/data || die
192 fi
193
194 # files
195 for i in share/${PNAME}/mysql-log-rotate \
196 share/${PNAME}/mysql.server* \
197 share/${PNAME}/binary-configure* \
198 share/${PNAME}/my-*.cnf \
199 share/${PNAME}/mi_test_all* \
200 bin/comp_err \
201 share/man/man1/mysql-test-run.pl.1
202 do
203 if [[ -f ${BINDIR}/usr/${i} ]]
204 then
205 rm ${BINDIR}/usr/${i} || die
206 fi
207 done
208
209 # provided by mysql-libs
210 rm ${BINDIR}/usr/bin/mysql_config || die
211 rm ${BINDIR}/usr/bin/mysql_client_test_embedded || die
212 rm ${BINDIR}/usr/bin/mysqltest_embedded || die
213 rm ${BINDIR}/usr/$(mlibdir)/${PNAME}/libmysql* || die
214 rm -r ${BINDIR}/usr/include/ || die
215 rm ${BINDIR}/usr/share/man/man1/mysql_config.1 || die
216 rm ${BINDIR}/usr/share/man/man1/mysql_client_test_embedded.1 || die
217 rm ${BINDIR}/usr/share/man/man1/mysqltest_embedded.1 || die
218
219 # provided by mysql-clients
220 rm ${BINDIR}/usr/bin/mysql || die
221 rm ${BINDIR}/usr/bin/mysqladmin || die
222 rm ${BINDIR}/usr/bin/mysqlcheck || die
223 rm ${BINDIR}/usr/bin/mysqldump || die
224 rm ${BINDIR}/usr/bin/mysqlimport || die
225 rm ${BINDIR}/usr/bin/mysqlshow || die
226 rm ${BINDIR}/usr/bin/mysqlslap || die
227 rm ${BINDIR}/usr/share/man/man1/mysql.1 || die
228 rm ${BINDIR}/usr/share/man/man1/mysqladmin.1 || die
229 rm ${BINDIR}/usr/share/man/man1/mysqlcheck.1 || die
230 rm ${BINDIR}/usr/share/man/man1/mysqldump.1 || die
231 rm ${BINDIR}/usr/share/man/man1/mysqlimport.1 || die
232 rm ${BINDIR}/usr/share/man/man1/mysqlshow.1 || die
233 rm ${BINDIR}/usr/share/man/man1/mysqlslap.1 || die
234
235 # needed directories
236 mkeepdir /var/lib/${PNAME} || die
237 mchown mysql:mysql /var/lib/${PNAME} || die
238 mchmod 0750 /var/lib/${PNAME} || die
239
240 mkeepdir /run/${PNAME} || die
241 mchown mysql:mysql /run/${PNAME} || die
242
243 mkeepdir /var/log/${PNAME} || die
244 mchown mysql:mysql /var/log/${PNAME} || die
245
246 minstalldocs ChangeLog COPYING EXCEPTIONS-CLIENT README || die
247 minstalldocs support-files/my-*.cnf support-files/magic || die
248 minstalldocs support-files/ndb-config-2-node.ini || die
249
250 for i in scripts/mysql*
251 do
252 [[ ${i%.sh} == ${i} ]] && minstalldocs ${i}
253 done
254
255 # install a default my.cnf
256 minstalldir /etc/${PNAME} || die
257 minstallfile support-files/my-medium.cnf /etc/${PNAME}/my.cnf || die
258
259 # systemd specific
260 minstalltmp mysql.tmpfile-${TMPFILE_REV} mysql.conf || die
261 minstallunit mysqld.service-${SVC_REV} mysqld.service || die
262 minstallunit mysqld.socket || die
263 }
264
265 preinstall_mysql()
266 {
267 # adding mysql user
268 ${MLIBDIR}/mgroupadd -o "-g 60" mysql
269 ${MLIBDIR}/museradd -o "-u 60 -g mysql -d /dev/null -s /bin/false" mysql
270 }
271
272 postinstall_mysql()
273 {
274 # create a database if none exists
275 if [[ ! -d /var/lib/${myPNAME}/mysql ]]
276 then
277 echo "Creating the mysql database ..."
278 mysql_install_db --user=mysql
279 chown -R mysql:mysql /var/lib/${myPNAME}
280 chmod 0750 /var/lib/${myPNAME}
281
282 echo
283 echo "Warning: The administrator password is empty!"
284 echo "Please make sure to set one with following command:"
285 echo " mysqladmin -u root password <new-password>"
286 echo
287 fi
288
289 # start the daemon - systemd
290 mstartunit mysqld.socket
291 mstartunit mysqld.service
292 }
293
294 postremove_mysql()
295 {
296 if [ ! -f /usr/sbin/mysqld ]
297 then
298 # systemd
299 mstopunit mysqld.service
300 mstopunit mysqld.socket
301 fi
302 }