commit: b40237153a999161e6853f17bb97a33485ec9448 Author: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org> AuthorDate: Fri Feb 21 22:25:05 2025 +0000 Commit: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org> CommitDate: Sun Feb 23 21:44:47 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b4023715
media-libs/libmygpo-qt: add Qt6-based 1.1.0_pre20240811, EAPI-8 bump Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org> media-libs/libmygpo-qt/Manifest | 1 + .../files/libmygpo-qt-1.1.0_pre20240811-qt6.patch | 153 +++++++++++++++++++++ .../libmygpo-qt-1.1.0_pre20240811.ebuild | 41 ++++++ 3 files changed, 195 insertions(+) diff --git a/media-libs/libmygpo-qt/Manifest b/media-libs/libmygpo-qt/Manifest index a99f9c103b47..7d92734ea2a1 100644 --- a/media-libs/libmygpo-qt/Manifest +++ b/media-libs/libmygpo-qt/Manifest @@ -1 +1,2 @@ DIST libmygpo-qt-1.1.0.tar.gz 64959 BLAKE2B 85c8eebe036b5755ce6c765c2c19796532dcebbef1a7342a0f47b84ba7466de87334fd85f844c9f3f6ecf87352d8a5ba523480f1550b4928c67a3f0fe12ea902 SHA512 a24243a98b8e3544127b09e5c678d692e11ad0ad7ee8427e71b0d7cfd9455d068e4445bcd4d8d5ba94d8c0ef1b8f42390b544585ef258b5ec175546ee7bcd86a +DIST libmygpo-qt-1.1.0_pre20240811.tar.gz 65211 BLAKE2B 627ce1309c0a8694ca6a5a02d99f8e718a68af47f3e98674a5f3ac316e4e3a09ee21cf3b123c46d9568c1d8ad082407bd65dc152856b49a16f2d923dc251acdc SHA512 78941adb2dab048dd35159a68ed56226e0ed9849fe7eca25c10686652447eaf031a14b339092ceed319c9f642e95db50ac514781914c2bf659a47fe493831067 diff --git a/media-libs/libmygpo-qt/files/libmygpo-qt-1.1.0_pre20240811-qt6.patch b/media-libs/libmygpo-qt/files/libmygpo-qt-1.1.0_pre20240811-qt6.patch new file mode 100644 index 000000000000..efdbe7623d84 --- /dev/null +++ b/media-libs/libmygpo-qt/files/libmygpo-qt-1.1.0_pre20240811-qt6.patch @@ -0,0 +1,153 @@ +From 42e19dcb6b7c07460f05aa1d4586d5c76236c6d0 Mon Sep 17 00:00:00 2001 +From: Tuomas Nurmi <[email protected]> +Date: Mon, 8 Jul 2024 17:03:32 +0300 +Subject: [PATCH] Minimal changes to make Qt6 compilation possible + +Untested. Compiles, with a bunch of deprecation warnings. +There's likely room for improvement all around. +--- + CMakeLists.txt | 24 +++++++++--------------- + libmygpo-qt.pc.in | 1 - + src/CMakeLists.txt | 4 ++-- + src/DeviceList.cpp | 2 +- + tests/CMakeLists.txt | 12 +++++++++--- + 5 files changed, 21 insertions(+), 22 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 8a79ddc..920e841 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -5,10 +5,10 @@ project( libmygpo-qt ) + set( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules) + set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII" ) + +-option(BUILD_WITH_QT4 "Build libmygpo-qt with Qt4" OFF) ++option(BUILD_WITH_QT6 "Build libmygpo-qt with Qt6" OFF) + option(MYGPO_BUILD_TESTS "Build all unit tests" ON) + +-if( NOT BUILD_WITH_QT4 ) ++if( NOT BUILD_WITH_QT6 ) + if( MYGPO_BUILD_TESTS ) + find_package(Qt5 REQUIRED COMPONENTS Core Network Test CONFIG) + else() +@@ -23,27 +23,21 @@ if( NOT BUILD_WITH_QT4 ) + # pkg-config names of QtCore and QtNetwork are Qt5Core and Qt5Network for + # Qt5 + set(MYGPO_QT_MAJOR_VERSION "5") +- set(MYGPO_QT4_QJSON_DEP "") + else() +- message(STATUS "Could not find Qt5, searching for Qt4 instead...") +- message(STATUS "Qt4 Support is deprecated, building with Qt4 is no longer officially supported") ++ message(STATUS "Could not find Qt5, searching for Qt6 instead...") + if( MYGPO_BUILD_TESTS ) +- find_package( Qt4 COMPONENTS QtCore QtNetwork QtTest REQUIRED ) ++ find_package( Qt6 COMPONENTS Core Network Test REQUIRED ) + else( MYGPO_BUILD_TESTS ) +- find_package( Qt4 COMPONENTS QtCore QtNetwork REQUIRED ) ++ find_package( Qt6 COMPONENTS Core Network REQUIRED ) + endif() +- set( QT_DONT_USE_QTGUI TRUE ) +- include( ${QT_USE_FILE} ) ++ set(MYGPO_QT_VERSION_SUFFIX 6) + + macro(qt_wrap_cpp) +- qt4_wrap_cpp(${ARGN}) ++ qt6_wrap_cpp(${ARGN}) + endmacro() + +- set(MYGPO_QT_MAJOR_VERSION "") +- set(MYGPO_QT4_QJSON_DEP "Requires.private: QJson") ++ set(MYGPO_QT_MAJOR_VERSION "6") + +- # QJson is only required for Qt4 +- find_package(QJSON REQUIRED) + endif() + + # Don't use absolute path in Mygpo-qtTargets-$buildType.cmake +@@ -51,7 +45,7 @@ endif() + # set(QT_USE_IMPORTED_TARGETS TRUE) + + set( MYGPO_QT_VERSION_MAJOR "1" ) +-set( MYGPO_QT_VERSION_MINOR "1" ) ++set( MYGPO_QT_VERSION_MINOR "2" ) + set( MYGPO_QT_VERSION_PATCH "0" ) + set( MYGPO_QT_VERSION "${MYGPO_QT_VERSION_MAJOR}.${MYGPO_QT_VERSION_MINOR}.${MYGPO_QT_VERSION_PATCH}" ) + +diff --git a/libmygpo-qt.pc.in b/libmygpo-qt.pc.in +index 8403e48..520bd52 100644 +--- a/libmygpo-qt.pc.in ++++ b/libmygpo-qt.pc.in +@@ -8,6 +8,5 @@ Description: libmygpo-qt is a C++/Qt Library that wraps the gpodder.net WebAPI + URL: http://wiki.gpodder.org/wiki/Libmygpo-qt + Version: @MYGPO_QT_VERSION@ + Requires: Qt@MYGPO_QT_MAJOR_VERSION@Core Qt@MYGPO_QT_MAJOR_VERSION@Network +-@MYGPO_QT4_QJSON_DEP@ + Libs: -L${libdir} -lmygpo-qt@MYGPO_QT_VERSION_SUFFIX@ + Cflags: -I${includedir} +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 253e81e..9d1989c 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -81,10 +81,10 @@ add_library( ${MYGPO_QT_TARGET_NAME} SHARED ${LIBMYGPO_QT_SRC} ${LIBMYGPO_QT_MOC + + set_target_properties( ${MYGPO_QT_TARGET_NAME} PROPERTIES VERSION ${MYGPO_QT_VERSION} SOVERSION ${MYGPO_QT_SONAME} DEFINE_SYMBOL MYGPO_MAKEDLL) + +-if( NOT BUILD_WITH_QT4 ) ++if( NOT BUILD_WITH_QT6 ) + target_link_libraries( ${MYGPO_QT_TARGET_NAME} Qt5::Core Qt5::Network) + else() +- target_link_libraries( ${MYGPO_QT_TARGET_NAME} ${QT_QTCORE_LIBRARY} ${QT_QTNETWORK_LIBRARY} ${QJSON_LIBRARIES}) ++ target_link_libraries( ${MYGPO_QT_TARGET_NAME} Qt6::Core Qt6::Network) + endif() + + install( TARGETS ${MYGPO_QT_TARGET_NAME} EXPORT ${MYGPO_QT_TARGET_NAME}Export DESTINATION ${LIB_INSTALL_DIR} ) +diff --git a/src/DeviceList.cpp b/src/DeviceList.cpp +index e972318..92e29cc 100644 +--- a/src/DeviceList.cpp ++++ b/src/DeviceList.cpp +@@ -64,7 +64,7 @@ bool DeviceListPrivate::parse( const QVariant& data ) + DevicePtr ptr( new Device( var, this ) ); + m_devicesList.append( ptr ); + QVariant v; +- v.setValue<DevicePtr>( ptr ); ++ v.setValue<DevicePtr>( QSharedPointer<mygpo::Device>(ptr) ); + devList.append( v ); + } + m_devices = devList; +diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt +index 4f77158..ce63689 100644 +--- a/tests/CMakeLists.txt ++++ b/tests/CMakeLists.txt +@@ -11,14 +11,18 @@ include_directories( ${QJSON_INCLUDE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CU + + # UrlBuilder library + add_library( UrlBuilder ${TESTOBJECTS_SRCDIR}/UrlBuilder.cpp ${TESTOBJECTS_SRCDIR}/Config.cpp ) +-if( NOT BUILD_WITH_QT4 ) ++if( NOT BUILD_WITH_QT6 ) + target_link_libraries( UrlBuilder Qt5::Core ) ++else() ++ target_link_libraries( UrlBuilder Qt6::Core ) + endif() + # JSONCreator library + QT_WRAP_CPP(LIBMYGPO_QT_MOC_SRC ${TESTOBJECTS_SRCDIR}/EpisodeAction.h ${TESTOBJECTS_SRCDIR}/EpisodeAction_p.h ) + add_library( JsonCreator ${TESTOBJECTS_SRCDIR}/JsonCreator.cpp ${TESTOBJECTS_SRCDIR}/EpisodeAction.cpp ${TESTOBJECTS_SRCDIR}/qjsonwrapper/Json.cpp ${LIBMYGPO_QT_MOC_SRC}) +-if( NOT BUILD_WITH_QT4 ) ++if( NOT BUILD_WITH_QT6 ) + target_link_libraries( JsonCreator Qt5::Core Qt5::Network ) ++else() ++ target_link_libraries( JsonCreator Qt6::Core Qt6::Network ) + endif() + + set( EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR} ) +@@ -29,8 +33,10 @@ macro(add_libmygpo_test _source) + add_executable(${_name} ${_source} ${${_name}_MOC_SRC}) + target_link_libraries(${_name} ${QT_QTCORE_LIBRARY} ${QT_QTTEST_LIBRARY} ${QT_QTNETWORK_LIBRARY}) + add_test(${_name}-test ${EXECUTABLE_OUTPUT_PATH}/${_name}) +- if( NOT BUILD_WITH_QT4 ) ++ if( NOT BUILD_WITH_QT6 ) + target_link_libraries(${_name} Qt5::Network Qt5::Test) ++ else() ++ target_link_libraries(${_name} Qt6::Network Qt6::Test) + endif() + endmacro(add_libmygpo_test) + diff --git a/media-libs/libmygpo-qt/libmygpo-qt-1.1.0_pre20240811.ebuild b/media-libs/libmygpo-qt/libmygpo-qt-1.1.0_pre20240811.ebuild new file mode 100644 index 000000000000..cbb1afa9ba7e --- /dev/null +++ b/media-libs/libmygpo-qt/libmygpo-qt-1.1.0_pre20240811.ebuild @@ -0,0 +1,41 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +COMMIT=4d1f48291791c64f029e69138e3bc7fb6a851610 +inherit cmake + +DESCRIPTION="Qt/C++ library wrapping the gpodder.net webservice" +HOMEPAGE="https://github.com/gpodder/libmygpo-qt" +SRC_URI="https://github.com/gpodder/${PN}/archive/${COMMIT}.tar.gz -> ${P}.tar.gz" +S="${WORKDIR}/${PN}-${COMMIT}" + +LICENSE="LGPL-2.1" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86" +IUSE="test" +RESTRICT="!test? ( test )" + +RDEPEND="dev-qt/qtbase:6[network]" +DEPEND="${RDEPEND}" +BDEPEND="virtual/pkgconfig" + +# Pending: https://github.com/gpodder/libmygpo-qt/pull/23 +PATCHES=( "${FILESDIR}/${P}-qt6.patch" ) + +src_configure() { + local mycmakeargs=( + -DBUILD_WITH_QT6=ON + -DMYGPO_BUILD_TESTS=$(usex test) + ) + cmake_src_configure +} + +src_test() { + local CMAKE_SKIP_TESTS=( + # bug: 653312 + JsonCreatorTest-test + ) + cmake_src_test +}
