Browse Source

Sync with portage [Tue Nov 12 06:46:38 MSK 2019].

tags/1516
root 1 year ago
parent
commit
284f7f050f
100 changed files with 4663 additions and 809 deletions
  1. BIN
      Manifest.files.gz
  2. BIN
      app-admin/Manifest.gz
  3. +1
    -2
      app-admin/sysstat/Manifest
  4. +1
    -1
      app-admin/sysstat/sysstat-12.0.6-r1.ebuild
  5. +0
    -81
      app-admin/sysstat/sysstat-12.1.7.ebuild
  6. +1
    -1
      app-admin/sysstat/sysstat-12.2.0-r1.ebuild
  7. +1
    -1
      app-admin/sysstat/sysstat-999999.ebuild
  8. BIN
      app-arch/Manifest.gz
  9. +1
    -1
      app-arch/lrzip/lrzip-0.631_p20190619.ebuild
  10. +1
    -1
      app-arch/unzip/unzip-6.0_p25.ebuild
  11. BIN
      app-crypt/Manifest.gz
  12. +1
    -0
      app-crypt/keybase/Manifest
  13. +52
    -0
      app-crypt/keybase/keybase-4.7.2.ebuild
  14. BIN
      app-editors/Manifest.gz
  15. +0
    -8
      app-editors/scite/files/scite.desktop
  16. BIN
      app-emacs/Manifest.gz
  17. +1
    -1
      app-emacs/muse/Manifest
  18. +3
    -0
      app-emacs/muse/metadata.xml
  19. +3
    -4
      app-emacs/muse/muse-3.20-r1.ebuild
  20. +2
    -3
      app-emacs/org-mode/org-mode-8.3.2-r1.ebuild
  21. +1
    -2
      app-emacs/org-mode/org-mode-9.2.6.ebuild
  22. +5
    -4
      app-emacs/planner/planner-3.42-r1.ebuild
  23. +1
    -1
      app-emacs/remember/Manifest
  24. +3
    -0
      app-emacs/remember/metadata.xml
  25. +4
    -4
      app-emacs/remember/remember-2.0-r1.ebuild
  26. BIN
      app-emulation/Manifest.gz
  27. +0
    -75
      app-emulation/xen-pvgrub/files/xen-4.3-externals.patch
  28. BIN
      app-text/Manifest.gz
  29. +0
    -1
      app-text/djvu/Manifest
  30. +0
    -72
      app-text/djvu/djvu-3.5.25.3.ebuild
  31. +8
    -5
      app-text/djvu/djvu-3.5.27-r1.ebuild
  32. +0
    -40
      app-text/djvu/files/djvu-3.5.24-gcc46.patch
  33. +39
    -0
      app-text/djvu/files/fix-CVE-2019-18804.patch
  34. BIN
      dev-cpp/Manifest.gz
  35. +1
    -1
      dev-cpp/asio/asio-1.14.0.ebuild
  36. BIN
      dev-db/Manifest.gz
  37. +3
    -0
      dev-db/mariadb/Manifest
  38. +897
    -0
      dev-db/mariadb/mariadb-10.1.43.ebuild
  39. +1012
    -0
      dev-db/mariadb/mariadb-10.4.10.ebuild
  40. +836
    -0
      dev-db/mariadb/mariadb-5.5.66.ebuild
  41. BIN
      dev-java/Manifest.gz
  42. +1
    -1
      dev-java/openjdk-bin/openjdk-bin-8.222_p10-r1.ebuild
  43. +1
    -1
      dev-java/openjdk/openjdk-8.222_p10.ebuild
  44. BIN
      dev-lang/Manifest.gz
  45. +1
    -1
      dev-lang/php/Manifest
  46. +27
    -25
      dev-lang/php/php-7.4.0_rc6.ebuild
  47. +5
    -0
      dev-lang/python/Manifest
  48. +361
    -0
      dev-lang/python/python-2.7.17.ebuild
  49. +368
    -0
      dev-lang/python/python-3.5.9.ebuild
  50. +331
    -0
      dev-lang/python/python-3.8.0.ebuild
  51. BIN
      dev-libs/Manifest.gz
  52. +1
    -1
      dev-libs/boost/boost-1.71.0.ebuild
  53. +1
    -1
      dev-libs/libev/libev-4.25.ebuild
  54. BIN
      dev-python/Manifest.gz
  55. +1
    -1
      dev-python/dnspython/dnspython-1.16.0.ebuild
  56. +1
    -1
      dev-python/mysqlclient/mysqlclient-1.4.5.ebuild
  57. BIN
      dev-ruby/Manifest.gz
  58. +0
    -3
      dev-ruby/haml/Manifest
  59. +0
    -57
      dev-ruby/haml/haml-5.0.4.ebuild
  60. +0
    -57
      dev-ruby/haml/haml-5.1.0.ebuild
  61. +0
    -57
      dev-ruby/haml/haml-5.1.1.ebuild
  62. +1
    -1
      dev-ruby/haml/haml-5.1.2.ebuild
  63. +0
    -1
      dev-ruby/loofah/Manifest
  64. +0
    -34
      dev-ruby/loofah/loofah-2.2.3.ebuild
  65. +2
    -0
      dev-ruby/nokogiri/nokogiri-1.10.4.ebuild
  66. BIN
      dev-util/Manifest.gz
  67. +1
    -1
      dev-util/boost-build/boost-build-1.71.0.ebuild
  68. +36
    -22
      dev-util/heaptrack/heaptrack-9999.ebuild
  69. +3
    -0
      dev-util/heaptrack/metadata.xml
  70. +1
    -1
      dev-util/scons/scons-3.1.1.ebuild
  71. BIN
      eclass/Manifest.gz
  72. +2
    -2
      eclass/python-utils-r1.eclass
  73. BIN
      games-emulation/Manifest.gz
  74. +0
    -38
      games-emulation/desmume/desmume-0.9.11-r1.ebuild
  75. BIN
      games-rpg/Manifest.gz
  76. +1
    -0
      games-rpg/freedroidrpg/Manifest
  77. +97
    -0
      games-rpg/freedroidrpg/freedroidrpg-1.0_rc2.ebuild
  78. +21
    -41
      games-rpg/freedroidrpg/metadata.xml
  79. BIN
      games-simulation/Manifest.gz
  80. +3
    -2
      games-simulation/searchandrescue/Manifest
  81. +0
    -66
      games-simulation/searchandrescue/files/searchandrescue-1.5.0-build.patch
  82. +0
    -77
      games-simulation/searchandrescue/searchandrescue-1.5.0-r1.ebuild
  83. +80
    -0
      games-simulation/searchandrescue/searchandrescue-1.7.0.ebuild
  84. BIN
      kde-frameworks/Manifest.gz
  85. +5
    -0
      kde-frameworks/breeze-icons-rcc/breeze-icons-rcc-5.64.0.ebuild
  86. +5
    -0
      kde-frameworks/breeze-icons/breeze-icons-5.64.0.ebuild
  87. +2
    -1
      kde-frameworks/extra-cmake-modules/extra-cmake-modules-5.64.0.ebuild
  88. +5
    -0
      kde-frameworks/oxygen-icons/oxygen-icons-5.64.0.ebuild
  89. BIN
      kde-misc/Manifest.gz
  90. +1
    -0
      kde-misc/kshutdown/Manifest
  91. +63
    -0
      kde-misc/kshutdown/kshutdown-5.1_beta.ebuild
  92. +1
    -0
      kde-misc/tellico/Manifest
  93. +89
    -0
      kde-misc/tellico/tellico-3.2.2.ebuild
  94. BIN
      mail-client/Manifest.gz
  95. +1
    -0
      mail-client/neomutt/Manifest
  96. +128
    -0
      mail-client/neomutt/neomutt-20191111.ebuild
  97. BIN
      media-fonts/Manifest.gz
  98. +8
    -7
      media-fonts/oxygen-fonts/oxygen-fonts-5.4.3-r1.ebuild
  99. BIN
      media-gfx/Manifest.gz
  100. +130
    -0
      media-gfx/inkscape/files/inkscape-1.0_beta1-avoid-reordering-cmake-cxx-flags.patch

BIN
Manifest.files.gz View File


BIN
app-admin/Manifest.gz View File


+ 1
- 2
app-admin/sysstat/Manifest View File

@@ -1,4 +1,3 @@
DIST sysstat-12.0.5.tar.gz 711967 BLAKE2B 96aa49d82e71407dbd99d840ca5f71af83f54ba6315c858fae71f97290e8cf9c4f5358ad6389c7489366a62667c35835151e3187382a56c98153d3a04bcc2b8d SHA512 c1061f1af35430e81e488e4b2f18b8588ec4f3c419ade004c49ca24baf60b5b76a6a59eb25f3b17b51a9f60c5833a914a514872d0235b2ca405341a2f4a32cb3
DIST sysstat-12.0.6.tar.gz 712148 BLAKE2B 1118ce071e06c2853ffdec2be1b8b3bf060571caf988e17e04ff62cbf43e7111c5951a131d176b49ad35e1da75d2b8936e23f1a385e1c83a013b802a0fc36003 SHA512 e8f542b26c2b0b7b3aadbf34dce640879d27f8f1659447f15ffb5a210987c74840418046409403da85a9eb4c01484615d230ddc700611b7c0088d72165bffe86
DIST sysstat-12.1.6.tar.gz 1089333 BLAKE2B 3a3c3867b6b78ca1da7d5ef5838f5aad490e6d454aff3e8db266136ce7666112bcd1ad05b727c2455c16e53f6c84e0e75e32e8f4cc9318300aa9076921f68c1c SHA512 9c03e911fd6843b1719e080fce429e0d33f73f01619251f425dd4bbcc9d2764cd9beb8f8ebb4406b9540634d36c83303c10abcf682b079d35045454b1541984d
DIST sysstat-12.1.7.tar.gz 1213236 BLAKE2B 11e54c8ef940d057b7494fc09620f644aeb9622c41756466835e4daf14c145ff0f3a06954657c4f065f20c172659c54bfaed5b3dcf084b8bc1f8d565420c0f1f SHA512 0ee3b246619ff6e904db1359b4dc05789fe1f55759d170f78de918b001a81137823801bdcb4c9d9137c3337d38259e79ccef9c76310d361e0a81bb2731b7a3d1
DIST sysstat-12.2.0.tar.gz 1227684 BLAKE2B 1ca5cc3f0fd5dca6655d7b483fa853bf9f0256ae5e8dabf56f698d736faadd38f64af699158f4d637d7c8564f12b0992d866e503d01c647be274fc87ee04a9b4 SHA512 2398be1d5181616c337ead8f62b6bfb1144b89c747800140503c6a94793976f7909c81b656290577d51ebdee2f380418902846271b48ed79c6d7f02306f0a8a1

app-admin/sysstat/sysstat-12.0.6.ebuild → app-admin/sysstat/sysstat-12.0.6-r1.ebuild View File

@@ -53,9 +53,9 @@ src_configure() {
sa_lib_dir=/usr/lib/sa \
conf_dir=/etc \
econf \
$(use_enable debug debuginfo) \
$(use_enable lm-sensors sensors) \
$(use_enable nls) \
$(usex debug --enable-debuginfo '') \
--enable-copy-only \
--enable-documentation \
--enable-install-cron \

+ 0
- 81
app-admin/sysstat/sysstat-12.1.7.ebuild View File

@@ -1,81 +0,0 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=7
inherit flag-o-matic systemd toolchain-funcs

DESCRIPTION="System performance tools for Linux"
HOMEPAGE="http://pagesperso-orange.fr/sebastien.godard/"
SRC_URI="https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sh ~sparc ~x86"
IUSE="debug nls lm-sensors selinux static"

CDEPEND="
nls? ( virtual/libintl )
lm-sensors? ( sys-apps/lm-sensors:= )
"
DEPEND="
${CDEPEND}
nls? ( sys-devel/gettext )
"
RDEPEND="
${CDEPEND}
selinux? ( sec-policy/selinux-sysstat )
"
PATCHES=(
"${FILESDIR}"/${PN}-11.0.4-cron.patch
"${FILESDIR}"/${PN}-11.7.3-flags.patch
)

src_prepare() {
if use nls; then
strip-linguas -i nls/
local lingua pofile
for pofile in nls/*.po; do
lingua=${pofile/nls\/}
lingua=${lingua/.po}
if ! has ${lingua} ${LINGUAS}; then
rm "nls/${lingua}.po" || die
fi
done
fi

default
}

src_configure() {
tc-export AR
use static && append-ldflags -static

sa_lib_dir=/usr/lib/sa \
conf_dir=/etc \
econf \
$(use_enable debug debuginfo) \
$(use_enable lm-sensors sensors) \
$(use_enable nls) \
--enable-copy-only \
--enable-documentation \
--enable-install-cron \
--with-systemdsystemunitdir=$(systemd_get_systemunitdir)
}

src_install() {
keepdir /var/log/sa

emake \
CHOWN=true \
DESTDIR="${D}" \
DOC_DIR=/usr/share/doc/${PF} \
MANGRPARG='' \
install

dodoc -r contrib/

newinitd "${FILESDIR}"/${PN}.init.d ${PN}
systemd_dounit ${PN}.service

rm "${D}"/usr/share/doc/${PF}/COPYING || die
}

app-admin/sysstat/sysstat-12.1.6.ebuild → app-admin/sysstat/sysstat-12.2.0-r1.ebuild View File

@@ -53,9 +53,9 @@ src_configure() {
sa_lib_dir=/usr/lib/sa \
conf_dir=/etc \
econf \
$(use_enable debug debuginfo) \
$(use_enable lm-sensors sensors) \
$(use_enable nls) \
$(usex debug --enable-debuginfo '') \
--enable-copy-only \
--enable-documentation \
--enable-install-cron \

+ 1
- 1
app-admin/sysstat/sysstat-999999.ebuild View File

@@ -53,9 +53,9 @@ src_configure() {
sa_lib_dir=/usr/lib/sa \
conf_dir=/etc \
econf \
$(use_enable debug debuginfo) \
$(use_enable lm-sensors sensors) \
$(use_enable nls) \
$(usex debug --enable-debuginfo '') \
--enable-copy-only \
--enable-documentation \
--enable-install-cron \


BIN
app-arch/Manifest.gz View File


+ 1
- 1
app-arch/lrzip/lrzip-0.631_p20190619.ebuild View File

@@ -13,7 +13,7 @@ SRC_URI="https://github.com/ckolivas/lrzip/archive/${MY_COMMIT}.tar.gz -> ${P}.t

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~sparc x86 ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 sparc x86 ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="static-libs"

RDEPEND="dev-libs/lzo


+ 1
- 1
app-arch/unzip/unzip-6.0_p25.ebuild View File

@@ -16,7 +16,7 @@ SRC_URI="mirror://sourceforge/infozip/${MY_P}.tar.gz

LICENSE="Info-ZIP"
SLOT="0"
KEYWORDS="alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv s390 ~sh ~sparc ~x86 ~x86-linux"
KEYWORDS="alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv s390 ~sh sparc ~x86 ~x86-linux"
IUSE="bzip2 natspec unicode"

DEPEND="bzip2? ( app-arch/bzip2 )


BIN
app-crypt/Manifest.gz View File


+ 1
- 0
app-crypt/keybase/Manifest View File

@@ -2,3 +2,4 @@ DIST keybase-3.0.0.tar.gz 47018995 BLAKE2B 73aaa00a94af707dc7e0713c4e0a5b2d7d7ae
DIST keybase-4.4.2.tar.gz 57819398 BLAKE2B 0852aa850ad4d66457a123e97449ae24081b695b2a6a70aa0b7ad928d59aa163b9a199e806090586579cc87ee77ebd5dcb18fb137b57aec7d61007be1cba51b5 SHA512 5eccfde7cfa35277fae71c4527c0d93bcedd0657311a9c055e50330a97a24e8c339aa3778e6e926f1230542c898e6a27c4fad18c4e2486c084c6b8d58eb2e125
DIST keybase-4.5.0.tar.gz 60207510 BLAKE2B 11acd22139fa33988a13cce3db62c7000aedb9d157de37d589a450910628a9325edd38a5dab150b7b053112e3f40930c0e569be6c990cff559bdc64dd0d34376 SHA512 5299d7eab28d487299200a97beb894a2254a2d6a525053b9acac8bd2088e581097bdb8515c9d37ed54ce3f27996e0dacd5ef943acef3c976646c85f00003bf52
DIST keybase-4.7.0.tar.gz 63827539 BLAKE2B 237a638b9b4e6dad9a0b0e0146d355f94ea87c459e64edca4253dd8f2eba4ba959a0d1e4ebd768b6572d0ab9c4f05abed539a3d8a778b23ae840a202e3fc6144 SHA512 4dc49b102f7d18345c960081a0a8cfa4d36f19159ec09ab468eb3c86e0ec2c259e9c4b2b769ea57c555c79f3cfb457c7896ca05bf185c9c5725f9458377e4048
DIST keybase-4.7.2.tar.gz 63834062 BLAKE2B e4d2977982d60e191e51ea54b64d52930524a71d1159da15fac8280a4be866d51804a928b2db60fee211a9ba499a6af63a7ae2698d7879ed2eaa3704cd7f49ab SHA512 4d43e2ab222b8c82fc97c15c52c718323ea19ffb2be35d19b5f631960d452f8cfe2ac48bd87e13f8e03587a7ed32ded233774a3230bafced7adb6c6f2818c891

+ 52
- 0
app-crypt/keybase/keybase-4.7.2.ebuild View File

@@ -0,0 +1,52 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=6

inherit golang-build systemd

DESCRIPTION="Client for keybase.io"
HOMEPAGE="https://keybase.io/"
SRC_URI="https://github.com/keybase/client/archive/v${PV}.tar.gz -> ${P}.tar.gz"

LICENSE="Apache-2.0 BSD BSD-2 LGPL-3 MIT MPL-2.0"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE=""

DEPEND=""
RDEPEND="app-crypt/gnupg"

src_unpack() {
unpack "${P}.tar.gz"
ln -vs "client-${PV}" "${P}" || die
mkdir -vp "${S}/src/github.com/keybase" || die
ln -vs "${S}" "${S}/src/github.com/keybase/client" || die
}

src_compile() {
EGO_PN="github.com/keybase/client/go/keybase" \
EGO_BUILD_FLAGS="-tags production -o ${T}/keybase" \
golang-build_src_compile
}

src_test() {
EGO_PN="github.com/keybase/client/go/keybase" \
golang-build_src_test
}

src_install() {
dobin "${T}/keybase"
dobin "${S}/packaging/linux/run_keybase"
systemd_douserunit "${S}/packaging/linux/systemd/keybase.service"
dodir "/opt/keybase"
insinto "/opt/keybase"
doins "${S}/packaging/linux/crypto_squirrel.txt"
}

pkg_postinst() {
elog "Start/Restart keybase: run_keybase"
elog "Run the service: keybase service"
elog "Run the client: keybase login"
ewarn "Note that the user keybasehelper is obsolete and can be removed"
}

BIN
app-editors/Manifest.gz View File


+ 0
- 8
app-editors/scite/files/scite.desktop View File

@@ -1,8 +0,0 @@
[Desktop Entry]
Name=SciTE Text Editor
Comment=Text Editor
Exec=scite
Icon=Sci48M
Terminal=false
Type=Application
Categories=Development;

BIN
app-emacs/Manifest.gz View File


+ 1
- 1
app-emacs/muse/Manifest View File

@@ -1 +1 @@
DIST muse-3.20.tar.gz 411316 BLAKE2B a67c72a470e7e2d75cf94ed262b0e9503166326666a119f41968a603b4e48f3527705691a1b4b819ae6ec69c382a09074eef74ddad598faa08be6c74793b1e97 SHA512 23cd0e864586f907418753bc3284afde51b4f8559c5d043c52baa70de70ec4a845d9e8362b93e701308dbbd662e3429035df8ad440916e61d5909498cd55f7be
DIST muse-3.20.tar.gz 407054 BLAKE2B ff2babe2caf109c9de7504c4f82e04a7769b5e708455439e59faf96fa939423d6439e34f912cd79df420ec8498f7e91e5faa2e7410d4df236207fded66eff532 SHA512 864eca508d34f4c329ffd31cd3c169b67dff6d19c6695a85d8190511fa05d85f4a68f12e58c1679f91940ebcd823766e9f60309f2bfba17c985f811a3f342dda

+ 3
- 0
app-emacs/muse/metadata.xml View File

@@ -31,4 +31,7 @@
CamelCase words are no longer special by default.
</longdescription>
<stabilize-allarches/>
<upstream>
<remote-id type="github">alexott/muse</remote-id>
</upstream>
</pkgmetadata>

app-emacs/muse/muse-3.20.ebuild → app-emacs/muse/muse-3.20-r1.ebuild View File

@@ -7,7 +7,7 @@ inherit elisp

DESCRIPTION="An authoring and publishing environment for Emacs"
HOMEPAGE="https://www.gnu.org/software/emacs-muse/"
SRC_URI="http://download.gna.org/muse-el/${P}.tar.gz"
SRC_URI="https://github.com/alexott/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"

LICENSE="GPL-3+ FDL-1.2+ GPL-2 MIT"
SLOT="0"
@@ -20,7 +20,7 @@ RESTRICT="test" #426546
SITEFILE="50${PN}-gentoo.el"

src_compile() {
default
emake -j1
}

src_install() {
@@ -28,6 +28,5 @@ src_install() {
elisp-site-file-install "${FILESDIR}/${SITEFILE}"
doinfo texi/muse.info
dodoc AUTHORS NEWS README ChangeLog*
insinto /usr/share/doc/${PF}
doins -r contrib etc examples experimental scripts
dodoc -r contrib etc examples experimental scripts
}

+ 2
- 3
app-emacs/org-mode/org-mode-8.3.2-r1.ebuild View File

@@ -1,4 +1,4 @@
# Copyright 1999-2016 Gentoo Foundation
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=5
@@ -38,8 +38,7 @@ src_install() {

if use contrib; then
elisp-install ${PN}/contrib contrib/lisp/{org,ob,ox}*.el
insinto /usr/share/doc/${PF}/contrib
doins -r contrib/README contrib/scripts
( docinto contrib; dodoc -r contrib/README contrib/scripts )
find "${ED}/usr/share/doc/${PF}/contrib" -type f -name '.*' \
-exec rm -f '{}' '+'
# add the contrib subdirectory to load-path


+ 1
- 2
app-emacs/org-mode/org-mode-9.2.6.ebuild View File

@@ -39,8 +39,7 @@ src_install() {

if use contrib; then
elisp-install ${PN}/contrib contrib/lisp/{org,ob,ox}*.el
insinto /usr/share/doc/${PF}/contrib
doins -r contrib/README contrib/scripts
( docinto contrib; dodoc -r contrib/README contrib/scripts )
find "${ED}/usr/share/doc/${PF}/contrib" -type f -name '.*' \
-exec rm -f '{}' '+'
# add the contrib subdirectory to load-path


app-emacs/planner/planner-3.42.ebuild → app-emacs/planner/planner-3.42-r1.ebuild View File

@@ -1,13 +1,14 @@
# Copyright 1999-2017 Gentoo Foundation
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=5
EAPI=7

inherit elisp

DESCRIPTION="Maintain a local Wiki using Emacs-friendly markup"
HOMEPAGE="https://www.emacswiki.org/emacs/PlannerMode"
SRC_URI="http://download.gna.org/planner-el/${P}.tar.gz"
# taken from http://download.gna.org/planner-el/${P}.tar.gz
SRC_URI="https://dev.gentoo.org/~ulm/distfiles/${P}.tar.gz"

LICENSE="GPL-3+"
SLOT="0"
@@ -17,7 +18,7 @@ RESTRICT="test"
RDEPEND=">=app-emacs/muse-3.02.6a
app-emacs/bbdb
app-emacs/emacs-w3m"
DEPEND="${RDEPEND}
BDEPEND="${RDEPEND}
sys-apps/texinfo"
PDEPEND="app-emacs/remember"


+ 1
- 1
app-emacs/remember/Manifest View File

@@ -1 +1 @@
DIST remember-2.0.tar.gz 48096 BLAKE2B 7296760b561ab3c626a4c356aeaf02f9783d0ce84fb2e1bfbcfd46f392a5128bc956e378f646394645589ca6dd2a9bf1ff364ade25787ffa58f580d4decc485f SHA512 c5d1a55904699565af6375d19e88924a31364cf6f9b09b6e5510ac3e65c9bddbb2e0a5aa668dfd6e541ea6572209cad8af68694b7376b1bfe964032d247e5e01
DIST remember-2.0.tar.gz 44481 BLAKE2B 2419ff87c7cf45e86102e02b51e7941e101ea6540d34bf8ad3df1c59c733042bea03d95508e1fb5f724148999e68bd177732bf8748f5ccc0158c36c983816536 SHA512 9744a4f5893f6191de667d6fe5f5fe8d5730b46115f290993a082a14d3bd51ebb4e0ac3dd7f8b29de4db0aeb10259d6bf9f5833fd98b95077fb963683cb0f859

+ 3
- 0
app-emacs/remember/metadata.xml View File

@@ -20,4 +20,7 @@
<flag name="bbdb">Include support for <pkg>app-emacs/bbdb</pkg></flag>
<flag name="planner">Include support for <pkg>app-emacs/planner</pkg></flag>
</use>
<upstream>
<remote-id type="github">jwiegley/remember</remote-id>
</upstream>
</pkgmetadata>

app-emacs/remember/remember-2.0.ebuild → app-emacs/remember/remember-2.0-r1.ebuild View File

@@ -1,13 +1,13 @@
# Copyright 1999-2017 Gentoo Foundation
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=5
EAPI=7

inherit elisp

DESCRIPTION="Simplify writing short notes in emacs"
HOMEPAGE="https://www.emacswiki.org/emacs/RememberMode"
SRC_URI="http://download.gna.org/${PN}-el/${P}.tar.gz"
SRC_URI="https://github.com/jwiegley/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"

LICENSE="GPL-3+ FDL-1.2+"
SLOT="0"
@@ -18,7 +18,7 @@ RESTRICT="test"

RDEPEND="bbdb? ( app-emacs/bbdb )
planner? ( app-emacs/planner )"
DEPEND="${RDEPEND}
BDEPEND="${RDEPEND}
sys-apps/texinfo"

ELISP_PATCHES="${PN}-1.9-make-elc.patch"

BIN
app-emulation/Manifest.gz View File


+ 0
- 75
app-emulation/xen-pvgrub/files/xen-4.3-externals.patch View File

@@ -1,75 +0,0 @@
diff -ur xen-4.3.0.orig/stubdom/Makefile xen-4.3.0/stubdom/Makefile
--- stubdom/Makefile 2013-07-09 18:46:56.000000000 +0800
+++ stubdom/Makefile 2013-07-21 16:07:08.094663570 +0800
@@ -68,12 +68,12 @@
##############
newlib-$(NEWLIB_VERSION).tar.gz:
- $(FETCHER) $@ $(NEWLIB_URL)/$@
newlib-$(NEWLIB_VERSION): newlib-$(NEWLIB_VERSION).tar.gz
tar xzf $<
patch -d $@ -p0 < newlib.patch
patch -d $@ -p0 < newlib-chk.patch
+ patch -d $@ -p0 < newlib-implicits.patch
patch -d $@ -p1 < newlib-stdint-size_max-fix-from-1.17.0.patch
find $@ -type f | xargs perl -i.bak \
-pe 's/\b_(tzname|daylight|timezone)\b/$$1/g'
@@ -85,7 +85,7 @@
$(NEWLIB_STAMPFILE): mk-headers-$(XEN_TARGET_ARCH) newlib-$(NEWLIB_VERSION)
mkdir -p newlib-$(XEN_TARGET_ARCH)
( cd newlib-$(XEN_TARGET_ARCH) && \
- CC_FOR_TARGET="$(CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(NEWLIB_CFLAGS)" AR_FOR_TARGET=$(AR) LD_FOR_TARGET=$(LD) RANLIB_FOR_TARGET=$(RANLIB) ../newlib-$(NEWLIB_VERSION)/configure --prefix=$(CROSS_PREFIX) --verbose --target=$(GNU_TARGET_ARCH)-xen-elf --enable-newlib-io-long-long --disable-multilib && \
+ CC_FOR_TARGET="$(CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(NEWLIB_CFLAGS)" AR_FOR_TARGET=$(AR) LD_FOR_TARGET=$(LD) LDFLAGS= RANLIB_FOR_TARGET=$(RANLIB) ../newlib-$(NEWLIB_VERSION)/configure --prefix=$(CROSS_PREFIX) --verbose --target=$(GNU_TARGET_ARCH)-xen-elf --enable-newlib-io-long-long --disable-multilib && \
$(MAKE) DESTDIR= && \
$(MAKE) DESTDIR= install )
@@ -94,7 +94,6 @@
############
zlib-$(ZLIB_VERSION).tar.gz:
- $(FETCHER) $@ $(ZLIB_URL)/$@
zlib-$(XEN_TARGET_ARCH): zlib-$(ZLIB_VERSION).tar.gz
tar xzf $<
@@ -105,7 +104,7 @@
cross-zlib: $(ZLIB_STAMPFILE)
$(ZLIB_STAMPFILE): zlib-$(XEN_TARGET_ARCH) $(NEWLIB_STAMPFILE)
( cd $< && \
- CFLAGS="$(TARGET_CPPFLAGS) $(TARGET_CFLAGS)" CC=$(CC) ./configure --prefix=$(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf && \
+ CFLAGS="$(TARGET_CPPFLAGS) $(TARGET_CFLAGS)" CC="$(CC)" ./configure --prefix=$(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf && \
$(MAKE) DESTDIR= libz.a && \
$(MAKE) DESTDIR= install )
@@ -114,7 +113,6 @@
##############
pciutils-$(LIBPCI_VERSION).tar.bz2:
- $(FETCHER) $@ $(LIBPCI_URL)/$@
pciutils-$(XEN_TARGET_ARCH): pciutils-$(LIBPCI_VERSION).tar.bz2
tar xjf $<
@@ -142,7 +140,6 @@
######
lwip-$(LWIP_VERSION).tar.gz:
- $(FETCHER) $@ $(LWIP_URL)/$@
lwip-$(XEN_TARGET_ARCH): lwip-$(LWIP_VERSION).tar.gz
tar xzf $<
@@ -180,7 +177,6 @@
# cross-polarssl
#############
polarssl-$(POLARSSL_VERSION)-gpl.tgz:
- $(FETCHER) $@ $(POLARSSL_URL)/$@
polarssl-$(XEN_TARGET_ARCH): polarssl-$(POLARSSL_VERSION)-gpl.tgz
tar xzf $<
@@ -385,7 +382,6 @@
######
grub-$(GRUB_VERSION).tar.gz:
- $(FETCHER) $@ $(GRUB_URL)/$@
grub-upstream: grub-$(GRUB_VERSION).tar.gz
tar xzf $<

BIN
app-text/Manifest.gz View File


+ 0
- 1
app-text/djvu/Manifest View File

@@ -1,2 +1 @@
DIST djvulibre-3.5.25.3.tar.gz 2543949 BLAKE2B 8ae6004e74a7db0fa666a3cf15f5a3b335690984838e8d674ccd7fa7dda0728771f6fab5f61747b505646e3bb206effd0bbaf9c6035fb27993d587693ad1fa43 SHA512 0e38f56d77915ee6707dd19a36a8ca9167608c39449a5c73de9cd784d712852c07c068b79a794e25f6d3ded0f927d083413dde197c9fc8f7b68c03cffe68035b
DIST djvulibre-3.5.27.tar.gz 3648522 BLAKE2B e1907b4b64c48304ceb24360cfd451e4690d38803f22231d4e136dbe754715527fa0300c623bb709fa05bba206348257137b2a755651bb51ca26259680e142d0 SHA512 62abcaa2fe7edab536477929ba38b882453dab1a06e119a3f838b38d5c61f5d8c252e4769e6534582b826e49bcfb490513179580fab9c3afa84aa92053ccebee

+ 0
- 72
app-text/djvu/djvu-3.5.25.3.ebuild View File

@@ -1,72 +0,0 @@
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2

EAPI=5

inherit autotools eutils flag-o-matic xdg-utils

MY_P="${PN}libre-${PV#*_p}"

DESCRIPTION="DjVu viewers, encoders and utilities"
HOMEPAGE="http://djvu.sourceforge.net/"
SRC_URI="mirror://sourceforge/djvu/${MY_P}.tar.gz"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-solaris"
IUSE="debug doc jpeg tiff xml"

RDEPEND="jpeg? ( virtual/jpeg:0 )
tiff? ( media-libs/tiff:0= )"
DEPEND="${RDEPEND}
|| ( gnome-base/librsvg media-gfx/inkscape )"

S=${WORKDIR}/${MY_P%%.3}

src_prepare() {
sed -i \
-e 's/AC_CXX_OPTIMIZE/OPTS=;AC_SUBST(OPTS)/' \
configure.ac || die #263688
rm aclocal.m4 config/{libtool.m4,ltmain.sh,install-sh,config.sub,config.guess,ltoptions.m4,ltversion.m4,lt~obsolete.m4}
# epatch "${FILESDIR}/${PN}-3.5.24-gcc46.patch"
AT_M4DIR="config" eautoreconf
}

src_configure() {
use debug && append-cppflags "-DRUNTIME_DEBUG_ONLY"

# We install all desktop files by hand.
econf \
$(use_enable xml xmltools) \
$(use_with jpeg) \
$(use_with tiff) \
--disable-desktopfiles
}

DOCS=( NEWS README )

src_install() {
default
prune_libtool_files

use doc && dodoc -r doc

# Install desktop files.
cd desktopfiles
for i in {22,32,48,64}; do
insinto /usr/share/icons/hicolor/${i}x${i}/mimetypes
newins hi${i}-djvu.png image-vnd.djvu.png
done
insinto /usr/share/mime/packages
doins djvulibre-mime.xml
}

pkg_postinst() {
xdg_mimeinfo_database_update
has_version app-text/djview || \
optfeature "For djviewer or browser plugin" app-text/djview
}

pkg_postrm() {
xdg_mimeinfo_database_update
}

app-text/djvu/djvu-3.5.27.ebuild → app-text/djvu/djvu-3.5.27-r1.ebuild View File

@@ -1,21 +1,23 @@
# Copyright 1999-2018 Gentoo Foundation
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=5
EAPI=7

inherit eutils flag-o-matic xdg-utils
inherit desktop eutils flag-o-matic xdg-utils

MY_P="${PN}libre-${PV#*_p}"

DESCRIPTION="DjVu viewers, encoders and utilities"
HOMEPAGE="http://djvu.sourceforge.net/"
SRC_URI="mirror://sourceforge/djvu/${MY_P}.tar.gz"
SRC_URI="http://downloads.sourceforge.net/djvu/${MY_P}.tar.gz"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-solaris"
IUSE="debug doc jpeg tiff xml"

PATCHES=( "${FILESDIR}"/fix-CVE-2019-18804.patch )

RDEPEND="jpeg? ( virtual/jpeg:0 )
tiff? ( media-libs/tiff:0= )"
DEPEND="${RDEPEND}
@@ -38,7 +40,8 @@ DOCS=( NEWS README )

src_install() {
default
prune_libtool_files

find "${ED}" -name '*.la' -delete || die

use doc && dodoc -r doc


+ 0
- 40
app-text/djvu/files/djvu-3.5.24-gcc46.patch View File

@@ -1,40 +0,0 @@
http://bugs.gentoo.org/361057 for GSmartPointer.h change

Then include stddef.h in the installed headers to fix building of reverse
dependencies, such as app-text/zathura-djvu

These are all in upstream GIT

--- a/libdjvu/ddjvuapi.h
+++ b/libdjvu/ddjvuapi.h
@@ -64,6 +64,7 @@
}
#endif
+#include <stddef.h>
#include <stdlib.h>
#include <stdio.h>
--- a/libdjvu/GSmartPointer.h
+++ b/libdjvu/GSmartPointer.h
@@ -62,6 +62,8 @@
# pragma interface
#endif
+#include <cstddef>
+
/** @name GSmartPointer.h
Files #"GSmartPointer.h"# and #"GSmartPointer.cpp"# define a smart-pointer
--- a/libdjvu/miniexp.h
+++ b/libdjvu/miniexp.h
@@ -38,7 +38,8 @@
#ifndef MINILISPAPI
# define MINILISPAPI /**/
#endif
-
+
+#include <stddef.h>
/* -------------------------------------------------- */
/* LISP EXPRESSIONS */

+ 39
- 0
app-text/djvu/files/fix-CVE-2019-18804.patch View File

@@ -0,0 +1,39 @@
From c8bec6549c10ffaa2f2fbad8bbc629efdf0dd125 Mon Sep 17 00:00:00 2001
From: Leon Bottou <leon@bottou.org>
Date: Thu, 17 Oct 2019 22:20:31 -0400
Subject: [PATCH] Fixed bug 309

---
libdjvu/IW44EncodeCodec.cpp | 2 +-
tools/ddjvu.cpp | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/libdjvu/IW44EncodeCodec.cpp b/libdjvu/IW44EncodeCodec.cpp
index 00752a0..f81eaeb 100644
--- a/libdjvu/IW44EncodeCodec.cpp
+++ b/libdjvu/IW44EncodeCodec.cpp
@@ -405,7 +405,7 @@ filter_fv(short *p, int w, int h, int rowsize, int scale)
int y = 0;
int s = scale*rowsize;
int s3 = s+s+s;
- h = ((h-1)/scale)+1;
+ h = (h>0) ? ((h-1)/scale)+1 : 0;
y += 1;
p += s;
while (y-3 < h)
diff --git a/tools/ddjvu.cpp b/tools/ddjvu.cpp
index 6d0df3b..7109952 100644
--- a/tools/ddjvu.cpp
+++ b/tools/ddjvu.cpp
@@ -279,7 +279,7 @@ render(ddjvu_page_t *page, int pageno)
prect.h = (ih * 100) / dpi;
}
/* Process aspect ratio */
- if (flag_aspect <= 0)
+ if (flag_aspect <= 0 && iw>0 && ih>0)
{
double dw = (double)iw / prect.w;
double dh = (double)ih / prect.h;
--
2.23.0


BIN
dev-cpp/Manifest.gz View File


+ 1
- 1
dev-cpp/asio/asio-1.14.0.ebuild View File

@@ -9,7 +9,7 @@ SRC_URI="mirror://sourceforge/${PN}/${PN}/${P}.tar.bz2"

LICENSE="Boost-1.0"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 sparc ~x86"
KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 sparc ~x86"
IUSE="doc examples libressl ssl test"

RDEPEND="dev-libs/boost


BIN
dev-db/Manifest.gz View File


+ 3
- 0
dev-db/mariadb/Manifest View File

@@ -1,5 +1,6 @@
DIST mariadb-10.1.38.tar.gz 63535685 BLAKE2B c179ea2f60287c2bc1c0d1c47ae989ac2653a24063e8344cef2f3062fc6798e18b969e8f9aa8287104ce2518e6c644cb8d3a4650b5a0bc5dfde973e76e618955 SHA512 184582f3a902a989ba3d9c4d21288c014c8b469adbbb4cbabc621c5006022cef29baed8c1140ed4476b124da83b76dfa414295ed0c3374be826e75aca953a77b
DIST mariadb-10.1.41.tar.gz 63615288 BLAKE2B 91ebc6d24c80ad9651c42a2f4553ce3ec3b7beb17493f90ebbf02ab23f425b0f729766cf2c81202832dfbca0a5e285f94a4daf794fcf4d445730fbe4fcc88871 SHA512 4a18b06fda49c5c3627b4e7cd32fb460e73762273a0c3d09098e34c71e63caa8fad03cdd92ae4a391cdfdb3719934688f0bdf312fa4af7ac3b9e5f5d90f404be
DIST mariadb-10.1.43.tar.gz 63635313 BLAKE2B 60617d3021bb478633a995b93a3659a287ecab49bb1997efc430e2f453a8145307f0db02799b43560a51c92ef528060f93fb82fd0362ea34052f68590144bff0 SHA512 47e9693c6c1d25d2c3541efe001569c17e70721edcbfc3d0ccc96f3638820123436c18d2cbc3c2ad252adf1eda446feff0370eb97f9e57b6711757ac899b47e8
DIST mariadb-10.2.22.tar.gz 71907765 BLAKE2B e7781a9e1bb0becca543ebb0b9e03912fbafa9de45bbd5c7232f92d29b934148dd124ad462bf8aa5aec2e4ee0bf75a03fae5e5fe97a77e1d93095052a577c14b SHA512 cd61d0c2d528b23b975e6ea142560d9b9ebff7ecda6fa9b3659b25b3406e8cc925918f4c3bb0e200ddb8d0520bcaa4d4f70d245b4731896f9ba2f1bdf0a817b2
DIST mariadb-10.2.26.tar.gz 73037655 BLAKE2B 54fd27959960736bffe0eeacc913b9aed0407d1be7a60d3035a1b84cbe8066aa1551c1c82a1b90b824debf85faaa9d11e3de29634a0108bc04bc17ca5c2a9d7c SHA512 1eaac1c1dda1017b64249d39d872729d3140d81653240c54f688f64440b1775e5f3a7c5a8486075fa1799411dfb0c2c09b7c1dbb46d95675572d90127048c124
DIST mariadb-10.2.27.tar.gz 73068579 BLAKE2B 7e4ae229040b3136ad107979864bc391556c1ba83847addd89e09f3757cd01203503e07832abe496a7f560048ed704f273607da3a114afa59ceb13cbb3b89c14 SHA512 9ea7ea30f964d022d16c662c18ac40ea50ef5b6592d02ba739ad81f9dfa9e60be90ea6d4706b43b07402c4cbc8c0280633b6e21bda6daf5bbc1d3c540993e4d6
@@ -7,9 +8,11 @@ DIST mariadb-10.2.29.tar.gz 73087972 BLAKE2B aa3fe880f00b02846b26f16fcd37d18ebe2
DIST mariadb-10.3.17.tar.gz 71894997 BLAKE2B 8e04302f67a99c28751f9970b7e8dfc5ada0583fdabc416e0469e23fa93d22dae8b79e762ef14ca65957e22ec310a290b15d33746f6f2e7287f922803e6a6826 SHA512 6fba995d8c284a12f19ee5635f5d69d8fa89fc314f512cd1764b2c4593933baf71a472ddce630463debd3bfbafa1cf5afee3f40d3c4062242f58cea16259561e
DIST mariadb-10.3.18.tar.gz 71950543 BLAKE2B d157426781713f19470004d80c587019e12c875d0958e5077ca373d856a8f1214be01dbc2a50fd5a754eaa91e727179bea70ee2a3133a219209cb819108c8940 SHA512 817253d18f20c74f9ec8030678fd50a28b1726fd59153023a3a5e9b3f79e1f44d79feb24ae9ed72d8c1c04017110c932aba7be0610fb06245590c7f5610db242
DIST mariadb-10.3.20.tar.gz 71990355 BLAKE2B f950f0eb836751d0eebb9ae561fe3b5aefade04a0d389465918aa2a887e4f717ab4e6bd835dea8f9a88aacfe10c0b091fc2a59882a1781a3f2903ef07a759f5d SHA512 8080cb6db85c587f39f128e98b00c3e6428bf3e828271a227bb2c61c97683c965802baa6e5f825317f7e2963683c0f81699642853deeca6977faa2b6932044a3
DIST mariadb-10.4.10.tar.gz 78352896 BLAKE2B c0e448fba455feb9385b7d57e1a727e84eaf4cfa52ce0dbd6ff062aa0b5abc42005680fb185416d04fbd7bb62d9bbd6c93e4cb77b145418cf6be92747f8b1c2a SHA512 4a9b9a37bc3a273de4bd781dac3636256364dae6efbba45765d6b28995da3d64e180422cd10418d1c7acd7fd8843fe2a2638c07e0f56b0c09170c58812cc6b71
DIST mariadb-10.4.7.tar.gz 78155161 BLAKE2B b2c92093438b3574e494bda2180f4a2b5cbe10bac1c46acc45b5303fb4c2a1ca54f3ea88d138ab9cbb492460171dde86f3c21e5873d964b15c6c064e2e6eb47f SHA512 cb8b5adaef1970b9c8f04db08c18660f8b3df87f699aa93c1bee9497b887ddf50fcf3a2aebbe21a5fc9dfcbd118d0192d7421512522d98eaf30a014822c2f7ce
DIST mariadb-10.4.8.tar.gz 78262897 BLAKE2B 357dfd8db702d30c30173cb4ee0bbbda8e54a77a8f726cdc529cbaeebd390fe11fd05c108dde54b029b7e311ebbf9a610dc2c6e4015c9a198d816deaaec5831e SHA512 1aa7117734f4ebeb08395289ff1295e1d2ed2f89e8ccf3224cd60afaf2be56f81e8f0448e7619eeb6c858355a2b1e224efe42a0f400941f138342318adb66c42
DIST mariadb-5.5.65.tar.gz 45957577 BLAKE2B 9ed27349d008d2001ed4059370505064918ef3586f89157f5f28892bceabd3073b7070f4054c0a700f1504dde3a4077e274111d5b8cb3713bc5db0910b752628 SHA512 5dbaa2ba7a829a0d5ae6ab8394c31a58753cd93da2637cd83d1e055e78b0796d63214418ddc91a65cefdd791aad4f01b0743aa8c7c40ecbb404cb81fd0138443
DIST mariadb-5.5.66.tar.gz 45962591 BLAKE2B 41befba24abec2af876168a11fc205d328c137baa49e5e521787898e4b973d1dc548ef459228811caa99fa3c2b7a9fe96f3eb7a04bf62f0bb20966e4ffd2ea9b SHA512 403f3bc67018e01eb2277a88d3a7ac673d50df8f7a67607f9d14e3167d1bdd4ca202983df69c97688ff51edbd6d6b43af3541c75e968d1d01713a7b6495e4c8c
DIST mysql-extras-20180809-1700Z.tar.bz2 322999 BLAKE2B 8b5feb32085dc35b2f68dae985b2d266c4eaa0e956b490050a2df04bbff99bf8623b67e75af9326d84e3ad625c4d86b0d21d23c9a96df5a0c9cd5ed730958970 SHA512 fbd7af9284bbf09d55f128361e7cc52d94f24ac491aac800cd6d61f2e444aeca66a4d5e6ae94c2fb4044e00cec9b232bae9a76a229f87f19d90b7aecf70792ec
DIST mysql-extras-20190305-2052Z.tar.bz2 331304 BLAKE2B 1d2c35a961159fa5ce9ee6699fce943f5a5b5cf60b11c9bb4bcccee4943f4508a9eb6d01050c642353ac592ce1a6b421abf2a1bebc706c44c4c8a36aa698ec43 SHA512 ae63403320e010acbb92f8aec6da8ed4f267cef0bad37147d594076fd94571de7f98bfc2afbe94af5d716f58d57696fd958b1e13e20e87052f252ed4a188cd3c
DIST mysql-extras-20190731-2258Z.tar.bz2 332111 BLAKE2B cc144c9af852bfdd4149b96bdc22f8afb2d0aa92f95ebd272a244f0fb7743dc03f9244871d5c195260bac5d9ed20583093257ee2c95a5a4d0a4dae488d781adf SHA512 d4428a1128cd5aef62c463b659992b110090b1602cdcb6b8d922d570c6b946fde325bfcf5a9a955a8dcc61f3ccd3d612d8517ebf63e316f98ca9ff2cd8a807aa

+ 897
- 0
dev-db/mariadb/mariadb-10.1.43.ebuild View File

@@ -0,0 +1,897 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI="6"
MY_EXTRAS_VER="20190305-2052Z"
SUBSLOT="18"

JAVA_PKG_OPT_USE="jdbc"

# Keeping eutils in EAPI=6 for emktemp in pkg_config

inherit eutils systemd flag-o-matic prefix toolchain-funcs java-pkg-opt-2 user cmake-utils multilib-build

SRC_URI="https://downloads.mariadb.org/interstitial/${P}/source/${P}.tar.gz "

# Gentoo patches to MySQL
if [[ "${MY_EXTRAS_VER}" != "live" && "${MY_EXTRAS_VER}" != "none" ]]; then
SRC_URI="${SRC_URI}
mirror://gentoo/mysql-extras-${MY_EXTRAS_VER}.tar.bz2
https://gitweb.gentoo.org/proj/mysql-extras.git/snapshot/mysql-extras-${MY_EXTRAS_VER}.tar.bz2
https://dev.gentoo.org/~grknight/distfiles/mysql-extras-${MY_EXTRAS_VER}.tar.bz2
https://dev.gentoo.org/~robbat2/distfiles/mysql-extras-${MY_EXTRAS_VER}.tar.bz2
https://dev.gentoo.org/~jmbsvicetto/distfiles/mysql-extras-${MY_EXTRAS_VER}.tar.bz2"
fi

HOMEPAGE="https://mariadb.org/"
DESCRIPTION="An enhanced, drop-in replacement for MySQL"
LICENSE="GPL-2"
SLOT="0/${SUBSLOT:-0}"
IUSE="+backup bindist client-libs cracklib debug extraengine galera jdbc jemalloc kerberos
innodb-lz4 innodb-lzo innodb-snappy latin1 libressl mroonga numa odbc oqgraph pam
+perl profiling selinux +server sphinx sst-rsync sst-mariabackup sst-xtrabackup
systemd systemtap static static-libs tcmalloc test tokudb xml yassl"

# Tests always fail when libressl is enabled due to hard-coded ciphers in the tests
RESTRICT="!bindist? ( bindist ) libressl? ( test ) !test? ( test )"

REQUIRED_USE="jdbc? ( extraengine server !static )
server? ( tokudb? ( jemalloc !tcmalloc ) )
?? ( tcmalloc jemalloc )
static? ( yassl !pam )"

KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris"

# Shorten the path because the socket path length must be shorter than 107 chars
# and we will run a mysql server during test phase
S="${WORKDIR}/mysql"

if [[ "${MY_EXTRAS_VER}" == "live" ]] ; then
MY_PATCH_DIR="${WORKDIR%/}/mysql-extras"
inherit git-r3
EGIT_REPO_URI="git://anongit.gentoo.org/proj/mysql-extras.git"
EGIT_CHECKOUT_DIR="${WORKDIR%/}/mysql-extras"
EGIT_CLONE_TYPE=shallow
else
MY_PATCH_DIR="${WORKDIR%/}/mysql-extras-${MY_EXTRAS_VER}"
fi

PATCHES=(
"${MY_PATCH_DIR}"/20006_all_cmake_elib-mariadb-10.1.27.patch
"${MY_PATCH_DIR}"/20009_all_mariadb_myodbc_symbol_fix-5.5.38.patch
"${MY_PATCH_DIR}"/20015_all_mariadb-pkgconfig-location.patch
"${MY_PATCH_DIR}"/20018_all_mariadb-10.1.16-without-clientlibs-tools.patch
"${MY_PATCH_DIR}"/20025_all_mariadb-10.1.26-gssapi-detect.patch
"${MY_PATCH_DIR}"/20029_all_mariadb-10.1.37-enable-numa.patch
"${MY_PATCH_DIR}"/20035_all_mariadb-10.1-atomic-detection.patch
)

# Be warned, *DEPEND are version-dependant
# These are used for both runtime and compiletime
COMMON_DEPEND="
kernel_linux? (
sys-process/procps:0=
dev-libs/libaio:0=
)
>=sys-apps/sed-4
>=sys-apps/texinfo-4.7-r1
jemalloc? ( dev-libs/jemalloc:0= )
tcmalloc? ( dev-util/google-perftools:0= )
systemtap? ( >=dev-util/systemtap-1.3:0= )
!yassl? (
!libressl? ( dev-libs/openssl:0= !>=dev-libs/openssl-1.1 )
libressl? ( dev-libs/libressl:0= )
)
>=sys-libs/zlib-1.2.3:0=
sys-libs/ncurses:0=
!bindist? (
sys-libs/binutils-libs:0=
>=sys-libs/readline-4.1:0=
)
server? (
backup? ( app-arch/libarchive:0= )
cracklib? ( sys-libs/cracklib:0= )
extraengine? (
odbc? ( dev-db/unixODBC:0= )
xml? ( dev-libs/libxml2:2= )
sys-libs/zlib[minizip]
)
innodb-lz4? ( app-arch/lz4 )
innodb-lzo? ( dev-libs/lzo )
innodb-snappy? ( app-arch/snappy )
kerberos? ( virtual/krb5 )
mroonga? ( app-text/groonga-normalizer-mysql >=app-text/groonga-7.0.4 )
numa? ( sys-process/numactl )
oqgraph? ( >=dev-libs/boost-1.40.0:0= dev-libs/judy:0= )
pam? ( sys-libs/pam:0= )
systemd? ( sys-apps/systemd:= )
tokudb? ( app-arch/snappy )
)
!yassl? ( !libressl? ( !>=dev-libs/openssl-1.1.0 ) )
>=dev-libs/libpcre-8.41-r1:3=
!client-libs? ( dev-db/mysql-connector-c[${MULTILIB_USEDEP},static-libs?] )
"
DEPEND="virtual/yacc
static? ( sys-libs/ncurses[static-libs] )
|| ( >=sys-devel/gcc-3.4.6 >=sys-devel/gcc-apple-4.0 )
server? ( extraengine? ( jdbc? ( >=virtual/jdk-1.6 ) ) )
${COMMON_DEPEND}"
RDEPEND="selinux? ( sec-policy/selinux-mysql )
client-libs? ( !dev-db/mariadb-connector-c[mysqlcompat] !dev-db/mysql-connector-c )
!dev-db/mysql !dev-db/mariadb-galera !dev-db/percona-server !dev-db/mysql-cluster
server? ( !prefix? ( dev-db/mysql-init-scripts ) )
${COMMON_DEPEND}
server? ( galera? (
sys-apps/iproute2
=sys-cluster/galera-25*
sst-rsync? ( sys-process/lsof )
sst-mariabackup? ( net-misc/socat[ssl] )
sst-xtrabackup? ( net-misc/socat[ssl] )
) )
perl? ( !dev-db/mytop
virtual/perl-Getopt-Long
dev-perl/TermReadKey
virtual/perl-Term-ANSIColor
virtual/perl-Time-HiRes )
server? ( extraengine? ( jdbc? ( >=virtual/jre-1.6 ) ) )
"
# For other stuff to bring us in
# dev-perl/DBD-mysql is needed by some scripts installed by MySQL
# percona-xtrabackup-bin causes a circular dependency if DBD-mysql is not already installed
PDEPEND="perl? ( >=dev-perl/DBD-mysql-2.9004 )
server? ( galera? ( sst-xtrabackup? ( || ( >=dev-db/percona-xtrabackup-bin-2.2.4 dev-db/percona-xtrabackup ) ) ) )"

pkg_setup() {
if [[ ${MERGE_TYPE} != binary ]] ; then
local GCC_MAJOR_SET=$(gcc-major-version)
local GCC_MINOR_SET=$(gcc-minor-version)
if use tokudb && [[ ${GCC_MAJOR_SET} -lt 4 || \
${GCC_MAJOR_SET} -eq 4 && ${GCC_MINOR_SET} -lt 7 ]] ; then
eerror "${PN} with tokudb needs to be built with gcc-4.7 or later."
eerror "Please use gcc-config to switch to gcc-4.7 or later version."
die
fi
# Bug 565584. InnoDB now requires atomic functions introduced with gcc-4.7 on
# non x86{,_64} arches
if ! use amd64 && ! use x86 && [[ ${GCC_MAJOR_SET} -lt 4 || \
${GCC_MAJOR_SET} -eq 4 && ${GCC_MINOR_SET} -lt 7 ]] ; then
eerror "${PN} needs to be built with gcc-4.7 or later."
eerror "Please use gcc-config to switch to gcc-4.7 or later version."
die
fi
fi
java-pkg-opt-2_pkg_setup
if has test ${FEATURES} && \
use server && ! has userpriv ${FEATURES} ; then
eerror "Testing with FEATURES=-userpriv is no longer supported by upstream. Tests MUST be run as non-root."
fi

# This should come after all of the die statements
enewgroup mysql 60 || die "problem adding 'mysql' group"
enewuser mysql 60 -1 /dev/null mysql || die "problem adding 'mysql' user"
}

pkg_preinst() {
java-pkg-opt-2_pkg_preinst
}

pkg_postinst() {
# Make sure the vars are correctly initialized
mysql_init_vars

# Create log directory securely if it does not exist
[[ -d "${ROOT}${MY_LOGDIR}" ]] || install -d -m0750 -o mysql -g mysql "${ROOT}${MY_LOGDIR}"

if use server ; then
if use pam; then
einfo
elog "This install includes the PAM authentication plugin."
elog "To activate and configure the PAM plugin, please read:"
elog "https://mariadb.com/kb/en/mariadb/pam-authentication-plugin/"
einfo
fi

if [[ -z "${REPLACING_VERSIONS}" ]] ; then
einfo
elog "You might want to run:"
elog "\"emerge --config =${CATEGORY}/${PF}\""
elog "if this is a new install."
elog
elog "If you are switching server implentations, you should run the"
elog "mysql_upgrade tool."
einfo
else
einfo
elog "If you are upgrading major versions, you should run the"
elog "mysql_upgrade tool."
einfo
fi

einfo
elog "Be sure to edit the my.cnf file to activate your cluster settings."
elog "This should be done after running \"emerge --config =${CATEGORY}/${PF}\""
elog "The first time the cluster is activated, you should add"
elog "--wsrep-new-cluster to the options in /etc/conf.d/mysql for one node."
elog "This option should then be removed for subsequent starts."
einfo
fi
}

src_unpack() {
unpack ${A}
# Grab the patches
[[ "${MY_EXTRAS_VER}" == "live" ]] && S="${WORKDIR%/}/mysql-extras" git-r3_src_unpack

mv -f "${WORKDIR%/}/${PN%%-galera}-${PV}" "${S}" || die
}

src_prepare() {
_disable_engine() {
echo > "${S%/}/storage/${1}/CMakeLists.txt" || die
}

_disable_plugin() {
echo > "${S%/}/plugin/${1}/CMakeLists.txt" || die
}

if use tcmalloc; then
echo "TARGET_LINK_LIBRARIES(mysqld tcmalloc)" >> "${S%/}/sql/CMakeLists.txt" || die
fi

# Don't build bundled xz-utils for tokudb
echo > "${S%/}/storage/tokudb/PerconaFT/cmake_modules/TokuThirdParty.cmake" || die
sed -i -e 's/ build_lzma//' -e 's/ build_snappy//' "${S%/}/storage/tokudb/PerconaFT/ft/CMakeLists.txt" || die
sed -i -e 's/add_dependencies\(tokuportability_static_conv build_jemalloc\)//' "${S%/}/storage/tokudb/PerconaFT/portability/CMakeLists.txt" || die

local plugin
local server_plugins=( handler_socket auth_socket feedback metadata_lock_info
locale_info qc_info server_audit semisync sql_errlog )
local test_plugins=( audit_null auth_examples daemon_example fulltext )
if ! use server; then # These plugins are for the server
for plugin in "${server_plugins[@]}" ; do
_disable_plugin "${plugin}"
done
fi

if ! use test; then # These plugins are only used during testing
for plugin in "${test_plugins[@]}" ; do
_disable_plugin "${plugin}"
done
fi

# Collides with mariadb-connector-c bug 655980
_disable_plugin auth_dialog

# Avoid useless library checks
use mroonga || _disable_engine mroonga
use oqgraph || _disable_engine oqgraph
_disable_engine example

# Don't clash with dev-db/mysql-connector-c
sed -i -e 's/ my_print_defaults.1//' \
-e 's/ perror.1//' \
"${S}"/man/CMakeLists.txt || die

cmake-utils_src_prepare
java-pkg-opt-2_src_prepare
}

src_configure(){
# bug 508724 mariadb cannot use ld.gold
tc-ld-disable-gold
# Bug #114895, bug #110149
filter-flags "-O" "-O[01]"

append-cxxflags -felide-constructors

# bug #283926, with GCC4.4, this is required to get correct behavior.
append-flags -fno-strict-aliasing

CMAKE_BUILD_TYPE="RelWithDebInfo"

# debug hack wrt #497532
mycmakeargs=(
-DCMAKE_C_FLAGS_RELWITHDEBINFO="$(usex debug '' '-DNDEBUG')"
-DCMAKE_CXX_FLAGS_RELWITHDEBINFO="$(usex debug '' '-DNDEBUG')"
-DCMAKE_INSTALL_PREFIX="${EPREFIX%/}/usr"
-DDEFAULT_SYSCONFDIR="${EPREFIX%/}/etc/mysql"
-DINSTALL_BINDIR=bin
-DINSTALL_DOCDIR=share/doc/${PF}
-DINSTALL_DOCREADMEDIR=share/doc/${PF}
-DINSTALL_INCLUDEDIR=include/mysql
-DINSTALL_INFODIR=share/info
-DINSTALL_LIBDIR=$(get_libdir)
-DINSTALL_MANDIR=share/man
-DINSTALL_MYSQLSHAREDIR=share/mariadb
-DINSTALL_MYSQLTESTDIR=$(usex test 'share/mariadb/mysql-test' '')
-DINSTALL_PLUGINDIR=$(get_libdir)/mariadb/plugin
-DINSTALL_SCRIPTDIR=share/mariadb/scripts
-DINSTALL_MYSQLDATADIR="${EPREFIX%/}/var/lib/mysql"
-DINSTALL_SBINDIR=sbin
-DINSTALL_SUPPORTFILESDIR="${EPREFIX%/}/usr/share/mariadb"
-DCOMPILATION_COMMENT="Gentoo Linux ${PF}"
-DWITH_UNIT_TESTS=$(usex test ON OFF)
-DWITH_ZLIB=system
-DENABLED_LOCAL_INFILE=1
-DMYSQL_UNIX_ADDR="${EPREFIX%/}/var/run/mysqld/mysqld.sock"
-DINSTALL_UNIX_ADDRDIR="${EPREFIX%/}/var/run/mysqld/mysqld.sock"
-DWITH_DEFAULT_COMPILER_OPTIONS=0
-DWITH_DEFAULT_FEATURE_SET=0
-DINSTALL_SYSTEMD_UNITDIR="$(systemd_get_systemunitdir)"
# The build forces this to be defined when cross-compiling. We pass it
# all the time for simplicity and to make sure it is actually correct.
-DSTACK_DIRECTION=$(tc-stack-grows-down && echo -1 || echo 1)
-DWITHOUT_CLIENTLIBS=YES
-DWITH_READLINE=$(usex bindist 1 0)
-DNOT_FOR_DISTRIBUTION=$(usex bindist 0 1)
-DENABLE_DTRACE=$(usex systemtap)
-DWITH_SSL=$(usex yassl bundled system)
-DPLUGIN_CLIENT_ED25519=NO
-DPLUGIN_AUTH_GSSAPI_CLIENT=NO
)

if use server ; then

# Federated{,X} must be treated special otherwise they will not be built as plugins
if ! use extraengine ; then
mycmakeargs+=(
-DPLUGIN_FEDERATED=NO
-DPLUGIN_FEDERATEDX=NO )
fi

mycmakeargs+=(
-DWITH_JEMALLOC=$(usex jemalloc system)
-DWITH_PCRE=system
-DPLUGIN_OQGRAPH=$(usex oqgraph DYNAMIC NO)
-DPLUGIN_SPHINX=$(usex sphinx YES NO)
-DPLUGIN_TOKUDB=$(usex tokudb YES NO)
-DPLUGIN_AUTH_PAM=$(usex pam YES NO)
-DPLUGIN_CRACKLIB_PASSWORD_CHECK=$(usex cracklib YES NO)
-DPLUGIN_CASSANDRA=NO
-DPLUGIN_SEQUENCE=$(usex extraengine YES NO)
-DPLUGIN_SPIDER=$(usex extraengine YES NO)
-DPLUGIN_CONNECT=$(usex extraengine YES NO)
-DCONNECT_WITH_MYSQL=1
-DCONNECT_WITH_LIBXML2=$(usex xml)
-DCONNECT_WITH_ODBC=$(usex odbc)
-DCONNECT_WITH_JDBC=$(usex jdbc)
# Build failure and autodep wrt bug 639144
-DCONNECT_WITH_MONGO=OFF
-DWITH_WSREP=$(usex galera)
-DWITH_INNODB_LZ4=$(usex innodb-lz4 ON OFF)
-DWITH_INNODB_LZO=$(usex innodb-lzo ON OFF)
-DWITH_INNODB_SNAPPY=$(usex innodb-snappy ON OFF)
-DPLUGIN_MROONGA=$(usex mroonga DYNAMIC NO)
-DPLUGIN_AUTH_GSSAPI=$(usex kerberos DYNAMIC NO)
-DPLUGIN_AUTH_GSSAPI_CLIENT=NO
-DWITH_MARIABACKUP=$(usex backup ON OFF)
-DWITH_LIBARCHIVE=$(usex backup ON OFF)
-DWITH_SYSTEMD=$(usex systemd yes no)
-DWITH_NUMA=$(usex numa ON OFF)
-DINSTALL_SQLBENCHDIR=''
)

if [[ ( -n ${MYSQL_DEFAULT_CHARSET} ) && ( -n ${MYSQL_DEFAULT_COLLATION} ) ]]; then
ewarn "You are using a custom charset of ${MYSQL_DEFAULT_CHARSET}"
ewarn "and a collation of ${MYSQL_DEFAULT_COLLATION}."
ewarn "You MUST file bugs without these variables set."

mycmakeargs+=(
-DDEFAULT_CHARSET=${MYSQL_DEFAULT_CHARSET}
-DDEFAULT_COLLATION=${MYSQL_DEFAULT_COLLATION}
)

elif ! use latin1 ; then
mycmakeargs+=(
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci
)
else
mycmakeargs+=(
-DDEFAULT_CHARSET=latin1
-DDEFAULT_COLLATION=latin1_swedish_ci
)
fi
mycmakeargs+=(
-DEXTRA_CHARSETS=all
-DMYSQL_USER=mysql
-DDISABLE_SHARED=$(usex static YES NO)
-DWITH_DEBUG=$(usex debug)
-DWITH_EMBEDDED_SERVER=OFF
-DENABLED_PROFILING=$(usex profiling)
)

if use static; then
mycmakeargs+=( -DWITH_PIC=1 )
fi

if use jemalloc || use tcmalloc ; then
mycmakeargs+=( -DWITH_SAFEMALLOC=OFF )
fi

# Storage engines
mycmakeargs+=(
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_CSV_STORAGE_ENGINE=1
-DWITH_HEAP_STORAGE_ENGINE=1
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_MYISAMMRG_STORAGE_ENGINE=1
-DWITH_MYISAM_STORAGE_ENGINE=1
-DWITH_PARTITION_STORAGE_ENGINE=1
)

else
mycmakeargs+=(
-DWITHOUT_SERVER=1
-DWITH_EMBEDDED_SERVER=OFF
-DEXTRA_CHARSETS=none
-DINSTALL_SQLBENCHDIR=
-DWITH_SYSTEMD=no
)
fi

cmake-utils_src_configure
}

src_compile() {
cmake-utils_src_compile
}

src_install() {
cmake-utils_src_install

# Remove an unnecessary, private config header which will never match between ABIs and is not meant to be used
if [[ -f "${ED}/usr/include/mysql/server/private/config.h" ]] ; then
rm "${ED}/usr/include/mysql/server/private/config.h" || die
fi

# Make sure the vars are correctly initialized
mysql_init_vars

# Convenience links
einfo "Making Convenience links for mysqlcheck multi-call binary"
dosym "mysqlcheck" "/usr/bin/mysqlanalyze"
dosym "mysqlcheck" "/usr/bin/mysqlrepair"
dosym "mysqlcheck" "/usr/bin/mysqloptimize"

# INSTALL_LAYOUT=STANDALONE causes cmake to create a /usr/data dir
if [[ -d "${ED}/usr/data" ]] ; then
rm -Rf "${ED}/usr/data" || die
fi

# Unless they explicitly specific USE=test, then do not install the
# testsuite. It DOES have a use to be installed, esp. when you want to do a
# validation of your database configuration after tuning it.
if ! use test ; then
rm -rf "${D}/${MY_SHAREDSTATEDIR}/mysql-test"
fi

# Configuration stuff
einfo "Building default configuration ..."
insinto "${MY_SYSCONFDIR#${EPREFIX}}"
[[ -f "${S}/scripts/mysqlaccess.conf" ]] && doins "${S}"/scripts/mysqlaccess.conf
local mycnf_src="my.cnf-5.6-r1"
sed -e "s!@DATADIR@!${MY_DATADIR}!g" \
"${FILESDIR}/${mycnf_src}" \
> "${TMPDIR}/my.cnf.ok" || die
use prefix && sed -i -r -e '/^user[[:space:]]*=[[:space:]]*mysql$/d' "${TMPDIR}/my.cnf.ok"
if use latin1 ; then
sed -i \
-e "/character-set/s|utf8|latin1|g" \
"${TMPDIR}/my.cnf.ok" || die
fi
eprefixify "${TMPDIR}/my.cnf.ok"
newins "${TMPDIR}/my.cnf.ok" my.cnf

if use server ; then
einfo "Including support files and sample configurations"
docinto "support-files"
local script
for script in \
"${S}"/support-files/magic
do
[[ -f "$script" ]] && dodoc "${script}"
done

docinto "scripts"
for script in "${S}"/scripts/mysql* ; do
[[ ( -f "$script" ) && ( "${script%.sh}" == "${script}" ) ]] && dodoc "${script}"
done
# Manually install supporting files that conflict with other packages
# but are needed for galera and initial installation
exeinto /usr/libexec/mariadb
doexe "${BUILD_DIR}/extra/my_print_defaults" "${BUILD_DIR}/extra/perror"
fi

#Remove mytop if perl is not selected
[[ -e "${ED}/usr/bin/mytop" ]] && ! use perl && rm -f "${ED}/usr/bin/mytop"
}

# Official test instructions:
# USE='extraengine perl server' \
# FEATURES='test userpriv -usersandbox' \
# ebuild mariadb-X.X.XX.ebuild \
# digest clean package
src_test() {

_disable_test() {
local rawtestname reason
rawtestname="${1}" ; shift
reason="${@}"
ewarn "test '${rawtestname}' disabled: '${reason}'"
echo ${rawtestname} : ${reason} >> "${T}/disabled.def"
}

local TESTDIR="${BUILD_DIR}/mysql-test"
local retstatus_unit
local retstatus_tests

if ! use server ; then
einfo "Skipping server tests due to minimal build."
return 0
fi

# Bug #213475 - MySQL _will_ object strenously if your machine is named
# localhost. Also causes weird failures.
[[ "${HOSTNAME}" == "localhost" ]] && die "Your machine must NOT be named localhost"

if [[ $UID -eq 0 ]]; then
die "Testing with FEATURES=-userpriv is no longer supported by upstream. Tests MUST be run as non-root."
fi
has usersandbox $FEATURES && ewarn "Some tests may fail with FEATURES=usersandbox"

einfo ">>> Test phase [test]: ${CATEGORY}/${PF}"

# Run CTest (test-units)
# cmake-utils_src_test
# retstatus_unit=$?

# Ensure that parallel runs don't die
export MTR_BUILD_THREAD="$((${RANDOM} % 100))"
# Enable parallel testing, auto will try to detect number of cores
# You may set this by hand.
# The default maximum is 8 unless MTR_MAX_PARALLEL is increased
export MTR_PARALLEL="${MTR_PARALLEL:-auto}"

# create directories because mysqladmin might run out of order
mkdir -p "${T}"/var-tests{,/log} || die

# Run mysql tests
pushd "${TESTDIR}" > /dev/null || die

touch "${T}/disabled.def"
# These are failing in MariaDB 10.0 for now and are believed to be
# false positives:
#
# main.mysql_client_test, main.mysql_client_test_nonblock
# main.mysql_client_test_comp:
# segfaults at random under Portage only, suspect resource limits.

local t
for t in plugins.cracklib_password_check plugins.two_password_validations ; do
_disable_test "$t" "False positive due to varying policies"
done

for t in main.mysql_client_test main.mysql_client_test_nonblock \
rpl.rpl_semi_sync_uninstall_plugin main.mysql \
main.mysql_client_test_comp rpl.rpl_extra_col_master_myisam ; do
_disable_test "$t" "False positives in Gentoo"
done

if ! use client-libs ; then
_disable_test main.plugin_auth "Needs client libraries built"
_disable_test plugins.auth_ed25519 "Needs client libraries built"
fi

_disable_test main.gis_notembedded "Fails when latin1 USE is not set"

_disable_test sys_vars.sysvars_server_notembedded "Broken test" # bug #661700 required profiling always on

# run mysql-test tests
perl mysql-test-run.pl --force --vardir="${T}/var-tests" --reorder --skip-test=tokudb --skip-test-list="${T}/disabled.def"
retstatus_tests=$?

popd > /dev/null || die

# Cleanup is important for these testcases.
pkill -9 -f "${S}/ndb" 2>/dev/null
pkill -9 -f "${S}/sql" 2>/dev/null

local failures=""
[[ $retstatus_unit -eq 0 ]] || failures="${failures} test-unit"
[[ $retstatus_tests -eq 0 ]] || failures="${failures} tests"

[[ -z "$failures" ]] || die "Test failures: $failures"
einfo "Tests successfully completed"
}

mysql_init_vars() {
MY_SHAREDSTATEDIR=${MY_SHAREDSTATEDIR="${EPREFIX}/usr/share/mariadb"}
MY_SYSCONFDIR=${MY_SYSCONFDIR="${EPREFIX}/etc/mysql"}
MY_LOCALSTATEDIR=${MY_LOCALSTATEDIR="${EPREFIX}/var/lib/mysql"}
MY_LOGDIR=${MY_LOGDIR="${EPREFIX}/var/log/mysql"}

if [[ -z "${MY_DATADIR}" ]] ; then
MY_DATADIR=""
if [[ -f "${MY_SYSCONFDIR}/my.cnf" ]] ; then
MY_DATADIR=`"my_print_defaults" mysqld 2>/dev/null \
| sed -ne '/datadir/s|^--datadir=||p' \
| tail -n1`
if [[ -z "${MY_DATADIR}" ]] ; then
MY_DATADIR=`grep ^datadir "${MY_SYSCONFDIR}/my.cnf" \
| sed -e 's/.*=\s*//' \
| tail -n1`
fi
fi
if [[ -z "${MY_DATADIR}" ]] ; then
MY_DATADIR="${MY_LOCALSTATEDIR}"
einfo "Using default MY_DATADIR"
fi
elog "MySQL MY_DATADIR is ${MY_DATADIR}"

if [[ -z "${PREVIOUS_DATADIR}" ]] ; then
if [[ -e "${MY_DATADIR}" ]] ; then
# If you get this and you're wondering about it, see bug #207636
elog "MySQL datadir found in ${MY_DATADIR}"
elog "A new one will not be created."
PREVIOUS_DATADIR="yes"
else
PREVIOUS_DATADIR="no"
fi
export PREVIOUS_DATADIR
fi
else
if [[ ${EBUILD_PHASE} == "config" ]]; then
local new_MY_DATADIR
new_MY_DATADIR=`"my_print_defaults" mysqld 2>/dev/null \
| sed -ne '/datadir/s|^--datadir=||p' \
| tail -n1`

if [[ ( -n "${new_MY_DATADIR}" ) && ( "${new_MY_DATADIR}" != "${MY_DATADIR}" ) ]]; then
ewarn "MySQL MY_DATADIR has changed"
ewarn "from ${MY_DATADIR}"
ewarn "to ${new_MY_DATADIR}"
MY_DATADIR="${new_MY_DATADIR}"
fi
fi
fi

export MY_SHAREDSTATEDIR MY_SYSCONFDIR
export MY_LOCALSTATEDIR MY_LOGDIR
export MY_DATADIR
}

pkg_config() {
_getoptval() {
local mypd="${EROOT}"usr/libexec/mariadb/my_print_defaults
local section="$1"
local flag="--${2}="
local extra_options="${3}"
"${mypd}" $extra_options $section | sed -n "/^${flag}/s,${flag},,gp"
}
local old_MY_DATADIR="${MY_DATADIR}"
local old_HOME="${HOME}"
# my_print_defaults needs to read stuff in $HOME/.my.cnf
export HOME=${EPREFIX}/root

# Make sure the vars are correctly initialized
mysql_init_vars

[[ -z "${MY_DATADIR}" ]] && die "Sorry, unable to find MY_DATADIR"
if [[ ! -x "${EROOT}/usr/sbin/mysqld" ]] ; then
die "Minimal builds do NOT include the MySQL server"
fi

if [[ ( -n "${MY_DATADIR}" ) && ( "${MY_DATADIR}" != "${old_MY_DATADIR}" ) ]]; then
local MY_DATADIR_s="${ROOT}/${MY_DATADIR}"
MY_DATADIR_s="${MY_DATADIR_s%%/}"
local old_MY_DATADIR_s="${ROOT}/${old_MY_DATADIR}"
old_MY_DATADIR_s="${old_MY_DATADIR_s%%/}"

if [[ ( -d "${old_MY_DATADIR_s}" ) && ( "${old_MY_DATADIR_s}" != / ) ]]; then
if [[ -d "${MY_DATADIR_s}" ]]; then
ewarn "Both ${old_MY_DATADIR_s} and ${MY_DATADIR_s} exist"
ewarn "Attempting to use ${MY_DATADIR_s} and preserving ${old_MY_DATADIR_s}"
else
elog "Moving MY_DATADIR from ${old_MY_DATADIR_s} to ${MY_DATADIR_s}"
mv --strip-trailing-slashes -T "${old_MY_DATADIR_s}" "${MY_DATADIR_s}" \
|| die "Moving MY_DATADIR failed"
fi
else
ewarn "Previous MY_DATADIR (${old_MY_DATADIR_s}) does not exist"
if [[ -d "${MY_DATADIR_s}" ]]; then
ewarn "Attempting to use ${MY_DATADIR_s}"
else
eerror "New MY_DATADIR (${MY_DATADIR_s}) does not exist"
die "Configuration Failed! Please reinstall ${CATEGORY}/${PN}"
fi
fi
fi

local pwd1="a"
local pwd2="b"
local maxtry=15

if [ -z "${MYSQL_ROOT_PASSWORD}" ]; then
local tmp_mysqld_password_source=

for tmp_mysqld_password_source in mysql client; do
einfo "Trying to get password for mysql 'root' user from '${tmp_mysqld_password_source}' section ..."
MYSQL_ROOT_PASSWORD="$(_getoptval "${tmp_mysqld_password_source}" password)"
if [[ -n "${MYSQL_ROOT_PASSWORD}" ]]; then
if [[ ${MYSQL_ROOT_PASSWORD} == *$'\n'* ]]; then
ewarn "Ignoring password from '${tmp_mysqld_password_source}' section due to newline character (do you have multiple password options set?)!"
MYSQL_ROOT_PASSWORD=
continue
fi

einfo "Found password in '${tmp_mysqld_password_source}' section!"
break
fi
done

# Sometimes --show is required to display passwords in some implementations of my_print_defaults
if [[ "${MYSQL_ROOT_PASSWORD}" == '*****' ]]; then
MYSQL_ROOT_PASSWORD="$(_getoptval "${tmp_mysqld_password_source}" password --show)"
fi

unset tmp_mysqld_password_source
fi
MYSQL_TMPDIR="$(_getoptval mysqld tmpdir | tail -n1)"
# These are dir+prefix
MYSQL_RELAY_LOG="$(_getoptval mysqld relay-log | tail -n1)"
MYSQL_RELAY_LOG=${MYSQL_RELAY_LOG%/*}
MYSQL_LOG_BIN="$(_getoptval mysqld log-bin | tail -n1)"
MYSQL_LOG_BIN=${MYSQL_LOG_BIN%/*}

if [[ ! -d "${ROOT}/$MYSQL_TMPDIR" ]]; then
einfo "Creating MySQL tmpdir $MYSQL_TMPDIR"
install -d -m 770 -o mysql -g mysql "${EROOT}/$MYSQL_TMPDIR"
fi
if [[ ! -d "${ROOT}/$MYSQL_LOG_BIN" ]]; then
einfo "Creating MySQL log-bin directory $MYSQL_LOG_BIN"
install -d -m 770 -o mysql -g mysql "${EROOT}/$MYSQL_LOG_BIN"
fi
if [[ ! -d "${EROOT}/$MYSQL_RELAY_LOG" ]]; then
einfo "Creating MySQL relay-log directory $MYSQL_RELAY_LOG"
install -d -m 770 -o mysql -g mysql "${EROOT}/$MYSQL_RELAY_LOG"
fi

if [[ -d "${ROOT}/${MY_DATADIR}/mysql" ]] ; then
ewarn "You have already a MySQL database in place."
ewarn "(${ROOT}/${MY_DATADIR}/*)"
ewarn "Please rename or delete it if you wish to replace it."
die "MySQL database already exists!"
fi

# Bug #213475 - MySQL _will_ object strenously if your machine is named
# localhost. Also causes weird failures.
[[ "${HOSTNAME}" == "localhost" ]] && die "Your machine must NOT be named localhost"

if [ -z "${MYSQL_ROOT_PASSWORD}" ]; then

einfo "Please provide a password for the mysql 'root' user now"
einfo "or through the ${HOME}/.my.cnf file."
ewarn "Avoid [\"'\\_%] characters in the password"
read -rsp " >" pwd1 ; echo

einfo "Retype the password"
read -rsp " >" pwd2 ; echo

if [[ "x$pwd1" != "x$pwd2" ]] ; then
die "Passwords are not the same"
fi
MYSQL_ROOT_PASSWORD="${pwd1}"
unset pwd1 pwd2
fi

local options
local sqltmp="$(emktemp)"

# Fix bug 446200. Don't reference host my.cnf, needs to come first,
# see https://bugs.mysql.com/bug.php?id=31312
use prefix && options="${options} '--defaults-file=${MY_SYSCONFDIR}/my.cnf'"

# Figure out which options we need to disable to do the setup
local helpfile="${TMPDIR}/mysqld-help"
"${EROOT}/usr/sbin/mysqld" --verbose --help >"${helpfile}" 2>/dev/null
for opt in grant-tables host-cache name-resolve networking slave-start \
federated ssl log-bin relay-log slow-query-log external-locking \
log-slave-updates \
; do
optexp="--(skip-)?${opt}" optfull="--loose-skip-${opt}"
egrep -sq -- "${optexp}" "${helpfile}" && options="${options} ${optfull}"
done

einfo "Creating the mysql database and setting proper permissions on it ..."

# Now that /var/run is a tmpfs mount point, we need to ensure it exists before using it
PID_DIR="${EROOT}/var/run/mysqld"
if [[ ! -d "${PID_DIR}" ]]; then
install -d -m 755 -o mysql -g mysql "${PID_DIR}" || die "Could not create pid directory"
fi

if [[ ! -d "${MY_DATADIR}" ]]; then
install -d -m 750 -o mysql -g mysql "${MY_DATADIR}" || die "Could not create data directory"
fi

pushd "${TMPDIR}" &>/dev/null || die

# Filling timezones, see
# https://dev.mysql.com/doc/mysql/en/time-zone-support.html
"${EROOT}/usr/bin/mysql_tzinfo_to_sql" "${EROOT}/usr/share/zoneinfo" > "${sqltmp}" 2>/dev/null

local cmd=( "${EROOT}usr/share/mariadb/scripts/mysql_install_db" )
[[ -f "${cmd}" ]] || cmd=( "${EROOT}usr/bin/mysql_install_db" )
cmd+=( "--basedir=${EPREFIX}/usr" ${options} "--datadir=${ROOT}/${MY_DATADIR}" "--tmpdir=${ROOT}/${MYSQL_TMPDIR}" )
einfo "Command: ${cmd[*]}"
su -s /bin/sh -c "${cmd[*]}" mysql \
>"${TMPDIR}"/mysql_install_db.log 2>&1
if [ $? -ne 0 ]; then
grep -B5 -A999 -i "ERROR" "${TMPDIR}"/mysql_install_db.log 1>&2
die "Failed to initialize mysqld. Please review ${EPREFIX}/var/log/mysql/mysqld.err AND ${TMPDIR}/mysql_install_db.log"
fi
popd &>/dev/null || die
[[ -f "${ROOT}/${MY_DATADIR}/mysql/user.frm" ]] \
|| die "MySQL databases not installed"

use prefix || options="${options} --user=mysql"

local socket="${EROOT}/var/run/mysqld/mysqld${RANDOM}.sock"
local pidfile="${EROOT}/var/run/mysqld/mysqld${RANDOM}.pid"
local mysqld="${EROOT}/usr/sbin/mysqld \
${options} \
--log-warnings=0 \
--basedir=${EROOT}/usr \
--datadir=${ROOT}/${MY_DATADIR} \
--max_allowed_packet=8M \
--net_buffer_length=16K \
--socket=${socket} \
--pid-file=${pidfile} \
--tmpdir=${ROOT}/${MYSQL_TMPDIR}"
#einfo "About to start mysqld: ${mysqld}"
ebegin "Starting mysqld"
einfo "Command ${mysqld}"
${mysqld} &
rc=$?
while ! [[ -S "${socket}" || "${maxtry}" -lt 1 ]] ; do
maxtry=$((${maxtry}-1))
echo -n "."
sleep 1
done
eend $rc

if ! [[ -S "${socket}" ]]; then
die "Completely failed to start up mysqld with: ${mysqld}"
fi

ebegin "Setting root password"
# Do this from memory, as we don't want clear text passwords in temp files
local sql="UPDATE mysql.user SET Password = PASSWORD('${MYSQL_ROOT_PASSWORD}') WHERE USER='root'; FLUSH PRIVILEGES"
"${EROOT}/usr/bin/mysql" \
"--socket=${socket}" \
-hlocalhost \
-e "${sql}"
eend $?

if [[ -n "${sqltmp}" ]] ; then
ebegin "Loading \"zoneinfo\", this step may require a few seconds"
"${EROOT}/usr/bin/mysql" \
"--socket=${socket}" \
-hlocalhost \
-uroot \
--password="${MYSQL_ROOT_PASSWORD}" \
mysql < "${sqltmp}"
rc=$?
eend $?
[[ $rc -ne 0 ]] && ewarn "Failed to load zoneinfo!"
fi

# Stop the server and cleanup
einfo "Stopping the server ..."
kill $(< "${pidfile}" )
rm -f "${sqltmp}"
wait %1
einfo "Done"
}

+ 1012
- 0
dev-db/mariadb/mariadb-10.4.10.ebuild
File diff suppressed because it is too large
View File


+ 836
- 0
dev-db/mariadb/mariadb-5.5.66.ebuild View File

@@ -0,0 +1,836 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI="6"
MY_EXTRAS_VER="20180809-1700Z"
SUBSLOT="18"

# Keeping eutils in EAPI=6 for emktemp in pkg_config

inherit eutils flag-o-matic prefix toolchain-funcs user cmake-utils multilib-build

SRC_URI="https://downloads.mariadb.org/interstitial/${P}/source/${P}.tar.gz "

# Gentoo patches to MySQL
if [[ "${MY_EXTRAS_VER}" != "live" && "${MY_EXTRAS_VER}" != "none" ]]; then
SRC_URI="${SRC_URI}
mirror://gentoo/mysql-extras-${MY_EXTRAS_VER}.tar.bz2
https://gitweb.gentoo.org/proj/mysql-extras.git/snapshot/mysql-extras-${MY_EXTRAS_VER}.tar.bz2
https://dev.gentoo.org/~grknight/distfiles/mysql-extras-${MY_EXTRAS_VER}.tar.bz2
https://dev.gentoo.org/~robbat2/distfiles/mysql-extras-${MY_EXTRAS_VER}.tar.bz2
https://dev.gentoo.org/~jmbsvicetto/distfiles/mysql-extras-${MY_EXTRAS_VER}.tar.bz2"
fi

HOMEPAGE="https://mariadb.org/"
DESCRIPTION="An enhanced, drop-in replacement for MySQL"
LICENSE="GPL-2"
SLOT="0/${SUBSLOT:-0}"
IUSE="bindist client-libs debug extraengine jemalloc latin1 libressl
oqgraph pam +perl profiling selinux +server sphinx
static static-libs systemtap tcmalloc
test tokudb yassl"

# Tests always fail when libressl is enabled due to hard-coded ciphers in the tests
RESTRICT="!bindist? ( bindist ) libressl? ( test ) !test? ( test )"

REQUIRED_USE="server? ( tokudb? ( jemalloc !tcmalloc ) )
?? ( tcmalloc jemalloc )
static? ( yassl !pam )"

KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris"

# Shorten the path because the socket path length must be shorter than 107 chars
# and we will run a mysql server during test phase
S="${WORKDIR}/mysql"

if [[ "${MY_EXTRAS_VER}" == "live" ]] ; then
MY_PATCH_DIR="${WORKDIR%/}/mysql-extras"
inherit git-r3
EGIT_REPO_URI="git://anongit.gentoo.org/proj/mysql-extras.git"
EGIT_CHECKOUT_DIR="${WORKDIR%/}/mysql-extras"
EGIT_CLONE_TYPE=shallow
else
MY_PATCH_DIR="${WORKDIR%/}/mysql-extras-${MY_EXTRAS_VER}"
fi

PATCHES=(
"${MY_PATCH_DIR}/01050_all_mariadb_mysql_config_cleanup-5.5.41.patch"
"${MY_PATCH_DIR}/20004_all_mariadb-filter-tokudb-flags.patch"
"${MY_PATCH_DIR}/20006_all_cmake_elib-mariadb-5.5.50.patch"
"${MY_PATCH_DIR}/20009_all_mariadb_myodbc_symbol_fix-5.5.38.patch"
"${MY_PATCH_DIR}/20018_all_mariadb-5.5.60-without-clientlibs-tools.patch"
)

# Be warned, *DEPEND are version-dependant
# These are used for both runtime and compiletime
COMMON_DEPEND="
kernel_linux? (
sys-process/procps:0=
dev-libs/libaio:0=
)
>=sys-apps/sed-4
>=sys-apps/texinfo-4.7-r1
jemalloc? ( dev-libs/jemalloc:0= )
tcmalloc? ( dev-util/google-perftools:0= )
systemtap? ( >=dev-util/systemtap-1.3:0= )
!yassl? (
!libressl? ( <dev-libs/openssl-1.1.0:0= )
libressl? ( dev-libs/libressl:0= )
)
>=sys-libs/zlib-1.2.3:0=
sys-libs/ncurses:0=
!bindist? (
>=sys-libs/readline-4.1:0=
)
server? (
oqgraph? ( >=dev-libs/boost-1.40.0:0= dev-libs/judy:0= )
pam? ( sys-libs/pam:0= )
)
!client-libs? ( dev-db/mysql-connector-c[${MULTILIB_USEDEP},static-libs?] )
"
DEPEND="virtual/yacc
static? ( sys-libs/ncurses[static-libs] )
|| ( >=sys-devel/gcc-3.4.6 >=sys-devel/gcc-apple-4.0 )
${COMMON_DEPEND}"
RDEPEND="selinux? ( sec-policy/selinux-mysql )
client-libs? ( !dev-db/mariadb-connector-c[mysqlcompat] !dev-db/mysql-connector-c )
!dev-db/mysql !dev-db/mariadb-galera !dev-db/percona-server !dev-db/mysql-cluster
server? ( !prefix? ( dev-db/mysql-init-scripts ) )
${COMMON_DEPEND}
perl? ( !dev-db/mytop
virtual/perl-Getopt-Long
dev-perl/TermReadKey
virtual/perl-Term-ANSIColor
virtual/perl-Time-HiRes )
"
# For other stuff to bring us in
# dev-perl/DBD-mysql is needed by some scripts installed by MySQL
PDEPEND="perl? ( >=dev-perl/DBD-mysql-2.9004 )"

pkg_setup() {
if [[ ${MERGE_TYPE} != binary ]] ; then
local GCC_MAJOR_SET=$(gcc-major-version)
local GCC_MINOR_SET=$(gcc-minor-version)
if use tokudb && [[ ${GCC_MAJOR_SET} -lt 4 || \
${GCC_MAJOR_SET} -eq 4 && ${GCC_MINOR_SET} -lt 7 ]] ; then
eerror "${PN} with tokudb needs to be built with gcc-4.7 or later."
eerror "Please use gcc-config to switch to gcc-4.7 or later version."
die
fi
# Bug 565584. InnoDB now requires atomic functions introduced with gcc-4.7 on
# non x86{,_64} arches
if ! use amd64 && ! use x86 && [[ ${GCC_MAJOR_SET} -lt 4 || \
${GCC_MAJOR_SET} -eq 4 && ${GCC_MINOR_SET} -lt 7 ]] ; then
eerror "${PN} needs to be built with gcc-4.7 or later."
eerror "Please use gcc-config to switch to gcc-4.7 or later version."
die
fi
fi
if has test ${FEATURES} && \
use server && ! has userpriv ${FEATURES} ; then
eerror "Testing with FEATURES=-userpriv is no longer supported by upstream. Tests MUST be run as non-root."
fi

# This should come after all of the die statements
enewgroup mysql 60 || die "problem adding 'mysql' group"
enewuser mysql 60 -1 /dev/null mysql || die "problem adding 'mysql' user"
}

pkg_postinst() {
# Make sure the vars are correctly initialized
mysql_init_vars

# Create log directory securely if it does not exist
[[ -d "${ROOT}${MY_LOGDIR}" ]] || install -d -m0750 -o mysql -g mysql "${ROOT}${MY_LOGDIR}"

if use server ; then
if use pam; then
einfo
elog "This install includes the PAM authentication plugin."
elog "To activate and configure the PAM plugin, please read:"
elog "https://mariadb.com/kb/en/mariadb/pam-authentication-plugin/"
einfo
fi

if [[ -z "${REPLACING_VERSIONS}" ]] ; then
einfo
elog "You might want to run:"
elog "\"emerge --config =${CATEGORY}/${PF}\""
elog "if this is a new install."
elog
elog "If you are switching server implentations, you should run the"
elog "mysql_upgrade tool."
einfo
else
einfo
elog "If you are upgrading major versions, you should run the"
elog "mysql_upgrade tool."
einfo
fi

einfo
elog "Be sure to edit the my.cnf file to activate your cluster settings."
elog "This should be done after running \"emerge --config =${CATEGORY}/${PF}\""
elog "The first time the cluster is activated, you should add"
elog "--wsrep-new-cluster to the options in /etc/conf.d/mysql for one node."
elog "This option should then be removed for subsequent starts."
einfo
fi
}

src_unpack() {
unpack ${A}
# Grab the patches
[[ "${MY_EXTRAS_VER}" == "live" ]] && S="${WORKDIR%/}/mysql-extras" git-r3_src_unpack

mv -f "${WORKDIR%/}/${P}" "${S}" || die
}

src_prepare() {
_disable_engine() {
echo > "${S%/}/storage/${1}/CMakeLists.txt" || die
}

_disable_plugin() {
echo > "${S%/}/plugin/${1}/CMakeLists.txt" || die
}

if use tcmalloc; then
echo "TARGET_LINK_LIBRARIES(mysqld tcmalloc)" >> "${S%/}/sql/CMakeLists.txt" || die
fi

# Don't build bundled xz-utils for tokudb
echo > "${S%/}/storage/tokudb/ft-index/cmake_modules/TokuThirdParty.cmake" || die
sed -i -e 's/ build_lzma//' "${S%/}/storage/tokudb/ft-index/ft/CMakeLists.txt" || die
sed -i -e 's/add_dependencies\(tokuportability_static_conv build_jemalloc\)//' "${S%/}/storage/tokudb/ft-index/portability/CMakeLists.txt" || die

local plugin
local server_plugins=( handler_socket auth_socket feedback qc_info server_audit semisync sql_errlog )
local test_plugins=( audit_null auth_examples daemon_example fulltext )
if ! use server; then # These plugins are for the server
for plugin in "${server_plugins[@]}" ; do
_disable_plugin "${plugin}"
done
fi

if ! use test; then # These plugins are only used during testing
for plugin in "${test_plugins[@]}" ; do
_disable_plugin "${plugin}"
done
fi

# Collides with mariadb-connector-c bug 655980
_disable_plugin auth_dialog

# Don't build example
_disable_engine example

if ! use oqgraph ; then # avoids extra library checks
_disable_engine oqgraph
fi

# Don't clash with dev-db/mysql-connector-c
sed -i -e 's/ my_print_defaults.1//' \
-e 's/ perror.1//' \
"${S}"/man/CMakeLists.txt || die

cmake-utils_src_prepare
}

src_configure(){
# bug 508724 mariadb cannot use ld.gold
tc-ld-disable-gold
# Bug #114895, bug #110149
filter-flags "-O" "-O[01]"

append-cxxflags -felide-constructors

# bug #283926, with GCC4.4, this is required to get correct behavior.
append-flags -fno-strict-aliasing

CMAKE_BUILD_TYPE="RelWithDebInfo"

# debug hack wrt #497532
mycmakeargs=(
-DCMAKE_C_FLAGS_RELWITHDEBINFO="$(usex debug '' '-DNDEBUG')"
-DCMAKE_CXX_FLAGS_RELWITHDEBINFO="$(usex debug '' '-DNDEBUG')"
-DCMAKE_INSTALL_PREFIX="${EPREFIX%/}/usr"
-DDEFAULT_SYSCONFDIR="${EPREFIX%/}/etc/mysql"
-DINSTALL_BINDIR=bin
-DINSTALL_DOCDIR=share/doc/${PF}
-DINSTALL_DOCREADMEDIR=share/doc/${PF}
-DINSTALL_INCLUDEDIR=include/mysql
-DINSTALL_INFODIR=share/info
-DINSTALL_LIBDIR=$(get_libdir)
-DINSTALL_MANDIR=share/man
-DINSTALL_MYSQLSHAREDIR=share/mariadb
-DINSTALL_PLUGINDIR=$(get_libdir)/mariadb/plugin
-DINSTALL_SCRIPTDIR=share/mariadb/scripts
-DINSTALL_MYSQLDATADIR="${EPREFIX%/}/var/lib/mysql"
-DINSTALL_SBINDIR=sbin
-DINSTALL_SUPPORTFILESDIR="${EPREFIX%/}/usr/share/mariadb"
-DCOMPILATION_COMMENT="Gentoo Linux ${PF}"
-DWITH_UNIT_TESTS=$(usex test ON OFF)
-DWITH_ZLIB=system
-DENABLED_LOCAL_INFILE=1
-DMYSQL_UNIX_ADDR="${EPREFIX%/}/var/run/mysqld/mysqld.sock"
-DINSTALL_UNIX_ADDRDIR="${EPREFIX%/}/var/run/mysqld/mysqld.sock"
# The build forces this to be defined when cross-compiling. We pass it
# all the time for simplicity and to make sure it is actually correct.
-DSTACK_DIRECTION=$(tc-stack-grows-down && echo -1 || echo 1)
-DWITHOUT_CLIENTLIBS=YES
-DWITH_READLINE=$(usex bindist 1 0)
-DNOT_FOR_DISTRIBUTION=$(usex bindist 0 1)
-DENABLE_DTRACE=$(usex systemtap)
)
if use test ; then
mycmakeargs+=( -DINSTALL_MYSQLTESTDIR=share/mariadb/mysql-test )
else
mycmakeargs+=( -DINSTALL_MYSQLTESTDIR='' )
fi

if ! use yassl ; then
mycmakeargs+=( -DWITH_SSL=system )
else
mycmakeargs+=( -DWITH_SSL=bundled )
fi

if use server ; then

# Federated{,X} must be treated special otherwise they will not be built as plugins
if ! use extraengine ; then
mycmakeargs+=(
-DWITHOUT_FEDERATED_STORAGE_ENGINE=1
-DWITHOUT_FEDERATEDX_STORAGE_ENGINE=1 )
fi

mycmakeargs+=(
-DWITH_JEMALLOC=$(usex jemalloc system)
-D$(usex sphinx WITH WITHOUT)_SPHINX_STORAGE_ENGINE=1
-D$(usex tokudb WITH WITHOUT)_TOKUDB_STORAGE_ENGINE=1
-D$(usex oqgraph WITH WITHOUT)_AUTH_PAM=1
-DINSTALL_SQLBENCHDIR=share/mariadb
)

if [[ ( -n ${MYSQL_DEFAULT_CHARSET} ) && ( -n ${MYSQL_DEFAULT_COLLATION} ) ]]; then
ewarn "You are using a custom charset of ${MYSQL_DEFAULT_CHARSET}"
ewarn "and a collation of ${MYSQL_DEFAULT_COLLATION}."
ewarn "You MUST file bugs without these variables set."

mycmakeargs+=(
-DDEFAULT_CHARSET=${MYSQL_DEFAULT_CHARSET}
-DDEFAULT_COLLATION=${MYSQL_DEFAULT_COLLATION}
)

elif ! use latin1 ; then
mycmakeargs+=(
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci
)
else
mycmakeargs+=(
-DDEFAULT_CHARSET=latin1
-DDEFAULT_COLLATION=latin1_swedish_ci
)
fi
mycmakeargs+=(
-DEXTRA_CHARSETS=all
-DDISABLE_SHARED=$(usex static YES NO)
-DWITH_EMBEDDED_SERVER=OFF
-DENABLED_PROFILING=$(usex profiling)
)

if use static; then
mycmakeargs+=( -DWITH_PIC=1 )
fi

if use jemalloc || use tcmalloc ; then
mycmakeargs+=( -DWITH_SAFEMALLOC=OFF )
fi

# Storage engines
mycmakeargs+=(
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_CSV_STORAGE_ENGINE=1
-DWITH_HEAP_STORAGE_ENGINE=1
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_MYISAMMRG_STORAGE_ENGINE=1
-DWITH_MYISAM_STORAGE_ENGINE=1
-DWITH_PARTITION_STORAGE_ENGINE=1
)

else
mycmakeargs+=(
-DWITHOUT_SERVER=1
-DEXTRA_CHARSETS=none
-DINSTALL_SQLBENCHDIR=
)
fi

cmake-utils_src_configure
}

src_compile() {
cmake-utils_src_compile
}

src_install() {
cmake-utils_src_install

# Remove an unnecessary, private config header which will never match between ABIs and is not meant to be used
if [[ -f "${ED%/}/usr/include/mysql/server/private/config.h" ]] ; then
rm "${ED%/}/usr/include/mysql/server/private/config.h" || die
fi

# Make sure the vars are correctly initialized
mysql_init_vars

# Convenience links
einfo "Making Convenience links for mysqlcheck multi-call binary"
dosym "mysqlcheck" "/usr/bin/mysqlanalyze"
dosym "mysqlcheck" "/usr/bin/mysqlrepair"
dosym "mysqlcheck" "/usr/bin/mysqloptimize"

# INSTALL_LAYOUT=STANDALONE causes cmake to create a /usr/data dir
if [[ -d "${ED%/}/usr/data" ]] ; then
rm -Rf "${ED%/}/usr/data" || die
fi

# Unless they explicitly specific USE=test, then do not install the
# testsuite. It DOES have a use to be installed, esp. when you want to do a
# validation of your database configuration after tuning it.
if ! use test ; then
rm -rf "${D%/}/${MY_SHAREDSTATEDIR}/mysql-test"
fi

# Configuration stuff
einfo "Building default configuration ..."
insinto "${MY_SYSCONFDIR#${EPREFIX}}"