Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix missing QTSINGLECOREAPPLICATION_LIBRARIES #7301

Merged
merged 1 commit into from
Oct 15, 2023

Conversation

eclipseo
Copy link
Contributor

In f3837f9, QTSINGLECOREAPPLICATION_LIBRARIES was mistakenly removed, which prevents building with USE_SYSTEM_QTSINGLEAPPLICATION enabled.

@eclipseo
Copy link
Contributor Author

eclipseo commented Oct 15, 2023

Note that you should drop Fedora 36, and enable a Fedora 39 CI.

Here is the current official SPEC for Fedora:

%global tag     1.4.0rc1-901-g7b678f26e

Name:           clementine
Version:        1.4.0~rc2
Release:        %autorelease
Summary:        A music player and library organizer

# Apache-2.0:
#   - ext/libclementine-common/core/latch.cpp
#   - ext/libclementine-common/core/latch.h
#   - ext/libclementine-remote/remotecontrolmessages.proto
#   - ext/libclementine-common/core/logging.cpp
#   - ext/libclementine-common/core/logging.h
#   - ext/libclementine-common/core/messagehandler.cpp
#   - ext/libclementine-common/core/messagehandler.h
#   - ext/libclementine-common/core/override.h
#   - ext/libclementine-common/core/timeconstants.h
# BSL-1.0: 3rdparty/utf8-cpp
# GPL-2.0-or-later:
#   - src/engines/gstengine.cpp
#   - src/engines/gstengine.h
#   - src/widgets/sliderwidget.cpp
#   - src/widgets/sliderwidget.h
# LGPL-2.0-or-later:
#   - gst/moodbar/gstfastspectrum.cpp
#   - gst/moodbar/gstfastspectrum.h
# LGPL-2.1-only:
#   - 3rdparty/taglib
#   - src/widgets/stylehelper:
# LGPL-2.1-only WITH Qt-LGPL-exception-1.1 OR GPL-3.0-only:
#   - 3rdparty/qsqlite/clementinesqlcachedresult.cpp
#   - 3rdparty/qsqlite/clementinesqlcachedresult.h
#   - 3rdparty/qsqlite/qsql_sqlite.cpp
#   - 3rdparty/qsqlite/qsql_sqlite.h
# LGPL-2.1-only WITH Qt-LGPL-exception-1.1 OR LGPL-3.0-only WITH Qt-LGPL-exception-1.1:
#   - 3rdparty/qsqlite/smain.cpp
#   - 3rdparty/qsqlite/smain.h
# MIT: 3rdparty/qocoa
License:        GPL-3.0-or-later AND GPL-2.0-or-later AND BSL-1.0 AND LGPL-2.0-or-later AND LGPL-2.1-only AND Apache-2.0 AND (LGPL-2.1-only WITH Qt-LGPL-exception-1.1 OR GPL-3.0-only) AND (LGPL-2.1-only WITH Qt-LGPL-exception-1.1 OR LGPL-3.0-only WITH Qt-LGPL-exception-1.1) AND MIT
URL:            https://www.clementine-player.org/
VCS:            https://github.com/clementine-player/Clementine
Source:         %vcs/archive/%{tag}/%{name}-%{tag}.tar.gz

# Use qt5 libraries (qtiocompressor)
Patch:          0001-Use-QtIoCompressor-from-Qt5.patch
# Fix bug https://github.com/clementine-player/Clementine/pull/7301
Patch:          0001-Fix-missing-QTSINGLECOREAPPLICATION_LIBRARIES.patch

