Magellan Linux

Contents of /branches/R11-unstable/extras/mysql/mysql-5.5.40-r1.smage2

Parent Directory Parent Directory | Revision Log Revision Log


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