Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


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