wok-current view mysql/receipt @ rev 25788

Mass update to fix build with gcc10 and up others packages
author Stanislas Leduc <shann@slitaz.org>
date Tue Sep 30 07:43:04 2025 +0000 (3 weeks ago)
parents 5926178cd6fa
children
line source
1 # SliTaz package receipt.
3 PACKAGE="mysql"
4 VERSION="5.7.44"
5 CATEGORY="office"
6 SHORT_DESC="SQL database system."
7 MAINTAINER="pascal.bellard@slitaz.org"
8 LICENSE="GPL2"
9 TARBALL="$PACKAGE-$VERSION.tar.gz"
10 WEB_SITE="https://www.mysql.com/"
11 WGET_URL="https://dev.mysql.com/get/Downloads/MySQL-${VERSION%.*}/$TARBALL"
12 CONFIG_FILES="/etc/mysql"
13 DATABASE_FILES="/var/lib/mysql"
14 TAZPANEL_DAEMON="man|edit::/etc/mysql/my.cnf|options|web::$WEB_SITE"
15 CROSS="bug: can not run test programm"
17 DEPENDS="busybox libmysqlclient mysql-client zlib slitaz-base-files \
18 gcc-lib-base openssl readline"
19 BUILD_DEPENDS="cmake openssl-dev zlib-dev ncurses-dev readline-dev \
20 libtirpc-dev rpcsvc-proto"
22 HOST_ARCH="i486 x86_64"
24 # What is the latest version available today?
25 current_version()
26 {
27 wget -O - https://github.com/mysql/mysql-server/tags 2>/dev/null | \
28 sed '/mysql-[0-9]/!d;/archive.*tar/!d;s|.*/[a-z-]*\(.*\).tar.*|\1|;q'
29 }
31 # Rules to configure and make the package.
32 compile_rules()
33 {
34 mkdir -p $WOK/$PACKAGE/source/build
35 cd $WOK/$PACKAGE/source/build
36 # CFLAGS/CXXFLAGS as suggested upstream
37 # remove -fno-rtti with gcc6
38 CFLAGS="-fPIC ${CFLAGS} -fno-strict-aliasing -DBIG_JOINS=1 -fomit-frame-pointer" \
39 CXXFLAGS="-fPIC ${CXXFLAGS} -fno-strict-aliasing -DBIG_JOINS=1 -felide-constructors" \
40 cmake ../$PACKAGE-$VERSION \
41 -DCMAKE_BUILD_TYPE=Release \
42 -DCMAKE_INSTALL_PREFIX=/usr \
43 -DSYSCONFDIR=/etc/mysql \
44 -DMYSQL_DATADIR=/var/lib/mysql \
45 -DMYSQL_UNIX_ADDR=/var/run/mysqld/mysqld.sock \
46 -DDEFAULT_CHARSET=utf8 \
47 -DDEFAULT_COLLATION=utf8_general_ci \
48 -DENABLED_LOCAL_INFILE=ON \
49 -DINSTALL_INFODIR=share/mysql/docs \
50 -DINSTALL_MANDIR=share/man \
51 -DINSTALL_PLUGINDIR=/usr/lib/mysql/plugin \
52 -DINSTALL_SCRIPTDIR=bin \
53 -DINSTALL_INCLUDEDIR=include/mysql \
54 -DINSTALL_DOCREADMEDIR=share/mysql \
55 -DINSTALL_SUPPORTFILESDIR=share/mysql \
56 -DINSTALL_MYSQLSHAREDIR=share/mysql \
57 -DINSTALL_DOCDIR=share/mysql/docs \
58 -DINSTALL_SHAREDIR=share/mysql \
59 -DWITH_READLINE=ON \
60 -DWITH_ZLIB=system \
61 -DWITH_SSL=system \
62 -DWITH_LIBWRAP=OFF \
63 -DDOWNLOAD_BOOST=1 \
64 -DWITH_BOOST=$src/boost-1.59.0 \
65 -DWITH_MYSQLD_LDFLAGS="${LDFLAGS}" \
66 -DWITH_EXTRA_CHARSETS=complex \
67 -DWITH_EMBEDDED_SERVER=ON \
68 -DWITH_INNOBASE_STORAGE_ENGINE=1 \
69 -DWITH_PARTITION_STORAGE_ENGINE=1 \
70 -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
71 -DWITHOUT_ARCHIVE_STORAGE_ENGINE=1 \
72 -DWITHOUT_BLACKHOLE_STORAGE_ENGINE=1 \
73 -DWITHOUT_FEDERATED_STORAGE_ENGINE=1 &&
74 make && make DESTDIR=$DESTDIR install
75 }
77 # Rules to gen a SliTaz package suitable for Tazpkg.
78 genpkg_rules()
79 {
80 mkdir -p \
81 $fs/usr/share \
82 $fs/usr/lib/mysql/plugin \
83 $fs/etc/mysql \
84 $fs/etc/mysql.d \
85 $fs/var/lib/mysql \
86 $fs/var/run/mysqld
88 cp -a $install/usr/bin $fs/usr
89 cp -a $install/usr/lib/mysql/plugin/*.so* $fs/usr/lib/mysql/plugin
90 cp -a $install/usr/share/mysql $fs/usr/share
92 # Configuration file
93 cp -a $stuff/etc/init.d $fs/etc
94 cp -a $stuff/etc/mysql $fs/etc
95 grep -q "bind-address" $fs/etc/mysql/my.cnf || sed -i \
96 's/^\[mysqld\]/[mysqld]\nbind-address\t= 127.0.0.1/' \
97 $fs/etc/mysql/my.cnf
99 # Permissions
100 chmod 600 $fs/etc/mysql/my.cnf
102 cat $stuff/*.files-list | while read file; do
103 [ -f $fs$file ] && rm -f $fs$file
104 done
106 }
108 # Pre and post install commands for Tazpkg.
109 post_install()
110 {
112 local user
113 local group
115 user=mysql
116 group=mysql
118 if ! grep -q $user "$1/etc/passwd"; then
119 echo
120 echo -n "Adding user/group $user..."
121 chroot "$1/" addgroup -S $group
122 chroot "$1/" adduser -s /bin/false -S -D -H -G $group $user
123 status
124 fi
125 # adduser mysql if needed
126 if ! grep -q ${user} "$1/etc/passwd"; then
127 echo
128 echo -n "Adding user MySQL..."
129 chroot "$1/" /bin/adduser -s /bin/false -h /dev/null \
130 -g "MySQL Daemon user" -u 27 -H -D -S -G ${group} ${user}
131 status
132 fi
133 #chroot "$1/" /bin/chown ${user}.${group} $(cat "$1/$INSTALLED/$PACKAGE/files.list")
134 chroot "$1/" /bin/chown -R ${user}.${group} /var/lib/mysql
135 chroot "$1/" /bin/chown -R ${user}.${group} /var/run/mysqld
136 chroot "$1/" mysqld --initialize --user=${user} --basedir=/usr
137 cat <<EOF
138 ----
139 To start $PACKAGE server you can run :
141 /etc/init.d/$PACKAGE start
143 Or add $PACKAGE to RUN_DAEMONS in /etc/rcS.conf
144 ----
145 EOF
146 }
148 pre_install()
149 {
150 # Cleanup old files
151 rm -f "$1/usr/libexec/mysql"*
152 # Mv config
153 [ -f "$1/etc/my.cnf" ] &&
154 mv -f "$1/etc/my.cnf" "$1/etc/mysql/my.cnf" || true
155 }
157 post_remove()
158 {
159 echo "Removing user/group mysql"
160 chroot "$1/" deluser mysql
161 }