diff mbox series

[bug#38532,08/11] gnu: Add kmplayer.

Message ID 20191208164355.7374-8-h.goebel@crazy-compilers.com
State Accepted
Headers show
Series Add audiofile and KDE mulitmedia applications. | expand

Commit Message

Hartmut Goebel Dec. 8, 2019, 4:43 p.m. UTC
`guix lint` reports two CVEs, both are unrelated:
- CVE-2018-5200: for vendor "pandora" and some 4.2.2.x version
- CVE-2019-9133: windows only (I assume it it alsow relates to the "pandora"
  vendor, since the version the CVE refers to as "solving the issue" does not
  exist at KDE.)

* gnu/packages/kde-multimedia.scm (kmplayer): New variable.
* gnu/packages/patches/kmplayer-aarch64.patch,
  gnu/packages/patches/kmplayer-upstream_Fix-build-with-Qt-5.9.patch: New
  files.
* gnu/local.mk: Add them.
---
 gnu/local.mk                                  |  2 +
 gnu/packages/kde-multimedia.scm               | 66 +++++++++++++++++++
 gnu/packages/patches/kmplayer-aarch64.patch   | 57 ++++++++++++++++
 ...layer-upstream_Fix-build-with-Qt-5.9.patch | 42 ++++++++++++
 4 files changed, 167 insertions(+)
 create mode 100644 gnu/packages/patches/kmplayer-aarch64.patch
 create mode 100644 gnu/packages/patches/kmplayer-upstream_Fix-build-with-Qt-5.9.patch
diff mbox series

Patch

diff --git a/gnu/local.mk b/gnu/local.mk
index ecff13b540..6b631f945f 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1037,6 +1037,8 @@  dist_patch_DATA =						\
   %D%/packages/patches/kmod-module-directory.patch		\
   %D%/packages/patches/kmscon-runtime-keymap-switch.patch	\
   %D%/packages/patches/kpackage-allow-external-paths.patch	\
+  %D/packages/patches/kmplayer-aarch64.patch			\
+  %D/packages/patches/kmplayer-upstream_Fix-build-with-Qt-5.9.patch	\
   %D%/packages/patches/kpmcore-fix-tests.patch			\
   %D%/packages/patches/kpmcore-remove-broken-test.patch		\
   %D%/packages/patches/kobodeluxe-paths.patch			\
diff --git a/gnu/packages/kde-multimedia.scm b/gnu/packages/kde-multimedia.scm
index fad5b75b2a..17f4cb7e06 100644
--- a/gnu/packages/kde-multimedia.scm
+++ b/gnu/packages/kde-multimedia.scm
@@ -335,3 +335,69 @@  recording inputs, and set other hardware options.
 
 This package is part of the KDE multimedia module.")
     (license (list license:gpl2+ license:lgpl2.0+ license:fdl1.2+))))
