Magellan Linux

Annotation of /branches/magellan-next/extras/mysql5/mysql5-5.5.13-r4.smage2

Parent Directory Parent Directory | Revision Log Revision Log


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