File picard.spec of Package picard

#
# spec file for package picard
#
# Copyright (c) 2012 SUSE LINUX Products 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/
#


Name:           picard
Version:        1.1
Release:        0
Summary:        The Next Generation MusicBrainz Tagger
License:        GPL-2.0+
Group:          Productivity/Multimedia/Sound/Utilities
Url:            http://musicbrainz.org/doc/PicardTagger
Source0:        http://ftp.musicbrainz.org/pub/musicbrainz/picard/%{name}-%{version}.tar.gz
# http://wiki.musicbrainz.org/Picard_Plugins
Source2:        http://dispuutivv.nl/~jan/bonusdisc.py
Source8:        http://users.musicbrainz.org/~brianfreud/SearchAmazon3.py
Source9:        http://users.musicbrainz.org/~brianfreud/SearchAMG.py
Source10:       http://users.musicbrainz.org/~brianfreud/SearchCastAlbums3.py
Source11:       http://users.musicbrainz.org/~brianfreud/SearchDiscogs3.py
Source12:       http://users.musicbrainz.org/~brianfreud/SearchFilmMusziek3.py
Source13:       http://users.musicbrainz.org/~brianfreud/SearchGMR.py
Source14:       http://users.musicbrainz.org/~brianfreud/SearchGoogle3.py
Source15:       http://users.musicbrainz.org/~brianfreud/SearchLortelArchives3.py
Source16:       http://users.musicbrainz.org/~brianfreud/SearchSoundtrackCollector3.py
Source17:       http://users.musicbrainz.org/~brianfreud/SearchSoundtrackINFO3.py
%if 0%{?BUILD_ORIG_ADDON:1}
BuildRequires:  ffmpeg-devel
%endif
BuildRequires:  desktop-file-utils
BuildRequires:  gcc-c++
BuildRequires:  libdiscid-devel
BuildRequires:  libofa-devel
BuildRequires:  python-devel
BuildRequires:  python-mutagen
Requires:       python-mutagen
%if 0%{?suse_version}
BuildRequires:  hicolor-icon-theme
BuildRequires:  python-qt4
BuildRequires:  update-desktop-files
Requires:       python-qt4
%endif
%if 0%{?fedora}
BuildRequires:  PyQt4
%endif
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
%{!?python_sitearch: %global python_sitearch %(python -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}

%description
MusicBrainz Picard is a cross-platform MusicBrainz tag editor written in
Python. Picard Tagger is intended to be the next generation of tagger for
MusicBrainz, with a focus on album oriented tagging as opposed to track based
tagging and cross platform compatibility.

%lang_package
%prep
%setup -q

%build
export CFLAGS="%{optflags}"
cat > %{name}_libdiscid_dummy.c <<-EOF
#include <stdio.h>
#include <discid/discid.h>
int main(void) {
	printf("Dummy to generate correct libdiscid.so rpm dependency.\n");
	discid_free(discid_new());
	return 0;
}
EOF
gcc -Wall -s $CFLAGS -o %{name}_libdiscid_dummy %{name}_libdiscid_dummy.c -ldiscid
# there is some upstream confusion about what the SONAME of libdiscid is supposed to be
libdiscid_so="`readelf --wide --dynamic picard_libdiscid_dummy | sed -n '/(NEEDED).*libdiscid.so/s@^\(.*\[\)\([^]]\+\).*@\2@p'`"
sed -i~ -e "s@^\([[:blank:]]\+\)\(libName[[:blank:]]*=[[:blank:]]*'\)\(libdiscid.so.0\)\('[[:blank:]]*\)@\1\2${libdiscid_so}\4 # was '\3'@" picard/disc.py
if diff -u picard/disc.py~ picard/disc.py ; then : ; fi
#
python setup.py config
python setup.py build

%install
python setup.py install --skip-build --prefix=%{_prefix} --root=%{buildroot}

# install plugins
PLUGINDIR=%{buildroot}%{py_sitedir}/picard/plugins/
install -m 0644 contrib/plugins/coverart.py ${PLUGINDIR}
install -m 0644 %{SOURCE2} ${PLUGINDIR}
install -m 0644 %{SOURCE8} ${PLUGINDIR}
install -m 0644 %{SOURCE9} ${PLUGINDIR}
install -m 0644 %{SOURCE10} ${PLUGINDIR}
install -m 0644 %{SOURCE11} ${PLUGINDIR}
install -m 0644 %{SOURCE12} ${PLUGINDIR}
install -m 0644 %{SOURCE13} ${PLUGINDIR}
install -m 0644 %{SOURCE14} ${PLUGINDIR}
install -m 0644 %{SOURCE15} ${PLUGINDIR}
install -m 0644 %{SOURCE16} ${PLUGINDIR}
install -m 0644 %{SOURCE17} ${PLUGINDIR}

%if 0%{?fedora}
desktop-file-install --delete-original --remove-category="Application" \
    --dir=%{buildroot}%{_datadir}/applications %{buildroot}%{_datadir}/applications/%{name}.desktop
%endif
%if 0%{?suse_version}
%suse_update_desktop_file -G "Music Tagger" -N "picard" picard
%endif

%find_lang %{name}

mkdir -vp %{buildroot}/%{_libdir}/%{name}
cp -avL %{name}_libdiscid_dummy %{buildroot}/%{_libdir}/%{name}

%post
%icon_theme_cache_post

%postun
%icon_theme_cache_postun

%files
%defattr(-,root,root)
%doc AUTHORS.txt COPYING.txt NEWS.txt
%{_bindir}/picard
%{_libdir}/%{name}
%{_datadir}/applications/%{name}.desktop
%{python_sitearch}/picard*
%{_datadir}/icons/hicolor/*/apps/picard.png

%files lang -f %{name}.lang
%defattr(-,root,root)

%changelog