File soundkonverter.spec of Package soundkonverter

#
# spec file for package soundkonverter
#
# Copyright (c) 2017 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/
#


Name:           soundkonverter
Version:        3.0.1
Release:        0
License:        GPL-2.0
Group:          Productivity/Multimedia/Sound/Editors and Convertors
Summary:        Audio file converter, CD ripper and Replay Gain tool
URL:            https://github.com/HessiJames/soundkonverter
Source:         https://github.com/dfaust/soundkonverter/archive/v%{version}.tar.gz
BuildRoot:      %{_tmppath}/%{name}-%{version}-build

# SuSE specific:
%if 0%{?suse_version}
BuildRequires:  cmake(KF5Cddb)
BuildRequires:  cmake(KF5Config)
BuildRequires:  cmake(KF5ConfigWidgets)
BuildRequires:  cmake(KF5I18n)
BuildRequires:  cmake(KF5KDELibs4Support)
BuildRequires:  cmake(KF5KIO)
BuildRequires:  cmake(KF5Solid)
BuildRequires:  cmake(KF5WidgetsAddons)
BuildRequires:  cmake(KF5XmlGui)
BuildRequires:  pkgconfig(Qt5Core)
BuildRequires:  pkgconfig(Qt5Widgets)
BuildRequires:  pkgconfig(phonon4qt5)
BuildRequires:  pkgconfig(taglib) >= 1.4
BuildRequires:  cdparanoia-devel
BuildRequires:  unzip
BuildRequires:  update-desktop-files
Requires:       cdparanoia
Requires:       flac
Requires:       fluidsynth
Requires:       speex
Requires:       timidity
Requires:       vorbis-tools
Requires:       wavpack
Recommends:     MPlayer
Recommends:     aacgain
Recommends:     faac
Recommends:     faad2
Recommends:     ffmpeg
Recommends:     flake
Recommends:     lame
Recommends:     mac
Recommends:     mp3gain
Recommends:     mppdec
Recommends:     mppenc
Recommends:     shorten
Recommends:     sox
Recommends:     twolame
Recommends:     vorbisgain
Recommends:     opus-tools
%endif

# CentOS specific:
%if %{defined centos_version}
BuildRequires:  gcc-c++
BuildRequires:  kdesdk >= 4.0
BuildRequires:  kdemultimedia-devel >= 4.0
BuildRequires:  taglib-devel >= 1.4
BuildRequires:  cdparanoia-devel
Requires:       flac
BuildRequires:  kdemultimedia-devel
Requires:       kdelibs >= 4.0
%define _kde4_applicationsdir /usr/share/applications/kde4/
%define _kde4_modulesdir %{_kde4_libdir}/kde4/
%define _kde4_servicesdir /usr/share/kde4/services/
%define _kde4_servicetypesdir /usr/share/kde4/servicetypes/
%define _kde4_htmldir /usr/share/doc/HTML/
%endif

# Fedora specific:
%if %{defined fedora}
BuildRequires:  gcc-c++
BuildRequires:  qt4-devel >= 4.0.0
BuildRequires:  kdelibs-devel >= 4.0
BuildRequires:  kdemultimedia-devel >= 4.0
BuildRequires:  taglib-devel >= 1.4
BuildRequires:  cdparanoia-devel
BuildRequires:  kdemultimedia-devel
Requires:       qt4 >= 4.0
Requires:       qt4-x11 >= 4.0
Requires:       kdelibs >= 4.0
%define _kde4_applicationsdir /usr/share/applications/kde4/
%define _kde4_modulesdir %{_kde4_libdir}/kde4/
%define _kde4_servicesdir /usr/share/kde4/services/
%define _kde4_servicetypesdir /usr/share/kde4/servicetypes/
%define _kde4_htmldir /usr/share/doc/HTML/
%endif

