LogoopenSUSE Build Service > Projects
Sign Up | Log In

View File kid3.spec of Package kid3 (Project KDE:Extra)

#
# spec file for package kid3
#
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#


%if 0%{?suse_version} > 1320 || 0%{?sle_version}
%bcond_without  build_qt5
%endif

%if ! ( 0%{?suse_version} == 1315 && ! 0%{?is_opensuse} )
%bcond_without  build_kde
%endif

Name:           kid3
Version:        3.4.2
Release:        0
Summary:        Efficient ID3 Tag Editor
License:        GPL-2.0+
Group:          Productivity/Multimedia/Sound/Utilities
Url:            http://kid3.sourceforge.net/
# WARNING: The source url is a moving target, leave it blank
Source0:        %{name}-%{version}.tar.gz
Source1:        %{name}-%{version}.tar.gz.asc
BuildRequires:  docbook-xsl-stylesheets
BuildRequires:  id3lib-devel
BuildRequires:  readline-devel
BuildRequires:  pkgconfig(flac)
BuildRequires:  pkgconfig(ogg)
BuildRequires:  pkgconfig(taglib) >= 1.4
BuildRequires:  pkgconfig(vorbis)
Requires:       %{name}-core = %{version}
Requires:       xdg-utils
# kid3 and kid3-qt can exist together on a system but the user will have two packages with the same functionality.
Conflicts:      kid3-qt = %{version}
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
BuildRequires:  pkgconfig(libavcodec)
BuildRequires:  pkgconfig(libavformat)
BuildRequires:  pkgconfig(libavresample)
BuildRequires:  pkgconfig(libavutil)
BuildRequires:  pkgconfig(libchromaprint)
BuildRequires:  pkgconfig(libswresample)
%if %{with build_qt5}
%if %{with build_kde}
BuildRequires:  kf5-filesystem
BuildRequires:  cmake(KF5DocTools)
BuildRequires:  cmake(KF5KIO)
%endif
BuildRequires:  pkgconfig(Qt5Core)
BuildRequires:  pkgconfig(Qt5DBus)
BuildRequires:  pkgconfig(Qt5Gui)
BuildRequires:  pkgconfig(Qt5Multimedia)
BuildRequires:  pkgconfig(Qt5Network)
BuildRequires:  pkgconfig(Qt5Qml)
BuildRequires:  pkgconfig(Qt5Test)
BuildRequires:  pkgconfig(Qt5UiTools)
BuildRequires:  pkgconfig(Qt5Widgets)
BuildRequires:  pkgconfig(Qt5Xml)
%else
BuildRequires:  libkde4-devel
BuildRequires:  libqt4-devel >= 4.7
%endif
%if 0%{?suse_version} > 1210
BuildRequires:  libxslt-tools
%endif
%if 0%{?suse_version} > 1310
BuildRequires:  pkgconfig(gstreamer-1.0)
%else
BuildRequires:  pkgconfig(gstreamer-0.10)
%endif
%if 0%{?suse_version}
BuildRequires:  hicolor-icon-theme
BuildRequires:  update-desktop-files
%endif
%if 0%{?suse_version} > 1210
Requires:       libxslt-tools
%endif
%if %{without build_qt5}
%{?kde4_runtime_requires}
%endif

%description
f you want to easily tag multiple MP3, Ogg/Vorbis, Opus, DSF, FLAC,
MPC, MP4/AAC, MP2, Opus, Speex, TrueAudio, WavPack and WMA files 
(e.g. full albums) without typing the same information again and
again and have control over both ID3v1 and ID3v2 tags,
then Kid3 is the program you are looking for.

With Kid3 you can:
- Edit ID3v1.1 tags
- Edit all ID3v2.3 and ID3v2.4 frames
- Convert between ID3v1.1, ID3v2.3 and ID3v2.4 tags
- Edit tags in MP3, Ogg/Vorbis, FLAC, MPC, MP4/AAC, MP2, Speex,
  TrueAudio, WavPack, WMA, AIFF and WAV files
- Edit tags of multiple files, e.g. the artist, album, year and
  genre of all files of an album typically have the same values
  and can be set together.
- Generate tags from filenames
- Generate tags from the contents of tag fields
- Generate filenames from tags
- Rename and create directories from tags
- Generate playlist files
- Automatically convert upper and lower case and replace strings
- Import from freedb2.org, MusicBrainz, Discogs, Amazon and other
  sources of album data
