Magellan Linux

Annotation of /smage/branches/alx07x-unstable/core/mysql/mysql-5.5.57-r2.smage2

Parent Directory Parent Directory | Revision Log Revision Log


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