Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 8019 - (hide annotations) (download)
Tue Jun 28 22:08:56 2011 UTC (12 years, 11 months ago) by niro
File size: 5090 byte(s)
-fixed, sminclude was broken
1 niro 8013 # $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 niro 8016 # build outside of the source dir
45     install -d ${BUILDDIR}/build || die
46     cd ${BUILDDIR}/build
47 niro 8013
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 niro 8016 -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 niro 8013 $(cmake_install MANDIR share/man) \
66 niro 8016 $(cmake_install MYSQLDATADIR /var/lib/mysql) \
67 niro 8013 $(cmake_install MYSQLSHAREDIR share/mysql) \
68 niro 8016 $(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 niro 8013 $(cmake_opt SYSCONFDIR /etc/mysql) \
74 niro 8016 $(cmake_opt MYSQL_USER mysql) \
75 niro 8013 $(cmake_opt MYSQL_UNIX_ADDR /var/run/mysqld/mysqld.sock) \
76     $(cmake_opt ENABLED_LOCAL_INFILE ON) \
77 niro 8016 $(cmake_opt EXTRA_CHARSETS all) \
78     $(cmake_without READLINE) \
79 niro 8013 $(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 niro 8016 $(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 niro 8013 || die
92    
93     mmake || die
94     }
95    
96     src_install()
97     {
98 niro 8016 cd ${BUILDDIR}/build
99 niro 8013 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     }