# Contributor: Sergei Lukin # Contributor: Sören Tempel # Contributor: Łukasz Jendrysik # Contributor: Carlo Landmeter # Maintainer: Natanael Copa setvar pkgname = 'mariadb' setvar pkgver = '10.1.28' setvar pkgrel = '0' setvar pkgdesc = ""A fast SQL database server"" setvar url = ""http://www.mariadb.org"" setvar pkgusers = ""mysql"" setvar pkggroups = ""mysql"" setvar arch = ""all"" setvar license = ""GPL"" setvar depends = ""$pkgname-common"" setvar depends_dev = ""libressl-dev zlib-dev"" setvar makedepends = ""cmake libressl-dev zlib-dev readline-dev libaio-dev ncurses-dev linux-headers"" setvar install = ""$pkgname.pre-install"" setvar source = ""https://downloads.mariadb.org/interstitial/mariadb-$pkgver/source/mariadb-$pkgver.tar.gz $pkgname.initd fix-mysql-install-db-path.patch fix-ucontext-check.patch ppc-remove-glibc-dep.patch "" # secfixes: # 10.1.22-r0: # - CVE-2017-3313 # - CVE-2017-3302 # 10.1.21-r0: # - CVE-2016-6664 # - CVE-2017-3238 # - CVE-2017-3243 # - CVE-2017-3244 # - CVE-2017-3257 # - CVE-2017-3258 # - CVE-2017-3265 # - CVE-2017-3291 # - CVE-2017-3312 # - CVE-2017-3317 # - CVE-2017-3318 setvar subpackages = ""$pkgname-doc $pkgname-dev $pkgname-common $pkgname-client-libs:_client_libs $pkgname-libs $pkgname-client $pkgname-bench $pkgname-test:mytest mysql mysql-client:_compat_client mysql-bench:_compat_bench"" setvar builddir = ""$srcdir/$pkgname-$pkgver"" proc prepare { cd $builddir for i in $source { case (i) { *.patch { msg $i; patch -p1 -i "$srcdir"/$i || return 1} } } } proc build { cd $builddir cmake . -DBUILD_CONFIG=mysql_release \ -DCMAKE_INSTALL_PREFIX=/usr \ -DSYSCONFDIR=/etc/mysql \ -DMYSQL_DATADIR=/var/lib/mysql \ -DMYSQL_UNIX_ADDR=/run/mysqld/mysqld.sock \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DENABLED_LOCAL_INFILE=ON \ -DINSTALL_INFODIR=share/mysql/docs \ -DINSTALL_MANDIR=share/man \ -DINSTALL_PLUGINDIR=lib/mysql/plugin \ -DINSTALL_SCRIPTDIR=bin \ -DINSTALL_INCLUDEDIR=include/mysql \ -DINSTALL_DOCREADMEDIR=share/mysql \ -DINSTALL_SUPPORTFILESDIR=share/mysql \ -DINSTALL_MYSQLSHAREDIR=share/mysql \ -DINSTALL_DOCDIR=share/mysql/docs \ -DINSTALL_SHAREDIR=share/mysql \ -DWITH_READLINE=ON \ -DWITH_ZLIB=system \ -DWITH_SSL=system \ -DWITH_LIBWRAP=OFF \ -DWITH_JEMALLOC=no \ -DWITH_EXTRA_CHARSETS=complex \ -DWITH_EMBEDDED_SERVER=ON \ -DWITH_ARCHIVE_STORAGE_ENGINE=1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_PARTITION_STORAGE_ENGINE=1 \ -DPLUGIN_TOKUDB=NO \ -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \ -DWITHOUT_FEDERATED_STORAGE_ENGINE=1 \ -DWITHOUT_PBXT_STORAGE_ENGINE=1 \ || return 1 make || return 1 } proc package { cd $builddir make DESTDIR="$pkgdir/" install || return 1 install -Dm 755 "$startdir"/$pkgname.initd \ "$pkgdir"/etc/init.d/$pkgname || return 1 # use small example config as default, which has tcp disabled install -Dm 640 -o mysql "$pkgdir"/usr/share/mysql/my-medium.cnf \ "$pkgdir"/etc/mysql/my.cnf || return 1 # libmysqlclient_r is no more. Upstream tries to replace it with # symlinks but that really doesn't work (wrong soname in particular). # We'll keep just the devel libmysqlclient_r.so link, so that # rebuilding without any source change is enough to get rid of # dependency on libmysqlclient_r. rm -f "$pkgdir"/usr/lib/libmysqlclient_r.so* ln -s libmysqlclient.so "$pkgdir"/usr/lib/libmysqlclient_r.so # mysql-test includes one executable that doesn't belong under # /usr/share, so move it and provide a symlink mv "$pkgdir"/usr/mysql-test/lib/My/SafeProcess/my_safe_process \ "$pkgdir"/usr/bin ln -s ../../../../bin/my_safe_process \ "$pkgdir"/usr/mysql-test/lib/My/SafeProcess/my_safe_process } proc dev { default_dev setvar replaces = ""libmysqlclient mysql-dev"" setvar provides = ""mysql-dev=$pkgver-r$pkgrel"" mkdir -p "$subpkgdir"/usr/bin mv "$pkgdir"/usr/bin/mysql_config "$subpkgdir"/usr/bin/ } proc _client_libs { setvar pkgdesc = ""MariaDB client library"" setvar replaces = ""mariadb libmysqlclient"" setvar depends = ""mariadb-common"" mkdir -p "$subpkgdir"/usr/lib \ "$subpkgdir"/usr/share/mysql \ || return 1 mv "$pkgdir"/usr/lib/libmysqlclient.so* \ "$subpkgdir"/usr/lib/ \ || return 1 } proc common { setvar pkgdesc = ""MariaDB common files for both server and client"" setvar replaces = ""mysql-common"" setvar depends = '' mkdir -p "$subpkgdir"/usr/share/mysql \ "$subpkgdir"/etc \ "$subpkgdir"/usr/lib/mysql/plugin mv "$pkgdir"/etc/mysql "$subpkgdir"/etc/ || return 1 mv "$pkgdir"/usr/lib/mysql/plugin/dialog.so \ "$pkgdir"/usr/lib/mysql/plugin/mysql_clear_password.so \ "$subpkgdir"/usr/lib/mysql/plugin/ || return 1 local lang="charsets danish english french greek italian korean norwegian-ny portuguese russian slovak swedish czech dutch estonian german hungarian japanese norwegian polish romanian serbian spanish ukrainian" for l in $lang { mv "$pkgdir"/usr/share/mysql/$l \ "$subpkgdir"/usr/share/mysql/ || return 1 } } proc mytest { setvar pkgdesc = ""The test suite distributed with MariaDB"" mkdir -p "$subpkgdir"/usr/bin || return 1 mv "$pkgdir"/usr/bin/mysql_client_test \ "$pkgdir"/usr/mysql-test \ "$pkgdir"/usr/bin/my_safe_process \ "$subpkgdir"/usr/bin/ \ || return 1 } proc client { setvar pkgdesc = ""client for the MariaDB database"" setvar depends = ""mariadb-common"" setvar install = """" local bins="myisam_ftdump mysql mysqlaccess mysqladmin mysqlbug mysqlcheck mysqldump mysqldumpslow mysql_find_rows mysql_fix_extensions mysqlimport mysqlshow mysql_waitpid" mkdir -p "$subpkgdir"/usr/bin/ || return 1 for i in $bins { mv "$pkgdir"/usr/bin/${i} "$subpkgdir"/usr/bin/ || return 1 } } proc bench { setvar pkgdesc = ""MariaDB benchmark scripts and data"" setvar replaces = ""mariadb"" mkdir -p "$subpkgdir"/usr/share/ mv "$pkgdir"/usr/sql-bench "$subpkgdir"/usr/share } proc _compat { setvar pkgdesc = ""Dummy package for $1 migration"" setvar depends = "$2" mkdir -p $subpkgdir } proc mysql { _compat mysql mariadb; } proc _compat_client { _compat mysql-client mariadb-client; } proc _compat_bench { _compat mysql-bench mariadb-client; } setvar sha512sums = ""ca10d28f6b966719c7488c2b4ba928b65cbe9dc32ccf2a28d29c4d0c2d46ea1c59c3e339230017b317132dcd216925a71769dfba80a7d6321079c74ac41926d8 mariadb-10.1.28.tar.gz 06751768cb00d2e433655635c38d267ef25084a5830ff40e719ac579223c7192dc34b43f919ab6faf480094632327511cbd22456064dde2d04dc15648b9e3b9f mariadb.initd f85e96490de56aa4e6115f931bf256bef4e1b93cadbe4ac947d6abdc03072bf2d0872e0268ae37cd98edf13538ece73e9f8b6efa8133bab23168a825c5066ab1 fix-mysql-install-db-path.patch 82fa93411483f5d1b57d978087a891bcab6a011e45c2d79b08d28718f5717994b423fc81d2170dad2fe65303153ac29655a81ce5039e73e37cebb159392a86cf fix-ucontext-check.patch a352661d19becae717c16ac67a0e47ed93787653851a75d27e7764133b31dc02e18c38dbbce6d3138e4db08da616dfc75a0141865cd042cef669d6afe4463127 ppc-remove-glibc-dep.patch""