summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason A. Donenfeld <zx2c4@gentoo.org>2016-03-16 01:42:39 +0100
committerJason A. Donenfeld <zx2c4@gentoo.org>2016-03-16 01:48:36 +0100
commitbd4a5b8e468ba801b5f6d5f790af73d0cbc84c52 (patch)
tree1382428c07abd146047e61e5fd7dab55585a63a3
parentx11-wm/jwm: revbump to add missing desktop file (diff)
downloadgentoo-bd4a5b8e468ba801b5f6d5f790af73d0cbc84c52.tar.gz
gentoo-bd4a5b8e468ba801b5f6d5f790af73d0cbc84c52.tar.bz2
gentoo-bd4a5b8e468ba801b5f6d5f790af73d0cbc84c52.zip
media-sound/clementine: fix tokenizer segfault
Package-Manager: portage-2.2.28
-rw-r--r--media-sound/clementine/clementine-1.3_rc1-r1.ebuild168
-rw-r--r--media-sound/clementine/files/clementine-1.3_rc1-fix-tokenizer.patch21
2 files changed, 189 insertions, 0 deletions
diff --git a/media-sound/clementine/clementine-1.3_rc1-r1.ebuild b/media-sound/clementine/clementine-1.3_rc1-r1.ebuild
new file mode 100644
index 000000000000..debdf11b3bf8
--- /dev/null
+++ b/media-sound/clementine/clementine-1.3_rc1-r1.ebuild
@@ -0,0 +1,168 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+EGIT_REPO_URI="https://github.com/clementine-player/Clementine.git"
+
+LANGS=" af ar be bg bn br bs ca cs cy da de el en_CA en_GB eo es et eu fa fi fr ga gl he he_IL hi hr hu hy ia id is it ja ka kk ko lt lv mr ms my nb nl oc pa pl pt pt_BR ro ru si_LK sk sl sr sr@latin sv te tr tr_TR uk uz vi zh_CN zh_TW"
+
+inherit cmake-utils flag-o-matic fdo-mime gnome2-utils virtualx
+[[ ${PV} == *9999* ]] && inherit git-2
+
+DESCRIPTION="A modern music player and library organizer based on Amarok 1.4 and Qt4"
+HOMEPAGE="http://www.clementine-player.org https://github.com/clementine-player/Clementine"
+[[ ${PV} == *9999* ]] || \
+SRC_URI="https://github.com/clementine-player/Clementine/archive/${PV/_}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+[[ ${PV} == *9999* ]] || \
+KEYWORDS="~amd64 ~x86"
+IUSE="box cdda +dbus debug dropbox googledrive ipod lastfm mms moodbar mtp projectm skydrive test ubuntu-one +udisks wiimote"
+IUSE+="${LANGS// / linguas_}"
+
+REQUIRED_USE="
+ udisks? ( dbus )
+ wiimote? ( dbus )
+"
+
+# qca dep is temporary for bug #489850
+COMMON_DEPEND="
+ dev-db/sqlite:=
+ >=dev-libs/glib-2.24.1-r1
+ dev-libs/libxml2
+ dev-libs/protobuf:=
+ dev-libs/qjson
+ >=dev-qt/qtcore-4.5:4
+ >=dev-qt/qtgui-4.5:4
+ >=dev-qt/qtopengl-4.5:4
+ >=dev-qt/qtsql-4.5:4[sqlite]
+ >=media-libs/chromaprint-0.6
+ media-libs/gstreamer:1.0
+ media-libs/gst-plugins-base:1.0
+ media-libs/libechonest:=[qt4]
+ >=media-libs/libmygpo-qt-1.0.8
+ >=media-libs/taglib-1.8[mp4]
+ sys-libs/zlib
+ virtual/glu
+ virtual/opengl
+ x11-libs/libX11
+ cdda? ( dev-libs/libcdio )
+ dbus? ( >=dev-qt/qtdbus-4.5:4 )
+ ipod? ( >=media-libs/libgpod-0.8.0 )
+ lastfm? ( >=media-libs/liblastfm-1[qt4(+)] )
+ mtp? ( >=media-libs/libmtp-1.0.0 )
+ moodbar? ( sci-libs/fftw:3.0 )
+ projectm? ( media-libs/glew:= )
+"
+# now only presets are used, libprojectm is internal
+# https://github.com/clementine-player/Clementine/tree/master/3rdparty/libprojectm/patches
+# r1966 "Compile with a static sqlite by default, since Qt 4.7 doesn't seem to expose the symbols we need to use FTS"
+RDEPEND="${COMMON_DEPEND}
+ dbus? ( udisks? ( sys-fs/udisks:2 ) )
+ mms? ( media-plugins/gst-plugins-libmms:1.0 )
+ mtp? ( gnome-base/gvfs )
+ projectm? ( >=media-libs/libprojectm-1.2.0 )
+ media-plugins/gst-plugins-meta:1.0
+ media-plugins/gst-plugins-soup:1.0
+ media-plugins/gst-plugins-taglib:1.0
+"
+DEPEND="${COMMON_DEPEND}
+ >=dev-libs/boost-1.39
+ virtual/pkgconfig
+ sys-devel/gettext
+ dev-qt/qttest:4
+ dev-cpp/gmock
+ box? ( dev-cpp/sparsehash )
+ dropbox? ( dev-cpp/sparsehash )
+ googledrive? ( dev-cpp/sparsehash )
+ skydrive? ( dev-cpp/sparsehash )
+ ubuntu-one? ( dev-cpp/sparsehash )
+ test? ( gnome-base/gsettings-desktop-schemas )
+"
+DOCS="Changelog"
+
+# https://github.com/clementine-player/Clementine/issues/3935
+RESTRICT="test"
+
+MY_P="${P/_}"
+# Switch to ^ when we switch to EAPI=6.
+[[ ${PV} == *9999* ]] || \
+S="${WORKDIR}/C${MY_P:1}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.3_rc1-cmake.patch
+ "${FILESDIR}"/${PN}-1.3_rc1-fix-tokenizer.patch
+)
+
+src_prepare() {
+ cmake-utils_src_prepare
+
+ # some tests fail or hang
+ sed -i \
+ -e '/add_test_file(translations_test.cpp/d' \
+ tests/CMakeLists.txt || die
+}
+
+src_configure() {
+ local langs x
+ for x in ${LANGS}; do
+ use linguas_${x} && langs+=" ${x}"
+ done
+
+ # spotify is not in portage
+ local mycmakeargs=(
+ -DBUILD_WERROR=OFF
+ -DLINGUAS="${langs}"
+ -DBUNDLE_PROJECTM_PRESETS=OFF
+ -DUSE_SYSTEM_PROJECTM=ON
+ $(cmake-utils_use cdda ENABLE_AUDIOCD)
+ $(cmake-utils_use dbus ENABLE_DBUS)
+ $(cmake-utils_use udisks ENABLE_DEVICEKIT)
+ $(cmake-utils_use ipod ENABLE_LIBGPOD)
+ $(cmake-utils_use lastfm ENABLE_LIBLASTFM)
+ $(cmake-utils_use mtp ENABLE_LIBMTP)
+ $(cmake-utils_use moodbar ENABLE_MOODBAR)
+ -DENABLE_GIO=ON
+ $(cmake-utils_use wiimote ENABLE_WIIMOTEDEV)
+ $(cmake-utils_use projectm ENABLE_VISUALISATIONS)
+ $(usex projectm '-DUSE_SYSTEM_PROJECTM=ON' '')
+ $(cmake-utils_use box ENABLE_BOX)
+ $(cmake-utils_use dropbox ENABLE_DROPBOX)
+ $(cmake-utils_use googledrive ENABLE_GOOGLE_DRIVE)
+ $(cmake-utils_use skydrive ENABLE_SKYDRIVE)
+ $(cmake-utils_use ubuntu-one ENABLE_UBUNTU_ONE)
+ -DENABLE_SPOTIFY_BLOB=OFF
+ -DENABLE_BREAKPAD=OFF
+ #$(cmake-utils_use !system-sqlite STATIC_SQLITE)
+ #$(cmake-utils_use system-sqlite I_HATE_MY_USERS)
+ #$(cmake-utils_use system-sqlite MY_USERS_WILL_SUFFER_BECAUSE_OF_ME)
+ -DUSE_BUILTIN_TAGLIB=OFF
+ -DUSE_SYSTEM_GMOCK=ON
+ )
+
+ use !debug && append-cppflags -DQT_NO_DEBUG_OUTPUT
+
+ cmake-utils_src_configure
+}
+
+src_test() {
+ cd "${CMAKE_BUILD_DIR}" || die
+ Xemake test
+}
+
+pkg_preinst() {
+ gnome2_icon_savelist
+}
+
+pkg_postinst() {
+ fdo-mime_desktop_database_update
+ gnome2_icon_cache_update
+}
+
+pkg_postrm() {
+ fdo-mime_desktop_database_update
+ gnome2_icon_cache_update
+}
diff --git a/media-sound/clementine/files/clementine-1.3_rc1-fix-tokenizer.patch b/media-sound/clementine/files/clementine-1.3_rc1-fix-tokenizer.patch
new file mode 100644
index 000000000000..6413bf77de3f
--- /dev/null
+++ b/media-sound/clementine/files/clementine-1.3_rc1-fix-tokenizer.patch
@@ -0,0 +1,21 @@
+https://github.com/clementine-player/Clementine/issues/5297
+
+--- src/core/database.cpp
++++ src/core/database.cpp
+@@ -265,6 +265,16 @@
+ StaticInit();
+
+ {
++#ifdef SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER
++ QVariant v = db.driver()->handle();
++ if (v.isValid() && qstrcmp(v.typeName(), "sqlite3*") == 0) {
++ sqlite3* handle = *static_cast<sqlite3**>(v.data());
++ if (handle) {
++ sqlite3_db_config(handle, SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER, 1, NULL);
++ }
++ }
++#endif
++
+ QSqlQuery set_fts_tokenizer("SELECT fts3_tokenizer(:name, :pointer)", db);
+ set_fts_tokenizer.bindValue(":name", "unicode");
+ set_fts_tokenizer.bindValue(