pkgsrc-WIP-changes archive

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

clementine: add new, incomplete package.



Module Name:	pkgsrc-wip
Committed By:	Thomas Klausner <wiz%NetBSD.org@localhost>
Pushed By:	wiz
Date:		Fri Aug 5 16:01:17 2016 +0200
Changeset:	1bac127b4a543f5ca063596658d06449df8e60ba

Modified Files:
	Makefile
Added Files:
	clementine/DESCR
	clementine/Makefile
	clementine/PLIST
	clementine/TODO
	clementine/distinfo
	clementine/patches/patch-CMakeLists.txt
	clementine/patches/patch-src_CMakeLists.txt
	clementine/patches/patch-src_main.cpp
	clementine/patches/patch-src_songinfo_artistinfoview.cpp
	clementine/patches/patch-src_songinfo_songkickconcerts.cpp

Log Message:
clementine: add new, incomplete package.

A music player inspired by amarok 1.4.

On NetBSD-current, it has lots of implicit casting errors
and this one, which has me stumped:

In file included from /usr/include/sys/types.h:354:0,
                 from /scratch/wip/clementine/work/.buildlink/include/cdio/types.h:35,
                 from /scratch/wip/clementine/work/.buildlink/include/cdio/cdio.h:36,
                 from /scratch/wip/clementine/work/Clementine-1.3.1/src/ripper/ripper.h:21,
                 from /scratch/wip/clementine/work/Clementine-1.3.1/src/ripper/ripper.cpp:18:
/usr/include/g++/ext/concurrence.h: At global scope:
/usr/include/g++/ext/concurrence.h:122:34: error: invalid conversion from 'void*' to 'pthread_t {aka __pthread_st*}' [-fpermissive]
     __gthread_mutex_t _M_mutex = __GTHREAD_MUTEX_INIT;
                                  ^
/usr/include/g++/ext/concurrence.h:122:34: error: invalid conversion from 'void*' to '__pthread_st**' [-fpermissive]
/usr/include/g++/ext/concurrence.h:255:32: error: invalid conversion from 'void*' to '__pthread_st*' [-fpermissive]
     __gthread_cond_t _M_cond = __GTHREAD_COND_INIT;
                                ^
/usr/include/g++/ext/concurrence.h:255:32: error: invalid conversion from 'void*' to '__pthread_st**' [-fpermissive]
/usr/include/g++/ext/concurrence.h:255:32: error: invalid conversion from 'void*' to 'pthread_mutex_t* {aka __pthread_mutex_st*}' [-fpermissive]

To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=1bac127b4a543f5ca063596658d06449df8e60ba

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

diffstat:
 Makefile                                           |  4 +-
 clementine/DESCR                                   |  4 ++
 clementine/Makefile                                | 55 +++++++++++++++
 clementine/PLIST                                   |  1 +
 clementine/TODO                                    | 18 +++++
 clementine/distinfo                                | 11 +++
 clementine/patches/patch-CMakeLists.txt            | 28 ++++++++
 clementine/patches/patch-src_CMakeLists.txt        | 58 ++++++++++++++++
 clementine/patches/patch-src_main.cpp              | 27 ++++++++
 .../patches/patch-src_songinfo_artistinfoview.cpp  | 32 +++++++++
 .../patch-src_songinfo_songkickconcerts.cpp        | 79 ++++++++++++++++++++++
 11 files changed, 314 insertions(+), 3 deletions(-)

diffs:
diff --git a/Makefile b/Makefile
index 7c4f191..1918e9a 100644
--- a/Makefile
+++ b/Makefile
@@ -369,6 +369,7 @@ SUBDIR+=	classgen
 SUBDIR+=	classic-mac-font-pack
 SUBDIR+=	claws-mail-fancy
 SUBDIR+=	clearsans-ttf
+SUBDIR+=	clementine
 SUBDIR+=	clfswm
 SUBDIR+=	clhep
 SUBDIR+=	cli-git
