Magellan Linux

Contents of /smage/trunk/deprecated/mysql/mysql-5.5.57-r2.smage2

Parent Directory Parent Directory | Revision Log Revision Log


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