diff --git a/python-mutagen.changes b/python-mutagen.changes index 0c3a1f0..fe212c0 100644 --- a/python-mutagen.changes +++ b/python-mutagen.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Mon Oct 14 11:51:34 UTC 2013 - i@marguerite.su + +- Implement update-alternatives + * prepare for python3-mutagenx, which has the same binaries/manpages + as this one but still in python2 state. + * it just doesn't hurt... + ------------------------------------------------------------------- Sun Oct 13 12:13:39 UTC 2013 - p.drouand@gmail.com diff --git a/python-mutagen.spec b/python-mutagen.spec index 14097d9..e623e4c 100644 --- a/python-mutagen.spec +++ b/python-mutagen.spec @@ -15,6 +15,10 @@ # Please submit bugfixes or comments via http://bugs.opensuse.org/ # + +%{!?python_sitelib: %global python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")} +%{!?py_ver %global py_ver %(python -c "import sys; v=sys.version_info[:2]; print '%%d.%%d'%%v" 2>/dev/null || echo PYTHON-NOT-FOUND)} + Name: python-mutagen Version: 1.22 Release: 0 @@ -25,10 +29,10 @@ Url: https://pypi.python.org/pypi/mutagen Source: https://pypi.python.org/packages/source/m/mutagen/mutagen-%{version}.tar.gz BuildRequires: python-devel BuildRequires: python-setuptools +Requires(post): update-alternatives +Requires(postun): update-alternatives BuildRoot: %{_tmppath}/%{name}-%{version}-build -%if 0%{?suse_version} && 0%{?suse_version} <= 1110 -%{!?python_sitelib: %global python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")} -%else +%if 0%{?suse_version} > 1110 BuildArch: noarch %endif @@ -46,22 +50,88 @@ Ogg streams on an individual packet/page level. # remove shebangs from library files find mutagen/ -name "*.py" -exec sed -i -e '/^#!\s\?\/usr\/bin\/\(env\s\)\?python$/d' {} ';' +for i in `ls tools` ; do + mv tools/${i} tools/${i}-%{py_ver} +done +for i in `ls man | sed "s/\.1//"` ; do + mv man/${i}.1 man/${i}-%{py_ver}.1 +done + %build python setup.py build %install python setup.py install --root=%{buildroot} --prefix="%{_prefix}" +ln -sf %{_bindir}/mid3iconv-%{py_ver} %{buildroot}%{_bindir}/mid3iconv +ln -sf %{_bindir}/mid3v2-%{py_ver} %{buildroot}%{_bindir}/mid3v2 +ln -sf %{_bindir}/moggsplit-%{py_ver} %{buildroot}%{_bindir}/moggsplit +ln -sf %{_bindir}/mutagen-inspect-%{py_ver} %{buildroot}%{_bindir}/mutagen-inspect +ln -sf %{_bindir}/mutagen-pony-%{py_ver} %{buildroot}%{_bindir}/mutagen-pony + +ln -sf %{_mandir}/man1/mid3iconv-%{py_ver}.1.gz %{buildroot}%{_mandir}/man1/mid3iconv.1.gz +ln -sf %{_mandir}/man1/mid3v2-%{py_ver}.1.gz %{buildroot}%{_mandir}/man1/mid3v2.1.gz +ln -sf %{_mandir}/man1/moggsplit-%{py_ver}.1.gz %{buildroot}%{_mandir}/man1/moggsplit.1.gz +ln -sf %{_mandir}/man1/mutagen-inspect-%{py_ver}.1.gz %{buildroot}%{_mandir}/man1/mutagen-inspect.1.gz +ln -sf %{_mandir}/man1/mutagen-pony-%{py_ver}.1.gz %{buildroot}%{_mandir}/man1/mutagen-pony.1.gz + +%pre +# Since binaries became ghosted to be used with update-alternatives, we have to get rid +# of the old binary resulting from the non-update-alternativies-ified package: +[[ ! -L %{_bindir}/mid3iconv ]] && rm -f %{_bindir}/mid3iconv +[[ ! -L %{_bindir}/mid3v2 ]] && rm -f %{_bindir}/mid3v2 +[[ ! -L %{_bindir}/moggsplit ]] && rm -f %{_bindir}/moggsplit +[[ ! -L %{_bindir}/mutagen-inspect ]] && rm -f %{_bindir}/mutagen-inspect +[[ ! -L %{_bindir}/mutagen-pony ]] && rm -f %{_bindir}/mutagen-pony +[[ ! -L %{_mandir}/man1/mid3iconv.1.gz ]] && rm -f %{_mandir}/man1/mid3iconv.1.gz +[[ ! -L %{_mandir}/man1/mid3v2.1.gz ]] && rm -f %{_mandir}/man1/mid3v2.1.gz +[[ ! -L %{_mandir}/man1/moggsplit.1.gz ]] && rm -f %{_mandir}/man1/moggsplit.1.gz +[[ ! -L %{_mandir}/man1/mutagen-inspect.1.gz ]] && rm -f %{_mandir}/man1/mutagen-inspect.1.gz +[[ ! -L %{_mandir}/man1/mutagen-pony.1.gz ]] && rm -f %{_mandir}/man1/mutagen-pony.1.gz + +exit 0 + +%post +update-alternatives \ +--install %{_bindir}/mid3iconv mid3iconv %{_bindir}/mid3iconv-%{py_ver} 30 \ +--slave %{_bindir}/mid3v2 mid3v2 %{_bindir}/mid3v2-%{py_ver} \ +--slave %{_bindir}/moggsplit moggsplit %{_bindir}/moggsplit-%{py_ver} \ +--slave %{_bindir}/mutagen-inspect mutagen-inspect %{_bindir}/mutagen-inspect-%{py_ver} \ +--slave %{_bindir}/mutagen-pony mutagen-pony %{_bindir}/mutagen-pony-%{py_ver} \ +--slave %{_mandir}/man1/mid3iconv.1.gz mid3iconv.1.gz %{_mandir}/man1/mid3iconv-%{py_ver}.1.gz \ +--slave %{_mandir}/man1/mid3v2.1.gz mid3v2.1.gz %{_mandir}/man1/mid3v2-%{py_ver}.1.gz \ +--slave %{_mandir}/man1/moggsplit.1.gz moggsplit.1.gz %{_mandir}/man1/moggsplit-%{py_ver}.1.gz \ +--slave %{_mandir}/man1/mutagen-inspect.1.gz mutagen-inspect.1.gz %{_mandir}/man1/mutagen-inspect-%{py_ver}.1.gz \ +--slave %{_mandir}/man1/mutagen-pony.1.gz mutagen-pony.1.gz %{_mandir}/man1/mutagen-pony-%{py_ver}.1.gz + +%preun +if [ $1 -eq 0 ] ; then + update-alternatives --remove mid3iconv %{_bindir}/mid3iconv-%{py_ver} +fi %files %defattr(-, root, root, 0755) %doc COPYING NEWS README TODO -%{_bindir}/mid3iconv -%{_bindir}/mid3v2 -%{_bindir}/moggsplit -%{_bindir}/mutagen-inspect -%{_bindir}/mutagen-pony +%ghost %{_bindir}/mid3iconv +%{_bindir}/mid3iconv-%{py_ver} +%ghost %{_bindir}/mid3v2 +%{_bindir}/mid3v2-%{py_ver} +%ghost %{_bindir}/moggsplit +%{_bindir}/moggsplit-%{py_ver} +%ghost %{_bindir}/mutagen-inspect +%{_bindir}/mutagen-inspect-%{py_ver} +%ghost %{_bindir}/mutagen-pony +%{_bindir}/mutagen-pony-%{py_ver} %{python_sitelib}/mutagen %{python_sitelib}/mutagen-%{version}-py%{py_ver}.egg-info -%{_mandir}/man1/*.gz +%ghost %{_mandir}/man1/mid3iconv.1.gz +%{_mandir}/man1/mid3iconv-%{py_ver}.1.gz +%ghost %{_mandir}/man1/mid3v2.1.gz +%{_mandir}/man1/mid3v2-%{py_ver}.1.gz +%ghost %{_mandir}/man1/moggsplit.1.gz +%{_mandir}/man1/moggsplit-%{py_ver}.1.gz +%ghost %{_mandir}/man1/mutagen-inspect.1.gz +%{_mandir}/man1/mutagen-inspect-%{py_ver}.1.gz +%ghost %{_mandir}/man1/mutagen-pony.1.gz +%{_mandir}/man1/mutagen-pony-%{py_ver}.1.gz %changelog