sm-commit AT lists.ibiblio.org
Subject: Source Mage code commit list
List archive
[SM-Commit] GIT changes to master grimoire by Ismael Luceno (2a2ba2a295890d28322e01141b1b7235ff9beb9e)
- From: Ismael Luceno <scm AT sourcemage.org>
- To: sm-commit AT lists.ibiblio.org
- Subject: [SM-Commit] GIT changes to master grimoire by Ismael Luceno (2a2ba2a295890d28322e01141b1b7235ff9beb9e)
- Date: Mon, 23 Aug 2021 17:50:58 +0000
GIT changes to master grimoire by Ismael Luceno <ismael AT sourcemage.org>:
ChangeLog
| 4
audio-players/clementine/BUILD
| 3
audio-players/clementine/CONFIGURE
| 1
audio-players/clementine/DEPENDS
| 37 +++++
audio-players/clementine/DETAILS
| 17 ++
audio-players/clementine/HISTORY
| 5
audio-players/clementine/PRE_BUILD
| 3
audio-players/clementine/patches/0001-Fix-sentinels-in-variadic-function-calls.patch
| 70 ++++++++++
audio-players/clementine/patches/0001-logging-Add-proper-backtrace-support-detection.patch
| 66 +++++++++
9 files changed, 206 insertions(+)
New commits:
commit 2a2ba2a295890d28322e01141b1b7235ff9beb9e
Author: Ismael Luceno <ismael AT sourcemage.org>
Commit: Ismael Luceno <ismael AT sourcemage.org>
clementine: new spell, music player inspired by Amarok 1.4
diff --git a/ChangeLog b/ChangeLog
index 8f985a9..8b26072 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2021-08-23 Ismael Luceno <ismael AT sourcemage.org>
+ * audio-players/clementine: new spell, music player inspired by
+ Amarok 1.4
+
2021-08-17 Ismael Luceno <ismael AT sourcemage.org>
* libs/ell: new spell, Linux library for embedded development
diff --git a/audio-players/clementine/BUILD b/audio-players/clementine/BUILD
new file mode 100755
index 0000000..d0e7851
--- /dev/null
+++ b/audio-players/clementine/BUILD
@@ -0,0 +1,3 @@
+# XXX fails to link with --as-needed due to a dependency of protobuf on zlib
+LDFLAGS="${LDFLAGS//-Wl,--as-needed}" &&
+default_build
diff --git a/audio-players/clementine/CONFIGURE
b/audio-players/clementine/CONFIGURE
new file mode 100755
index 0000000..b1e2770
--- /dev/null
+++ b/audio-players/clementine/CONFIGURE
@@ -0,0 +1 @@
+. "$GRIMOIRE"/CMAKE_CONFIGURE
diff --git a/audio-players/clementine/DEPENDS
b/audio-players/clementine/DEPENDS
new file mode 100755
index 0000000..95f9038
--- /dev/null
+++ b/audio-players/clementine/DEPENDS
@@ -0,0 +1,37 @@
+. "$GRIMOIRE"/CMAKE_DEPENDS &&
+depends GETTEXT &&
+depends boost &&
+depends chromaprint &&
+depends glib2 &&
+depends protobuf &&
+depends -sub SSL qtbase &&
+depends sqlite &&
+depends taglib &&
+optional_depends sparsehash \
+ "-DGOOGLE_DRIVE=1 -DDROPBOX=1 -DSKYDRIVE=1 -DBOX=1
-DSEAFILE=1" \
+ "-DGOOGLE_DRIVE=0 -DDROPBOX=0 -DSKYDRIVE=0 -DBOX=0
-DSEAFILE=0" \
+ "for Google Drive/Dropbox/SkyDrive/Box/SeaFile support" &&
+optional_depends libcdio \
+ -DAUDIOCD={1,0} \
+ "for Audio CD support" &&
+optional_depends liblastfm \
+ -DLIBLASTFM={1,0} \
+ "for Last.fm support" &&
+optional_depends libgpod \
+ -DLIBGPOD={1,0} \
+ "for iPod classic support" &&
+optional_depends libmpt \
+ -DLIBMTP={1,0} \
+ "for MTP support" &&
+optional_depends cryptopp \
+ -DSPOTIFY={1,0} \
+ "for Spotify support" &&
+optional_depends fftw \
+ -DMOODBAR={1,0} \
+ "for Moodbar support" &&
+optional_depends alsa-lib \
+ -DALSA={1,0} \
+ "for ALSA support" &&
+optional_depends pulseaudio \
+ -DLIBPULSE={1,0} \
+ "for PulseAudio support"
diff --git a/audio-players/clementine/DETAILS
b/audio-players/clementine/DETAILS
new file mode 100755
index 0000000..bd04b0d
--- /dev/null
+++ b/audio-players/clementine/DETAILS
@@ -0,0 +1,17 @@
+. "$GRIMOIRE"/CMAKE_FUNCTIONS
+ SPELL=clementine
+ VERSION=1.4.0rc1-700-g03e13c69e
+ SOURCE="$SPELL-$VERSION.tar.xz"
+
SOURCE_URL[0]=https://github.com/$SPELL-player/Clementine/releases/download/$VERSION/$SOURCE
+
SOURCE_HASH=sha512:fb92da45391828d8bba804b59fc829cab246416c2af3e2364aee87b4fedbf7a9cc638cc519bb1c8be556f9371b94272183ae4e46af88be5c14fdd3af2e4e604b
+SOURCE_DIRECTORY="$BUILD_DIRECTORY/$SPELL-$VERSION"
+ WEB_SITE="https://www.clementine-player.org/"
+ LICENSE[0]="GPL-3.0-or-later"
+ ENTERED=20210822
+ KEYWORDS=""
+ SHORT="music player inspired by Amarok 1.4"
+cat << EOF
+Clementine is a multiplatform music player. It is inspired by Amarok 1.4,
+focusing on a fast and easy-to-use interface for searching and playing
+your music.
+EOF
diff --git a/audio-players/clementine/HISTORY
b/audio-players/clementine/HISTORY
new file mode 100644
index 0000000..010ac3c
--- /dev/null
+++ b/audio-players/clementine/HISTORY
@@ -0,0 +1,5 @@
+2021-08-23 Ismael Luceno <ismael AT sourcemage.org>
+ * BUILD, CONFIGURE, DEPENDS, DETAILS, PRE_BUILD,
+ patches/0001-Fix-sentinels-in-variadic-function-calls.patch,
+ patches/0001-logging-Add-proper-backtrace-support-detection.patch:
+ spell created
diff --git a/audio-players/clementine/PRE_BUILD
b/audio-players/clementine/PRE_BUILD
new file mode 100755
index 0000000..c230ad1
--- /dev/null
+++ b/audio-players/clementine/PRE_BUILD
@@ -0,0 +1,3 @@
+default_pre_build &&
+cd "$SOURCE_DIRECTORY" &&
+apply_patch_dir patches
diff --git
a/audio-players/clementine/patches/0001-Fix-sentinels-in-variadic-function-calls.patch
b/audio-players/clementine/patches/0001-Fix-sentinels-in-variadic-function-calls.patch
new file mode 100644
index 0000000..523ae53
--- /dev/null
+++
b/audio-players/clementine/patches/0001-Fix-sentinels-in-variadic-function-calls.patch
@@ -0,0 +1,70 @@
+From 544540a72ae0008cab4c6eab0fe4bfe4fc1ac178 Mon Sep 17 00:00:00 2001
+From: Ismael Luceno <ismael AT iodev.co.uk>
+Date: Mon, 23 Aug 2021 16:44:04 +0200
+Subject: [PATCH] Fix sentinels in variadic function calls
+
+Replace sentinel NULL with nullptr, guaranteed to be correctly expanded.
+
+NULL may be defined as plain 0 in C++; which may lead to undefined upper
+bits passed in variadic function arguments, causing crashes.
+
+See: https://ewontfix.com/11/
+Signed-off-by: Ismael Luceno <ismael AT iodev.co.uk>
+Upstream-Status: Submitted
[https://github.com/clementine-player/Clementine/pull/7077]
+---
+ src/devices/cddasongloader.cpp | 4 ++--
+ src/engines/gstenginepipeline.cpp | 2 +-
+ src/musicbrainz/chromaprinter.cpp | 2 +-
+ 3 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/src/devices/cddasongloader.cpp b/src/devices/cddasongloader.cpp
+index b26dfb564aeb..edbb303052c5 100644
+--- a/src/devices/cddasongloader.cpp
++++ b/src/devices/cddasongloader.cpp
+@@ -79,7 +79,7 @@ void CddaSongLoader::LoadSongsFromCdda() {
+ }
+ if (g_object_class_find_property(G_OBJECT_GET_CLASS(cdda_),
+ "paranoia-mode")) {
+- g_object_set(cdda_, "paranoia-mode", 0, NULL);
++ g_object_set(cdda_, "paranoia-mode", 0, nullptr);
+ }
+
+ // Change the element's state to ready and paused, to be able to query it
+@@ -121,7 +121,7 @@ void CddaSongLoader::LoadSongsFromCdda() {
+
+ GstElement* pipeline = gst_pipeline_new("pipeline");
+ GstElement* sink = gst_element_factory_make("fakesink", NULL);
+- gst_bin_add_many(GST_BIN(pipeline), cdda_, sink, NULL);
++ gst_bin_add_many(GST_BIN(pipeline), cdda_, sink, nullptr);
+ gst_element_link(cdda_, sink);
+ gst_element_set_state(pipeline, GST_STATE_READY);
+ gst_element_set_state(pipeline, GST_STATE_PAUSED);
+diff --git a/src/engines/gstenginepipeline.cpp
b/src/engines/gstenginepipeline.cpp
+index c5986f9b93f1..cacb287d7fda 100644
+--- a/src/engines/gstenginepipeline.cpp
++++ b/src/engines/gstenginepipeline.cpp
+@@ -440,7 +440,7 @@ bool GstEnginePipeline::InitAudioBin() {
+ gst_element_link(queue_, audioconvert_);
+
+ GstCaps* caps16 = gst_caps_new_simple("audio/x-raw", "format",
G_TYPE_STRING,
+- "S16LE", NULL);
++ "S16LE", nullptr);
+ gst_element_link_filtered(probe_converter, probe_sink, caps16);
+ gst_caps_unref(caps16);
+
+diff --git a/src/musicbrainz/chromaprinter.cpp
b/src/musicbrainz/chromaprinter.cpp
+index 499c323eedff..b8dae85cd17e 100644
+--- a/src/musicbrainz/chromaprinter.cpp
++++ b/src/musicbrainz/chromaprinter.cpp
+@@ -82,7 +82,7 @@ QString Chromaprinter::CreateFingerprint() {
+ // Chromaprint expects mono 16-bit ints at a sample rate of 11025Hz.
+ GstCaps* caps = gst_caps_new_simple(
+ "audio/x-raw", "format", G_TYPE_STRING, "S16LE", "channels",
G_TYPE_INT,
+- kDecodeChannels, "rate", G_TYPE_INT, kDecodeRate, NULL);
++ kDecodeChannels, "rate", G_TYPE_INT, kDecodeRate, nullptr);
+ gst_element_link_filtered(resample, sink, caps);
+ gst_caps_unref(caps);
+
+--
+2.33.0
+
diff --git
a/audio-players/clementine/patches/0001-logging-Add-proper-backtrace-support-detection.patch
b/audio-players/clementine/patches/0001-logging-Add-proper-backtrace-support-detection.patch
new file mode 100644
index 0000000..25b74e3
--- /dev/null
+++
b/audio-players/clementine/patches/0001-logging-Add-proper-backtrace-support-detection.patch
@@ -0,0 +1,66 @@
+From 284cd5e33b5a2ccc19a9c33296b24bcfdb67a126 Mon Sep 17 00:00:00 2001
+From: Ismael Luceno <ismael AT iodev.co.uk>
+Date: Sun, 22 Aug 2021 21:49:25 +0200
+Subject: [PATCH] logging: Add proper backtrace support detection
+
+The Q_OS_UNIX macro is inappropriate because many UNIX-like platforms may
+lack backtrace support in the libc. E.g.: Darwin / Mac OS X, Musl libc,
+OpenBSD, OpenIndiana.
+
+Signed-off-by: Ismael Luceno <ismael AT iodev.co.uk>
+Upstream-Status: Submitted
[https://github.com/clementine-player/Clementine/pull/7076]
+---
+ ext/libclementine-common/CMakeLists.txt | 3 +++
+ ext/libclementine-common/core/conf_backtrace.h.in | 4 ++++
+ ext/libclementine-common/core/logging.cpp | 6 ++----
+ 3 files changed, 9 insertions(+), 4 deletions(-)
+ create mode 100644 ext/libclementine-common/core/conf_backtrace.h.in
+
+diff --git a/ext/libclementine-common/CMakeLists.txt
b/ext/libclementine-common/CMakeLists.txt
+index dda4dd5f7963..ad35a515c28c 100644
+--- a/ext/libclementine-common/CMakeLists.txt
++++ b/ext/libclementine-common/CMakeLists.txt
+@@ -39,3 +39,6 @@ target_link_libraries(libclementine-common
+ ${TAGLIB_LIBRARIES}
+ ${CMAKE_THREAD_LIBS_INIT}
+ )
++
++find_package(Backtrace)
++configure_file(core/conf_backtrace.h.in conf_backtrace.h)
+diff --git a/ext/libclementine-common/core/conf_backtrace.h.in
b/ext/libclementine-common/core/conf_backtrace.h.in
+new file mode 100644
+index 000000000000..af5eb19347ec
+--- /dev/null
++++ b/ext/libclementine-common/core/conf_backtrace.h.in
+@@ -0,0 +1,4 @@
++#cmakedefine Backtrace_FOUND
++#ifdef Backtrace_FOUND
++#include <@Backtrace_HEADER@>
++#endif
+diff --git a/ext/libclementine-common/core/logging.cpp
b/ext/libclementine-common/core/logging.cpp
+index 737208493275..fbe26932bdf2 100644
+--- a/ext/libclementine-common/core/logging.cpp
++++ b/ext/libclementine-common/core/logging.cpp
+@@ -21,9 +21,7 @@
+ #include <cxxabi.h>
+
+ #include <QtGlobal>
+-#ifdef Q_OS_UNIX
+-#include <execinfo.h>
+-#endif
++#include "conf_backtrace.h"
+
+ #include <glib.h>
+
+@@ -325,7 +323,7 @@ QString DemangleSymbol(const QString& symbol) {
+ }
+
+ void DumpStackTrace() {
+-#ifdef Q_OS_UNIX
++#ifdef Backtrace_FOUND
+ void* callstack[128];
+ int callstack_size =
+ backtrace(reinterpret_cast<void**>(&callstack), sizeof(callstack));
+--
+2.33.0
+
- [SM-Commit] GIT changes to master grimoire by Ismael Luceno (2a2ba2a295890d28322e01141b1b7235ff9beb9e), Ismael Luceno, 08/23/2021
Archive powered by MHonArc 2.6.24.