diff options
author | Alexey Sokolov <alexey+gentoo@asokolov.org> | 2023-10-06 18:56:47 +0100 |
---|---|---|
committer | Yixun Lan <dlan@gentoo.org> | 2023-10-17 05:23:48 +0000 |
commit | a19cfd05bb1bc1ed9ed84342a95bca123b347eb9 (patch) | |
tree | 38b17a5894055616d48b318ad9d04e94207afa7b | |
parent | games-arcade/open-supaplex: drop 7.1.2 (diff) | |
download | gentoo-a19cfd05bb1bc1ed9ed84342a95bca123b347eb9.tar.gz gentoo-a19cfd05bb1bc1ed9ed84342a95bca123b347eb9.tar.bz2 gentoo-a19cfd05bb1bc1ed9ed84342a95bca123b347eb9.zip |
media-sound/clementine: Fix build with new abseil and proto
Bug: https://bugs.gentoo.org/912853
Bug: https://bugs.gentoo.org/913738
Signed-off-by: Alexey Sokolov <alexey+gentoo@asokolov.org>
Signed-off-by: Yixun Lan <dlan@gentoo.org>
4 files changed, 256 insertions, 0 deletions
diff --git a/media-sound/clementine/clementine-1.4.0_rc2-r4.ebuild b/media-sound/clementine/clementine-1.4.0_rc2-r4.ebuild new file mode 100644 index 000000000000..0ba33dd8074d --- /dev/null +++ b/media-sound/clementine/clementine-1.4.0_rc2-r4.ebuild @@ -0,0 +1,168 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DESCRIPTION="Modern music player and library organizer based on Amarok 1.4 and Qt" +HOMEPAGE="https://www.clementine-player.org https://github.com/clementine-player/Clementine" + +PLOCALES="af ar be bg bn br bs ca cs cy da de el en 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 mk_MK 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 flag-o-matic plocale virtualx xdg + +if [[ ${PV} == *9999* ]]; then + EGIT_REPO_URI="https://github.com/clementine-player/Clementine.git" + inherit git-r3 +else + SRC_URI="https://github.com/clementine-player/Clementine/archive/refs/tags/${PV/_}.tar.gz -> ${P}.tar.gz" + S="${WORKDIR}/Clementine-${PV/_}" + KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86" +fi + +LICENSE="GPL-3" +SLOT="0" +IUSE="alsa box cdda +dbus debug dropbox googledrive ipod lastfm moodbar mtp projectm pulseaudio seafile skydrive test +udisks wiimote" +RESTRICT="!test? ( test )" + +REQUIRED_USE=" + udisks? ( dbus ) + wiimote? ( dbus ) +" + +COMMON_DEPEND=" + dev-cpp/abseil-cpp:= + dev-db/sqlite:3 + dev-libs/glib:2 + dev-libs/protobuf:= + dev-qt/qtconcurrent:5 + dev-qt/qtcore:5 + dev-qt/qtgui:5 + dev-qt/qtnetwork:5[ssl] + dev-qt/qtsql:5[sqlite] + dev-qt/qtwidgets:5 + dev-qt/qtx11extras:5 + media-libs/chromaprint:= + media-libs/gstreamer:1.0 + media-libs/gst-plugins-base:1.0 + >=media-libs/libmygpo-qt-1.0.9[qt5(+)] + >=media-libs/taglib-1.11.1_p20181028 + sys-libs/zlib + x11-libs/libX11 + alsa? ( media-libs/alsa-lib ) + cdda? ( dev-libs/libcdio:= ) + dbus? ( dev-qt/qtdbus:5 ) + ipod? ( >=media-libs/libgpod-0.8.0 ) + lastfm? ( >=media-libs/liblastfm-1.1.0_pre20150206 ) + moodbar? ( sci-libs/fftw:3.0= ) + mtp? ( >=media-libs/libmtp-1.0.0:= ) + projectm? ( + media-libs/glew:= + >=media-libs/libprojectm-3.1.12:0= + virtual/opengl + ) + pulseaudio? ( media-libs/libpulse ) +" +RDEPEND="${COMMON_DEPEND} + media-plugins/gst-plugins-meta:1.0 + media-plugins/gst-plugins-soup:1.0 + media-plugins/gst-plugins-taglib:1.0 + mtp? ( gnome-base/gvfs[mtp] ) + udisks? ( sys-fs/udisks:2 ) +" +DEPEND="${COMMON_DEPEND} + dev-libs/boost + dev-libs/libxml2 + dev-qt/qtopengl:5 + dev-qt/qtxml:5 + virtual/glu + box? ( dev-cpp/sparsehash ) + dropbox? ( dev-cpp/sparsehash ) + googledrive? ( dev-cpp/sparsehash ) + seafile? ( dev-cpp/sparsehash ) + skydrive? ( dev-cpp/sparsehash ) +" +BDEPEND=" + >=dev-cpp/gtest-1.8.0 + dev-qt/linguist-tools:5 + sys-devel/gettext + virtual/pkgconfig + test? ( + dev-qt/qttest:5 + gnome-base/gsettings-desktop-schemas + ) +" + +PATCHES=( + "${FILESDIR}/clementine-1.4.0_rc2-lz.patch" + "${FILESDIR}/clementine-1.4.0_rc2-c17.patch" + "${FILESDIR}/clementine-1.4.0_rc2-absl.patch" +) + +DOCS=( Changelog README.md ) + +src_prepare() { + plocale_find_changes "src/translations" "" ".po" + + cmake_src_prepare + # some tests fail or hang + sed -i \ + -e '/add_test_file(translations_test.cpp/d' \ + tests/CMakeLists.txt || die + + if ! use test; then + sed -e "/find_package.*Qt5/s:\ Test::" -i CMakeLists.txt || die + cmake_comment_add_subdirectory tests + fi + + rm -r 3rdparty/{libmygpo-qt,libmygpo-qt5,taglib} || die +} + +src_configure() { + # spotify is not in portage + local mycmakeargs=( + -DBUILD_WERROR=OFF + # avoid automagically enabling of ccache (bug #611010) + -DCCACHE_EXECUTABLE=OFF + -DENABLE_BREAKPAD=OFF #< disable crash reporting + -DENABLE_GIO=ON + -DENABLE_SPOTIFY=OFF + -DENABLE_SPOTIFY_BLOB=OFF + -DUSE_SYSTEM_GMOCK=ON + -DUSE_SYSTEM_PROJECTM=ON + -DBUNDLE_PROJECTM_PRESETS=OFF + -DLINGUAS="$(plocale_get_locales)" + -DENABLE_BOX="$(usex box)" + -DENABLE_AUDIOCD="$(usex cdda)" + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5DBus=$(usex !dbus) + -DENABLE_DROPBOX="$(usex dropbox)" + -DENABLE_GOOGLE_DRIVE="$(usex googledrive)" + -DENABLE_LIBGPOD="$(usex ipod)" + -DENABLE_LIBLASTFM="$(usex lastfm)" + -DENABLE_MOODBAR="$(usex moodbar)" + -DENABLE_LIBMTP="$(usex mtp)" + -DENABLE_VISUALISATIONS="$(usex projectm)" + -DENABLE_SEAFILE="$(usex seafile)" + -DENABLE_SKYDRIVE="$(usex skydrive)" + -DENABLE_LIBPULSE="$(usex pulseaudio)" + -DENABLE_UDISKS2="$(usex udisks)" + -DENABLE_WIIMOTEDEV="$(usex wiimote)" + "$(cmake_use_find_package alsa ALSA)" + ) + + use !debug && append-cppflags -DQT_NO_DEBUG_OUTPUT + + cmake_src_configure +} + +src_test() { + cd "${CMAKE_BUILD_DIR}" || die + virtx cmake_build clementine_test +} + +pkg_postinst() { + xdg_pkg_postinst + + elog "Note that list of supported formats is controlled by media-plugins/gst-plugins-meta " + elog "USE flags. You may be interested in setting aac, flac, mp3, ogg or wavpack USE flags " + elog "depending on your preferences" +} diff --git a/media-sound/clementine/clementine-9999.ebuild b/media-sound/clementine/clementine-9999.ebuild index 9922ac005926..4e0ac13d9ad3 100644 --- a/media-sound/clementine/clementine-9999.ebuild +++ b/media-sound/clementine/clementine-9999.ebuild @@ -30,6 +30,7 @@ REQUIRED_USE=" " COMMON_DEPEND=" + dev-cpp/abseil-cpp:= dev-db/sqlite:3 dev-libs/glib:2 dev-libs/protobuf:= @@ -91,6 +92,11 @@ BDEPEND=" ) " +PATCHES=( + "${FILESDIR}/clementine-1.4.0_rc2-c17.patch" + "${FILESDIR}/clementine-1.4.0_rc2-absl.patch" +) + DOCS=( Changelog README.md ) src_prepare() { diff --git a/media-sound/clementine/files/clementine-1.4.0_rc2-absl.patch b/media-sound/clementine/files/clementine-1.4.0_rc2-absl.patch new file mode 100644 index 000000000000..48eb9dda4227 --- /dev/null +++ b/media-sound/clementine/files/clementine-1.4.0_rc2-absl.patch @@ -0,0 +1,15 @@ +Fix build + +https://bugs.gentoo.org/912853 + +--- a/ext/libclementine-tagreader/CMakeLists.txt ++++ b/ext/libclementine-tagreader/CMakeLists.txt +@@ -37,7 +37,7 @@ add_library(libclementine-tagreader STATIC + ) + + target_link_libraries(libclementine-tagreader +- ${PROTOBUF_LIBRARY} + libclementine-common ++ ${PROTOBUF_LIBRARY} absl_log_internal_check_op absl_log_internal_message + ) + diff --git a/media-sound/clementine/files/clementine-1.4.0_rc2-c17.patch b/media-sound/clementine/files/clementine-1.4.0_rc2-c17.patch new file mode 100644 index 000000000000..3121b1e15bf0 --- /dev/null +++ b/media-sound/clementine/files/clementine-1.4.0_rc2-c17.patch @@ -0,0 +1,67 @@ +Fix build + +https://bugs.gentoo.org/912853 + +--- a/3rdparty/libprojectm/CMakeLists.txt ++++ b/3rdparty/libprojectm/CMakeLists.txt +@@ -24,7 +24,7 @@ set(BUILD_PROJECTM_STATIC ON) + set(DISABLE_NATIVE_PRESETS ON) + set(DISABLE_MILKDROP_PRESETS OFF) + +-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") ++set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17") + + pkg_check_modules(GLEW glew) + +--- a/3rdparty/qtsingleapplication/CMakeLists.txt ++++ b/3rdparty/qtsingleapplication/CMakeLists.txt +@@ -1,5 +1,5 @@ + cmake_minimum_required(VERSION 3.0.0) +-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --std=c++0x") ++set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --std=c++17") + + set(SINGLEAPP-SOURCES + qtlocalpeer.cpp +--- a/ext/libclementine-common/CMakeLists.txt ++++ b/ext/libclementine-common/CMakeLists.txt +@@ -2,7 +2,7 @@ include_directories(${PROTOBUF_INCLUDE_DIRS}) + include_directories(${CMAKE_CURRENT_BINARY_DIR}) + include_directories(${CMAKE_CURRENT_SOURCE_DIR}) + +-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --std=c++0x") ++set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --std=c++17") + + set(SOURCES + core/closure.cpp +--- a/ext/libclementine-remote/CMakeLists.txt ++++ b/ext/libclementine-remote/CMakeLists.txt +@@ -1,6 +1,6 @@ + include_directories(${PROTOBUF_INCLUDE_DIRS}) + +-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --std=c++0x") ++set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --std=c++17") + + set(MESSAGES + remotecontrolmessages.proto +--- a/ext/libclementine-tagreader/CMakeLists.txt ++++ b/ext/libclementine-tagreader/CMakeLists.txt +@@ -3,7 +3,7 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR}) + include_directories(${CMAKE_CURRENT_BINARY_DIR}) + include_directories(${CMAKE_SOURCE_DIR}/ext/libclementine-common) + +-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --std=c++0x") ++set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --std=c++17") + + set(MESSAGES + tagreadermessages.proto +--- a/gst/moodbar/CMakeLists.txt ++++ b/gst/moodbar/CMakeLists.txt +@@ -1,7 +1,7 @@ + cmake_minimum_required(VERSION 3.0.0) + + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall") +-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Woverloaded-virtual -Wall --std=c++0x") ++set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Woverloaded-virtual -Wall --std=c++17") + + include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}) + |