@@ -3086,9 +3087,6 @@ SUBDIR+=	py-mark
 SUBDIR+=	py-markovchain
 SUBDIR+=	py-math-snappy
 SUBDIR+=	py-mathjspy
-SUBDIR+=	py-matplotlib
-SUBDIR+=	py-matplotlib-gtk2
-SUBDIR+=	py-matplotlib-tk
 SUBDIR+=	py-matplottheme
 SUBDIR+=	py-mave
 SUBDIR+=	py-mcerp
diff --git a/clementine/DESCR b/clementine/DESCR
new file mode 100644
index 0000000..601ad26
--- /dev/null
+++ b/clementine/DESCR
@@ -0,0 +1,4 @@
+Clementine is a modern music player and library organizer
+
+It is inspired by Amarok 1.4, focusing on a fast and easy-to-use
+interface for searching and playing your music.
diff --git a/clementine/Makefile b/clementine/Makefile
new file mode 100644
index 0000000..4c2be7b
--- /dev/null
+++ b/clementine/Makefile
@@ -0,0 +1,55 @@
+# $NetBSD$
+
+DISTNAME=	clementine-1.3.1
+CATEGORIES=	audio
+MASTER_SITES=	${MASTER_SITE_GITHUB:=clementine-player/}
+DIST_SUBDIR=	${GITHUB_PROJECT}
+GITHUB_PROJECT=	Clementine
+
+MAINTAINER=	pkgsrc-users%NetBSD.org@localhost
+HOMEPAGE=	https://www.clementine-player.org/
+COMMENT=	Cross-platform music player inspired by Amarok 1.4
+LICENSE=	gnu-gpl-v3
+
+WRKSRC=		${WRKDIR}/${DISTNAME:S/c/C/}
+USE_CMAKE=	yes
+USE_TOOLS+=	pkg-config
+USE_LANGUAGES=	c c++
+
+PKGCONFIG_OVERRIDE+=	3rdparty/libprojectm/libprojectM.pc.in
+
+LDFLAGS.NetBSD+=	-lexecinfo # for backtrace()
+
+#   libgpod (optional, for iPod support)
+#   libplist (optional, for iPod support)
+#   libusbmuxd (optional, for iPod support)
+#   libmtp (optional, for MTP support)
+#   libgio (optional, for various device support)
+#   libcdio (optional, for CD support)
+.include "../../misc/libcdio/buildlink3.mk"
+#   libspotify (optional, for Spotify support)
+#   libcrypto++ (optional, for Spotify support)
+#   libsparsehash (optional, for Google Drive/Dropbox/Box/Skydrive support)
+#   libpulse (optional, for choosing output devices)
+
+.include "../../devel/boost-libs/buildlink3.mk"
+.include "../../devel/gettext-lib/buildlink3.mk"
+.include "../../multimedia/gstreamer1/buildlink3.mk"
+.include "../../multimedia/gst-plugins1-base/buildlink3.mk"
+.include "../../audio/liblastfm/buildlink3.mk"
+.include "../../devel/glib2/buildlink3.mk"
+.include "../../x11/qt4-libs/buildlink3.mk"
+.include "../../x11/qt4-tools/buildlink3.mk"
+.include "../../x11/qt4-qdbus/buildlink3.mk"
+.include "../../audio/taglib/buildlink3.mk"
+.include "../../audio/chromaprint/buildlink3.mk"
+.include "../../graphics/glew/buildlink3.mk"
+.include "../../devel/qjson/buildlink3.mk"
+.include "../../databases/sqlite3/buildlink3.mk"
+.include "../../devel/protobuf/buildlink3.mk"
+.include "../../security/qca2/buildlink3.mk"
+# all below here supposedly optional, but not really
+.include "../../security/crypto++/buildlink3.mk"
+.include "../../textproc/libxml2/buildlink3.mk"
+.include "../../audio/pulseaudio/buildlink3.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/clementine/PLIST b/clementine/PLIST
new file mode 100644
index 0000000..48d96a5
--- /dev/null
+++ b/clementine/PLIST
@@ -0,0 +1 @@
+@comment $NetBSD$
diff --git a/clementine/TODO b/clementine/TODO
new file mode 100644
index 0000000..407356e
--- /dev/null
+++ b/clementine/TODO
@@ -0,0 +1,18 @@
+Lots of implicit cast errors and a thread initializer issue in a
+header in the NetBSD base system:
+
+In file included from /usr/include/sys/types.h:354:0,
+                 from /scratch/wip/clementine/work/.buildlink/include/cdio/types.h:35,
+                 from /scratch/wip/clementine/work/.buildlink/include/cdio/cdio.h:36,
+                 from /scratch/wip/clementine/work/Clementine-1.3.1/src/ripper/ripper.h:21,
+                 from /scratch/wip/clementine/work/Clementine-1.3.1/src/ripper/ripper.cpp:18:
+/usr/include/g++/ext/concurrence.h: At global scope:
+/usr/include/g++/ext/concurrence.h:122:34: error: invalid conversion from 'void*' to 'pthread_t {aka __pthread_st*}' [-fpermissive]
+     __gthread_mutex_t _M_mutex = __GTHREAD_MUTEX_INIT;
+                                  ^
+/usr/include/g++/ext/concurrence.h:122:34: error: invalid conversion from 'void*' to '__pthread_st**' [-fpermissive]
+/usr/include/g++/ext/concurrence.h:255:32: error: invalid conversion from 'void*' to '__pthread_st*' [-fpermissive]
+     __gthread_cond_t _M_cond = __GTHREAD_COND_INIT;
+                                ^
+/usr/include/g++/ext/concurrence.h:255:32: error: invalid conversion from 'void*' to '__pthread_st**' [-fpermissive]
+/usr/include/g++/ext/concurrence.h:255:32: error: invalid conversion from 'void*' to 'pthread_mutex_t* {aka __pthread_mutex_st*}' [-fpermissive]
diff --git a/clementine/distinfo b/clementine/distinfo
new file mode 100644
index 0000000..dc2c622
--- /dev/null
+++ b/clementine/distinfo
@@ -0,0 +1,11 @@
+$NetBSD$
+
+SHA1 (Clementine/clementine-1.3.1.tar.gz) = caf50b46551f2878a6e2e01633cf283ca4f37ffe
+RMD160 (Clementine/clementine-1.3.1.tar.gz) = fb5780599a9af524b54c0e7b04f4721eb56ddae1
+SHA512 (Clementine/clementine-1.3.1.tar.gz) = 1942a046be24a583b5e2095dd39dc736c1b14a47dc4aad61d6252c1fccf745c26d7b35da907a220d5dc8c0736f5b589d050ed9582de343aa3cb5abc607001790
+Size (Clementine/clementine-1.3.1.tar.gz) = 8501827 bytes
+SHA1 (patch-CMakeLists.txt) = f17c67d9b86b131a176d0afb9c603ded5a5201ed
+SHA1 (patch-src_CMakeLists.txt) = 2b117f4736cc1a7c278faabf1c5d590ddaa26d22
+SHA1 (patch-src_main.cpp) = 8e7f0be2f1a8059277042e63557a2e7d3dbca1ca
+SHA1 (patch-src_songinfo_artistinfoview.cpp) = cfd73d040cfa34761b25d675537d1e3fe0a9dc19
+SHA1 (patch-src_songinfo_songkickconcerts.cpp) = ee8e7b053ffa0c0c283dfbeb9bdb41ba57b26485
diff --git a/clementine/patches/patch-CMakeLists.txt b/clementine/patches/patch-CMakeLists.txt
new file mode 100644
index 0000000..c360813
--- /dev/null
+++ b/clementine/patches/patch-CMakeLists.txt
@@ -0,0 +1,28 @@
+$NetBSD$
+
+Remove unnecessary fatal error.
+
+Remove echonest support, see
+https://github.com/clementine-player/Clementine/commit/a8a0f2e4fdd3d4b2fd23b8628a3abc27c290d01d
+
+--- CMakeLists.txt.orig	2016-04-19 15:08:35.000000000 +0000
++++ CMakeLists.txt
+@@ -275,8 +275,6 @@ optional_component(LIBPULSE ON "Pulse au
+ optional_component(VISUALISATIONS ON "Visualisations")
+ 
+ if(NOT HAVE_SPOTIFY_BLOB AND NOT CRYPTOPP_FOUND)
+-  message(FATAL_ERROR "Either crypto++ must be available or the non-GPL Spotify "
+-          "code must be compiled in")
+ elseif(CRYPTOPP_FOUND)
+   set(HAVE_CRYPTOPP ON)
+   set(HAVE_SPOTIFY_DOWNLOADER ON)
+@@ -365,9 +363,6 @@ else (USE_SYSTEM_QXT)
+   endif (NOT APPLE)
+ endif (USE_SYSTEM_QXT)
+ 
+-find_path(ECHONEST_INCLUDE_DIRS echonest/echonest_export.h)
+-find_library(ECHONEST_LIBRARIES echonest)
+-
+ # Use system gmock if it's available
+ # We need to look for both gmock and gtest
+ find_path(GMOCK_INCLUDE_DIRS gmock/gmock.h)
diff --git a/clementine/patches/patch-src_CMakeLists.txt b/clementine/patches/patch-src_CMakeLists.txt
new file mode 100644
index 0000000..050918d
--- /dev/null
+++ b/clementine/patches/patch-src_CMakeLists.txt
@@ -0,0 +1,58 @@
+$NetBSD$
+
+Remove echonest support, see
+https://github.com/clementine-player/Clementine/commit/a8a0f2e4fdd3d4b2fd23b8628a3abc27c290d01d
+
+--- src/CMakeLists.txt.orig	2016-04-19 15:08:35.000000000 +0000
++++ src/CMakeLists.txt
+@@ -35,7 +35,6 @@ include_directories(${LIBPROJECTM_INCLUD
+ include_directories(${QTSINGLEAPPLICATION_INCLUDE_DIRS})
+ include_directories(${QTIOCOMPRESSOR_INCLUDE_DIRS})
+ include_directories(${QXT_INCLUDE_DIRS})
+-include_directories(${ECHONEST_INCLUDE_DIRS})
+ include_directories(${SHA2_INCLUDE_DIRS})
+ include_directories(${CHROMAPRINT_INCLUDE_DIRS})
+ include_directories(${MYGPOQT_INCLUDE_DIRS})
+@@ -297,8 +296,6 @@ set(SOURCES
+   songinfo/artistinfoview.cpp
+   songinfo/collapsibleinfoheader.cpp
+   songinfo/collapsibleinfopane.cpp
+-  songinfo/echonestbiographies.cpp
+-  songinfo/echonestimages.cpp
+   songinfo/songinfobase.cpp
+   songinfo/songinfofetcher.cpp
+   songinfo/songinfoprovider.cpp
+@@ -586,8 +583,6 @@ set(HEADERS
+   songinfo/artistinfoview.h
+   songinfo/collapsibleinfoheader.h
+   songinfo/collapsibleinfopane.h
+-  songinfo/echonestbiographies.h
+-  songinfo/echonestimages.h
+   songinfo/songinfobase.h
+   songinfo/songinfofetcher.h
+   songinfo/songinfoprovider.h
+@@ -822,16 +817,12 @@ optional_source(HAVE_LIBLASTFM
+     internet/lastfm/lastfmcompat.cpp
+     internet/lastfm/lastfmservice.cpp
+     internet/lastfm/lastfmsettingspage.cpp
+-    songinfo/echonestsimilarartists.cpp
+-    songinfo/echonesttags.cpp
+     songinfo/lastfmtrackinfoprovider.cpp
+     songinfo/tagwidget.cpp
+   HEADERS
+     covers/lastfmcoverprovider.h
+     internet/lastfm/lastfmservice.h
+     internet/lastfm/lastfmsettingspage.h
+-    songinfo/echonestsimilarartists.h
+-    songinfo/echonesttags.h
+     songinfo/lastfmtrackinfoprovider.h
+     songinfo/tagwidget.h
+   UI
+@@ -1241,7 +1232,6 @@ target_link_libraries(clementine_lib
+   ${TAGLIB_LIBRARIES}
+   ${MYGPOQT_LIBRARIES}
+   ${CHROMAPRINT_LIBRARIES}
+-  ${ECHONEST_LIBRARIES}
+   ${GOBJECT_LIBRARIES}
+   ${GLIB_LIBRARIES}
+   ${GIO_LIBRARIES}
diff --git a/clementine/patches/patch-src_main.cpp b/clementine/patches/patch-src_main.cpp
new file mode 100644
index 0000000..f9ae792
--- /dev/null
+++ b/clementine/patches/patch-src_main.cpp
@@ -0,0 +1,27 @@
+$NetBSD$
+
+Remove echonest support, see
+https://github.com/clementine-player/Clementine/commit/a8a0f2e4fdd3d4b2fd23b8628a3abc27c290d01d
+
+--- src/main.cpp.orig	2016-04-19 15:08:35.000000000 +0000
++++ src/main.cpp
+@@ -76,8 +76,6 @@
+ #include <glib.h>
+ #include <gst/gst.h>
+ 
+-#include <echonest/Config.h>
+-
+ #ifdef Q_OS_DARWIN
+ #include <sys/resource.h>
+ #include <sys/sysctl.h>
+@@ -440,10 +438,6 @@ int main(int argc, char* argv[]) {
+   Application app;
+   app.set_language_name(language);
+ 
+-  Echonest::Config::instance()->setAPIKey("DFLFLJBUF4EGTXHIG");
+-  Echonest::Config::instance()->setNetworkAccessManager(
+-      new NetworkAccessManager);
+-
+   // Network proxy
+   QNetworkProxyFactory::setApplicationProxyFactory(
+       NetworkProxyFactory::Instance());
diff --git a/clementine/patches/patch-src_songinfo_artistinfoview.cpp b/clementine/patches/patch-src_songinfo_artistinfoview.cpp
new file mode 100644
index 0000000..f32ced3
--- /dev/null
+++ b/clementine/patches/patch-src_songinfo_artistinfoview.cpp
@@ -0,0 +1,32 @@
+$NetBSD$
+
+Remove echonest support, see
+https://github.com/clementine-player/Clementine/commit/a8a0f2e4fdd3d4b2fd23b8628a3abc27c290d01d
+
+--- src/songinfo/artistinfoview.cpp.orig	2016-04-19 15:08:35.000000000 +0000
++++ src/songinfo/artistinfoview.cpp
+@@ -16,24 +16,16 @@
+ */
+ 
+ #include "artistinfoview.h"
+-#include "echonestbiographies.h"
+-#include "echonestimages.h"
+ #include "songinfofetcher.h"
+ #include "songkickconcerts.h"
+ #include "widgets/prettyimageview.h"
+ 
+ #ifdef HAVE_LIBLASTFM
+-#include "echonestsimilarartists.h"
+-#include "echonesttags.h"
+ #endif
+ 
+ ArtistInfoView::ArtistInfoView(QWidget* parent) : SongInfoBase(parent) {
+-  fetcher_->AddProvider(new EchoNestBiographies);
+-  fetcher_->AddProvider(new EchoNestImages);
+   fetcher_->AddProvider(new SongkickConcerts);
+ #ifdef HAVE_LIBLASTFM
+-  fetcher_->AddProvider(new EchoNestSimilarArtists);
+-  fetcher_->AddProvider(new EchoNestTags);
+ #endif
+ }
+ 
diff --git a/clementine/patches/patch-src_songinfo_songkickconcerts.cpp b/clementine/patches/patch-src_songinfo_songkickconcerts.cpp
new file mode 100644
index 0000000..2ccec70
--- /dev/null
+++ b/clementine/patches/patch-src_songinfo_songkickconcerts.cpp
@@ -0,0 +1,79 @@
+$NetBSD$
+
+Remove echonest support, see
+https://github.com/clementine-player/Clementine/commit/a8a0f2e4fdd3d4b2fd23b8628a3abc27c290d01d
+
+--- src/songinfo/songkickconcerts.cpp.orig	2016-04-19 15:08:35.000000000 +0000
++++ src/songinfo/songkickconcerts.cpp
+@@ -21,9 +21,6 @@
+ #include <QVBoxLayout>
+ #include <QXmlStreamWriter>
+ 
+-#include <echonest/Artist.h>
+-#include <echonest/TypeInformation.h>
+-
+ #include <qjson/parser.h>
+ 
+ #include "core/closure.h"
+@@ -47,57 +44,13 @@ SongkickConcerts::SongkickConcerts() {
+ }
+ 
+ void SongkickConcerts::FetchInfo(int id, const Song& metadata) {
+-  Echonest::Artist::SearchParams params;
+-  params.push_back(
+-      qMakePair(Echonest::Artist::Name, QVariant(metadata.artist())));
+-  qLog(Debug) << "Params:" << params;
+-  QNetworkReply* reply = Echonest::Artist::search(
+-      params,
+-      Echonest::ArtistInformation(Echonest::ArtistInformation::NoInformation,
+-                                  QStringList() << kSongkickArtistBucket));
+-  qLog(Debug) << reply->request().url();
+-  NewClosure(reply, SIGNAL(finished()), this,
+-             SLOT(ArtistSearchFinished(QNetworkReply*, int)), reply, id);
++  emit Finished(id);
++  return;
+ }
+ 
+ void SongkickConcerts::ArtistSearchFinished(QNetworkReply* reply, int id) {
+-  reply->deleteLater();
+-  try {
+-    Echonest::Artists artists = Echonest::Artist::parseSearch(reply);
+-    if (artists.isEmpty()) {
+-      qLog(Debug) << "Failed to find artist in echonest";
+-      emit Finished(id);
+-      return;
+-    }
+-
+-    const Echonest::Artist& artist = artists[0];
+-    const Echonest::ForeignIds& foreign_ids = artist.foreignIds();
+-    QString songkick_id;
+-    for (const Echonest::ForeignId& id : foreign_ids) {
+-      if (id.catalog == "songkick") {
+-        songkick_id = id.foreign_id;
+-        break;
+-      }
+-    }
+-
+-    if (songkick_id.isEmpty()) {
+-      qLog(Debug) << "Failed to fetch songkick foreign id for artist";
+-      emit Finished(id);
+-      return;
+-    }
+-
+-    QStringList split = songkick_id.split(':');
+-    if (split.count() != 3) {
+-      qLog(Error) << "Weird songkick id";
+-      emit Finished(id);
+-      return;
+-    }
+-
+-    FetchSongkickCalendar(split[2], id);
+-  } catch (Echonest::ParseError& e) {
+-    qLog(Error) << "Error parsing echonest reply:" << e.errorType() << e.what();
+-    emit Finished(id);
+-  }
++  emit Finished(id);
++  return;
+ }
+ 
+ void SongkickConcerts::FetchSongkickCalendar(const QString& artist_id, int id) {


Home | Main Index | Thread Index | Old Index