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
+}

Reply via email to