- Export tags as CSV, HTML, playlists, Kover XML and in other formats
- Edit synchronized lyrics and event timing codes,import and export LRC files

This package uses KDE libraries, if you do not use KDE you should use kid3-qt.
For a commandline interface you can use kid3-cli.

%package qt
Summary:        Efficient ID3 Tag Editor
Group:          Productivity/Multimedia/Sound/Utilities
Requires:       %{name}-core = %{version}
Requires:       xdg-utils
# kid3 and kid3-qt can exist together on a system but the user will have two packages with the same functionality.
Conflicts:      kid3 = %{version}
Obsoletes:      kid3-qt < %{version}

%description qt
With Kid3 you can:
  - Edit ID3v1.1 tags
  - Edit all ID3v2.3 and ID3v2.4 frames
  - Convert between ID3v1.1, ID3v2.3 and ID3v2.4 tags
  - Edit tags in MP3, Ogg/Vorbis, FLAC, MPC, APE, MP4/AAC, MP2, Speex,
    TrueAudio, WavPack, WMA, WAV, AIFF files and tracker modules (MOD,
    S3M, IT, XM).
  - Edit tags of multiple files, e.g. the artist, album, year and genre
    of all files of an album typically have the same values and can be
    set together.
  - Generate tags from filenames
  - Generate tags from the contents of tag fields
  - Generate filenames from tags
  - Generate playlist files
  - Automatic case conversion and string translation
  - Import and export album data
  - Import from gnudb.org, TrackType.org, MusicBrainz, Discogs, Amazon

This package does not use KDE libraries, if you use KDE you should use kid3.
For a commandline interface you can use kid3-cli.

%package cli
Summary:        Efficient ID3 Tag Editor
Group:          Productivity/Multimedia/Sound/Utilities
Requires:       %{name}-core = %{version}

%description cli
With Kid3 you can:
  - Edit ID3v1.1 tags
  - Edit all ID3v2.3 and ID3v2.4 frames
  - Convert between ID3v1.1, ID3v2.3 and ID3v2.4 tags
  - Edit tags in MP3, Ogg/Vorbis, FLAC, MPC, APE, MP4/AAC, MP2, Speex,
    TrueAudio, WavPack, WMA, WAV, AIFF files and tracker modules (MOD,
    S3M, IT, XM).
  - Edit tags of multiple files, e.g. the artist, album, year and genre
    of all files of an album typically have the same values and can be
    set together.
  - Generate tags from filenames
  - Generate tags from the contents of tag fields
  - Generate filenames from tags
  - Generate playlist files
  - Automatic case conversion and string translation
  - Import and export album data
  - Import from gnudb.org, TrackType.org, MusicBrainz, Discogs, Amazon

This package contains a command line interface for Kid3, for a GUI you can
use kid3-qt or kid3.

%if %{with build_kde}
%package doc
Summary:        Documentation for %{name}
Group:          Productivity/Multimedia/Sound/Utilities
Requires:       %{name} = %{version}

%description doc
This package provides documentation and help files for %{name}.

%endif

%package qt-doc
Summary:        Documentation for %{name}-qt
Group:          Productivity/Multimedia/Sound/Utilities
Requires:       %{name}-qt = %{version}

%description qt-doc
This package provides documentation and help files for %{name}-qt.

%package  core
Summary:        Efficient ID3 Tag Editor: Libraries and Data
Group:          Productivity/Multimedia/Sound/Utilities
Recommends:     kid3-trans-lang = %{version}

%description  core
This package contains common libraries and data files used by kid3, kid3-qt, and kid3-cli.

%lang_package -n %{name}-core

%prep
%setup -q -n kid3-%{version}

%build
options+="-DCMAKE_SKIP_RPATH=ON -DWITH_LIBDIR=%{_lib}/kid3 -DWITH_PLUGINSDIR=%{_lib}/kid3/plugins "
options+="-DWITH_GSTREAMER=ON -DWITH_DOCDIR=share/doc/packages/kid3-qt "
options+="-DWITH_CHROMAPRINT_FFMPEG=ON -DWITH_FFMPEG=ON"
%if %{with build_qt5}
options+="-DWITH_QT5=1 -DWITH_QMLDIR=%{_lib}/qt5/qml/kid3 "
%if %{without build_kde}
%cmake -DWITH_APPS="Qt;CLI" $options
%else
%cmake_kf5 -d build -- $options
%endif
%else
%cmake_kde4 -d build -- $options
%endif

