mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 21:38:07 -05:00
gnu: libmygpo-qt: Fix Qt 5.11 build.
The update to Qt 5.11.0 broke libmygpo-qt. It turned it was using a deprecated CMake function (qt5_use_moduldes). Let's pick up two upstream patches that fix the issue: https://github.com/gpodder/libmygpo-qt/pull/15 As mentioned in the the pull request, there is now a test failure but it looks harmless. * gnu/packages/patches/libmygpo-qt-fix-qt-5.11.patch, gnu/packages/patches/libmygpo-qt-missing-qt5-modules.patch: New files. * gnu/local.mk (dist_patch_DATA): Add them. * gnu/packages/music.scm (libmygpo-qt)[source]: Add patches. [arguments]: Build tests but do not run them. Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
This commit is contained in:
parent
3a69f5f2d3
commit
01c4869003
4 changed files with 139 additions and 1 deletions
|
@ -861,6 +861,8 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/libmad-armv7-thumb-pt2.patch \
|
||||
%D%/packages/patches/libmad-frame-length.patch \
|
||||
%D%/packages/patches/libmad-mips-newgcc.patch \
|
||||
%D%/packages/patches/libmygpo-qt-fix-qt-5.11.patch \
|
||||
%D%/packages/patches/libmygpo-qt-missing-qt5-modules.patch \
|
||||
%D%/packages/patches/libsndfile-armhf-type-checks.patch \
|
||||
%D%/packages/patches/libsndfile-CVE-2017-8361-8363-8365.patch \
|
||||
%D%/packages/patches/libsndfile-CVE-2017-8362.patch \
|
||||
|
|
|
@ -3846,12 +3846,19 @@ (define-public libmygpo-qt
|
|||
"libmygpo-qt/libmygpo-qt." version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1kg18qrq2rsswgzhl65r3mlyx7kpqg4wwnbp4yiv6svvmadmlxl2"))))
|
||||
"1kg18qrq2rsswgzhl65r3mlyx7kpqg4wwnbp4yiv6svvmadmlxl2"))
|
||||
(patches (search-patches "libmygpo-qt-fix-qt-5.11.patch"
|
||||
"libmygpo-qt-missing-qt5-modules.patch"))))
|
||||
(build-system cmake-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("qt" ,qtbase)))
|
||||
(arguments
|
||||
`(#:configure-flags '("-DMYGPO_BUILD_TESTS=ON")
|
||||
;; TODO: Enable tests when https://github.com/gpodder/gpodder/issues/446
|
||||
;; is fixed.
|
||||
#:tests? #f))
|
||||
(home-page "http://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
|
||||
|
|
78
gnu/packages/patches/libmygpo-qt-fix-qt-5.11.patch
Normal file
78
gnu/packages/patches/libmygpo-qt-fix-qt-5.11.patch
Normal file
|
@ -0,0 +1,78 @@
|
|||
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 )
|
51
gnu/packages/patches/libmygpo-qt-missing-qt5-modules.patch
Normal file
51
gnu/packages/patches/libmygpo-qt-missing-qt5-modules.patch
Normal file
|
@ -0,0 +1,51 @@
|
|||
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 )
|
Loading…
Reference in a new issue