Magellan Linux

Contents of /smage/trunk/core/mariadb/mariadb-10.1.11-r1.smage2

Parent Directory Parent Directory | Revision Log Revision Log


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