%make_jobs

%install
%if %{with build_qt5}
%if %{without build_kde}
%cmake_install -C build
%else
%kf5_makeinstall -C build
%endif
%else
%kde4_makeinstall -C build
%endif

%if %{with build_kde}
pushd %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/
gzip -dS .svgz kid3.svgz
mv kid3 kid3.svg
popd
%endif

%if %{without build_qt5}
%kde_post_install
%endif

%find_lang %{name} %{name}-core.lang --without-kde --with-qt --all-name --without-mo

mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d/
cat <<EOF >%{buildroot}%{_sysconfdir}/ld.so.conf.d/kid3.conf
%{_libdir}/kid3
EOF

rm %{buildroot}%{_libdir}/kid3/libkid3-*.so

%if %{with build_kde}
%post
%desktop_database_post
%icon_theme_cache_post

%postun
%desktop_database_postun
%icon_theme_cache_postun
%endif

%post qt
%desktop_database_post
%icon_theme_cache_post

%postun qt
%desktop_database_postun
%icon_theme_cache_postun

%post core -p /sbin/ldconfig

%postun core -p /sbin/ldconfig

%if %{with build_kde}
%files
%defattr(-,root,root,-)
%dir %{_datadir}/appdata
%if %{with build_qt5}
%{_kf5_bindir}/kid3
%{_kf5_iconsdir}/hicolor/*/apps/kid3.*
%{_kf5_kxmlguidir}/kid3/
%{_kf5_applicationsdir}/kid3.desktop
%else
%{_kde4_applicationsdir}/kid3.desktop
%{_kde4_appsdir}/kid3/
%{_kde4_bindir}/kid3
%{_kde4_iconsdir}/hicolor/*/apps/kid3.*
%endif
%{_datadir}/appdata/kid3.appdata.xml
%endif

%files qt
%defattr(-,root,root,-)
%dir %{_datadir}/appdata
%{_datadir}/applications/kid3-qt.desktop
%{_datadir}/appdata/kid3-qt.appdata.xml
%{_bindir}/kid3-qt
%{_datadir}/icons/hicolor/*/apps/kid3-qt.*
%{_mandir}/man1/kid3-qt.1%{ext_man}
%{_mandir}/de/man1/kid3-qt.1%{ext_man}

%files cli
%defattr(-,root,root,-)
%{_bindir}/kid3-cli
%{_mandir}/man1/kid3-cli.1%{ext_man}
%{_mandir}/de/man1/kid3-cli.1%{ext_man}

%files core
%defattr(-,root,root,-)
%doc AUTHORS ChangeLog COPYING LICENSE README kid3.lsm
%{_libdir}/kid3/
%if %{with build_qt5}
%{_libdir}/qt5/qml/kid3/
%else
%{_datadir}/kid3/qml/
%endif
%config %{_sysconfdir}/ld.so.conf.d/kid3.conf
%if %{with build_kde}
%{_datadir}/dbus-1/interfaces/net.sourceforge.Kid3.xml
%endif
%{_mandir}/man1/kid3.1%{ext_man}
%{_mandir}/de/man1/kid3.1%{ext_man}

%if %{with build_kde}
%files doc
%defattr(-,root,root,-)
%if %{with build_qt5}
%doc %{_kf5_htmldir}/de/kid3/
%doc %{_kf5_htmldir}/en/kid3/
%else
%doc %{_kde4_htmldir}/de/kid3/
%doc %{_kde4_htmldir}/en/kid3/
%endif
%endif

%files qt-doc
%defattr(-,root,root,-)
%{_docdir}/kid3-qt/

%files -n %{name}-core-lang -f %{name}-core.lang
%defattr(-,root,root,-)
%dir %{_datadir}/kid3
%dir %{_datadir}/kid3/translations
%if 0%{?suse_version} < 1230
%{_datadir}/kid3/translations/kid3_sr@ijekavian.qm
%{_datadir}/kid3/translations/kid3_sr@ijekavianlatin.qm
%{_datadir}/kid3/translations/kid3_sr@latin.qm
%endif

%changelog