commit:     c4c24ea98d2f737b262d1eb64075fde9747d74f5
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Sat Jul 11 01:24:37 2020 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Sat Jul 11 01:24:57 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c4c24ea9

net-p2p/ktorrent: Fix linking with Taglib

Package-Manager: Portage-2.3.103, Repoman-2.3.23
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 .../files/ktorrent-5.2.0-taglib-linking.patch      | 247 +++++++++++++++++++++
 net-p2p/ktorrent/ktorrent-5.2.0-r1.ebuild          |   5 +-
 2 files changed, 251 insertions(+), 1 deletion(-)

diff --git a/net-p2p/ktorrent/files/ktorrent-5.2.0-taglib-linking.patch 
b/net-p2p/ktorrent/files/ktorrent-5.2.0-taglib-linking.patch
new file mode 100644
index 00000000000..1d02dcbfd9c
--- /dev/null
+++ b/net-p2p/ktorrent/files/ktorrent-5.2.0-taglib-linking.patch
@@ -0,0 +1,247 @@
+From f4c1c91d9b091941ebb4dae6aef95bcf9bc1c388 Mon Sep 17 00:00:00 2001
+From: David Faure <fa...@kde.org>
+Date: Sun, 21 Jun 2020 14:19:49 +0200
+Subject: [PATCH] Update FindTaglib from ECM.
+
+This fixes linking for me, there was just nothing in TAGLIB_LIBRARIES
+on my system (taglib in the same custom prefix as KDE code)
+---
+ cmake/modules/FindTaglib.cmake     | 191 +++++++++++------------------
+ plugins/mediaplayer/CMakeLists.txt |   3 +-
+ 2 files changed, 74 insertions(+), 120 deletions(-)
+
+diff --git a/cmake/modules/FindTaglib.cmake b/cmake/modules/FindTaglib.cmake
+index 13db60b2..1e1b9075 100644
+--- a/cmake/modules/FindTaglib.cmake
++++ b/cmake/modules/FindTaglib.cmake
+@@ -1,135 +1,90 @@
+-# - Try to find the Taglib library
+-# Once done this will define
++#.rst:
++# FindTaglib
++#-----------
+ #
+-#  TAGLIB_FOUND - system has the taglib library
+-#  TAGLIB_CFLAGS - the taglib cflags
+-#  TAGLIB_LIBRARIES - The libraries needed to use taglib
+-
+-# Copyright (c) 2006, Laurent Montel, <mon...@kde.org>
++# Try to find the Taglib library.
+ #
+-# Redistribution and use is allowed according to the terms of the BSD license.
+-# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
+-
+-if(NOT TAGLIB_MIN_VERSION)
+-  set(TAGLIB_MIN_VERSION "1.6")
+-endif()
+-
+-if(NOT WIN32)
+-    find_program(TAGLIBCONFIG_EXECUTABLE NAMES taglib-config PATHS
+-       ${BIN_INSTALL_DIR}
+-    )
+-endif()
+-
+-#reset vars
+-set(TAGLIB_LIBRARIES)
+-set(TAGLIB_CFLAGS)
+-
+-# if taglib-config has been found
+-if(TAGLIBCONFIG_EXECUTABLE)
+-
+-  exec_program(${TAGLIBCONFIG_EXECUTABLE} ARGS --version RETURN_VALUE 
_return_VALUE OUTPUT_VARIABLE TAGLIB_VERSION)
+-
+-  if("${TAGLIB_MIN_VERSION}" VERSION_GREATER TAGLIB_VERSION)
+-     message(STATUS "TagLib version too old: version searched 
:${TAGLIB_MIN_VERSION}, found ${TAGLIB_VERSION}")
+-     set(TAGLIB_FOUND FALSE)
+-  else()
+-
+-     exec_program(${TAGLIBCONFIG_EXECUTABLE} ARGS --libs RETURN_VALUE 
_return_VALUE OUTPUT_VARIABLE TAGLIB_LIBRARIES)
+-
+-     exec_program(${TAGLIBCONFIG_EXECUTABLE} ARGS --cflags RETURN_VALUE 
_return_VALUE OUTPUT_VARIABLE TAGLIB_CFLAGS)
++# This will define the following variables:
++#
++# ``Taglib_FOUND``
++#       True if the system has the taglib library of at least the minimum
++#       version specified by the version parameter to find_package()
++# ``Taglib_INCLUDE_DIRS``
++#       The taglib include dirs for use with target_include_directories
++# ``Taglib_LIBRARIES``
++#       The taglib libraries for use with target_link_libraries()
++# ``Taglib_VERSION``
++#       The version of taglib that was found
++#
++# If ``Taglib_FOUND is TRUE, it will also define the following imported
++# target:
++#
++# ``Taglib::Taglib``
++#       The Taglib library
++#
++# Since 5.72.0
++#
++# SPDX-FileCopyrightText: 2006 Laurent Montel <mon...@kde.org>
++# SPDX-FileCopyrightText: 2019 Heiko Becker <heire...@exherbo.org>
++# SPDX-FileCopyrightText: 2020 Elvis Angelaccio <elvis.angelac...@kde.org>
++# SPDX-License-Identifier: BSD-3-Clause
+ 
+-     if(TAGLIB_LIBRARIES AND TAGLIB_CFLAGS)
+-        set(TAGLIB_FOUND TRUE)
+-     endif()
+-     string(REGEX REPLACE " *-I" ";" TAGLIB_INCLUDES "${TAGLIB_CFLAGS}")
+-  endif() 
+-  mark_as_advanced(TAGLIB_CFLAGS TAGLIB_LIBRARIES TAGLIB_INCLUDES)
++find_package(PkgConfig QUIET)
+ 
+-else()
++pkg_search_module(PC_TAGLIB QUIET taglib)
+ 
+-  find_path(TAGLIB_INCLUDES
+-    NAMES
+-    tag.h
++find_path(Taglib_INCLUDE_DIRS
++    NAMES tag.h
+     PATH_SUFFIXES taglib
+-    PATHS
+-    ${KDE4_INCLUDE_DIR}
+-    ${INCLUDE_INSTALL_DIR}
+-  )
+-
+-    if(NOT WIN32)
+-      # on non-win32 we don't need to take care about WIN32_DEBUG_POSTFIX
++    HINTS ${PC_TAGLIB_INCLUDEDIR}
++)
+ 
+-      find_library(TAGLIB_LIBRARIES tag PATHS ${KDE4_LIB_DIR} 
${LIB_INSTALL_DIR})
++find_library(Taglib_LIBRARIES
++    NAMES tag
++    HINTS ${PC_TAGLIB_LIBDIR}
++)
+ 
+-    else()
++set(Taglib_VERSION ${PC_TAGLIB_VERSION})
+ 
+-      # 1. get all possible libnames
+-      set(args PATHS ${KDE4_LIB_DIR} ${LIB_INSTALL_DIR})             
+-      set(newargs "")               
+-      set(libnames_release "")      
+-      set(libnames_debug "")        
++if (Taglib_INCLUDE_DIRS AND NOT Taglib_VERSION)
++    if(EXISTS "${Taglib_INCLUDE_DIRS}/taglib.h")
++        file(READ "${Taglib_INCLUDE_DIRS}/taglib.h" TAGLIB_H)
+ 
+-      list(LENGTH args listCount)
++        string(REGEX MATCH "#define TAGLIB_MAJOR_VERSION[ ]+[0-9]+" 
TAGLIB_MAJOR_VERSION_MATCH ${TAGLIB_H})
++        string(REGEX MATCH "#define TAGLIB_MINOR_VERSION[ ]+[0-9]+" 
TAGLIB_MINOR_VERSION_MATCH ${TAGLIB_H})
++        string(REGEX MATCH "#define TAGLIB_PATCH_VERSION[ ]+[0-9]+" 
TAGLIB_PATCH_VERSION_MATCH ${TAGLIB_H})
+ 
+-        # just one name
+-        list(APPEND libnames_release "tag")
+-        list(APPEND libnames_debug   "tagd")
+-
+-        set(newargs ${args})
+-
+-      # search the release lib
+-      find_library(TAGLIB_LIBRARIES_RELEASE
+-                   NAMES ${libnames_release}
+-                   ${newargs}
+-      )
+-
+-      # search the debug lib
+-      find_library(TAGLIB_LIBRARIES_DEBUG
+-                   NAMES ${libnames_debug}
+-                   ${newargs}
+-      )
+-
+-      if(TAGLIB_LIBRARIES_RELEASE AND TAGLIB_LIBRARIES_DEBUG)
+-
+-        # both libs found
+-        set(TAGLIB_LIBRARIES optimized ${TAGLIB_LIBRARIES_RELEASE}
+-                        debug     ${TAGLIB_LIBRARIES_DEBUG})
+-
+-      else()
+-
+-        if(TAGLIB_LIBRARIES_RELEASE)
+-
+-          # only release found
+-          set(TAGLIB_LIBRARIES ${TAGLIB_LIBRARIES_RELEASE})
+-
+-        else()
+-
+-          # only debug (or nothing) found
+-          set(TAGLIB_LIBRARIES ${TAGLIB_LIBRARIES_DEBUG})
+-
+-        endif()
+-
+-      endif()
+-
+-      mark_as_advanced(TAGLIB_LIBRARIES_RELEASE)
+-      mark_as_advanced(TAGLIB_LIBRARIES_DEBUG)
++        string(REGEX REPLACE ".*_MAJOR_VERSION[ ]+(.*)" "\\1" 
TAGLIB_MAJOR_VERSION "${TAGLIB_MAJOR_VERSION_MATCH}")
++        string(REGEX REPLACE ".*_MINOR_VERSION[ ]+(.*)" "\\1" 
TAGLIB_MINOR_VERSION "${TAGLIB_MINOR_VERSION_MATCH}")
++        string(REGEX REPLACE ".*_PATCH_VERSION[ ]+(.*)" "\\1" 
TAGLIB_PATCH_VERSION "${TAGLIB_PATCH_VERSION_MATCH}")
+ 
++        set(Taglib_VERSION 
"${TAGLIB_MAJOR_VERSION}.${TAGLIB_MINOR_VERSION}.${TAGLIB_PATCH_VERSION}")
+     endif()
+-  
+-  include(FindPackageMessage)
+-  include(FindPackageHandleStandardArgs)
+-  find_package_handle_standard_args(Taglib DEFAULT_MSG TAGLIB_INCLUDES 
TAGLIB_LIBRARIES)
+-
+ endif()
+ 
+-
+-if(TAGLIB_FOUND)
+-  if(NOT Taglib_FIND_QUIETLY AND TAGLIBCONFIG_EXECUTABLE)
+-    message(STATUS "Taglib found: ${TAGLIB_LIBRARIES}")
+-  endif()
+-else()
+-  if(Taglib_FIND_REQUIRED)
+-    message(FATAL_ERROR "Could not find Taglib")
+-  endif()
++include(FindPackageHandleStandardArgs)
++find_package_handle_standard_args(Taglib
++    FOUND_VAR
++        Taglib_FOUND
++    REQUIRED_VARS
++        Taglib_LIBRARIES
++        Taglib_INCLUDE_DIRS
++    VERSION_VAR
++        Taglib_VERSION
++)
++
++if (Taglib_FOUND AND NOT TARGET Taglib::Taglib)
++    add_library(Taglib::Taglib UNKNOWN IMPORTED)
++    set_target_properties(Taglib::Taglib PROPERTIES
++        IMPORTED_LOCATION "${Taglib_LIBRARIES}"
++        INTERFACE_INCLUDE_DIRECTORIES "${Taglib_INCLUDE_DIRS}"
++    )
+ endif()
+ 
++mark_as_advanced(Taglib_LIBRARIES Taglib_INCLUDE_DIRS)
++
++include(FeatureSummary)
++set_package_properties(Taglib PROPERTIES
++    URL "https://taglib.org/";
++    DESCRIPTION "A library for reading and editing the meta-data of audio 
formats"
++)
+diff --git a/plugins/mediaplayer/CMakeLists.txt 
b/plugins/mediaplayer/CMakeLists.txt
+index 8bbeeb74..5fbe056f 100644
+--- a/plugins/mediaplayer/CMakeLists.txt
++++ b/plugins/mediaplayer/CMakeLists.txt
+@@ -1,5 +1,4 @@
+ find_package(Taglib REQUIRED)
+-include_directories(${TAGLIB_INCLUDES})
+ #find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED Multimedia 
MultimediaWidgets)
+ #include_directories(${Qt5Multimedia_INCLUDE_DIRS})
+ include_directories(${PHONON_INCLUDES})
+@@ -34,7 +33,7 @@ kcoreaddons_desktop_to_json(ktorrent_mediaplayer 
ktorrent_mediaplayer.desktop)
+ target_link_libraries(
+     ktorrent_mediaplayer
+     ktcore
+-    ${TAGLIB_LIBRARIES}
++    Taglib::Taglib
+     Phonon::phonon4qt5
+     KF5::Torrent
+     KF5::I18n
+-- 
+GitLab
+

diff --git a/net-p2p/ktorrent/ktorrent-5.2.0-r1.ebuild 
b/net-p2p/ktorrent/ktorrent-5.2.0-r1.ebuild
index 1bddef4950b..de82600836c 100644
--- a/net-p2p/ktorrent/ktorrent-5.2.0-r1.ebuild
+++ b/net-p2p/ktorrent/ktorrent-5.2.0-r1.ebuild
@@ -76,7 +76,10 @@ RDEPEND="${COMMON_DEPEND}
        )
 "
 
-PATCHES=( "${FILESDIR}/${P}-fix-start-in-systray.patch" ) # 5.2 branch
+PATCHES=(
+       "${FILESDIR}/${P}-fix-start-in-systray.patch" # 5.2 branch
+       "${FILESDIR}/${P}-taglib-linking.patch" # 5.2 branch
+)
 
 src_configure() {
        local mycmakeargs=(

Reply via email to