From 795b2d4f905cf30365bc4b674ba03bf52e866a9d Mon Sep 17 00:00:00 2001 From: Eric Hameleers Date: Thu, 30 Jul 2020 19:41:16 +0200 Subject: Ktorrent: fix linking error and fix systray icon visibility --- kde/patch/ktorrent.patch | 7 + kde/patch/ktorrent/ktorrent_systray.patch | 24 +++ kde/patch/ktorrent/ktorrent_taglib_linking.patch | 248 +++++++++++++++++++++++ 3 files changed, 279 insertions(+) create mode 100644 kde/patch/ktorrent/ktorrent_systray.patch create mode 100644 kde/patch/ktorrent/ktorrent_taglib_linking.patch diff --git a/kde/patch/ktorrent.patch b/kde/patch/ktorrent.patch index 123f3af..0fdb4aa 100644 --- a/kde/patch/ktorrent.patch +++ b/kde/patch/ktorrent.patch @@ -1,3 +1,10 @@ # Embed a copy of the GeoIP database since the download link no longer works. cat $CWD/patch/ktorrent/ktorrent.use.package.geoip.database.diff | patch -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; } +# Fix linking against taglib (ktorrent 5.2), +# Thanks to Gentoo. +cat $CWD/patch/ktorrent/ktorrent_taglib_linking.patch | patch -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; } + +# Fix showing ktorrent in the system tray, +# Thanks to Gentoo. +cat $CWD/patch/ktorrent/ktorrent_systray.patch | patch -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; } diff --git a/kde/patch/ktorrent/ktorrent_systray.patch b/kde/patch/ktorrent/ktorrent_systray.patch new file mode 100644 index 0000000..50049af --- /dev/null +++ b/kde/patch/ktorrent/ktorrent_systray.patch @@ -0,0 +1,24 @@ +From 9747a8f524942b57e2fd42254c3de73f9d42918c Mon Sep 17 00:00:00 2001 +From: Matt Scheirer +Date: Sun, 17 May 2020 02:36:09 -0400 +Subject: [PATCH] Fix starting in tray by removing redundant show() in main + +--- + ktorrent/main.cpp | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/ktorrent/main.cpp b/ktorrent/main.cpp +index b5866c22..8e532c9c 100644 +--- a/ktorrent/main.cpp ++++ b/ktorrent/main.cpp +@@ -208,7 +208,6 @@ int main(int argc, char** argv) + bt::InitLog(kt::DataDir(kt::CreateIfNotExists) + QLatin1String("log"), true, true, logToStdout); + + kt::GUI widget; +- widget.show(); + + auto handleCmdLine = [&widget, &parser](const QStringList &arguments, const QString &workingDirectory) + { +-- +GitLab + diff --git a/kde/patch/ktorrent/ktorrent_taglib_linking.patch b/kde/patch/ktorrent/ktorrent_taglib_linking.patch new file mode 100644 index 0000000..7f612c8 --- /dev/null +++ b/kde/patch/ktorrent/ktorrent_taglib_linking.patch @@ -0,0 +1,248 @@ +From f4c1c91d9b091941ebb4dae6aef95bcf9bc1c388 Mon Sep 17 00:00:00 2001 +From: David Faure +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, ++# 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 ++# SPDX-FileCopyrightText: 2019 Heiko Becker ++# SPDX-FileCopyrightText: 2020 Elvis Angelaccio ++# 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 + + -- cgit v1.2.3