+
+(define-public kmplayer
+  (package
+    (name "kmplayer")
+    (version "0.12.0b")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/kmplayer/0.12"
+                           "/kmplayer-" version ".tar.bz2"))
+       (sha256
+        (base32 "0wzdxym4fc83wvqyhcwid65yv59a2wvp1lq303cn124mpnlwx62y"))
+       (patches (search-patches
+                 "kmplayer-aarch64.patch"
+                 "kmplayer-upstream_Fix-build-with-Qt-5.9.patch"))))
+    (properties `((tags . ("Desktop" "KDE" "Multimedia"))))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("pkg-config" ,pkg-config)
+       ("kdoctools" ,kdoctools)))
+    (inputs
+     `(("kconfig" ,kconfig)
+       ("kcoreaddons" ,kcoreaddons)
+       ("kdelibs4support" ,kdelibs4support)
+       ("ki18n" ,ki18n)
+       ("kinit" ,kinit)
+       ("kio" ,kio)
+       ("kparts" ,kparts)
+       ("kmediaplayer" ,kmediaplayer)
+       ("kwidgetsaddons" ,kwidgetsaddons)
+       ("libxcb" ,libxcb) ;; FIXME: why does cmake not find XEVIE and XPRINT?
+       ("oxygen-icons" ,oxygen-icons) ; default icon set
+       ("phonon" ,phonon)
+       ("qtbase" ,qtbase)
+       ("cairo" ,cairo)
+       ("qtsvg" ,qtsvg)
+       ("qtx11extras" ,qtx11extras)
+       ("xcb-util" ,xcb-util)
+       ("xcb-util-cursor" ,xcb-util-cursor)
+       ("xcb-util-errors" ,xcb-util-errors)
+       ("xcb-util-image" ,xcb-util-image)
+       ("xcb-util-keysyms" ,xcb-util-keysyms)
+       ("xcb-util-wm" ,xcb-util-wm)))
+    (arguments
+     `(#:configure-flags
+       (list (string-append
+              "-DCMAKE_CXX_FLAGS=-I"
+              (assoc-ref %build-inputs "qtx11extras") "/include/qt5"))))
+    (home-page "https://kde.org/applications/multimedia/org.kde.kmplayer")
+    (synopsis "Media player using mplayer/phonon as backend")
+    (description "Kmplayer can play all the audio/video supported by
+mplayer/phonon from a local file or URL and be embedded in Konqueror and
+KHTML.  It also plays DVDs.
+
+Some features:
+@itemize
+@item play DVD/VCD movies (from file or url and from a video device)
+@item embed inside konqueror (movie is played inside konqueror)
+@item embed inside khtml (movie playback inside a html page)
+@item Movie recording using mencoder (part of the mplayer package)
+@item No video during recording, but you can always open a new window and play it
+@item Broadcasting, http streaming, using ffserver/ffmpeg
+@item For TV sources, you need v4lctl (part of the xawtv package)
+@end itemize")
+    (license (list license:gpl2+ license:lgpl2.0+ license:fdl1.2+))))
diff --git a/gnu/packages/patches/kmplayer-aarch64.patch b/gnu/packages/patches/kmplayer-aarch64.patch
new file mode 100644
index 0000000000..76f713be96
--- /dev/null
+++ b/gnu/packages/patches/kmplayer-aarch64.patch
@@ -0,0 +1,57 @@ 
+Index: b/src/moz-sdk/prcpucfg.h
+===================================================================
+--- a/src/moz-sdk/prcpucfg.h
++++ b/src/moz-sdk/prcpucfg.h
+@@ -288,6 +288,52 @@
+ #define PR_BYTES_PER_WORD_LOG2  3
+ #define PR_BYTES_PER_DWORD_LOG2 3
+ 
++#elif defined(__aarch64__)
++
++#define IS_LITTLE_ENDIAN 1
++#undef  IS_BIG_ENDIAN
++#define IS_64
++
++#define PR_BYTES_PER_BYTE   1
++#define PR_BYTES_PER_SHORT  2
++#define PR_BYTES_PER_INT    4
++#define PR_BYTES_PER_INT64  8
++#define PR_BYTES_PER_LONG   8
++#define PR_BYTES_PER_FLOAT  4
++#define PR_BYTES_PER_DOUBLE 8
++#define PR_BYTES_PER_WORD   8
++#define PR_BYTES_PER_DWORD  8
++
++#define PR_BITS_PER_BYTE    8
++#define PR_BITS_PER_SHORT   16
++#define PR_BITS_PER_INT     32
++#define PR_BITS_PER_INT64   64
++#define PR_BITS_PER_LONG    64
++#define PR_BITS_PER_FLOAT   32
++#define PR_BITS_PER_DOUBLE  64
++#define PR_BITS_PER_WORD    64
++
++#define PR_BITS_PER_BYTE_LOG2   3
++#define PR_BITS_PER_SHORT_LOG2  4
++#define PR_BITS_PER_INT_LOG2    5
++#define PR_BITS_PER_INT64_LOG2  6
++#define PR_BITS_PER_LONG_LOG2   6
++#define PR_BITS_PER_FLOAT_LOG2  5
++#define PR_BITS_PER_DOUBLE_LOG2 6
++#define PR_BITS_PER_WORD_LOG2   6
++
++#define PR_ALIGN_OF_SHORT   2
++#define PR_ALIGN_OF_INT     4
++#define PR_ALIGN_OF_LONG    8
++#define PR_ALIGN_OF_INT64   8
++#define PR_ALIGN_OF_FLOAT   4
++#define PR_ALIGN_OF_DOUBLE  8
++#define PR_ALIGN_OF_POINTER 8
++#define PR_ALIGN_OF_WORD    8
++
++#define PR_BYTES_PER_WORD_LOG2  3
++#define PR_BYTES_PER_DWORD_LOG2 3
++
+ #elif defined(__mc68000__)
+ 
+ #undef  IS_LITTLE_ENDIAN
diff --git a/gnu/packages/patches/kmplayer-upstream_Fix-build-with-Qt-5.9.patch b/gnu/packages/patches/kmplayer-upstream_Fix-build-with-Qt-5.9.patch
new file mode 100644
index 0000000000..6a40dbe347
--- /dev/null
+++ b/gnu/packages/patches/kmplayer-upstream_Fix-build-with-Qt-5.9.patch
@@ -0,0 +1,42 @@ 
+From 3def65075c09af4961cd399e8e78ed78cca72e65 Mon Sep 17 00:00:00 2001
+From: Wolfgang Bauer <wbauer@tmo.at>
+Date: Wed, 11 Oct 2017 22:16:02 +0200
+Subject: [PATCH] Fix build with Qt 5.9
+
+Summary:
+moc 5.9 errors out when building:
+Error: Plugin Metadata file "" could not be opened: file to open is a directory
+
+Same issue and fix as https://phabricator.kde.org/D5392 for khtml.
+
+CCBUG: 377490
+
+Test Plan: builds fine now with Qt 5.9.0rc and also earlier versions.
+
+Reviewers: vriezen, pino
+
+Reviewed By: pino
+
+Subscribers: pino
+
+Differential Revision: https://phabricator.kde.org/D5985
+---
+ src/kmplayer_part.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/kmplayer_part.h b/src/kmplayer_part.h
+index f90f85d..0fddbaa 100644
+--- a/src/kmplayer_part.h
++++ b/src/kmplayer_part.h
+@@ -36,7 +36,7 @@ namespace KMPlayer {
+ 
+ class KMPlayerFactory : public KPluginFactory {
+     Q_OBJECT
+-    Q_PLUGIN_METADATA(IID "org.kde.KPluginFactory" FILE "")
++    Q_PLUGIN_METADATA(IID "org.kde.KPluginFactory")
+     Q_INTERFACES(KPluginFactory)
+ public:
+     KMPlayerFactory();
+-- 
+2.14.2
+