Magellan Linux

Contents of /branches/magellan-next/extras/mysql5/mysql5-5.5.13-r1.smage2

Parent Directory Parent Directory | Revision Log Revision Log


Revision 8017 - (show annotations) (download)
Tue Jun 28 21:37:57 2011 UTC (12 years, 10 months ago) by niro
File size: 5141 byte(s)
-disabled ccache
1 # $Id$
2
3 PNAME="mysql5"
4 PVER="5.5.13"
5 PBUILD="r1"
6
7 PCATEGORIE="dev-db"
8 STATE="unstable"
9
10 DESCRIPTION="MySQL is a SQL (Structured Query Language) database server."
11 HOMEPAGE="http://www.mysql.com/"
12
13 DEPEND=">= sys-libs/zlib-1.2
14 >= dev-libs/openssl-1.0.0
15 >= sys-apps/tcp-wrappers-7"
16
17 SRCFILE="${PNAME/5/}-${PVER}.tar.gz"
18 SRCDIR="${BUILDDIR}/${PNAME/5/}-${PVER}"
19
20 # initscript version
21 RC_REV=1.3
22
23 sminclude mtools cmake
24
25 SRC_URI=(
26 ftp://ftp.mysql.com/pub/mysql/src/${SRCFILE}
27 http://ftp.gwdg.de/pub/misc/mysql/Downloads/MySQL-${PVER%.*}/${SRCFILE}
28 mirror://${PNAME}/${SRCFILE}
29 mirror://${PNAME}/mysql.rc-${RC_REV}
30 )
31
32 UP2DATE="updatecmd http://dev.mysql.com/ | grep GA | sed 's/.*\ \([0-9].*\)/\1/;q'"
33
34 # not ccache compat
35 export SMAGE_USE_CCACHE=false
36
37 src_prepare()
38 {
39 # warn about /proc in chroot environments
40 [[ ! -d /proc/sys ]] && die "Please make sure /proc is mounted in chroot-environments."
41
42 munpack ${SRCFILE} || die
43 }
44
45 src_compile()
46 {
47 # build outside of the source dir
48 install -d ${BUILDDIR}/build || die
49 cd ${BUILDDIR}/build
50
51 # fixes some issues
52 export CFLAGS="${CFLAGS} -fno-exceptions -fno-strict-aliasing -DBIG_JOINS=1 -fomit-frame-pointer"
53 export CXXFLAGS="${CXXFLAGS} -felide-constructors -fno-rtti -fno-implicit-templates -fno-strict-aliasing -DBIG_JOINS=1 "
54
55 # fix PIC issues
56 export CFLAGS="${CFLAGS} -fPIC"
57 export CXXFLAGS="${CXXFLAGS} -fPIC"
58
59 cmake_configure \
60 -DWITH_COMMENT="Magellan MySQL ${PVER}-${PBUILD}" \
61 $(cmake_install BINDIR bin) \
62 $(cmake_install SBINDIR sbin) \
63 $(cmake_install DOCDIR share/doc/mysql) \
64 $(cmake_install DOCREADMEDIR share/doc/mysql) \
65 $(cmake_install INCLUDEDIR include/mysql) \
66 $(cmake_install INFODIR share/info) \
67 $(cmake_install LIBDIR $(mlibdir)/mysql) \
68 $(cmake_install MANDIR share/man) \
69 $(cmake_install MYSQLDATADIR /var/lib/mysql) \
70 $(cmake_install MYSQLSHAREDIR share/mysql) \
71 $(cmake_install MYSQLTESTDIR share/mysql/mysql-test) \
72 $(cmake_install PLUGINDIR $(mlibdir)/mysql/plugin) \
73 $(cmake_install SCRIPTDIR share/mysql/scripts) \
74 $(cmake_install SQLBENCHDIR share/mysql) \
75 $(cmake_install SUPPORTFILESDIR /usr/share/mysql) \
76 $(cmake_opt SYSCONFDIR /etc/mysql) \
77 $(cmake_opt MYSQL_USER mysql) \
78 $(cmake_opt MYSQL_UNIX_ADDR /var/run/mysqld/mysqld.sock) \
79 $(cmake_opt ENABLED_LOCAL_INFILE ON) \
80 $(cmake_opt EXTRA_CHARSETS all) \
81 $(cmake_without READLINE) \
82 $(cmake_with ZLIB system) \
83 $(cmake_with SSL system) \
84 $(cmake_with LIBWRAP) \
85 $(cmake_with EXTRA_CHARSETS complex) \
86 $(cmake_with EMBEDDED_SERVER) \
87 $(cmake_with INNOBASE_STORAGE_ENGINE) \
88 $(cmake_with PARTITION_STORAGE_ENGINE) \
89 $(cmake_without EXAMPLE_STORAGE_ENGINE) \
90 $(cmake_without ARCHIVE_STORAGE_ENGINE) \
91 $(cmake_without BLACKHOLE_STORAGE_ENGINE) \
92 $(cmake_without FEDERATED_STORAGE_ENGINE) \
93 $(cmake_without UNIT_TESTS) \
94 || die
95
96 mmake || die
97 }
98
99 src_install()
100 {
101 cd ${BUILDDIR}/build
102 mmake DESTDIR=${BINDIR} install || die
103
104 # symlink client libs to libdir
105 pushd ${BINDIR}/usr/$(mlibdir) || die
106 for i in mysql/libmysqlclient{,_r}.so*
107 do
108 mlink ${i} /usr/$(mlibdir) || die
109 done
110 popd
111
112 # remove all unneeded stuff
113 local i
114 # dirs
115 for i in sql-bench mysql-test
116 do
117 if [[ -d ${BINDIR}/usr/${i} ]]
118 then
119 rm -r ${BINDIR}/usr/${i} || die
120 fi
121 done
122
123 # files
124 for i in share/mysql/mysql-log-rotate \
125 share/mysql/mysql.server* \
126 share/mysql/binary-configure* \
127 share/mysql/my-*.cnf \
128 share/mysql/mi_test_all* \
129 bin/comp_err
130 do
131 if [[ -f ${BINDIR}/usr/${i} ]]
132 then
133 rm ${BINDIR}/usr/${i} || die
134 fi
135 done
136
137 # needed directories
138 mkeepdir /var/lib/mysql || die
139 mchown mysql:mysql /var/lib/mysql || die
140 mchmod 0750 /var/lib/mysql || die
141
142 mkeepdir /var/run/mysqld || die
143 mchown mysql:mysql /var/run/mysqld || die
144
145 mkeepdir /var/log/mysql || die
146 mchown mysql:mysql /var/log/mysql || die
147
148 # some common symlinks
149 for i in mysqlanalyze mysqlrepair mysqloptimize
150 do
151 mlink mysqlcheck /usr/bin/${i} || die
152 done
153
154 minstalldocs ChangeLog COPYING EXCEPTIONS-CLIENT README || die
155 minstalldocs support-files/my-*.cnf support-files/magic || die
156 minstalldocs support-files/ndb-config-2-node.ini || die
157
158 for i in scripts/mysql*
159 do
160 [[ ${i%.sh} == ${i} ]] && minstalldocs ${i}
161 done
162
163 # install a default my.cnf
164 minstalldir /etc/mysql || die
165 minstallfile support-files/my-medium.cnf /etc/mysql/my.cnf || die
166
167 # install an initscript
168 minstallrc mysql.rc-${RC_REV} mysql || die
169 }
170
171 preinstall()
172 {
173 # adding mysql user
174 ${MLIBDIR}/mgroupadd -o "-g 60" mysql
175 ${MLIBDIR}/museradd -o "-u 60 -g mysql -d /dev/null -s /bin/false" mysql
176 }
177
178 postinstall()
179 {
180 # create a database if none exists
181 if [[ ! -d /var/lib/mysql/mysql ]]
182 then
183 echo "Creating the mysql database ..."
184 mysql_install_db --user=mysql
185 chown -R mysql:mysql /var/lib/mysql
186 chmod 0750 /var/lib/mysql
187
188 echo
189 echo "Warning: The administrator password is empty!"
190 echo "Please make sure to set one with following command:"
191 echo " mysqladmin -u root password <new-password>"
192 echo
193 fi
194
195 # start the daemon
196 mstartservice mysql /usr/sbin/mysqld
197 }
198
199 postremove()
200 {
201 [[ ! -f /usr/sbin/mysqld ]] && mstopservice mysql /usr/sbin/mysqld
202 }