3 %bcond_without faad # FAAD AAC audio decoder
4 %bcond_without ffmpeg # FFmpeg support
5 %bcond_without hidapi # HID controller support
6 %bcond_with ipod # iPod support via libgpod [NOT-WORKING, src/wipodtracksmodel.cpp is missing]
7 %bcond_without lv2 # LV2 support
8 %bcond_with qt4 # Qt 4 instead of Qt 5
9 %bcond_without qtkeychain # secure credentials storage for Live Broadcasting profiles (qt5 only, see below)
10 %bcond_without upower # UPower battery state support
11 %bcond_without wavpack # WavPack audio decoder
17 # as of 2.2.1, qt5keychain is always checked, see build/depends.py
18 %undefine with_qtkeychain
20 Summary: Mixxx - DJ tool
21 Summary(hu.UTF-8): Mixxx - DJ program
22 Summary(pl.UTF-8): Mixxx - narzędzie dla DJ-ów
26 License: GPL v2+ (code), Apache v2.0 (OpenSans font), Ubuntu Font License v1.0 (Ubuntu fonts)
27 Group: X11/Applications/Multimedia
28 Source0: https://github.com/mixxxdj/mixxx/archive/release-%{version}/%{name}-release-%{version}.tar.gz
29 # Source0-md5: ef72d4b594f9f3dbafd1e264be89fbdc
30 Patch0: %{name}-vamp.patch
31 URL: https://mixxx.org/
32 BuildRequires: OpenGL-GLU-devel
34 BuildRequires: QtCore-devel >= %{qt4_ver}
35 BuildRequires: QtDBus-devel >= %{qt4_ver}
36 BuildRequires: QtGui-devel >= %{qt4_ver}
37 BuildRequires: QtNetwork-devel >= %{qt4_ver}
38 BuildRequires: QtOpenGL-devel >= %{qt4_ver}
39 BuildRequires: QtScript-devel >= %{qt4_ver}
40 BuildRequires: QtScriptTools-devel >= %{qt4_ver}
41 BuildRequires: QtSql-devel >= %{qt4_ver}
42 BuildRequires: QtSvg-devel >= %{qt4_ver}
43 BuildRequires: QtTest-devel >= %{qt4_ver}
44 BuildRequires: QtXml-devel >= %{qt4_ver}
46 BuildRequires: Qt5Concurrent-devel >= %{qt5_ver}
47 BuildRequires: Qt5Core-devel >= %{qt5_ver}
48 BuildRequires: Qt5DBus-devel >= %{qt5_ver}
49 BuildRequires: Qt5Gui-devel >= %{qt5_ver}
50 %{?with_qtkeychain:BuildRequires: Qt5Keychain-devel}
51 BuildRequires: Qt5Network-devel >= %{qt5_ver}
52 BuildRequires: Qt5OpenGL-devel >= %{qt5_ver}
53 BuildRequires: Qt5Script-devel >= %{qt5_ver}
54 BuildRequires: Qt5ScriptTools-devel >= %{qt5_ver}
55 BuildRequires: Qt5Sql-devel >= %{qt5_ver}
56 BuildRequires: Qt5Svg-devel >= %{qt5_ver}
57 BuildRequires: Qt5Test-devel >= %{qt5_ver}
58 BuildRequires: Qt5Widgets-devel >= %{qt5_ver}
59 BuildRequires: Qt5X11Extras-devel >= %{qt5_ver}
60 BuildRequires: Qt5Xml-devel >= %{qt5_ver}
62 BuildRequires: audiofile-devel
63 %{?with_faad:BuildRequires: faad2-devel >= 2.7}
64 # libavcodec >= 53.35.0 libavformat >= 53.21.0 libavutil
65 %{?with_ffmpeg:BuildRequires: ffmpeg-devel >= 0.11}
66 BuildRequires: fftw3-devel >= 3
67 BuildRequires: flac-devel
68 %{?with_ipod:BuildRequires: glib2-devel >= 2.0}
69 %{?with_hidapi:BuildRequires: hidapi-devel >= 0.8.0}
70 BuildRequires: jack-audio-connection-kit-devel
71 BuildRequires: libchromaprint-devel
72 BuildRequires: libebur128-devel
73 %{?with_ipod:BuildRequires: libgpod-devel}
74 BuildRequires: libid3tag-devel
75 BuildRequires: libmad-devel
76 BuildRequires: libmodplug-devel
77 BuildRequires: libogg-devel
78 BuildRequires: libshout-devel >= 2
79 BuildRequires: libsndfile-devel
80 BuildRequires: libstdc++-devel >= 6:4.7
81 BuildRequires: libusb-devel >= 1.0
82 BuildRequires: libvorbis-devel
83 %{?with_lv2:BuildRequires: lilv-devel >= 0.5}
84 %{?with_faad:BuildRequires: mp4v2-devel}
85 BuildRequires: opus-devel >= 1.0
86 BuildRequires: opusfile-devel >= 0.2
87 BuildRequires: pkgconfig >= 1:0.15.0
88 BuildRequires: portaudio-devel >= 19
89 BuildRequires: portmidi-devel >= 217
90 BuildRequires: protobuf-devel
92 BuildRequires: qt4-build >= %{qt4_ver}
93 BuildRequires: qt4-linguist >= %{qt4_ver}
95 BuildRequires: qt5-build >= %{qt5_ver}
96 BuildRequires: qt5-linguist >= %{qt5_ver}
98 BuildRequires: rpmbuild(macros) >= 1.566
99 BuildRequires: rubberband-devel
101 BuildRequires: sed >= 4.0
102 BuildRequires: soundtouch-devel >= 2.0.0
103 BuildRequires: sqlite3-devel >= 3
104 BuildRequires: taglib-devel
105 %{?with_upower:BuildRequires: upower-devel}
106 BuildRequires: vamp-devel >= 2.7.1
107 %{?with_wavpack:BuildRequires: wavpack-devel}
108 BuildRequires: xorg-lib-libX11-devel
110 Requires: QtSql-sqlite3 >= %{qt4_ver}
112 Requires: Qt5Sql-sqlite3 >= %{qt5_ver}
114 %{?with_faad:Requires: faad2 >= 2.7}
115 %{?with_hidapi:Requires: hidapi >= 0.8.0}
116 Obsoletes: mixxx-translations
117 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
126 Mixxx is an open source DJ tool designed for both professional and
129 %description -l hu.UTF-8
130 Mixxx egy nyílt forrású DJ eszköz profi és amatőr DJ-knek egyaránt.
132 %description -l pl.UTF-8
133 Mixxx to mające otwarte źródła narzędzie dla DJ-ów zaprojektowane
134 zarówno dla profesjonalistów jak i amatorów.
137 Summary: The core skins for Mixxx
138 Summary(hu.UTF-8): Alap skinek a Mixxx-hez
139 Summary(pl.UTF-8): Podstawowe skórki dla programu Mixxx
140 Group: X11/Applications/Multimedia
142 %description skins-core
143 The core skins for Mixxx.
145 %description skins-core -l hu.UTF-8
146 Alap skinek a Mixxx-hez.
148 %description skins-core -l pl.UTF-8
149 Podstawowe skórki dla programu Mixxx.
152 %setup -q -n %{name}-release-%{version}
156 export CXXFLAGS="%{rpmcxxflags}"
157 export CCFLAGS="%{rpmcflags}"
158 export CXX="%{__cxx}"
159 export QMAKE_CXX="%{__cxx}"
163 %{!?with_upower:battery=0} \
164 %{?with_faad:faad=1} \
165 %{?with_ffmpeg:ffmpeg=1} \
166 %{!?with_hidapi:hid=0} \
167 %{?with_ipod:ipod=1} \
168 %{?with_lv2:lilv=1} \
171 %{?with_qtkeychain:qtkeychain=1} \
173 %{?with_wavpack:wv=1}
176 rm -rf $RPM_BUILD_ROOT
178 export CXXFLAGS="%{rpmcxxflags}"
179 export CCFLAGS="%{rpmcflags}"
180 export CXX="%{__cxx}"
181 export QMAKE_CXX="%{__cxx}"
184 install_root=$RPM_BUILD_ROOT%{_prefix}
187 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/mixxx
188 %{__rm} $RPM_BUILD_ROOT%{_datadir}/mixxx/fonts/Ubuntu.LICENCE.txt
189 # generic Apache v2.0 license
190 %{__rm} $RPM_BUILD_ROOT%{_datadir}/mixxx/fonts/OpenSans.LICENSE.txt
193 # both ca and ca-ES exist, both up to date, with few differences... keep ca
194 %{__rm} $RPM_BUILD_ROOT%{_datadir}/mixxx/translations/mixxx_ca-ES.qm
195 # en is en_US in fact
196 %{__mv} $RPM_BUILD_ROOT%{_datadir}/mixxx/translations/mixxx_{en,en_US}.qm
197 # both es and es-ES exist, the first is outdated
198 %{__mv} $RPM_BUILD_ROOT%{_datadir}/mixxx/translations/mixxx_{es-ES,es}.qm
199 # both fr and fr-FR exist, the latter is outdated
200 %{__rm} $RPM_BUILD_ROOT%{_datadir}/mixxx/translations/mixxx_fr-FR.qm
201 # both pt and pt-PT exist, the first is outdated
202 %{__mv} $RPM_BUILD_ROOT%{_datadir}/mixxx/translations/mixxx_{pt-PT,pt}.qm
203 # both zh_TW and zh_TW.Big5 exist, thr latter is outdated
204 %{__rm} $RPM_BUILD_ROOT%{_datadir}/mixxx/translations/mixxx_zh_TW.Big5.qm
205 # unify using short code
206 %{__mv} $RPM_BUILD_ROOT%{_datadir}/mixxx/translations/mixxx_{sq-AL,sq}.qm
207 # underscore (not dash) should be used as delimiter
208 %{__mv} $RPM_BUILD_ROOT%{_datadir}/mixxx/translations/mixxx_{es-MX,es_MX}.qm
211 rm -rf $RPM_BUILD_ROOT
214 %defattr(644,root,root,755)
215 %doc README Mixxx-Manual.pdf res/fonts/Ubuntu.LICENCE.txt
216 %attr(755,root,root) %{_bindir}/mixxx
217 %dir %{_libdir}/mixxx
218 %dir %{_libdir}/mixxx/plugins
219 %dir %{_libdir}/mixxx/plugins/soundsource%{qtsuf}
220 %attr(755,root,root) %{_libdir}/mixxx/plugins/soundsource%{qtsuf}/libsoundsourcem4a.so
221 %attr(755,root,root) %{_libdir}/mixxx/plugins/soundsource%{qtsuf}/libsoundsourcewv.so
222 %dir %{_libdir}/mixxx/plugins/vamp%{qtsuf}
223 %attr(755,root,root) %{_libdir}/mixxx/plugins/vamp%{qtsuf}/libmixxxminimal.so
224 %{_datadir}/appdata/mixxx.appdata.xml
225 %dir %{_datadir}/mixxx
226 %{_datadir}/mixxx/controllers
227 %{_datadir}/mixxx/fonts
228 %{_datadir}/mixxx/keyboard
229 %dir %{_datadir}/mixxx/skins
230 # This is the default skin
231 %{_datadir}/mixxx/skins/Deere
232 %dir %{_datadir}/mixxx/translations
233 %lang(ar) %{_datadir}/mixxx/translations/mixxx_ar.qm
234 %lang(ast) %{_datadir}/mixxx/translations/mixxx_ast.qm
235 %lang(bg) %{_datadir}/mixxx/translations/mixxx_bg.qm
236 %lang(br) %{_datadir}/mixxx/translations/mixxx_br.qm
237 %lang(bs) %{_datadir}/mixxx/translations/mixxx_bs.qm
238 %lang(ca) %{_datadir}/mixxx/translations/mixxx_ca.qm
239 %lang(ceb) %{_datadir}/mixxx/translations/mixxx_ceb.qm
240 %lang(cs) %{_datadir}/mixxx/translations/mixxx_cs.qm
241 %lang(da) %{_datadir}/mixxx/translations/mixxx_da.qm
242 %lang(de) %{_datadir}/mixxx/translations/mixxx_de.qm
243 %lang(el) %{_datadir}/mixxx/translations/mixxx_el.qm
244 %lang(en) %{_datadir}/mixxx/translations/mixxx_en_GB.qm
245 %lang(en) %{_datadir}/mixxx/translations/mixxx_en_US.qm
246 %lang(eo) %{_datadir}/mixxx/translations/mixxx_eo.qm
247 %lang(es) %{_datadir}/mixxx/translations/mixxx_es.qm
248 %lang(es_MX) %{_datadir}/mixxx/translations/mixxx_es_MX.qm
249 %lang(et) %{_datadir}/mixxx/translations/mixxx_et.qm
250 %lang(eu) %{_datadir}/mixxx/translations/mixxx_eu.qm
251 %lang(fa) %{_datadir}/mixxx/translations/mixxx_fa.qm
252 %lang(fi) %{_datadir}/mixxx/translations/mixxx_fi.qm
253 %lang(fr) %{_datadir}/mixxx/translations/mixxx_fr.qm
254 %lang(ga) %{_datadir}/mixxx/translations/mixxx_ga.qm
255 %lang(gl) %{_datadir}/mixxx/translations/mixxx_gl.qm
256 %lang(he) %{_datadir}/mixxx/translations/mixxx_he.qm
257 %lang(hr) %{_datadir}/mixxx/translations/mixxx_hr.qm
258 %lang(hu) %{_datadir}/mixxx/translations/mixxx_hu.qm
259 %lang(hy) %{_datadir}/mixxx/translations/mixxx_hy.qm
260 %lang(ia) %{_datadir}/mixxx/translations/mixxx_ia.qm
261 %lang(id) %{_datadir}/mixxx/translations/mixxx_id.qm
262 %lang(is) %{_datadir}/mixxx/translations/mixxx_is.qm
263 %lang(it) %{_datadir}/mixxx/translations/mixxx_it.qm
264 %lang(ja) %{_datadir}/mixxx/translations/mixxx_ja.qm
265 %lang(ko) %{_datadir}/mixxx/translations/mixxx_ko.qm
266 %lang(ky) %{_datadir}/mixxx/translations/mixxx_ky.qm
267 %lang(lb) %{_datadir}/mixxx/translations/mixxx_lb.qm
268 %lang(lt) %{_datadir}/mixxx/translations/mixxx_lt.qm
269 %lang(lv) %{_datadir}/mixxx/translations/mixxx_lv.qm
270 %lang(mk) %{_datadir}/mixxx/translations/mixxx_mk.qm
271 %lang(ml) %{_datadir}/mixxx/translations/mixxx_ml.qm
272 %lang(mn) %{_datadir}/mixxx/translations/mixxx_mn.qm
273 %lang(mr) %{_datadir}/mixxx/translations/mixxx_mr.qm
274 %lang(ms) %{_datadir}/mixxx/translations/mixxx_ms.qm
275 %lang(my) %{_datadir}/mixxx/translations/mixxx_my.qm
276 %lang(nb) %{_datadir}/mixxx/translations/mixxx_nb.qm
277 %lang(nl) %{_datadir}/mixxx/translations/mixxx_nl.qm
278 %lang(nn) %{_datadir}/mixxx/translations/mixxx_nn.qm
279 %lang(oc) %{_datadir}/mixxx/translations/mixxx_oc.qm
280 %lang(pl) %{_datadir}/mixxx/translations/mixxx_pl.qm
281 %lang(pt) %{_datadir}/mixxx/translations/mixxx_pt.qm
282 %lang(pt_BR) %{_datadir}/mixxx/translations/mixxx_pt_BR.qm
283 %lang(ro) %{_datadir}/mixxx/translations/mixxx_ro.qm
284 %lang(ru) %{_datadir}/mixxx/translations/mixxx_ru.qm
285 %lang(si) %{_datadir}/mixxx/translations/mixxx_si.qm
286 %lang(sk) %{_datadir}/mixxx/translations/mixxx_sk.qm
287 %lang(sl) %{_datadir}/mixxx/translations/mixxx_sl.qm
288 %lang(sn) %{_datadir}/mixxx/translations/mixxx_sn.qm
289 %lang(sq) %{_datadir}/mixxx/translations/mixxx_sq.qm
290 %lang(sr) %{_datadir}/mixxx/translations/mixxx_sr.qm
291 %lang(sv) %{_datadir}/mixxx/translations/mixxx_sv.qm
292 %lang(ta) %{_datadir}/mixxx/translations/mixxx_ta.qm
293 %lang(te) %{_datadir}/mixxx/translations/mixxx_te.qm
294 %lang(tr) %{_datadir}/mixxx/translations/mixxx_tr.qm
295 %lang(uk) %{_datadir}/mixxx/translations/mixxx_uk.qm
296 %lang(uz) %{_datadir}/mixxx/translations/mixxx_uz.qm
297 %lang(vi) %{_datadir}/mixxx/translations/mixxx_vi.qm
298 %lang(zh_CN) %{_datadir}/mixxx/translations/mixxx_zh_CN.qm
299 %lang(zh_TW) %{_datadir}/mixxx/translations/mixxx_zh_TW.qm
300 %{_desktopdir}/mixxx.desktop
301 %{_pixmapsdir}/mixxx_icon.svg
304 %defattr(644,root,root,755)
305 # note: "?" is used to catch spaces (I can't see any way to match space explicitly in rpm)
306 %{_datadir}/mixxx/skins/Deere?(64?Samplers)
307 %{_datadir}/mixxx/skins/LateNight
308 %{_datadir}/mixxx/skins/Shade
309 %{_datadir}/mixxx/skins/Tango
310 %{_datadir}/mixxx/skins/Tango?(64?Samplers)