# Mandriva specific:
%if %{defined mandriva_version}
BuildRequires:  gcc-c++
BuildRequires:  kdelibs4-devel
BuildRequires:  kdemultimedia4-devel
BuildRequires:  libtaglib-devel >= 1.4
BuildRequires:  libcdda-devel
Requires:       kdelibs4 >= 4.0
Requires:       kdemultimedia4 >= 4.0
%define _kde4_bindir /usr/bin
%define _kde4_libdir /usr/lib*
%define _kde4_appsdir /usr/share/apps
%define _kde4_iconsdir /usr/share/icons
%define _kde4_applicationsdir /usr/share/applications/kde4
%define _kde4_modulesdir %{_kde4_libdir}/kde4/
%define _kde4_servicesdir /usr/share/kde4/services/
%define _kde4_servicetypesdir /usr/share/kde4/servicetypes/
%define _kde4_htmldir /usr/share/doc/HTML
%endif

# RedHat specific:
%if %{defined rhel_version}
BuildRequires:  gcc-c++
BuildRequires:  qt-devel >= 4.0
BuildRequires:  kdelibs-devel >= 4.0
BuildRequires:  taglib >= 1.4
BuildRequires:  cdparanoia-devel
BuildRequires:  kdemultimedia-devel
Requires:       qt4 >= 4.0
Requires:       qt4-x11 >= 4.0
Requires:       kdelibs >= 4.0
%endif

%description
soundKonverter is a frontend to various audio converters.

The key features are:
- Audio file conversion
- Replay Gain calculation
- CD ripping

soundKonverter supports reading and writing tags and covers for many formats, so they are preserved when converting files.

It is extendable by plugins and supports many backends including:

- Audio file conversion
  Backends: faac, faad, ffmpeg, flac, lame, mplayer, neroaac, timidity, fluidsynth, vorbistools, opustools, sox, twolame, 
  flake, mac, shorten, wavpack and speex
  Formats: ogg vorbis, mp3, flac, wma, aac, ac3, opus, alac, mp2, als, amr nb, amr wb, ape, speex, m4a, mp1, musepack shorten, 
  tta, wavpack, ra, midi, mod, 3gp, rm, avi, mkv, ogv, mpeg, mov, mp4, flv, wmv and rv

- Replay Gain calculation
  Backends: aacgain, metaflac, mp3gain, vorbisgain, wvgain, mpcgain
  Formats: aac, mp3, flac, ogg vorbis, wavpack, musepack

- CD ripping
  Backends: cdparanoia

If you try to convert a file that is not supported, soundKonverter will tell you which backend you need to install.


%prep
%setup -q

%build
pushd src
%if 0%{?suse_version}
	%cmake_kf5 -d build -- "-DKF5_BUILD=ON"
	%make_jobs
%else
	unset DESTDIR
	mkdir build
	cd build
	CXXFLAGS="${CXXFLAGS} ${RPM_OPT_FLAGS}" CFLAGS="${CFLAGS} ${RPM_OPT_FLAGS}" \
    	cmake -DCMAKE_INSTALL_PREFIX=%{_prefix} ${CONFIGURE_OPTS} ..
	cd -
	make -C build %{?jobs:-j %jobs}
%endif
popd

%install
pushd src
%if 0%{?suse_version}
        %kf5_makeinstall -C build
%else
	make -C build DESTDIR="%{buildroot}" SUID_ROOT="" install
%endif
popd

%if 0%{?suse_version}
%suse_update_desktop_file -r %{name} AudioVideo AudioVideoEditing KDE
%endif

%find_lang %{name}

%files -f %{name}.lang
%defattr(-,root,root)
%doc src/CHANGELOG src/COPYING src/README
%if 0%{?suse_version}
%dir %{_kf5_kxmlguidir}/soundkonverter
%dir %{_kf5_sharedir}/solid
%dir %{_kf5_sharedir}/solid/actions
%dir %{_kf5_sharedir}/soundkonverter
%{_kf5_sharedir}/soundkonverter/*
%{_kf5_bindir}/soundkonverter
%{_kf5_libdir}/libsoundkonvertercore.so*
%{_kf5_servicesdir}/soundkonverter_*
%{_kf5_plugindir}/soundkonverter_*
%{_kf5_applicationsdir}/soundkonverter.desktop
%{_kf5_iconsdir}/hicolor/*/apps/soundkonverter.png
%{_kf5_iconsdir}/hicolor/*/apps/soundkonverter-replaygain.png
%{_kf5_servicetypesdir}/soundkonverter_codecplugin.desktop
%{_kf5_servicetypesdir}/soundkonverter_filterplugin.desktop
%{_kf5_servicetypesdir}/soundkonverter_replaygainplugin.desktop
%{_kf5_servicetypesdir}/soundkonverter_ripperplugin.desktop
%{_kf5_appsdir}/solid/actions/soundkonverter-rip-audiocd.desktop
%{_kf5_kxmlguidir}/soundkonverter/soundkonverterui.rc
%{_kf5_sharedir}/appdata/soundkonverter.appdata.xml
%else
%dir %{_kde4_appsdir}/solid
%dir %{_kde4_appsdir}/solid/actions
%dir %{_kde4_appsdir}/soundkonverter
%dir %{_kde4_datadir}/appdata
%{_kde4_appsdir}/soundkonverter/*
%{_kde4_bindir}/soundkonverter
%{_kde4_libdir}/libsoundkonvertercore.so*
%{_kde4_servicesdir}/soundkonverter_*
%{_kde4_modulesdir}/soundkonverter_*
%{_kde4_applicationsdir}/soundkonverter.desktop
%{_kde4_iconsdir}/*/*x*/apps/soundkonverter.png
%{_kde4_iconsdir}/*/*x*/apps/soundkonverter-replaygain.png
%{_kde4_servicetypesdir}/soundkonverter_codecplugin.desktop
%{_kde4_servicetypesdir}/soundkonverter_filterplugin.desktop
%{_kde4_servicetypesdir}/soundkonverter_replaygainplugin.desktop
%{_kde4_servicetypesdir}/soundkonverter_ripperplugin.desktop
%{_kde4_appsdir}/solid/actions/soundkonverter-rip-audiocd.desktop
%{_kde4_datadir}/appdata/soundkonverter.appdata.xml
%endif

%post -p /sbin/ldconfig
%if 0%{?suse_version} < 1330
%desktop_database_post
%icon_theme_cache_post
%endif

%postun -p /sbin/ldconfig
%if 0%{?suse_version} < 1330
%desktop_database_postun
%icon_theme_cache_postun
%endif

# Remove files really unneeded and annoying after uninstalling soundkonverter

# run only if last instance gets removed
# rpm: 0
# deb: remove
if [ "$1" = "0" ] || [ "$1" = "remove" ]; then

	# get min UID limit
	MIN_UID=$(grep "^UID_MIN" "/etc/login.defs")
	# get max UID limit
	MAX_UID=$(grep "^UID_MAX" "/etc/login.defs")

	# use awk to print if UID >= $MIN_UID and UID <= $MAX_UID and shell is not /sbin/nologin
	USERS=`awk -F':' -v "min=${MIN_UID##UID_MIN}" -v "max=${MAX_UID##UID_MAX}" '{ if ( $3 >= min && $3 <= max && $7 != "/sbin/nologin" ) print $1 }' "/etc/passwd"`
	USERS="root $USERS"

	for USER in $USERS; do
		echo "cleaning up local files for user $USER"
		FILE=`su -l $USER -c "kde4-config --path \"services\" --locate \"ServiceMenus/convert_with_soundkonverter.desktop\""`
		if [ -n "$FILE" ]; then
			echo "rm $FILE"
			rm "$FILE"
		fi
		FILE=`su -l $USER -c "kde4-config --path \"services\" --locate \"ServiceMenus/add_replaygain_with_soundkonverter.desktop\""`
		if [ -n "$FILE" ]; then
			echo "rm $FILE"
			rm "$FILE"
		fi
	done

fi

exit 0

%changelog
openSUSE Build Service is sponsored by