Magellan Linux

Annotation of /smage/trunk/deprecated/mysql/mysql-5.5.57-r2.smage2

Parent Directory Parent Directory | Revision Log Revision Log


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