* [bug#31608] [PATCH] Fix clementine with Qt 5.11.
@ 2018-05-27 16:39 Pierre Langlois
2018-05-31 15:55 ` bug#31608: " Ludovic Courtès
0 siblings, 1 reply; 2+ messages in thread
From: Pierre Langlois @ 2018-05-27 16:39 UTC (permalink / raw)
To: 31608
[-- Attachment #1: Type: text/plain, Size: 913 bytes --]
Hi Guix!
Here are patches to fix clementine with the recent move to Qt 5.11.
All three packages were using a deprecated CMake directive. In the case
of clementine, it is fixed on the qt5 branch so I thought we'd just
update our snapshot. libmygpo-qt was also fixed upstream so we can pick
up the two patches that fixes the issue [0].
Now libechonest was more problematic as it looks unmaintained. And,
after a bit of digging, it turns out it has been removed from clementine
since June 2016! [1]. The web service it interfaces with isn't
available anymore. So let's just remove this package as it's obsolete.
I should have dropped it as a dependency ages ago, the released qt4
version of clementine required it but I didn't notice it was obsolete
then, sorry about that!
Thanks,
Pierre
[0]: https://github.com/gpodder/libmygpo-qt/pull/15
[1]: https://github.com/clementine-player/Clementine/issues/5384
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-gnu-libmygpo-qt-Fix-Qt-5.11-build.patch --]
[-- Type: text/x-patch, Size: 8666 bytes --]
From e4690cb3802d3ff074d573e1cb612e7567c4926f Mon Sep 17 00:00:00 2001
From: Pierre Langlois <pierre.langlois@gmx.com>
Date: Sun, 27 May 2018 13:15:41 +0100
Subject: [PATCH 1/3] 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.
---
gnu/local.mk | 2 +
gnu/packages/music.scm | 9 ++-
.../patches/libmygpo-qt-fix-qt-5.11.patch | 78 +++++++++++++++++++
.../libmygpo-qt-missing-qt5-modules.patch | 51 ++++++++++++
4 files changed, 139 insertions(+), 1 deletion(-)
create mode 100644 gnu/packages/patches/libmygpo-qt-fix-qt-5.11.patch
create mode 100644 gnu/packages/patches/libmygpo-qt-missing-qt5-modules.patch
diff --git a/gnu/local.mk b/gnu/local.mk
index 4cdbaec1d..4d9edc354 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 7e98fa74c..cc7926f85 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 000000000..69673c90e
--- /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 <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 )
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 000000000..aa9ed2c0f
--- /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 <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 )
--
2.17.0
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: 0002-gnu-libechonest-Remove-package.patch --]
[-- Type: text/x-patch, Size: 2257 bytes --]
From 6a109384b6243468af158c3c7fe4c5eded21765a Mon Sep 17 00:00:00 2001
From: Pierre Langlois <pierre.langlois@gmx.com>
Date: Sun, 27 May 2018 15:58:30 +0100
Subject: [PATCH 2/3] gnu: libechonest: Remove package.
It appears the "EchoNest" service isn't available anymore which makes this
package obsolete.
* gnu/packages/music.scm (libechonest): Remove variable.
(clementine)[inputs]: Remove libechonest.
---
gnu/packages/music.scm | 28 ----------------------------
1 file changed, 28 deletions(-)
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index cc7926f85..8f68a29db 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -262,7 +262,6 @@ score, keyboard, guitar, drum and controller views.")
("gst-plugins-base" ,gst-plugins-base)
("libcdio" ,libcdio)
("libmygpo-qt" ,libmygpo-qt)
- ("libechonest" ,libechonest)
;; TODO: Package libgpod.
("libmtp" ,libmtp)
("libxml2" ,libxml2)
@@ -3809,33 +3808,6 @@ OSC connections.")
the electronic or dubstep genre.")
(license license:gpl3+)))
-(define-public libechonest
- (package
- (name "libechonest")
- (version "2.3.1")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "git://anongit.kde.org/libechonest.git")
- (commit version)))
- (file-name (string-append name "-" version "-checkout"))
- (sha256
- (base32
- "0xbavf9f355dl1d3qv59x4ryypqrdanh9xdvw2d0q66l008crdkq"))))
- (build-system cmake-build-system)
- (arguments
- '(#:tests? #f ; Tests require Internet access
- #:configure-flags '("-DBUILD_WITH_QT4=OFF")))
- (inputs
- `(("qtbase" ,qtbase)
- ("qjson" ,qjson)))
- (home-page "https://projects.kde.org/projects/playground/libs/libechonest")
- (synopsis "C++/Qt classes to interface with The Echo Nest API")
- (description "@code{libechonest} is a collection of C++/Qt classes
-designed to make a developer's life easy when trying to use the APIs provided
-by The Echo Nest.")
- (license license:gpl2+)))
-
(define-public libmygpo-qt
(package
(name "libmygpo-qt")
--
2.17.0
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #4: 0003-gnu-clementine-Update-snapshot.patch --]
[-- Type: text/x-patch, Size: 1783 bytes --]
From a98f25170b72bc3df052e8591097bb1ae89c5a13 Mon Sep 17 00:00:00 2001
From: Pierre Langlois <pierre.langlois@gmx.com>
Date: Sat, 21 Apr 2018 15:11:04 +0100
Subject: [PATCH 3/3] gnu: clementine: Update snapshot.
* gnu/package/music.scm (clementine): Update snapshot to 4619a4c1.
---
gnu/packages/music.scm | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 8f68a29db..7ae0d9a36 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -187,20 +187,20 @@ score, keyboard, guitar, drum and controller views.")
;; We don't use the latest release because it depends on Qt4. Instead we
;; download the sources from the tip of the "qt5" branch.
(define-public clementine
- (let ((commit "0a59257dc334b8df60a4d7d90b04f1766747efcf")
- (revision "1"))
+ (let ((commit "4619a4c1ab3b17b13d4b2327ad477912917eaf36")
+ (revision "2"))
(package
(name "clementine")
- (version (string-append "1.3.1-" revision "." (string-take commit 7)))
+ (version (git-version "1.3.1" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/clementine-player/Clementine.git")
(commit commit)))
- (file-name (string-append name "-" version "-checkout"))
+ (file-name (git-file-name name version))
(sha256
(base32
- "0cdcj7di7j9jgzc1ihjna1a5df64f9hnmx7b9kh8rlg76hc0l0hi"))
+ "1hximk3q0p8nw8is5w7215xgkb7k4flnfyr0pdz9svfwvcm05w1i"))
(modules '((guix build utils)))
(snippet
'(for-each
--
2.17.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
* bug#31608: [PATCH] Fix clementine with Qt 5.11.
2018-05-27 16:39 [bug#31608] [PATCH] Fix clementine with Qt 5.11 Pierre Langlois
@ 2018-05-31 15:55 ` Ludovic Courtès
0 siblings, 0 replies; 2+ messages in thread
From: Ludovic Courtès @ 2018-05-31 15:55 UTC (permalink / raw)
To: Pierre Langlois; +Cc: 31608-done, Efraim Flashner
Hello Pierre,
Efraim kindly applied those 3 patches on your behalf and forgot to tell
you. :-)
Thank you!
Ludo’.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2018-05-31 15:56 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-27 16:39 [bug#31608] [PATCH] Fix clementine with Qt 5.11 Pierre Langlois
2018-05-31 15:55 ` bug#31608: " Ludovic Courtès
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.