Magellan Linux

Annotation of /branches/R11-stable/extras/mysql/mysql-5.5.29-r1.smage2

Parent Directory Parent Directory | Revision Log Revision Log


Revision 14536 - (hide annotations) (download)
Sun Dec 30 23:01:00 2012 UTC (11 years, 5 months ago) by niro
Original Path: trunk/extras/mysql/mysql-5.5.29-r1.smage2
File size: 8132 byte(s)
auto added: ver bump to 5.5.29-r1
1 niro 14536 # $Id$
2    
3     PNAME="mysql"
4     PVER="5.5.29"
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.7
14     >= dev-libs/openssl-1.0.1
15     >= sys-apps/tcp-wrappers-7"
16     SDEPEND="${COMMON_DEPEND}"
17    
18     SRCFILE="${PNAME}-${PVER}.tar.gz"
19     SRCDIR="${BUILDDIR}/${PNAME}-${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].*\)\ GA.*:\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     # fix broken install logic:
69     # always defaults to ./bin/my_print_default, using STANDARTLAYOUT
70     # see srcdir/cmake/install_layout.cmake and srcdir/scripts/CMakeLists.txt
71     sed -i 's:SET(prefix "."):SET(prefix "${CMAKE_INSTALL_PREFIX}"):' scripts/CMakeLists.txt || die
72     }
73    
74     src_compile()
75     {
76     cd ${SRCDIR}
77    
78     # fixes some issues
79     export CFLAGS="${CFLAGS} -fno-exceptions -fno-strict-aliasing -DBIG_JOINS=1 -fomit-frame-pointer"
80     export CXXFLAGS="${CXXFLAGS} -felide-constructors -fno-rtti -fno-implicit-templates -fno-strict-aliasing -DBIG_JOINS=1 "
81    
82     # fix PIC issues
83     export CFLAGS="${CFLAGS} -fPIC"
84     export CXXFLAGS="${CXXFLAGS} -fPIC"
85    
86     cmake_configure \
87     -DWITH_COMMENT="Magellan MySQL ${PVER}-${PBUILD}" \
88     $(cmake_install BINDIR bin) \
89     $(cmake_install SBINDIR sbin) \
90     $(cmake_install DOCDIR share/doc/${PNAME}) \
91     $(cmake_install DOCREADMEDIR share/doc/${PNAME}) \
92     $(cmake_install INCLUDEDIR include/${PNAME}) \
93     $(cmake_install INFODIR share/info) \
94     $(cmake_install LIBDIR $(mlibdir)/${PNAME}) \
95     $(cmake_install MANDIR share/man) \
96     $(cmake_install MYSQLDATADIR /var/lib/${PNAME}) \
97     $(cmake_install MYSQLSHAREDIR share/${PNAME}) \
98     $(cmake_install MYSQLTESTDIR share/${PNAME}/mysql-test) \
99     $(cmake_install PLUGINDIR $(mlibdir)/${PNAME}/plugin) \
100     $(cmake_install SCRIPTDIR bin) \
101     $(cmake_install SQLBENCHDIR share/${PNAME}) \
102     $(cmake_install SUPPORTFILESDIR /usr/share/${PNAME}) \
103     $(cmake_opt SYSCONFDIR /etc/${PNAME}) \
104     $(cmake_opt MYSQL_USER mysql) \
105     $(cmake_opt MYSQL_UNIX_ADDR /run/${PNAME}/mysqld.sock) \
106     $(cmake_opt ENABLED_LOCAL_INFILE ON) \
107     $(cmake_opt EXTRA_CHARSETS all) \
108     $(cmake_opt DEFAULT_CHARSET utf8) \
109     $(cmake_opt DEFAULT_COLLATION utf8_general_ci) \
110     $(cmake_without READLINE) \
111     $(cmake_with ZLIB system) \
112     $(cmake_with SSL system) \
113     $(cmake_with LIBWRAP) \
114     $(cmake_with EMBEDDED_SERVER) \
115     $(cmake_with INNOBASE_STORAGE_ENGINE) \
116     $(cmake_with PARTITION_STORAGE_ENGINE) \
117     $(cmake_without EXAMPLE_STORAGE_ENGINE) \
118     $(cmake_without ARCHIVE_STORAGE_ENGINE) \
119     $(cmake_without BLACKHOLE_STORAGE_ENGINE) \
120     $(cmake_without FEDERATED_STORAGE_ENGINE) \
121     $(cmake_without UNIT_TESTS) \
122     || die
123    
124     mmake || die
125     }
126    
127     src_install_mysql-libs()
128     {
129     cd ${SRCDIR}
130    
131     # install only includes and clients libraries
132     local i
133     for i in include libmysql libmysqld libservices
134     do
135     mmake -C ${i} DESTDIR=${BINDIR} install || die
136     done
137    
138     # symlink client libs to libdir
139     pushd ${BINDIR}/usr/$(mlibdir) || die
140     for i in mysql/libmysqlclient{,_r}.so*
141     do
142     mlink ${i} /usr/$(mlibdir) || die
143     done
144     popd
145    
146     # mysql-config
147     minstallexec scripts/mysql_config || die
148    
149     # man-pages
150     for i in mysql_config mysql_client_test_embedded mysqltest_embedded
151     do
152     minstallman man/${i}.1 || die
153     done
154     }
155    
156     src_install_mysql-clients()
157     {
158     cd ${SRCDIR}
159     mmake -C client DESTDIR=${BINDIR} install || die
160    
161     # some common symlinks
162     for i in mysqlanalyze mysqlrepair mysqloptimize
163     do
164     mlink mysqlcheck /usr/bin/${i} || die
165     done
166    
167     # man-pages
168     local i
169     for i in mysql mysqladmin mysqlcheck mysqldump mysqlimport mysqlshow mysqlslap
170     do
171     minstallman man/${i}.1 || die
172     done
173    
174     # provided by mysql
175     rm ${BINDIR}/usr/bin/mysql_upgrade || die
176     rm ${BINDIR}/usr/bin/mysqlbinlog || die
177     rm ${BINDIR}/usr/bin/mysqltest || die
178     }
179    
180     src_install_mysql()
181     {
182     cd ${SRCDIR}
183     mmake DESTDIR=${BINDIR} install || die
184    
185     # remove all unneeded stuff
186     local i
187     # dirs
188     for i in sql-bench mysql-test
189     do
190     if [[ -d ${BINDIR}/usr/share/${PNAME}/${i} ]]
191     then
192     rm -r ${BINDIR}/usr/share/${PNAME}/${i} || die
193     fi
194     done
195     if [[ -d ${BINDIR}/usr/data ]]
196     then
197     rm -r ${BINDIR}/usr/data || die
198     fi
199     # files
200     for i in share/${PNAME}/mysql-log-rotate \
201     share/${PNAME}/mysql.server* \
202     share/${PNAME}/binary-configure* \
203     share/${PNAME}/my-*.cnf \
204     share/${PNAME}/mi_test_all* \
205     bin/comp_err \
206     share/man/man1/mysql-test-run.pl.1
207     do
208     if [[ -f ${BINDIR}/usr/${i} ]]
209     then
210     rm ${BINDIR}/usr/${i} || die
211     fi
212     done
213    
214     # provided by mysql-libs
215     rm ${BINDIR}/usr/bin/mysql_config || die
216     rm ${BINDIR}/usr/bin/mysql_client_test_embedded || die
217     rm ${BINDIR}/usr/bin/mysqltest_embedded || die
218     rm ${BINDIR}/usr/$(mlibdir)/${PNAME}/libmysql* || die
219     rm -r ${BINDIR}/usr/include/ || die
220     rm ${BINDIR}/usr/share/man/man1/mysql_config.1 || die
221     rm ${BINDIR}/usr/share/man/man1/mysql_client_test_embedded.1 || die
222     rm ${BINDIR}/usr/share/man/man1/mysqltest_embedded.1 || die
223    
224     # provided by mysql-clients
225     rm ${BINDIR}/usr/bin/mysql || die
226     rm ${BINDIR}/usr/bin/mysqladmin || die
227     rm ${BINDIR}/usr/bin/mysqlcheck || die
228     rm ${BINDIR}/usr/bin/mysqldump || die
229     rm ${BINDIR}/usr/bin/mysqlimport || die
230     rm ${BINDIR}/usr/bin/mysqlshow || die
231     rm ${BINDIR}/usr/bin/mysqlslap || die
232     rm ${BINDIR}/usr/share/man/man1/mysql.1 || die
233     rm ${BINDIR}/usr/share/man/man1/mysqladmin.1 || die
234     rm ${BINDIR}/usr/share/man/man1/mysqlcheck.1 || die
235     rm ${BINDIR}/usr/share/man/man1/mysqldump.1 || die
236     rm ${BINDIR}/usr/share/man/man1/mysqlimport.1 || die
237     rm ${BINDIR}/usr/share/man/man1/mysqlshow.1 || die
238     rm ${BINDIR}/usr/share/man/man1/mysqlslap.1 || die
239    
240     # needed directories
241     mkeepdir /var/lib/${PNAME} || die
242     mchown mysql:mysql /var/lib/${PNAME} || die
243     mchmod 0750 /var/lib/${PNAME} || die
244    
245     mkeepdir /run/${PNAME} || die
246     mchown mysql:mysql /run/${PNAME} || die
247    
248     mkeepdir /var/log/${PNAME} || die
249     mchown mysql:mysql /var/log/${PNAME} || die
250    
251     minstalldocs ChangeLog COPYING EXCEPTIONS-CLIENT README || die
252     minstalldocs support-files/my-*.cnf support-files/magic || die
253     minstalldocs support-files/ndb-config-2-node.ini || die
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 mysql.conf || die
261     minstallunit mysqld.service 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     }