From c4285a14b2266ee7a10a915b3a58e9b5a895dd94 Mon Sep 17 00:00:00 2001 From: Jonas Kvinge Date: Fri, 5 Apr 2019 23:07:16 +0200 Subject: [PATCH] Use common rpm spec file --- cmake/Rpm.cmake | 8 +- dist/CMakeLists.txt | 3 +- dist/fedora/strawberry.spec.in | 119 -------------------- dist/opensuse/strawberry.spec.in | 134 ---------------------- dist/rpm/strawberry.spec.in | 185 +++++++++++++++++++++++++++++++ 5 files changed, 190 insertions(+), 259 deletions(-) delete mode 100644 dist/fedora/strawberry.spec.in delete mode 100644 dist/opensuse/strawberry.spec.in create mode 100644 dist/rpm/strawberry.spec.in diff --git a/cmake/Rpm.cmake b/cmake/Rpm.cmake index 9c7d6273e..3f47b0dbd 100644 --- a/cmake/Rpm.cmake +++ b/cmake/Rpm.cmake @@ -43,8 +43,8 @@ if (LSB_RELEASE_EXEC AND RPMBUILD_EXEC) add_custom_target(rpm COMMAND ${CMAKE_SOURCE_DIR}/dist/scripts/maketarball.sh COMMAND ${CMAKE_COMMAND} -E copy strawberry-${STRAWBERRY_VERSION_PACKAGE}.tar.xz ${RPMBUILD_DIR}/SOURCES/ - COMMAND ${RPMBUILD_EXEC} -bs ${CMAKE_SOURCE_DIR}/dist/opensuse/strawberry.spec - COMMAND ${RPMBUILD_EXEC} -bb ${CMAKE_SOURCE_DIR}/dist/opensuse/strawberry.spec + COMMAND ${RPMBUILD_EXEC} -bs ${CMAKE_SOURCE_DIR}/dist/rpm/strawberry.spec + COMMAND ${RPMBUILD_EXEC} -bb ${CMAKE_SOURCE_DIR}/dist/rpm/strawberry.spec ) elseif (${DIST_NAME} STREQUAL "fedora") if (DIST_VERSION) @@ -55,8 +55,8 @@ if (LSB_RELEASE_EXEC AND RPMBUILD_EXEC) add_custom_target(rpm COMMAND ${CMAKE_SOURCE_DIR}/dist/scripts/maketarball.sh COMMAND ${CMAKE_COMMAND} -E copy strawberry-${STRAWBERRY_VERSION_PACKAGE}.tar.xz ${RPMBUILD_DIR}/SOURCES/ - COMMAND rpmbuild -bs ${CMAKE_SOURCE_DIR}/dist/fedora/strawberry.spec - COMMAND rpmbuild -bb ${CMAKE_SOURCE_DIR}/dist/fedora/strawberry.spec + COMMAND ${RPMBUILD_EXEC} -bs ${CMAKE_SOURCE_DIR}/dist/rpm/strawberry.spec + COMMAND ${RPMBUILD_EXEC} -bb ${CMAKE_SOURCE_DIR}/dist/rpm/strawberry.spec ) else() set(RPM_DISTRO ${DIST_NAME} CACHE STRING "Suffix of the rpm file") diff --git a/dist/CMakeLists.txt b/dist/CMakeLists.txt index a1a20cfa5..cf2b7f000 100644 --- a/dist/CMakeLists.txt +++ b/dist/CMakeLists.txt @@ -3,8 +3,7 @@ execute_process(COMMAND env LC_ALL=C date "+%a, %-d %b %Y %H:%M:%S %z" OUTPUT_VA configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/maketarball.sh.in ${CMAKE_CURRENT_SOURCE_DIR}/scripts/maketarball.sh @ONLY) if (RPM_DISTRO) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/opensuse/strawberry.spec.in ${CMAKE_CURRENT_SOURCE_DIR}/opensuse/strawberry.spec @ONLY) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/fedora/strawberry.spec.in ${CMAKE_CURRENT_SOURCE_DIR}/fedora/strawberry.spec @ONLY) + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/rpm/strawberry.spec.in ${CMAKE_CURRENT_SOURCE_DIR}/rpm/strawberry.spec @ONLY) endif() configure_file(${CMAKE_CURRENT_SOURCE_DIR}/debian/changelog.in ${CMAKE_CURRENT_SOURCE_DIR}/debian/changelog) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/pacman/PKGBUILD.in ${CMAKE_CURRENT_SOURCE_DIR}/pacman/PKGBUILD @ONLY) diff --git a/dist/fedora/strawberry.spec.in b/dist/fedora/strawberry.spec.in deleted file mode 100644 index f74678e73..000000000 --- a/dist/fedora/strawberry.spec.in +++ /dev/null @@ -1,119 +0,0 @@ -Name: strawberry -Version: @STRAWBERRY_VERSION_RPM_V@ -Release: @STRAWBERRY_VERSION_RPM_R@.@RPM_DISTRO@ -Summary: A music player and collection organiser -Group: Applications/Multimedia -License: GPLv3+ -URL: http://www.strawbs.org/ -Source0: %{name}-@STRAWBERRY_VERSION_PACKAGE@.tar.xz - -BuildRequires: boost-devel -BuildRequires: cmake -BuildRequires: desktop-file-utils -BuildRequires: libappstream-glib -BuildRequires: gcc-c++ -BuildRequires: hicolor-icon-theme -BuildRequires: make -BuildRequires: git -BuildRequires: gettext -BuildRequires: cmake(Qt5LinguistTools) -BuildRequires: pkgconfig -BuildRequires: pkgconfig(glib-2.0) -BuildRequires: pkgconfig(gio-2.0) -BuildRequires: pkgconfig(gio-unix-2.0) -BuildRequires: pkgconfig(gthread-2.0) -BuildRequires: pkgconfig(dbus-1) -BuildRequires: pkgconfig(alsa) -BuildRequires: pkgconfig(protobuf) -BuildRequires: pkgconfig(sqlite3) >= 3.7 -BuildRequires: pkgconfig(taglib) >= 1.11 -BuildRequires: pkgconfig(Qt5Core) -BuildRequires: pkgconfig(Qt5Gui) -BuildRequires: pkgconfig(Qt5Widgets) -BuildRequires: pkgconfig(Qt5Concurrent) -BuildRequires: pkgconfig(Qt5Sql) -BuildRequires: pkgconfig(Qt5Network) -BuildRequires: pkgconfig(Qt5X11Extras) -BuildRequires: pkgconfig(Qt5DBus) -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(libpulse) -BuildRequires: pkgconfig(libcdio) -BuildRequires: pkgconfig(libchromaprint) -BuildRequires: pkgconfig(libgpod-1.0) -BuildRequires: pkgconfig(libmtp) -BuildRequires: pkgconfig(libnotify) -BuildRequires: pkgconfig(libudf) - -%description -Strawberry is a music player and collection organizer. -It is a fork of Clementine. The name is inspired by the band Strawbs. - -Features: - * Play and organize music - * Supports WAV, FLAC, WavPack, DSF, DSDIFF, Ogg Vorbis, Speex, MPC, TrueAudio, AIFF, MP4, MP3 and ASF - * Audio CD playback - * Native desktop notifications - * Playlists in multiple formats - * Advanced audio output and device configuration for bit-perfect playback on Linux - * Edit tags on music files - * Fetch tags from MusicBrainz - * Album cover art from Last.fm, Musicbrainz and Discogs - * Song lyrics from AudD - * Support for multiple backends - * Audio analyzer - * Audio equalizer - * Transfer music to iPod, iPhone, MTP or mass-storage USB player - * Streaming support for Tidal - * Scrobbler with support for Last.fm, Libre.fm and ListenBrainz - -%prep -%setup -qn %{name}-@STRAWBERRY_VERSION_PACKAGE@ - -%build - -%if 0%{?fedora} > 27 -# workaround FTBFS -export CXXFLAGS="%{optflags} -fpermissive" -%endif - -mkdir %{_target_platform} -pushd %{_target_platform} -%{cmake} \ - -DBUILD_WERROR:BOOL=OFF \ - -DCMAKE_BUILD_TYPE:STRING=Release \ - -DENABLE_TRANSLATIONS=ON \ - .. -popd - -%make_build -C %{_target_platform} - -%install -make install DESTDIR=%{buildroot} -C %{_target_platform} -mv %{buildroot}%{_datadir}/metainfo %{buildroot}%{_datadir}/appdata - -%check -desktop-file-validate %{buildroot}%{_datadir}/applications/org.strawbs.strawberry.desktop -appstream-util validate-relax --nonet %{buildroot}%{_datadir}/appdata/org.strawbs.strawberry.appdata.xml - -%files -%defattr(-,root,root,-) -%doc README.md Changelog -%license COPYING -%{_bindir}/strawberry -%{_bindir}/strawberry-tagreader -%{_datadir}/applications/*.desktop -%{_datadir}/icons/hicolor/48x48/apps/strawberry.png -%{_datadir}/icons/hicolor/64x64/apps/strawberry.png -%{_datadir}/icons/hicolor/128x128/apps/strawberry.png -%{_datadir}/icons/hicolor/scalable/apps/strawberry.svg -%{_datadir}/appdata/*.appdata.xml -%{_mandir}/man1/strawberry.1.* -%{_mandir}/man1/strawberry-tagreader.1.* - -%changelog -* @RPM_DATE@ Jonas Kvinge - @STRAWBERRY_VERSION_RPM_V@ -- Version @STRAWBERRY_VERSION_PACKAGE@ diff --git a/dist/opensuse/strawberry.spec.in b/dist/opensuse/strawberry.spec.in deleted file mode 100644 index c7d7d6c97..000000000 --- a/dist/opensuse/strawberry.spec.in +++ /dev/null @@ -1,134 +0,0 @@ -Name: strawberry -Version: @STRAWBERRY_VERSION_RPM_V@ -Release: @STRAWBERRY_VERSION_RPM_R@.@RPM_DISTRO@ -Summary: A music player and collection organiser -Group: Applications/Multimedia -License: GPL-3.0+ -URL: http://www.strawbs.org/ -Source0: %{name}-@STRAWBERRY_VERSION_PACKAGE@.tar.xz -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) - -%if 0%{?suse_version} > 1325 -BuildRequires: libboost_headers-devel -%else -BuildRequires: boost-devel -%endif -BuildRequires: cmake -BuildRequires: desktop-file-utils -BuildRequires: appstream-glib -BuildRequires: gcc-c++ -BuildRequires: hicolor-icon-theme -BuildRequires: make -BuildRequires: git -BuildRequires: pkgconfig -BuildRequires: gettext-tools -BuildRequires: update-desktop-files -BuildRequires: cmake(Qt5LinguistTools) -BuildRequires: pkgconfig(glib-2.0) -BuildRequires: pkgconfig(gio-2.0) -BuildRequires: pkgconfig(gio-unix-2.0) -BuildRequires: pkgconfig(gthread-2.0) -BuildRequires: pkgconfig(dbus-1) -BuildRequires: pkgconfig(alsa) -BuildRequires: pkgconfig(protobuf) -BuildRequires: pkgconfig(sqlite3) >= 3.7 -BuildRequires: pkgconfig(taglib) >= 1.11 -BuildRequires: pkgconfig(Qt5Core) -BuildRequires: pkgconfig(Qt5Gui) -BuildRequires: pkgconfig(Qt5Widgets) -BuildRequires: pkgconfig(Qt5Concurrent) -BuildRequires: pkgconfig(Qt5Sql) -BuildRequires: pkgconfig(Qt5Network) -BuildRequires: pkgconfig(Qt5X11Extras) -BuildRequires: pkgconfig(Qt5DBus) -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(libpulse) -BuildRequires: pkgconfig(libcdio) -BuildRequires: pkgconfig(libchromaprint) -BuildRequires: pkgconfig(libgpod-1.0) -BuildRequires: pkgconfig(libmtp) -BuildRequires: pkgconfig(libnotify) -BuildRequires: pkgconfig(libudf) -BuildRequires: pkgconfig(libxine) -BuildRequires: pkgconfig(libvlc) - -Requires: libQt5Sql5-sqlite - -%description -Strawberry is a music player and collection organizer. -It is a fork of Clementine. The name is inspired by the band Strawbs. - -Features: - * Play and organize music - * Supports WAV, FLAC, WavPack, DSF, DSDIFF, Ogg Vorbis, Speex, MPC, TrueAudio, AIFF, MP4, MP3 and ASF - * Audio CD playback - * Native desktop notifications - * Playlists in multiple formats - * Advanced audio output and device configuration for bit-perfect playback on Linux - * Edit tags on music files - * Fetch tags from MusicBrainz - * Album cover art from Last.fm, Musicbrainz and Discogs - * Song lyrics from AudD - * Support for multiple backends - * Audio analyzer - * Audio equalizer - * Transfer music to iPod, iPhone, MTP or mass-storage USB player - * Streaming support for Tidal - * Scrobbler with support for Last.fm, Libre.fm and ListenBrainz - -%prep -%setup -q -n %{name}-@STRAWBERRY_VERSION_PACKAGE@ - -%build -%{cmake} .. -DUSE_INSTALL_PREFIX=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DENABLE_TRANSLATIONS=ON -make %{?_smp_mflags} - -%install -cd build -make install DESTDIR=$RPM_BUILD_ROOT - -%suse_update_desktop_file org.strawbs.strawberry Qt AudioVideo Audio Player - -%if 0%{?suse_version} < 1500 -mv %{buildroot}%{_datadir}/metainfo %{buildroot}%{_datadir}/appdata -%endif - -%clean -cd build -make clean - -%check -desktop-file-validate %{buildroot}%{_datadir}/applications/org.strawbs.strawberry.desktop -%if 0%{?suse_version} >= 1500 -appstream-util validate-relax --nonet %{buildroot}%{_datadir}/metainfo/org.strawbs.strawberry.appdata.xml -%else -appstream-util validate-relax --nonet %{buildroot}%{_datadir}/appdata/org.strawbs.strawberry.appdata.xml -%endif - -%files -%defattr(-,root,root,-) -%doc README.md Changelog -%license COPYING -%{_bindir}/strawberry -%{_bindir}/strawberry-tagreader -%{_datadir}/applications/*.desktop -%{_datadir}/icons/hicolor/48x48/apps/strawberry.png -%{_datadir}/icons/hicolor/64x64/apps/strawberry.png -%{_datadir}/icons/hicolor/128x128/apps/strawberry.png -%{_datadir}/icons/hicolor/scalable/apps/strawberry.svg -%if 0%{?suse_version} >= 1500 -%{_datadir}/metainfo/*.appdata.xml -%else -%{_datadir}/appdata/*.appdata.xml -%endif -%{_mandir}/man1/%{name}.1%{?ext_man} -%{_mandir}/man1/%{name}-tagreader.1%{?ext_man} - -%changelog -* @RPM_DATE@ Jonas Kvinge - @STRAWBERRY_VERSION_RPM_V@ -- Version @STRAWBERRY_VERSION_PACKAGE@ - diff --git a/dist/rpm/strawberry.spec.in b/dist/rpm/strawberry.spec.in new file mode 100644 index 000000000..3241d884a --- /dev/null +++ b/dist/rpm/strawberry.spec.in @@ -0,0 +1,185 @@ +Name: strawberry +Version: @STRAWBERRY_VERSION_RPM_V@ +Release: @STRAWBERRY_VERSION_RPM_R@.@RPM_DISTRO@ +Summary: A music player and music collection organiser +Group: Applications/Multimedia +License: GPL-3.0+ +URL: http://www.strawbs.org/ +Source0: %{name}-@STRAWBERRY_VERSION_PACKAGE@.tar.xz +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) + +%if 0%{?suse_version} && 0%{?suse_version} > 1325 +BuildRequires: libboost_headers-devel +%else +BuildRequires: boost-devel +%endif +BuildRequires: cmake +BuildRequires: gcc-c++ +BuildRequires: hicolor-icon-theme +BuildRequires: make +BuildRequires: git +BuildRequires: gettext +BuildRequires: desktop-file-utils +%if 0%{?suse_version} +BuildRequires: update-desktop-files +%endif +%if 0%{?suse_version} +BuildRequires: appstream-glib +%else +BuildRequires: libappstream-glib +%endif +%if 0%{?suse_version} || 0%{?fedora_version} +BuildRequires: cmake(Qt5LinguistTools) +%endif +BuildRequires: pkgconfig +BuildRequires: pkgconfig(glib-2.0) +BuildRequires: pkgconfig(gio-2.0) +BuildRequires: pkgconfig(gio-unix-2.0) +BuildRequires: pkgconfig(gthread-2.0) +BuildRequires: pkgconfig(dbus-1) +BuildRequires: pkgconfig(alsa) +BuildRequires: pkgconfig(protobuf) +BuildRequires: pkgconfig(sqlite3) +BuildRequires: pkgconfig(taglib) +BuildRequires: pkgconfig(Qt5Core) +BuildRequires: pkgconfig(Qt5Gui) +BuildRequires: pkgconfig(Qt5Widgets) +BuildRequires: pkgconfig(Qt5Concurrent) +BuildRequires: pkgconfig(Qt5Network) +BuildRequires: pkgconfig(Qt5Sql) +BuildRequires: pkgconfig(Qt5X11Extras) +BuildRequires: pkgconfig(Qt5DBus) +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) +%if 0%{?suse_version} || 0%{?fedora_version} +BuildRequires: pkgconfig(libchromaprint) +%endif +BuildRequires: pkgconfig(libpulse) +BuildRequires: pkgconfig(libcdio) +BuildRequires: pkgconfig(libgpod-1.0) +BuildRequires: pkgconfig(libmtp) +BuildRequires: pkgconfig(libnotify) +BuildRequires: pkgconfig(libudf) +%if 0%{?suse_version} || 0%{?fedora_version} +BuildRequires: pkgconfig(libxine) +BuildRequires: pkgconfig(libvlc) +%endif + +%if 0%{?suse_version} +Requires: libQt5Sql5-sqlite +%endif + +%if 0%{?suse_version} && 0%{?suse_version} < 1500 +Requires(post): update-desktop-files +Requires(post): gtk3-tools +Requires(postun): update-desktop-files +Requires(postun): gtk3-tools +%endif + +%description +Strawberry is a music player and music collection organizer. +It is a fork of Clementine. The name is inspired by the band Strawbs. + +Features: + - Play and organize music + - Supports WAV, FLAC, WavPack, DSF, DSDIFF, Ogg Vorbis, Speex, MPC, TrueAudio, AIFF, MP4, MP3 and ASF + - Audio CD playback + - Native desktop notifications + - Playlists in multiple formats + - Advanced audio output and device configuration for bit-perfect playback on Linux + - Edit tags on music files + - Fetch tags from MusicBrainz + - Album cover art from Last.fm, Musicbrainz and Discogs + - Song lyrics from AudD + - Support for multiple backends + - Audio analyzer + - Audio equalizer + - Transfer music to iPod, iPhone, MTP or mass-storage USB player + - Streaming support for Tidal + - Scrobbler with support for Last.fm, Libre.fm and ListenBrainz + +%prep +%setup -qn %{name}-@STRAWBERRY_VERSION_PACKAGE@ + +%build +%if 0%{?suse_version} + %{cmake} .. -DUSE_INSTALL_PREFIX=OFF + make %{?_smp_mflags} +%else + mkdir -p %{_target_platform} + pushd %{_target_platform} + %{cmake} .. + popd +%endif + +%if ! 0%{?suse_version} + %make_build -C %{_target_platform} +%endif + +%install +%if 0%{?suse_version} + %cmake_install +%else + %make_install DESTDIR=%{buildroot} -C %{_target_platform} +%endif + +%if 0%{?suse_version} + %suse_update_desktop_file org.strawbs.strawberry Qt AudioVideo Audio Player +%endif + +%if 0%{?suse_version} && 0%{?suse_version} < 1500 + %post + %desktop_database_post + %icon_theme_cache_post + + %postun + %desktop_database_postun + %icon_theme_cache_postun +%endif + +%check +desktop-file-validate %{buildroot}%{_datadir}/applications/org.strawbs.strawberry.desktop +%if 0%{?fedora_version} + appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/org.strawbs.strawberry.appdata.xml +%else + %if 0%{?suse_version} + %if 0%{?suse_version} >= 1500 + appstream-util validate-relax --nonet %{buildroot}%{_datadir}/metainfo/org.strawbs.strawberry.appdata.xml + %else + appstream-util validate-relax --nonet %{buildroot}%{_datadir}/appdata/org.strawbs.strawberry.appdata.xml + %endif + %else + appstream-util validate-relax --nonet %{buildroot}%{_datadir}/metainfo/org.strawbs.strawberry.appdata.xml + %endif +%endif + +%files +%defattr(-,root,root,-) +%doc README.md Changelog +%license COPYING +%{_bindir}/strawberry +%{_bindir}/strawberry-tagreader +%{_datadir}/applications/*.desktop +%{_datadir}/icons/hicolor/*/apps/strawberry.* +%if 0%{?fedora_version} + %{_metainfodir}/*.appdata.xml +%else + %if 0%{?suse_version} + %if 0%{?suse_version} >= 1500 + %{_datadir}/metainfo/*.appdata.xml + %else + %{_datadir}/appdata/*.appdata.xml + %endif + %else + %{_datadir}/metainfo/*.appdata.xml + %endif +%endif +%{_mandir}/man1/%{name}.1.* +%{_mandir}/man1/%{name}-tagreader.1.* + +%changelog +* @RPM_DATE@ Jonas Kvinge - @STRAWBERRY_VERSION_RPM_V@ +- Version @STRAWBERRY_VERSION_PACKAGE@