@@ -1738,8 +1738,7 @@ dist_patch_DATA = \
%D%/packages/patches/libmp4v2-c++11.patch \
%D%/packages/patches/libmpeg2-arm-private-symbols.patch \
%D%/packages/patches/libmpeg2-global-symbol-test.patch \
- %D%/packages/patches/libmygpo-qt-fix-qt-5.11.patch \
- %D%/packages/patches/libmygpo-qt-missing-qt5-modules.patch \
+ %D%/packages/patches/libmygpo-qt-suppot-building-with-qt6.patch \
%D%/packages/patches/libpciaccess-hurd64.patch \
%D%/packages/patches/libphonenumber-reproducible-build.patch \
%D%/packages/patches/libqalculate-3.8.0-libcurl-ssl-fix.patch \
@@ -127,34 +127,39 @@ (define-public gpodder
(license license:gpl3+)))
(define-public libmygpo-qt
- (package
- (name "libmygpo-qt")
- (version "1.1.0")
- (source (origin
- (method url-fetch)
- (uri (string-append "http://stefan.derkits.at/files/"
- "libmygpo-qt/libmygpo-qt." version ".tar.gz"))
- (sha256
- (base32
- "1kg18qrq2rsswgzhl65r3mlyx7kpqg4wwnbp4yiv6svvmadmlxl2"))
- (patches (search-patches "libmygpo-qt-fix-qt-5.11.patch"
- "libmygpo-qt-missing-qt5-modules.patch"))))
- (build-system cmake-build-system)
- (native-inputs
- (list pkg-config))
- (inputs
- (list qtbase-5))
- (arguments
- '(#:configure-flags '("-DMYGPO_BUILD_TESTS=ON")
- ;; TODO: Enable tests when https://github.com/gpodder/gpodder/issues/446
- ;; is fixed.
- #:tests? #f))
- (home-page "https://gpodder.github.io")
- (synopsis "Qt/C++ library wrapping the gpodder web service")
- (description "@code{libmygpo-qt} is a Qt/C++ library wrapping the
-@url{https://gpodder.net} APIs. It allows applications to discover, manage
-and track podcasts.")
- (license license:lgpl2.1+)))
+ (let ((commit "4d1f48291791c64f029e69138e3bc7fb6a851610")
+ (revision "0"))
+ (package
+ (name "libmygpo-qt")
+ (version (git-version "1.1.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://github.com/gpodder/libmygpo-qt")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1bxv8blyq66600i8skxmccb1lnmliz90378kck4f6j2ynry2114b"))
+ (patches
+ (search-patches "libmygpo-qt-suppot-building-with-qt6.patch"))))
+ (build-system cmake-build-system)
+ (native-inputs
+ (list pkg-config))
+ (inputs
+ (list qtbase-5))
+ (arguments
+ '(#:configure-flags '("-DMYGPO_BUILD_TESTS=ON")
+ ;; TODO: Enable tests when https://github.com/gpodder/gpodder/issues/446
+ ;; is fixed.
+ #:tests? #f))
+ (home-page "https://wiki.gpodder.org/wiki/Libmygpo-qt")
+ (synopsis "Qt/C++ library wrapping the gpodder web service")
+ (description "@code{libmygpo-qt} is a Qt/C++ library wrapping the
+@url{https://gpodder.net} APIs. It allows applications to discover, manage and
+track podcasts.")
+ (license license:lgpl2.1+))))
(define-public python-mygpoclient
(package
deleted file mode 100644
@@ -1,78 +0,0 @@
-From 1b53767b988b339aac8b353327a1542b2a0c0610 Mon Sep 17 00:00:00 2001
-From: Andreas Sturmlechner <andreas.sturmlechner@gmail.com>
-Date: Sun, 15 Apr 2018 22:29:33 +0200
-Subject: [PATCH] Fix build with Qt 5.11_beta3 (dropping qt5_use_modules)
-
----
- CMakeLists.txt | 3 ---
- src/CMakeLists.txt | 8 ++++++--
- tests/CMakeLists.txt | 12 +++++++++---
- 3 files changed, 15 insertions(+), 8 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index eb006d9..fa4b0cb 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -34,9 +34,6 @@ else()
- set( QT_DONT_USE_QTGUI TRUE )
- include( ${QT_USE_FILE} )
-
-- macro(qt5_use_modules)
-- endmacro()
--
- macro(qt_wrap_cpp)
- qt4_wrap_cpp(${ARGN})
- endmacro()
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index 802125b..253e81e 100644
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -79,9 +79,13 @@ QT_WRAP_CPP(LIBMYGPO_QT_MOC_SRC ${LIBMYGPO_QT_MOC_H} )
-
- add_library( ${MYGPO_QT_TARGET_NAME} SHARED ${LIBMYGPO_QT_SRC} ${LIBMYGPO_QT_MOC_SRC} )
-
--target_link_libraries( ${MYGPO_QT_TARGET_NAME} ${QJSON_LIBRARIES} ${QT_QTCORE_LIBRARY} ${QT_QTNETWORK_LIBRARY} )
- set_target_properties( ${MYGPO_QT_TARGET_NAME} PROPERTIES VERSION ${MYGPO_QT_VERSION} SOVERSION ${MYGPO_QT_SONAME} DEFINE_SYMBOL MYGPO_MAKEDLL)
--qt5_use_modules( ${MYGPO_QT_TARGET_NAME} Core Network )
-+
-+if( NOT BUILD_WITH_QT4 )
-+ 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})
-+endif()
-
- install( TARGETS ${MYGPO_QT_TARGET_NAME} EXPORT ${MYGPO_QT_TARGET_NAME}Export DESTINATION ${LIB_INSTALL_DIR} )
-
-diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
-index a3e3223..4f77158 100644
---- a/tests/CMakeLists.txt
-+++ b/tests/CMakeLists.txt
-@@ -11,11 +11,15 @@ include_directories( ${QJSON_INCLUDE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CU
-
- # UrlBuilder library
- add_library( UrlBuilder ${TESTOBJECTS_SRCDIR}/UrlBuilder.cpp ${TESTOBJECTS_SRCDIR}/Config.cpp )
--qt5_use_modules( UrlBuilder Core )
-+if( NOT BUILD_WITH_QT4 )
-+ target_link_libraries( UrlBuilder Qt5::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})
--qt5_use_modules( JsonCreator Core Network )
-+if( NOT BUILD_WITH_QT4 )
-+ target_link_libraries( JsonCreator Qt5::Core Qt5::Network )
-+endif()
-
- set( EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR} )
-
-@@ -25,7 +29,9 @@ 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})
-- qt5_use_modules(${_name} Network Test)
-+ if( NOT BUILD_WITH_QT4 )
-+ target_link_libraries(${_name} Qt5::Network Qt5::Test)
-+ endif()
- endmacro(add_libmygpo_test)
-
- add_libmygpo_test( UrlBuilderTest.cpp )
deleted file mode 100644
@@ -1,51 +0,0 @@
-From 0d76d960727018bddf04c6cc89552af69aaa7e55 Mon Sep 17 00:00:00 2001
-From: Andreas Sturmlechner <andreas.sturmlechner@gmail.com>
-Date: Sun, 15 Apr 2018 22:20:34 +0200
-Subject: [PATCH] Add missing Qt5Network, Qt5Test, make BUILD_WITH_QT4 more
- strict
-
----
- CMakeLists.txt | 22 +++++++++++-----------
- 1 file changed, 11 insertions(+), 11 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 2a1f652..eb006d9 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -5,25 +5,25 @@ 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 no matter if Qt5 was found" OFF)
-+option(BUILD_WITH_QT4 "Build libmygpo-qt with Qt4" OFF)
-
- if( NOT BUILD_WITH_QT4 )
-- find_package(Qt5Core QUIET)
-- if( Qt5Core_DIR )
-- set(MYGPO_QT_VERSION_SUFFIX 5)
--
-- macro(qt_wrap_cpp)
-- qt5_wrap_cpp(${ARGN})
-- endmacro()
-+ if( MYGPO_BUILD_TESTS )
-+ find_package(Qt5 REQUIRED COMPONENTS Core Network Test CONFIG)
-+ else()
-+ find_package(Qt5 REQUIRED COMPONENTS Core Network CONFIG)
- endif()
-+ set(MYGPO_QT_VERSION_SUFFIX 5)
-+
-+ macro(qt_wrap_cpp)
-+ qt5_wrap_cpp(${ARGN})
-+ endmacro()
-
- # pkg-config names of QtCore and QtNetwork are Qt5Core and Qt5Network for
- # Qt5
- set(MYGPO_QT_MAJOR_VERSION "5")
- set(MYGPO_QT4_QJSON_DEP "")
--endif()
--
--if( NOT Qt5Core_DIR )
-+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")
- if( MYGPO_BUILD_TESTS )
new file mode 100644
@@ -0,0 +1,153 @@
+From 42e19dcb6b7c07460f05aa1d4586d5c76236c6d0 Mon Sep 17 00:00:00 2001
+From: Tuomas Nurmi <tuomas@norsumanageri.org>
+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)
+