BuildRequires:  boost-devel
BuildRequires:  cmake
BuildRequires:  desktop-file-utils
BuildRequires:  gcc-c++
BuildRequires:  gettext
BuildRequires:  libappstream-glib
BuildRequires:  liblastfm-qt5-devel
BuildRequires:  pkgconfig(Qt5Concurrent)
BuildRequires:  pkgconfig(Qt5Core)
BuildRequires:  pkgconfig(Qt5DBus)
BuildRequires:  pkgconfig(Qt5Gui)
BuildRequires:  pkgconfig(Qt5Network)
BuildRequires:  pkgconfig(Qt5OpenGL)
BuildRequires:  pkgconfig(Qt5Sql)
BuildRequires:  pkgconfig(Qt5Test)
BuildRequires:  pkgconfig(Qt5Widgets)
BuildRequires:  pkgconfig(Qt5X11Extras)
BuildRequires:  pkgconfig(Qt5Xml)
BuildRequires:  pkgconfig(QxtCore-qt5)
BuildRequires:  pkgconfig(alsa)
BuildRequires:  pkgconfig(dbus-1)
BuildRequires:  pkgconfig(fftw3)
BuildRequires:  pkgconfig(gio-2.0)
BuildRequires:  pkgconfig(gio-unix-2.0)
BuildRequires:  pkgconfig(glib-2.0)
BuildRequires:  pkgconfig(glew)
BuildRequires:  pkgconfig(glu)
BuildRequires:  pkgconfig(gmock)
BuildRequires:  pkgconfig(gstreamer-1.0)
BuildRequires:  pkgconfig(gstreamer-app-1.0)
BuildRequires:  pkgconfig(gstreamer-audio-1.0)
BuildRequires:  pkgconfig(gstreamer-base-1.0)
BuildRequires:  pkgconfig(gstreamer-tag-1.0)
BuildRequires:  pkgconfig(gthread-2.0)
BuildRequires:  pkgconfig(libcdio)
BuildRequires:  pkgconfig(libchromaprint)
BuildRequires:  (pkgconfig(libcryptopp) or pkgconfig(cryptopp))
BuildRequires:  pkgconfig(libmtp)
BuildRequires:  pkgconfig(libmygpo-qt5)
BuildRequires:  pkgconfig(libnotify)
BuildRequires:  pkgconfig(libplist-2.0)
BuildRequires:  pkgconfig(libprojectM) >= 2.0.1-7
BuildRequires:  pkgconfig(libpulse)
BuildRequires:  pkgconfig(libsparsehash)
BuildRequires:  pkgconfig(libudf)
BuildRequires:  pkgconfig(libxml-2.0)
BuildRequires:  pkgconfig(protobuf)
BuildRequires:  pkgconfig(sqlite3) >= 3.7
BuildRequires:  pkgconfig(taglib) >= 1.11
BuildRequires:  pkgconfig(udisks)
BuildRequires:  qt5-linguist
BuildRequires:  qtiocompressor-devel
BuildRequires:  qtsingleapplication-qt5-devel >= 2.6.1-2
BuildRequires:  qtsinglecoreapplication-qt5-devel >= 2.6.1-2
BuildRequires:  sha2-devel
%ifnarch s390 s390x
BuildRequires:  pkgconfig(libgpod-1.0)
BuildRequires:  pkgconfig(libimobiledevice-1.0)
%endif

Requires:       gstreamer1-plugins-good
Requires:       hicolor-icon-theme
Requires:       qtiocompressor >= 2.3.1-17

Provides:       bundled(qocoa)
Provides:       bundled(qsqlite)
Provides:       bundled(utf8-cpp)

%description
Clementine is a modern music player and library organiser.
It is inspired by Amarok 1.4, focusing on a fast and easy-to-use interface for
searching and playing your music.

Features include:
  * Search and play your local music library
  * Listen to internet radio from Last.fm, SomaFM, IntergalacticFM, Magnatune,
    Jamendo and Icecast
  * Create smart playlists and dynamic playlists
  * Tabbed playlists, import and export M3U, XSPF, PLS and ASX
  * Visualisations from projectM
  * Lyrics and artist biographies and photos
  * Transcode music into MP3, Ogg Vorbis, Ogg Speex, FLAC or AAC
  * Edit tags on MP3 and OGG files, organise your music
  * Download missing album cover art from Last.fm
  * Cross-platform - works on Windows, Mac OS X and Linux
  * Native desktop notifications on Linux (libnotify) and Mac OS X (Growl)
  * Remote control using a Wii Remote, MPRIS or the command-line
  * Copy music to your iPod, iPhone, MTP or mass-storage USB player
  * Queue manager

%prep
%autosetup -p1 -n Clementine-%{tag}

# Remove most 3rdparty libraries
mv 3rdparty/{qocoa,qsqlite,utf8-cpp}/ .
rm -rfv 3rdparty/*
mv {qocoa,qsqlite,utf8-cpp}/ 3rdparty/

%build
%cmake \
  -DBUILD_WERROR:BOOL=OFF \
  -DCMAKE_BUILD_TYPE:STRING=Release \
  -DCMAKE_CXX_STANDARD:INT=17 \
  -DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON \
  -DFORCE_GIT_REVISION:STRING=%{tag} \
  -DUSE_SYSTEM_PROJECTM:BOOL=ON \
  -DUSE_SYSTEM_QTSINGLEAPPLICATION:BOOL=ON \
  -DUSE_SYSTEM_QXT:BOOL=ON
%cmake_build

%install
%cmake_install

%check
desktop-file-validate %{buildroot}%{_datadir}/applications/org.clementine_player.Clementine.desktop
appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/org.clementine_player.Clementine.appdata.xml

%files
%license COPYING
%doc Changelog README.md
%{_bindir}/clementine
%{_bindir}/clementine-tagreader
%{_datadir}/applications/org.clementine_player.Clementine.desktop
%{_datadir}/icons/hicolor/*/apps/org.clementine_player.Clementine.*
%{_datadir}/kservices5/clementine-*.protocol
%{_metainfodir}/org.clementine_player.Clementine.appdata.xml

%changelog
%autochangelog

@eclipseo eclipseo force-pushed the patch-1 branch 2 times, most recently from d7b6024 to 2f32d65 Compare October 15, 2023 10:53
In f3837f9, QTSINGLECOREAPPLICATION_LIBRARIES was mistakenly removed, which prevents building with USE_SYSTEM_QTSINGLEAPPLICATION enabled.
@hatstand hatstand merged commit 994d16e into clementine-player:master Oct 15, 2023
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants