Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 8023 - (hide annotations) (download)
Tue Jun 28 23:13:18 2011 UTC (12 years, 11 months ago) by niro
File size: 7453 byte(s)
-fixed a typo again
1 niro 8021 # $Id$
2    
3     PNAME="mysql5"
4     PVER="5.5.13"
5     PBUILD="r2"
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.3
21    
22     sminclude mtools cmake
23    
24     SRC_URI=(
25     ftp://ftp.mysql.com/pub/mysql/src/${SRCFILE}
26     http://ftp.gwdg.de/pub/misc/mysql/Downloads/MySQL-${PVER%.*}/${SRCFILE}
27     mirror://${PNAME}/${SRCFILE}
28     mirror://${PNAME}/mysql.rc-${RC_REV}
29     )
30    
31     UP2DATE="updatecmd http://dev.mysql.com/ | grep GA | sed 's/.*\ \([0-9].*\)/\1/;q'"
32    
33     split_info_mysql5-libs()
34     {
35     DESCRIPTION="MySQL client libraries"
36     DEPEND=">= sys-libs/zlib-1.2
37     >= dev-libs/openssl-1.0.0
38     >= sys-apps/tcp-wrappers-7"
39     }
40    
41     split_info_mysql5-clients()
42     {
43     DESCRIPTION="MySQL client utilities."
44     DEPEND="== dev-db/mysql5-libs-${PVER}"
45     }
46    
47     split_info_mysql5()
48     {
49     DESCRIPTION="MySQL is a SQL (Structured Query Language) database server."
50     DEPEND="== dev-db/mysql5-clients-${PVER}"
51    
52     preinstall()
53     {
54     # adding mysql user
55     ${MLIBDIR}/mgroupadd -o "-g 60" mysql
56     ${MLIBDIR}/museradd -o "-u 60 -g mysql -d /dev/null -s /bin/false" mysql
57     }
58    
59     postinstall()
60     {
61     # create a database if none exists
62     if [[ ! -d /var/lib/mysql/mysql ]]
63     then
64     echo "Creating the mysql database ..."
65     mysql_install_db --user=mysql
66     chown -R mysql:mysql /var/lib/mysql
67     chmod 0750 /var/lib/mysql
68    
69     echo
70     echo "Warning: The administrator password is empty!"
71     echo "Please make sure to set one with following command:"
72     echo " mysqladmin -u root password <new-password>"
73     echo
74     fi
75    
76     # start the daemon
77     mstartservice mysql /usr/sbin/mysqld
78     }
79    
80     postremove()
81     {
82     [[ ! -f /usr/sbin/mysqld ]] && mstopservice mysql /usr/sbin/mysqld
83     }
84     }
85    
86     src_prepare()
87     {
88     # warn about /proc in chroot environments
89     [[ ! -d /proc/sys ]] && die "Please make sure /proc is mounted in chroot-environments."
90    
91     munpack ${SRCFILE} || die
92     }
93    
94     src_compile()
95     {
96     cd ${SRCDIR}
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 MySQL ${PVER}-${PBUILD}" \
108     $(cmake_install BINDIR bin) \
109     $(cmake_install SBINDIR sbin) \
110     $(cmake_install DOCDIR share/doc/mysql) \
111     $(cmake_install DOCREADMEDIR share/doc/mysql) \
112     $(cmake_install INCLUDEDIR include/mysql) \
113     $(cmake_install INFODIR share/info) \
114     $(cmake_install LIBDIR $(mlibdir)/mysql) \
115     $(cmake_install MANDIR share/man) \
116     $(cmake_install MYSQLDATADIR /var/lib/mysql) \
117     $(cmake_install MYSQLSHAREDIR share/mysql) \
118     $(cmake_install MYSQLTESTDIR share/mysql/mysql-test) \
119     $(cmake_install PLUGINDIR $(mlibdir)/mysql/plugin) \
120     $(cmake_install SCRIPTDIR share/mysql/scripts) \
121     $(cmake_install SQLBENCHDIR share/mysql) \
122     $(cmake_install SUPPORTFILESDIR /usr/share/mysql) \
123     $(cmake_opt SYSCONFDIR /etc/mysql) \
124     $(cmake_opt MYSQL_USER mysql) \
125     $(cmake_opt MYSQL_UNIX_ADDR /var/run/mysqld/mysqld.sock) \
126     $(cmake_opt ENABLED_LOCAL_INFILE ON) \
127     $(cmake_opt EXTRA_CHARSETS all) \
128     $(cmake_without READLINE) \
129     $(cmake_with ZLIB system) \
130     $(cmake_with SSL system) \
131     $(cmake_with LIBWRAP) \
132     $(cmake_with EXTRA_CHARSETS complex) \
133     $(cmake_with EMBEDDED_SERVER) \
134     $(cmake_with INNOBASE_STORAGE_ENGINE) \
135     $(cmake_with PARTITION_STORAGE_ENGINE) \
136     $(cmake_without EXAMPLE_STORAGE_ENGINE) \
137     $(cmake_without ARCHIVE_STORAGE_ENGINE) \
138     $(cmake_without BLACKHOLE_STORAGE_ENGINE) \
139     $(cmake_without FEDERATED_STORAGE_ENGINE) \
140     $(cmake_without UNIT_TESTS) \
141     || die
142    
143     mmake || die
144     }
145    
146     src_install_mysql5-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_mysql5-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     rm ${BINDIR}/usr/bin/mysql_upgrade || die
195     rm ${BINDIR}/usr/bin/mysqlbinlog || die
196     rm ${BINDIR}/usr/bin/mysqltest || die
197     }
198    
199     src_install_mysql5()
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/mysql/${i} ]]
210     then
211     rm -r ${BINDIR}/usr/share/mysql/${i} || die
212     fi
213     done
214     if [[ -d ${BINDIR}/usr/data ]]
215     then
216     rm -r ${BINDIR}/usr/data || die
217     fi
218    
219     # files
220     for i in share/mysql/mysql-log-rotate \
221     share/mysql/mysql.server* \
222     share/mysql/binary-configure* \
223     share/mysql/my-*.cnf \
224     share/mysql/mi_test_all* \
225     bin/comp_err \
226     share/man/man1/mysql-test-run.pl.1
227     do
228     if [[ -f ${BINDIR}/usr/${i} ]]
229     then
230     rm ${BINDIR}/usr/${i} || die
231     fi
232     done
233    
234     # provided by mysql5-libs
235     rm ${BINDIR}/usr/bin/mysql_config || die
236     rm ${BINDIR}/usr/bin/mysql_client_test_embedded || die
237     rm ${BINDIR}/usr/bin/mysqltest_embedded || die
238 niro 8023 rm ${BINDIR}/usr/$(mlibdir)/mysql/libmysql* || die
239 niro 8021 rm -r ${BINDIR}/usr/include/ || die
240     rm ${BINDIR}/usr/share/man/man1/mysql_config.1 || die
241     rm ${BINDIR}/usr/share/man/man1/mysql_client_test_embedded.1 || die
242     rm ${BINDIR}/usr/share/man/man1/mysqltest_embedded.1 || die
243    
244     # provided by mysql5-clients
245     rm ${BINDIR}/usr/bin/mysql || die
246     rm ${BINDIR}/usr/bin/mysqladmin || die
247     rm ${BINDIR}/usr/bin/mysqlcheck || die
248     rm ${BINDIR}/usr/bin/mysqldump || die
249     rm ${BINDIR}/usr/bin/mysqlimport || die
250     rm ${BINDIR}/usr/bin/mysqlshow || die
251     rm ${BINDIR}/usr/bin/mysqlslap || die
252     rm ${BINDIR}/usr/share/man/man1/mysql.1 || die
253     rm ${BINDIR}/usr/share/man/man1/mysqladmin.1 || die
254     rm ${BINDIR}/usr/share/man/man1/mysqlcheck.1 || die
255     rm ${BINDIR}/usr/share/man/man1/mysqldump.1 || die
256     rm ${BINDIR}/usr/share/man/man1/mysqlimport.1 || die
257     rm ${BINDIR}/usr/share/man/man1/mysqlshow.1 || die
258     rm ${BINDIR}/usr/share/man/man1/mysqlslap.1 || die
259    
260     # needed directories
261     mkeepdir /var/lib/mysql || die
262     mchown mysql:mysql /var/lib/mysql || die
263     mchmod 0750 /var/lib/mysql || die
264    
265     mkeepdir /var/run/mysqld || die
266     mchown mysql:mysql /var/run/mysqld || die
267    
268     mkeepdir /var/log/mysql || die
269     mchown mysql:mysql /var/log/mysql || die
270    
271     minstalldocs ChangeLog COPYING EXCEPTIONS-CLIENT README || die
272     minstalldocs support-files/my-*.cnf support-files/magic || die
273     minstalldocs support-files/ndb-config-2-node.ini || die
274    
275     for i in scripts/mysql*
276     do
277     [[ ${i%.sh} == ${i} ]] && minstalldocs ${i}
278     done
279    
280     # install a default my.cnf
281     minstalldir /etc/mysql || die
282     minstallfile support-files/my-medium.cnf /etc/mysql/my.cnf || die
283    
284     # install an initscript
285     minstallrc mysql.rc-${RC_REV} mysql || die
286     }