Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
aports
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Monitor
Service Desk
Analyze
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
alpine
aports
Commits
9ba87df5
Commit
9ba87df5
authored
2 years ago
by
knuxify
Committed by
alice
2 years ago
Browse files
Options
Downloads
Patches
Plain Diff
community/strawberry: upgrade to 1.0.7, enable tests
parent
b469208f
No related branches found
Branches containing commit
No related tags found
Tags containing commit
2 merge requests
!39304
[3.16] main/expat: security upgrade to 2.4.9
,
!36908
community/strawberry: upgrade to 1.0.7, enable tests
Pipeline
#130293
passed
2 years ago
Stage: verify
Changes
2
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
community/strawberry/APKBUILD
+10
-8
10 additions, 8 deletions
community/strawberry/APKBUILD
community/strawberry/icu-support.patch
+316
-0
316 additions, 0 deletions
community/strawberry/icu-support.patch
with
326 additions
and
8 deletions
community/strawberry/APKBUILD
+
10
−
8
View file @
9ba87df5
# Contributor: knuxify <knuxify@gmail.com>
# Contributor: knuxify <knuxify@gmail.com>
# Maintainer: knuxify <knuxify@gmail.com>
# Maintainer: knuxify <knuxify@gmail.com>
pkgname
=
strawberry
pkgname
=
strawberry
pkgver
=
1.0.
6
pkgver
=
1.0.
7
pkgrel
=
1
pkgrel
=
0
pkgdesc
=
"Strawberry Music Player"
pkgdesc
=
"Strawberry Music Player"
url
=
"https://strawberrymusicplayer.org"
url
=
"https://strawberrymusicplayer.org"
arch
=
"all"
arch
=
"all"
license
=
"GPL-3.0-or-later"
license
=
"GPL-3.0-or-later"
depends
=
"gst-plugins-base gst-plugins-good qt6-qtbase-sqlite"
depends
=
"gst-plugins-base gst-plugins-good qt6-qtbase-sqlite
icu-data-full
"
makedepends
=
"
makedepends
=
"
alsa-lib-dev
alsa-lib-dev
boost-dev
boost-dev
...
@@ -19,6 +19,7 @@ makedepends="
...
@@ -19,6 +19,7 @@ makedepends="
gnutls-dev
gnutls-dev
gst-plugins-base-dev
gst-plugins-base-dev
gstreamer-dev
gstreamer-dev
icu-dev
libcdio-dev
libcdio-dev
libgpod-dev
libgpod-dev
libmtp-dev
libmtp-dev
...
@@ -32,9 +33,10 @@ makedepends="
...
@@ -32,9 +33,10 @@ makedepends="
sqlite-dev
sqlite-dev
taglib-dev
taglib-dev
"
"
options
=
"!check"
# no test suite
checkdepends
=
"gtest-dev xvfb-run"
subpackages
=
"
$pkgname
-doc"
subpackages
=
"
$pkgname
-doc"
source
=
"https://files.strawberrymusicplayer.org/strawberry-
$pkgver
.tar.xz"
source
=
"https://files.strawberrymusicplayer.org/strawberry-
$pkgver
.tar.xz
icu-support.patch"
build
()
{
build
()
{
if
[
"
$CBUILD
"
!=
"
$CHOST
"
]
;
then
if
[
"
$CBUILD
"
!=
"
$CHOST
"
]
;
then
...
@@ -50,8 +52,7 @@ build() {
...
@@ -50,8 +52,7 @@ build() {
}
}
check
()
{
check
()
{
cd
build
xvfb-run cmake
--build
build
--target
run_strawberry_tests
CTEST_OUTPUT_ON_FAILURE
=
TRUE ctest
}
}
package
()
{
package
()
{
...
@@ -59,5 +60,6 @@ package() {
...
@@ -59,5 +60,6 @@ package() {
}
}
sha512sums
=
"
sha512sums
=
"
8b929ffaac15acd94f244b582a086388bf459131bb9be56b97fb74c954734d209a9928411954ccc445145f70a027763c60d1b111d89532ebd12e9ed0db19e760 strawberry-1.0.6.tar.xz
9bf092c3990ae0c2ce63074c7f6076ccab896ae915c4ee255a7fbb6534d50467648f3e96bc029075acfd50515c45ade867e55518d9a68ec9c10a741e1976d64f strawberry-1.0.7.tar.xz
29d2625e3e6fa25b394608456cb0fd9b9bb6d8cf3c1e94b14bec6bb7de6306245c97c78aff3fe43fbbe0ad8785423686c5644b8302ad064f699fc90e10adaec3 icu-support.patch
"
"
This diff is collapsed.
Click to expand it.
community/strawberry/icu-support.patch
0 → 100644
+
316
−
0
View file @
9ba87df5
Patch-Source: https://github.com/strawberrymusicplayer/strawberry/commit/564211acebc8030300afb7fac0cdfbbca4536890
From 564211acebc8030300afb7fac0cdfbbca4536890 Mon Sep 17 00:00:00 2001
From: Jonas Kvinge <jonas@jkvinge.net>
Date: Thu, 28 Jul 2022 04:01:58 +0200
Subject: [PATCH] Prefer ICU to transliterate characters when available
Fixes #1008
---
.github/workflows/ccpp.yml | 22 ++++++++++--
3rdparty/singleapplication/CMakeLists.txt | 2 +-
CMakeLists.txt | 9 ++++-
debian/control.in | 1 +
dist/unix/strawberry.spec.in | 2 ++
ext/gstmoodbar/CMakeLists.txt | 2 +-
ext/libstrawberry-common/CMakeLists.txt | 2 +-
ext/libstrawberry-tagreader/CMakeLists.txt | 2 +-
ext/strawberry-tagreader/CMakeLists.txt | 2 +-
src/CMakeLists.txt | 7 +++-
src/config.h.in | 2 ++
src/core/utilities.cpp | 39 +++++++++++++++++++---
src/core/utilities.h | 2 +-
src/covermanager/albumcoverloader.cpp | 2 +-
src/organize/organizeformat.cpp | 2 +-
tests/src/organizeformat_test.cpp | 12 ++++++-
tests/src/utilities_test.cpp | 4 +--
17 files changed, 95 insertions(+), 19 deletions(-)
diff --git a/3rdparty/singleapplication/CMakeLists.txt b/3rdparty/singleapplication/CMakeLists.txt
index 96525080b..033f0a61a 100644
--- a/3rdparty/singleapplication/CMakeLists.txt
+++ b/3rdparty/singleapplication/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.0)
+cmake_minimum_required(VERSION 3.7)
include(CheckIncludeFiles)
include(CheckFunctionExists)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 71c8d371d..c159aa5f9 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,7 +1,10 @@
project(strawberry)
-cmake_minimum_required(VERSION 3.0)
+cmake_minimum_required(VERSION 3.7)
cmake_policy(SET CMP0054 NEW)
+if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.12)
+ cmake_policy(SET CMP0074 NEW)
+endif()
include(CheckCXXCompilerFlag)
include(CheckCXXSourceRuns)
@@ -102,6 +105,10 @@
if(Backtrace_FOUND)
set(HAVE_BACKTRACE ON)
endif()
find_package(Iconv)
+find_package(ICU COMPONENTS uc i18n)
+if(ICU_FOUND)
+ set(HAVE_ICU ON)
+endif()
find_package(GnuTLS REQUIRED)
find_package(Protobuf REQUIRED)
if(NOT Protobuf_PROTOC_EXECUTABLE)
diff --git a/debian/control.in b/debian/control.in
index a28b63394..d5eb8ecd5 100644
--- a/debian/control.in
+++ b/debian/control.in
@@ -17,6 +17,7 @@
Build-Depends: debhelper (>= 11),
libasound2-dev,
libpulse-dev,
libtag1-dev,
+ libicu-devel,
@DEBIAN_BUILD_DEPENDS_QT_PACKAGES@,
libgstreamer1.0-dev,
libgstreamer-plugins-base1.0-dev,
diff --git a/dist/unix/strawberry.spec.in b/dist/unix/strawberry.spec.in
index 047cb37ad..772f5b65a 100644
--- a/dist/unix/strawberry.spec.in
+++ b/dist/unix/strawberry.spec.in
@@ -49,6 +49,8 @@
BuildRequires: pkgconfig(sqlite3) >= 3.9
BuildRequires: pkgconfig(taglib)
%endif
BuildRequires: pkgconfig(fftw3)
+BuildRequires: pkgconfig(icu-uc)
+BuildRequires: pkgconfig(icu-i18n)
%if "@QT_VERSION_MAJOR@" == "5" && ( 0%{?fedora} || 0%{?rhel_version} || 0%{?centos} )
BuildRequires: pkgconfig(Qt@QT_VERSION_MAJOR@Core)
BuildRequires: pkgconfig(Qt@QT_VERSION_MAJOR@Gui)
diff --git a/ext/gstmoodbar/CMakeLists.txt b/ext/gstmoodbar/CMakeLists.txt
index 85f849963..3986b0613 100644
--- a/ext/gstmoodbar/CMakeLists.txt
+++ b/ext/gstmoodbar/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.0)
+cmake_minimum_required(VERSION 3.7)
set(SOURCES gstfastspectrum.cpp gstmoodbarplugin.cpp)
diff --git a/ext/libstrawberry-common/CMakeLists.txt b/ext/libstrawberry-common/CMakeLists.txt
index 1fbc022bb..007238aa2 100644
--- a/ext/libstrawberry-common/CMakeLists.txt
+++ b/ext/libstrawberry-common/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.0)
+cmake_minimum_required(VERSION 3.7)
set(SOURCES
core/logging.cpp
diff --git a/ext/libstrawberry-tagreader/CMakeLists.txt b/ext/libstrawberry-tagreader/CMakeLists.txt
index b308120c7..4d2ba0adc 100644
--- a/ext/libstrawberry-tagreader/CMakeLists.txt
+++ b/ext/libstrawberry-tagreader/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.0)
+cmake_minimum_required(VERSION 3.7)
set(MESSAGES tagreadermessages.proto)
set(SOURCES tagreaderbase.cpp)
diff --git a/ext/strawberry-tagreader/CMakeLists.txt b/ext/strawberry-tagreader/CMakeLists.txt
index 683cc40cb..be1df4636 100644
--- a/ext/strawberry-tagreader/CMakeLists.txt
+++ b/ext/strawberry-tagreader/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.0)
+cmake_minimum_required(VERSION 3.7)
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR})
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index ca745ec4b..64540837c 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.0)
+cmake_minimum_required(VERSION 3.7)
if(HAVE_TRANSLATIONS)
include(../cmake/Translations.cmake)
@@ -1145,6 +1145,11 @@
if(FREEBSD)
target_link_libraries(strawberry_lib PRIVATE iconv)
endif()
+if(HAVE_ICU)
+ target_include_directories(strawberry_lib SYSTEM PRIVATE ${ICU_INCLUDE_DIRS})
+ target_link_libraries(strawberry_lib PRIVATE ${ICU_LIBRARIES})
+endif()
+
if(APPLE)
target_link_libraries(strawberry_lib PRIVATE
"-framework AppKit"
diff --git a/src/config.h.in b/src/config.h.in
index 0629fe394..c8d126b33 100644
--- a/src/config.h.in
+++ b/src/config.h.in
@@ -21,6 +21,8 @@
#cmakedefine HAVE_MUSICBRAINZ
#cmakedefine HAVE_GLOBALSHORTCUTS
#cmakedefine HAVE_X11_GLOBALSHORTCUTS
+#cmakedefine HAVE_ICU
+
#cmakedefine USE_INSTALL_PREFIX
#cmakedefine HAVE_GSTREAMER
diff --git a/src/core/utilities.cpp b/src/core/utilities.cpp
index 48c25edbc..741daaf72 100644
--- a/src/core/utilities.cpp
+++ b/src/core/utilities.cpp
@@ -23,7 +23,12 @@
#include <memory>
#include <cstdlib>
-#include <iconv.h>
+
+#ifdef HAVE_ICU
+# include <unicode/translit.h>
+#else
+# include <iconv.h>
+#endif
#include <QtGlobal>
#include <QApplication>
@@ -786,16 +791,39 @@
QString DesktopEnvironment() {
}
-QString UnicodeToAscii(const QString &unicode) {
+#ifdef HAVE_ICU
+
+QString Transliterate(const QString &accented_str) {
+
+ UErrorCode errorcode = U_ZERO_ERROR;
+ std::unique_ptr<icu::Transliterator> transliterator;
+ transliterator.reset(icu::Transliterator::createInstance("Any-Latin; Latin-ASCII;", UTRANS_FORWARD, errorcode));
+
+ if (!transliterator) return accented_str;
+
+ QByteArray accented_data = accented_str.toUtf8();
+ icu::UnicodeString ustring = icu::UnicodeString(accented_data.constData());
+ transliterator->transliterate(ustring);
+
+ std::string unaccented_str;
+ ustring.toUTF8String(unaccented_str);
+
+ return QString::fromStdString(unaccented_str);
+
+}
+
+#else
+
+QString Transliterate(const QString &accented_str) {
#ifdef LC_ALL
setlocale(LC_ALL, "");
#endif
iconv_t conv = iconv_open("ASCII//TRANSLIT", "UTF-8");
- if (conv == reinterpret_cast<iconv_t>(-1)) return unicode;
+ if (conv == reinterpret_cast<iconv_t>(-1)) return accented_str;
- QByteArray utf8 = unicode.toUtf8();
+ QByteArray utf8 = accented_str.toUtf8();
size_t input_len = utf8.length() + 1;
char *input_ptr = new char[input_len];
@@ -817,8 +845,11 @@
QString UnicodeToAscii(const QString &unicode) {
delete[] output_ptr;
return ret;
+
}
+#endif
+
QString MacAddress() {
QString ret;
diff --git a/src/core/utilities.h b/src/core/utilities.h
index 444f3024d..5e5caf1a1 100644
--- a/src/core/utilities.h
+++ b/src/core/utilities.h
@@ -132,7 +132,7 @@
QString GetRandomString(const int len, const QString &UseCharacters);
QString DesktopEnvironment();
-QString UnicodeToAscii(const QString &unicode);
+QString Transliterate(const QString &accented_str);
QString MacAddress();
diff --git a/src/covermanager/albumcoverloader.cpp b/src/covermanager/albumcoverloader.cpp
index 054461411..c6ea91fa7 100644
--- a/src/covermanager/albumcoverloader.cpp
+++ b/src/covermanager/albumcoverloader.cpp
@@ -110,7 +110,7 @@
QString AlbumCoverLoader::AlbumCoverFilename(QString artist, QString album, cons
album.remove('/').remove('\\');
QString filename = artist + "-" + album;
- filename = Utilities::UnicodeToAscii(filename.toLower());
+ filename = Utilities::Transliterate(filename.toLower());
filename = filename.replace(' ', '-')
.replace("--", "-")
.remove(OrganizeFormat::kInvalidFatCharacters)
diff --git a/src/organize/organizeformat.cpp b/src/organize/organizeformat.cpp
index 4f90f40c4..1effd740a 100644
--- a/src/organize/organizeformat.cpp
+++ b/src/organize/organizeformat.cpp
@@ -128,7 +128,7 @@
QString OrganizeFormat::GetFilenameForSong(const Song &song, QString extension)
}
if (remove_problematic_) filename = filename.remove(kProblematicCharacters);
- if (remove_non_fat_ || (remove_non_ascii_ && !allow_ascii_ext_)) filename = Utilities::UnicodeToAscii(filename);
+ if (remove_non_fat_ || (remove_non_ascii_ && !allow_ascii_ext_)) filename = Utilities::Transliterate(filename);
if (remove_non_fat_) filename = filename.remove(kInvalidFatCharacters);
if (remove_non_ascii_) {
diff --git a/tests/src/organizeformat_test.cpp b/tests/src/organizeformat_test.cpp
index b4ac56802..b51729368 100644
--- a/tests/src/organizeformat_test.cpp
+++ b/tests/src/organizeformat_test.cpp
@@ -176,8 +176,18 @@
TEST_F(OrganizeFormatTest, ReplaceNonAscii) {
format_.set_remove_non_ascii(true);
EXPECT_EQ("Royksopp", format_.GetFilenameForSong(song_));
+ song_.set_artist("");
+ EXPECT_EQ("", format_.GetFilenameForSong(song_));
+
+#ifdef HAVE_ICU
+
song_.set_artist(QString::fromUtf8("Владимир Высоцкий"));
- EXPECT_EQ("_________________", format_.GetFilenameForSong(song_));
+ EXPECT_EQ("Vladimir_Vysockij", format_.GetFilenameForSong(song_));
+
+ song_.set_artist(QString::fromUtf8("エックス・ジャパン"));
+ EXPECT_EQ("ekkusujapan", format_.GetFilenameForSong(song_));
+
+#endif
}
diff --git a/tests/src/utilities_test.cpp b/tests/src/utilities_test.cpp
index 8bcf5c77d..004e57d30 100644
--- a/tests/src/utilities_test.cpp
+++ b/tests/src/utilities_test.cpp
@@ -166,9 +166,9 @@
TEST(UtilitiesTest, Random) {
}
-TEST(UtilitiesTest, UnicodeToAscii) {
+TEST(UtilitiesTest, Transliterate) {
- ASSERT_EQ(Utilities::UnicodeToAscii("ÆØÅ"), "AEOA");
+ ASSERT_EQ(Utilities::Transliterate("ÆØÅ"), "AEOA");
}
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment