summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Bogusz2019-08-04 17:19:10 (GMT)
committerJakub Bogusz2019-08-04 17:19:10 (GMT)
commit2b46b2428604691bdf9f77bc554f5a131a57469f (patch)
tree3f67ada0981c09af0651f80eb0f53c152a771abe
parent177df3f8cc3601539a79374897baae5fe973de7a (diff)
downloadmixxx-2b46b2428604691bdf9f77bc554f5a131a57469f.zip
mixxx-2b46b2428604691bdf9f77bc554f5a131a57469f.tar.gz
- updated to 2.2.1
- removed obsolete desktop,libdir patches - added vamp patch (fix vamp-sdk detection) - defaults to qt5 now
-rw-r--r--desktop.patch11
-rw-r--r--mixxx-libdir.patch44
-rw-r--r--mixxx-vamp.patch11
-rw-r--r--mixxx.spec223
4 files changed, 175 insertions, 114 deletions
diff --git a/desktop.patch b/desktop.patch
deleted file mode 100644
index de231a4..0000000
--- a/desktop.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- mixxx-1.9.0~release-1.9.x~bzr2720/src/mixxx.desktop~ 2011-02-16 04:00:22.000000000 +0100
-+++ mixxx-1.9.0~release-1.9.x~bzr2720/src/mixxx.desktop 2011-07-28 11:38:58.418968335 +0200
-@@ -3,7 +3,7 @@
- Name=Mixxx
- GenericName=Digital DJ interface
- Comment=A digital DJ interface
--Exec=pasuspender mixxx
-+Exec=mixxx
- Terminal=false
- Icon=mixxx-icon
- Type=Application
diff --git a/mixxx-libdir.patch b/mixxx-libdir.patch
deleted file mode 100644
index 2acb8ec..0000000
--- a/mixxx-libdir.patch
+++ /dev/null
@@ -1,44 +0,0 @@
---- mixxx-1.11.0/build/depends.py.orig 2013-05-09 01:20:26.000000000 +0200
-+++ mixxx-1.11.0/build/depends.py 2018-10-21 08:31:44.564677062 +0200
-@@ -898,9 +898,11 @@
- # RESOURCE_PATH that covers Win and OSX too:
- if build.platform_is_linux or build.platform_is_bsd:
- prefix = SCons.ARGUMENTS.get('prefix', '/usr/local')
-- share_path = os.path.join(prefix, 'share/mixxx')
-+ datadir = SCons.ARGUMENTS.get('datadir', os.path.join(prefix, 'share'))
-+ share_path = os.path.join(datadir, 'mixxx')
- build.env.Append(CPPDEFINES=('UNIX_SHARE_PATH', r'\"%s\"' % share_path))
-- lib_path = os.path.join(prefix, 'lib/mixxx')
-+ libdir = SCons.ARGUMENTS.get('libdir', os.path.join(prefix, 'lib'))
-+ lib_path = os.path.join(libdir, 'mixxx')
- build.env.Append(CPPDEFINES=('UNIX_LIB_PATH', r'\"%s\"' % lib_path))
-
- def depends(self, build):
---- mixxx-1.11.0/src/SConscript.orig 2013-05-09 01:20:26.000000000 +0200
-+++ mixxx-1.11.0/src/SConscript 2018-10-21 08:35:27.378007853 +0200
-@@ -237,6 +237,9 @@
-
- if build.platform_is_linux or build.platform_is_bsd:
- flags['prefix'] = ARGUMENTS.get('prefix', '/usr/local')
-+ flags['datadir'] = ARGUMENTS.get('datadir', os.path.join(flags['prefix'], 'share'))
-+ flags['bindir'] = ARGUMENTS.get('bindir', os.path.join(flags['prefix'], 'bin'))
-+ flags['libdir'] = ARGUMENTS.get('libdir', os.path.join(flags['prefix'], 'lib'))
- if not os.path.exists(flags['prefix']):
- print "Error: Prefix path does not exist!"
- Exit(1)
-@@ -245,11 +248,11 @@
- #Basically, the flags['prefix'] is compiled into strings in Mixxx, whereas the install_root is not. When you're
- #building a Debian package, pbuilder wants to install Mixxx to a temporary directory, but you still need
- #the compiled-in strings using /usr as the prefix. That's why we have install_root and flags['prefix'].
-- install_root = ARGUMENTS.get('install_root', flags['prefix'])
-+ install_root = ARGUMENTS.get('install_root', '')
- print "Install root: " + install_root
-- unix_share_path = os.path.join(install_root, 'share')
-- unix_bin_path = os.path.join(install_root, 'bin')
-- unix_lib_path = os.path.join(install_root, 'lib')
-+ unix_share_path = install_root + flags['datadir']
-+ unix_bin_path = install_root + flags['bindir']
-+ unix_lib_path = install_root + flags['libdir']
-
- binary = env.Install(unix_bin_path, binary_files)
- resource = env.Install(os.path.join(unix_share_path, 'mixxx'), resource_files)
diff --git a/mixxx-vamp.patch b/mixxx-vamp.patch
new file mode 100644
index 0000000..726b71d
--- /dev/null
+++ b/mixxx-vamp.patch
@@ -0,0 +1,11 @@
+--- mixxx-release-2.2.1/build/features.py.orig 2019-04-22 09:50:04.000000000 +0200
++++ mixxx-release-2.2.1/build/features.py 2019-08-02 05:28:58.529310596 +0200
+@@ -396,7 +396,7 @@
+ # If there is no system vamp-hostsdk is installed or if the version
+ # of the installed vamp-hostsdk is less than the bundled version,
+ # then we'll directly link the bundled vamp-hostsdk
+- if not conf.CheckLib('vamp-hostsdk') or not conf.CheckForPKG('vamp-plugin-sdk', '2.7.1'):
++ if not conf.CheckLib('vamp-hostsdk') or not conf.CheckForPKG('vamp-sdk', '2.7.1'):
+ # For header includes
+ build.env.Append(CPPPATH=[self.INTERNAL_VAMP_PATH])
+ self.INTERNAL_LINK = True
diff --git a/mixxx.spec b/mixxx.spec
index a92c114..4b5d022 100644
--- a/mixxx.spec
+++ b/mixxx.spec
@@ -1,61 +1,127 @@
+#
+# Conditional build:
+%bcond_without faad # FAAD AAC audio decoder
+%bcond_without ffmpeg # FFmpeg support
+%bcond_without hidapi # HID controller support
+%bcond_with ipod # iPod support via libgpod [NOT-WORKING, src/wipodtracksmodel.cpp is missing]
+%bcond_without lv2 # LV2 support
+%bcond_with qt4 # Qt 4 instead of Qt 5
+%bcond_without qtkeychain # secure credentials storage for Live Broadcasting profiles (qt5 only, see below)
+%bcond_without upower # UPower battery state support
+%bcond_without wavpack # WavPack audio decoder
+
+%define qt4_ver 4.6
+%define qt5_ver 5.0
+
+%if %{with qt4}
+# as of 2.2.1, qt5keychain is always checked, see build/depends.py
+%undefine with_qtkeychain
+%endif
Summary: Mixxx - DJ tool
Summary(hu.UTF-8): Mixxx - DJ program
Summary(pl.UTF-8): Mixxx - narzędzie dla DJ-ów
Name: mixxx
-Version: 1.11.0
-Release: 7
-License: GPL v2+
+Version: 2.2.1
+Release: 1
+License: GPL v2+ (code), Apache v2.0 (OpenSans font), Ubuntu Font License v1.0 (Ubuntu fonts)
Group: X11/Applications/Multimedia
-Source0: http://downloads.mixxx.org/mixxx-%{version}/%{name}-%{version}-src.tar.gz
-# Source0-md5: 89ee8ba60824919d8dd1194287bda259
-Patch0: desktop.patch
-Patch1: %{name}-libdir.patch
-URL: http://mixxx.org/
+Source0: https://github.com/mixxxdj/mixxx/archive/release-%{version}/%{name}-release-%{version}.tar.gz
+# Source0-md5: ef72d4b594f9f3dbafd1e264be89fbdc
+Patch0: %{name}-vamp.patch
+URL: https://mixxx.org/
BuildRequires: OpenGL-GLU-devel
-BuildRequires: Qt3Support-devel >= 4.6
-BuildRequires: QtCore-devel >= 4.6
-BuildRequires: QtGui-devel >= 4.6
-BuildRequires: QtNetwork-devel >= 4.6
-BuildRequires: QtOpenGL-devel >= 4.6
-BuildRequires: QtScript-devel >= 4.6
-BuildRequires: QtSql-devel >= 4.6
-BuildRequires: QtSvg-devel >= 4.6
-BuildRequires: QtXml-devel >= 4.6
-BuildRequires: QtXmlPatterns-devel >= 4.6
+%if %{with qt4}
+BuildRequires: QtCore-devel >= %{qt4_ver}
+BuildRequires: QtDBus-devel >= %{qt4_ver}
+BuildRequires: QtGui-devel >= %{qt4_ver}
+BuildRequires: QtNetwork-devel >= %{qt4_ver}
+BuildRequires: QtOpenGL-devel >= %{qt4_ver}
+BuildRequires: QtScript-devel >= %{qt4_ver}
+BuildRequires: QtScriptTools-devel >= %{qt4_ver}
+BuildRequires: QtSql-devel >= %{qt4_ver}
+BuildRequires: QtSvg-devel >= %{qt4_ver}
+BuildRequires: QtTest-devel >= %{qt4_ver}
+BuildRequires: QtXml-devel >= %{qt4_ver}
+%else
+BuildRequires: Qt5Concurrent-devel >= %{qt5_ver}
+BuildRequires: Qt5Core-devel >= %{qt5_ver}
+BuildRequires: Qt5DBus-devel >= %{qt5_ver}
+BuildRequires: Qt5Gui-devel >= %{qt5_ver}
+%{?with_qtkeychain:BuildRequires: Qt5Keychain-devel}
+BuildRequires: Qt5Network-devel >= %{qt5_ver}
+BuildRequires: Qt5OpenGL-devel >= %{qt5_ver}
+BuildRequires: Qt5Script-devel >= %{qt5_ver}
+BuildRequires: Qt5ScriptTools-devel >= %{qt5_ver}
+BuildRequires: Qt5Sql-devel >= %{qt5_ver}
+BuildRequires: Qt5Svg-devel >= %{qt5_ver}
+BuildRequires: Qt5Test-devel >= %{qt5_ver}
+BuildRequires: Qt5Widgets-devel >= %{qt5_ver}
+BuildRequires: Qt5X11Extras-devel >= %{qt5_ver}
+BuildRequires: Qt5Xml-devel >= %{qt5_ver}
+%endif
BuildRequires: audiofile-devel
-BuildRequires: faad2-devel >= 2.7
+%{?with_faad:BuildRequires: faad2-devel >= 2.7}
+# libavcodec >= 53.35.0 libavformat >= 53.21.0 libavutil
+%{?with_ffmpeg:BuildRequires: ffmpeg-devel >= 0.11}
BuildRequires: fftw3-devel >= 3
BuildRequires: flac-devel
-# for ipod=1
-#BuildRequires: glib2-devel >= 2.0
+%{?with_ipod:BuildRequires: glib2-devel >= 2.0}
+%{?with_hidapi:BuildRequires: hidapi-devel >= 0.8.0}
BuildRequires: jack-audio-connection-kit-devel
-# for ipod=1
-#BuildRequires: libgpod-devel
+BuildRequires: libchromaprint-devel
+BuildRequires: libebur128-devel
+%{?with_ipod:BuildRequires: libgpod-devel}
BuildRequires: libid3tag-devel
BuildRequires: libmad-devel
+BuildRequires: libmodplug-devel
BuildRequires: libogg-devel
BuildRequires: libshout-devel >= 2
BuildRequires: libsndfile-devel
+BuildRequires: libstdc++-devel >= 6:4.7
BuildRequires: libusb-devel >= 1.0
BuildRequires: libvorbis-devel
-BuildRequires: mp4v2-devel
+%{?with_lv2:BuildRequires: lilv-devel >= 0.5}
+%{?with_faad:BuildRequires: mp4v2-devel}
+BuildRequires: opus-devel >= 1.0
+BuildRequires: opusfile-devel >= 0.2
BuildRequires: pkgconfig >= 1:0.15.0
BuildRequires: portaudio-devel >= 19
BuildRequires: portmidi-devel >= 217
BuildRequires: protobuf-devel
-BuildRequires: qt4-build >= 4.6
-BuildRequires: qt4-linguist >= 4.6
+%if %{with qt4}
+BuildRequires: qt4-build >= %{qt4_ver}
+BuildRequires: qt4-linguist >= %{qt4_ver}
+%else
+BuildRequires: qt5-build >= %{qt5_ver}
+BuildRequires: qt5-linguist >= %{qt5_ver}
+%endif
BuildRequires: rpmbuild(macros) >= 1.566
+BuildRequires: rubberband-devel
BuildRequires: scons
BuildRequires: sed >= 4.0
+BuildRequires: soundtouch-devel >= 2.0.0
+BuildRequires: sqlite3-devel >= 3
BuildRequires: taglib-devel
-BuildRequires: vamp-devel >= 2.3
-BuildRequires: wavpack-devel
+%{?with_upower:BuildRequires: upower-devel}
+BuildRequires: vamp-devel >= 2.7.1
+%{?with_wavpack:BuildRequires: wavpack-devel}
BuildRequires: xorg-lib-libX11-devel
-Requires: QtSql-sqlite3 >= 4.6
+%if %{with qt4}
+Requires: QtSql-sqlite3 >= %{qt4_ver}
+%else
+Requires: Qt5Sql-sqlite3 >= %{qt5_ver}
+%endif
+%{?with_faad:Requires: faad2 >= 2.7}
+%{?with_hidapi:Requires: hidapi >= 0.8.0}
Obsoletes: mixxx-translations
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+%if %{with qt4}
+%define qtsuf %{nil}
+%else
+%define qtsuf qt5
+%endif
+
%description
Mixxx is an open source DJ tool designed for both professional and
amateur DJs alike.
@@ -83,9 +149,8 @@ Alap skinek a Mixxx-hez.
Podstawowe skórki dla programu Mixxx.
%prep
-%setup -q
+%setup -q -n %{name}-release-%{version}
%patch0 -p1
-%patch1 -p1
%build
export CXXFLAGS="%{rpmcxxflags}"
@@ -93,41 +158,77 @@ export CCFLAGS="%{rpmcflags}"
export CXX="%{__cxx}"
export QMAKE_CXX="%{__cxx}"
%scons \
- libdir=%{_libdir} \
- faad=1 \
- wv=1
-# ffmpeg=1 is "NOT-WORKING"
-# ipod=1: src/wipodtracksmodel.cpp is missing
-# ladspa=1 doesn't build
+ prefix=%{_prefix} \
+ LIBDIR=%{_lib} \
+ %{!?with_upower:battery=0} \
+ %{?with_faad:faad=1} \
+ %{?with_ffmpeg:ffmpeg=1} \
+ %{!?with_hidapi:hid=0} \
+ %{?with_ipod:ipod=1} \
+ %{?with_lv2:lilv=1} \
+ modplug=1 \
+ %{?with_qt4:qt5=0} \
+ %{?with_qtkeychain:qtkeychain=1} \
+ vinylcontrol=1 \
+ %{?with_wavpack:wv=1}
%install
rm -rf $RPM_BUILD_ROOT
+
export CXXFLAGS="%{rpmcxxflags}"
export CCFLAGS="%{rpmcflags}"
export CXX="%{__cxx}"
export QMAKE_CXX="%{__cxx}"
%scons install \
- install_root=$RPM_BUILD_ROOT \
- libdir=%{_libdir}
+ LIBDIR=%{_lib} \
+ install_root=$RPM_BUILD_ROOT%{_prefix}
+# packaged as %doc
%{__rm} -r $RPM_BUILD_ROOT%{_docdir}/mixxx
+%{__rm} $RPM_BUILD_ROOT%{_datadir}/mixxx/fonts/Ubuntu.LICENCE.txt
+# generic Apache v2.0 license
+%{__rm} $RPM_BUILD_ROOT%{_datadir}/mixxx/fonts/OpenSans.LICENSE.txt
+
+# what a mess...
+# both ca and ca-ES exist, both up to date, with few differences... keep ca
+%{__rm} $RPM_BUILD_ROOT%{_datadir}/mixxx/translations/mixxx_ca-ES.qm
+# en is en_US in fact
+%{__mv} $RPM_BUILD_ROOT%{_datadir}/mixxx/translations/mixxx_{en,en_US}.qm
+# both es and es-ES exist, the first is outdated
+%{__mv} $RPM_BUILD_ROOT%{_datadir}/mixxx/translations/mixxx_{es-ES,es}.qm
+# both fr and fr-FR exist, the latter is outdated
+%{__rm} $RPM_BUILD_ROOT%{_datadir}/mixxx/translations/mixxx_fr-FR.qm
+# both pt and pt-PT exist, the first is outdated
+%{__mv} $RPM_BUILD_ROOT%{_datadir}/mixxx/translations/mixxx_{pt-PT,pt}.qm
+# both zh_TW and zh_TW.Big5 exist, thr latter is outdated
+%{__rm} $RPM_BUILD_ROOT%{_datadir}/mixxx/translations/mixxx_zh_TW.Big5.qm
+# unify using short code
+%{__mv} $RPM_BUILD_ROOT%{_datadir}/mixxx/translations/mixxx_{sq-AL,sq}.qm
+# underscore (not dash) should be used as delimiter
+%{__mv} $RPM_BUILD_ROOT%{_datadir}/mixxx/translations/mixxx_{es-MX,es_MX}.qm
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(644,root,root,755)
-%doc README Mixxx-Manual.pdf
+%doc README Mixxx-Manual.pdf res/fonts/Ubuntu.LICENCE.txt
%attr(755,root,root) %{_bindir}/mixxx
%dir %{_libdir}/mixxx
%dir %{_libdir}/mixxx/plugins
-%dir %{_libdir}/mixxx/plugins/soundsource
-%attr(755,root,root) %{_libdir}/mixxx/plugins/soundsource/libsoundsourcem4a.so
-%attr(755,root,root) %{_libdir}/mixxx/plugins/soundsource/libsoundsourcewv.so
-%dir %{_libdir}/mixxx/plugins/vamp
-%attr(755,root,root) %{_libdir}/mixxx/plugins/vamp/libmixxxminimal.so
+%dir %{_libdir}/mixxx/plugins/soundsource%{qtsuf}
+%attr(755,root,root) %{_libdir}/mixxx/plugins/soundsource%{qtsuf}/libsoundsourcem4a.so
+%attr(755,root,root) %{_libdir}/mixxx/plugins/soundsource%{qtsuf}/libsoundsourcewv.so
+%dir %{_libdir}/mixxx/plugins/vamp%{qtsuf}
+%attr(755,root,root) %{_libdir}/mixxx/plugins/vamp%{qtsuf}/libmixxxminimal.so
+%{_datadir}/appdata/mixxx.appdata.xml
%dir %{_datadir}/mixxx
+%{_datadir}/mixxx/controllers
+%{_datadir}/mixxx/fonts
+%{_datadir}/mixxx/keyboard
%dir %{_datadir}/mixxx/skins
+# This is the default skin
+%{_datadir}/mixxx/skins/Deere
%dir %{_datadir}/mixxx/translations
%lang(ar) %{_datadir}/mixxx/translations/mixxx_ar.qm
%lang(ast) %{_datadir}/mixxx/translations/mixxx_ast.qm
@@ -141,10 +242,13 @@ rm -rf $RPM_BUILD_ROOT
%lang(de) %{_datadir}/mixxx/translations/mixxx_de.qm
%lang(el) %{_datadir}/mixxx/translations/mixxx_el.qm
%lang(en) %{_datadir}/mixxx/translations/mixxx_en_GB.qm
+%lang(en) %{_datadir}/mixxx/translations/mixxx_en_US.qm
%lang(eo) %{_datadir}/mixxx/translations/mixxx_eo.qm
%lang(es) %{_datadir}/mixxx/translations/mixxx_es.qm
+%lang(es_MX) %{_datadir}/mixxx/translations/mixxx_es_MX.qm
%lang(et) %{_datadir}/mixxx/translations/mixxx_et.qm
%lang(eu) %{_datadir}/mixxx/translations/mixxx_eu.qm
+%lang(fa) %{_datadir}/mixxx/translations/mixxx_fa.qm
%lang(fi) %{_datadir}/mixxx/translations/mixxx_fi.qm
%lang(fr) %{_datadir}/mixxx/translations/mixxx_fr.qm
%lang(ga) %{_datadir}/mixxx/translations/mixxx_ga.qm
@@ -158,6 +262,7 @@ rm -rf $RPM_BUILD_ROOT
%lang(is) %{_datadir}/mixxx/translations/mixxx_is.qm
%lang(it) %{_datadir}/mixxx/translations/mixxx_it.qm
%lang(ja) %{_datadir}/mixxx/translations/mixxx_ja.qm
+%lang(ko) %{_datadir}/mixxx/translations/mixxx_ko.qm
%lang(ky) %{_datadir}/mixxx/translations/mixxx_ky.qm
%lang(lb) %{_datadir}/mixxx/translations/mixxx_lb.qm
%lang(lt) %{_datadir}/mixxx/translations/mixxx_lt.qm
@@ -177,29 +282,29 @@ rm -rf $RPM_BUILD_ROOT
%lang(pt_BR) %{_datadir}/mixxx/translations/mixxx_pt_BR.qm
%lang(ro) %{_datadir}/mixxx/translations/mixxx_ro.qm
%lang(ru) %{_datadir}/mixxx/translations/mixxx_ru.qm
+%lang(si) %{_datadir}/mixxx/translations/mixxx_si.qm
+%lang(sk) %{_datadir}/mixxx/translations/mixxx_sk.qm
%lang(sl) %{_datadir}/mixxx/translations/mixxx_sl.qm
+%lang(sn) %{_datadir}/mixxx/translations/mixxx_sn.qm
+%lang(sq) %{_datadir}/mixxx/translations/mixxx_sq.qm
%lang(sr) %{_datadir}/mixxx/translations/mixxx_sr.qm
%lang(sv) %{_datadir}/mixxx/translations/mixxx_sv.qm
+%lang(ta) %{_datadir}/mixxx/translations/mixxx_ta.qm
%lang(te) %{_datadir}/mixxx/translations/mixxx_te.qm
%lang(tr) %{_datadir}/mixxx/translations/mixxx_tr.qm
%lang(uk) %{_datadir}/mixxx/translations/mixxx_uk.qm
%lang(uz) %{_datadir}/mixxx/translations/mixxx_uz.qm
+%lang(vi) %{_datadir}/mixxx/translations/mixxx_vi.qm
%lang(zh_CN) %{_datadir}/mixxx/translations/mixxx_zh_CN.qm
%lang(zh_TW) %{_datadir}/mixxx/translations/mixxx_zh_TW.qm
-%{_datadir}/mixxx/skins/cross.png
-# This is the default skin
-%{_datadir}/mixxx/skins/Outline1024x600-Netbook
-%{_datadir}/mixxx/schema.xml
-%{_datadir}/mixxx/controllers
-%{_datadir}/mixxx/keyboard
-%{_desktopdir}/%{name}.desktop
-%{_pixmapsdir}/%{name}-icon.png
+%{_desktopdir}/mixxx.desktop
+%{_pixmapsdir}/mixxx_icon.svg
%files skins-core
%defattr(644,root,root,755)
-%{_datadir}/mixxx/skins/Deere*x*-*
-%{_datadir}/mixxx/skins/LateNight*x*-*
-%{_datadir}/mixxx/skins/Outline1024x768-XGA
-%{_datadir}/mixxx/skins/Outline800x480-WVGA
-%{_datadir}/mixxx/skins/Phoney*x*-*
-%{_datadir}/mixxx/skins/Shade*x*-*
+# note: "?" is used to catch spaces (I can't see any way to match space explicitly in rpm)
+%{_datadir}/mixxx/skins/Deere?(64?Samplers)
+%{_datadir}/mixxx/skins/LateNight
+%{_datadir}/mixxx/skins/Shade
+%{_datadir}/mixxx/skins/Tango
+%{_datadir}/mixxx/skins/Tango?(64?Samplers)