guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

01/03: gnu: libmygpo-qt: Fix Qt 5.11 build.


From: Efraim Flashner
Subject: 01/03: gnu: libmygpo-qt: Fix Qt 5.11 build.
Date: Sun, 27 May 2018 15:34:16 -0400 (EDT)

efraim pushed a commit to branch master
in repository guix.

commit 01c4869003884fc28b8993077474399b67d7be1c
Author: Pierre Langlois <address@hidden>
Date:   Sun May 27 13:15:41 2018 +0100

    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 <address@hidden>
---
 gnu/local.mk                                       |  2 +
 gnu/packages/music.scm                             |  9 ++-
 gnu/packages/patches/libmygpo-qt-fix-qt-5.11.patch | 78 ++++++++++++++++++++++
 .../patches/libmygpo-qt-missing-qt5-modules.patch  | 51 ++++++++++++++
 4 files changed, 139 insertions(+), 1 deletion(-)

diff --git a/gnu/local.mk b/gnu/local.mk
index 4cdbaec..4d9edc3 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -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          \
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 7e98fa7..cc7926f 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -3846,12 +3846,19 @@ by The Echo Nest.")
                                   "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
diff --git a/gnu/packages/patches/libmygpo-qt-fix-qt-5.11.patch 
b/gnu/packages/patches/libmygpo-qt-fix-qt-5.11.patch
new file mode 100644
index 0000000..69673c9
--- /dev/null
+++ b/gnu/packages/patches/libmygpo-qt-fix-qt-5.11.patch
@@ -0,0 +1,78 @@
+From 1b53767b988b339aac8b353327a1542b2a0c0610 Mon Sep 17 00:00:00 2001
+From: Andreas Sturmlechner <address@hidden>
+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 )
diff --git a/gnu/packages/patches/libmygpo-qt-missing-qt5-modules.patch 
b/gnu/packages/patches/libmygpo-qt-missing-qt5-modules.patch
new file mode 100644
index 0000000..aa9ed2c
--- /dev/null
+++ b/gnu/packages/patches/libmygpo-qt-missing-qt5-modules.patch
@@ -0,0 +1,51 @@
+From 0d76d960727018bddf04c6cc89552af69aaa7e55 Mon Sep 17 00:00:00 2001
+From: Andreas Sturmlechner <address@hidden>
+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 )



reply via email to

[Prev in Thread] Current Thread [Next in Thread]