]>
Commit | Line | Data |
---|---|---|
2b46b242 JB |
1 | # |
2 | # Conditional build: | |
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 | |
12 | ||
13 | %define qt4_ver 4.6 | |
14 | %define qt5_ver 5.0 | |
15 | ||
16 | %if %{with qt4} | |
17 | # as of 2.2.1, qt5keychain is always checked, see build/depends.py | |
18 | %undefine with_qtkeychain | |
19 | %endif | |
6e52a8d4 | 20 | Summary: Mixxx - DJ tool |
9d3aa6b7 | 21 | Summary(hu.UTF-8): Mixxx - DJ program |
6e52a8d4 | 22 | Summary(pl.UTF-8): Mixxx - narzędzie dla DJ-ów |
dab252a8 | 23 | Name: mixxx |
2b46b242 | 24 | Version: 2.2.1 |
eefb44f4 | 25 | Release: 6 |
2b46b242 | 26 | License: GPL v2+ (code), Apache v2.0 (OpenSans font), Ubuntu Font License v1.0 (Ubuntu fonts) |
91288879 | 27 | Group: X11/Applications/Multimedia |
2b46b242 JB |
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/ | |
0a70bda1 | 32 | BuildRequires: OpenGL-GLU-devel |
2b46b242 JB |
33 | %if %{with qt4} |
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} | |
45 | %else | |
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} | |
61 | %endif | |
73237277 | 62 | BuildRequires: audiofile-devel |
2b46b242 JB |
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} | |
e1f1ccba JB |
66 | BuildRequires: fftw3-devel >= 3 |
67 | BuildRequires: flac-devel | |
2b46b242 JB |
68 | %{?with_ipod:BuildRequires: glib2-devel >= 2.0} |
69 | %{?with_hidapi:BuildRequires: hidapi-devel >= 0.8.0} | |
dab252a8 | 70 | BuildRequires: jack-audio-connection-kit-devel |
2b46b242 JB |
71 | BuildRequires: libchromaprint-devel |
72 | BuildRequires: libebur128-devel | |
73 | %{?with_ipod:BuildRequires: libgpod-devel} | |
dab252a8 | 74 | BuildRequires: libid3tag-devel |
75 | BuildRequires: libmad-devel | |
2b46b242 | 76 | BuildRequires: libmodplug-devel |
e1f1ccba JB |
77 | BuildRequires: libogg-devel |
78 | BuildRequires: libshout-devel >= 2 | |
73237277 | 79 | BuildRequires: libsndfile-devel |
2b46b242 | 80 | BuildRequires: libstdc++-devel >= 6:4.7 |
e1f1ccba | 81 | BuildRequires: libusb-devel >= 1.0 |
dab252a8 | 82 | BuildRequires: libvorbis-devel |
2b46b242 JB |
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 | |
e1f1ccba JB |
87 | BuildRequires: pkgconfig >= 1:0.15.0 |
88 | BuildRequires: portaudio-devel >= 19 | |
90e9d3da | 89 | BuildRequires: portmidi-devel >= 217 |
e1f1ccba | 90 | BuildRequires: protobuf-devel |
2b46b242 JB |
91 | %if %{with qt4} |
92 | BuildRequires: qt4-build >= %{qt4_ver} | |
93 | BuildRequires: qt4-linguist >= %{qt4_ver} | |
94 | %else | |
95 | BuildRequires: qt5-build >= %{qt5_ver} | |
96 | BuildRequires: qt5-linguist >= %{qt5_ver} | |
97 | %endif | |
8b5a4687 | 98 | BuildRequires: rpmbuild(macros) >= 1.566 |
2b46b242 | 99 | BuildRequires: rubberband-devel |
c6558f8d | 100 | BuildRequires: scons |
8dfba9ba | 101 | BuildRequires: sed >= 4.0 |
2b46b242 JB |
102 | BuildRequires: soundtouch-devel >= 2.0.0 |
103 | BuildRequires: sqlite3-devel >= 3 | |
e1f1ccba | 104 | BuildRequires: taglib-devel |
2b46b242 JB |
105 | %{?with_upower:BuildRequires: upower-devel} |
106 | BuildRequires: vamp-devel >= 2.7.1 | |
107 | %{?with_wavpack:BuildRequires: wavpack-devel} | |
e1f1ccba | 108 | BuildRequires: xorg-lib-libX11-devel |
2b46b242 JB |
109 | %if %{with qt4} |
110 | Requires: QtSql-sqlite3 >= %{qt4_ver} | |
111 | %else | |
4f464adb | 112 | Requires: Qt5Sql-sqldriver-sqlite3 >= %{qt5_ver} |
2b46b242 JB |
113 | %endif |
114 | %{?with_faad:Requires: faad2 >= 2.7} | |
115 | %{?with_hidapi:Requires: hidapi >= 0.8.0} | |
e1f1ccba | 116 | Obsoletes: mixxx-translations |
dab252a8 | 117 | BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) |
118 | ||
2b46b242 JB |
119 | %if %{with qt4} |
120 | %define qtsuf %{nil} | |
121 | %else | |
122 | %define qtsuf qt5 | |
123 | %endif | |
124 | ||
dab252a8 | 125 | %description |
126 | Mixxx is an open source DJ tool designed for both professional and | |
127 | amateur DJs alike. | |
128 | ||
9d3aa6b7 ZU |
129 | %description -l hu.UTF-8 |
130 | Mixxx egy nyílt forrású DJ eszköz profi és amatőr DJ-knek egyaránt. | |
131 | ||
6e52a8d4 JB |
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. | |
dab252a8 | 135 | |
91288879 ZU |
136 | %package skins-core |
137 | Summary: The core skins for Mixxx | |
97383405 | 138 | Summary(hu.UTF-8): Alap skinek a Mixxx-hez |
e1f1ccba | 139 | Summary(pl.UTF-8): Podstawowe skórki dla programu Mixxx |
91288879 ZU |
140 | Group: X11/Applications/Multimedia |
141 | ||
142 | %description skins-core | |
143 | The core skins for Mixxx. | |
144 | ||
97383405 ZU |
145 | %description skins-core -l hu.UTF-8 |
146 | Alap skinek a Mixxx-hez. | |
147 | ||
e1f1ccba JB |
148 | %description skins-core -l pl.UTF-8 |
149 | Podstawowe skórki dla programu Mixxx. | |
388c0902 | 150 | |
dab252a8 | 151 | %prep |
2b46b242 | 152 | %setup -q -n %{name}-release-%{version} |
190ee94d | 153 | %patch0 -p1 |
dab252a8 | 154 | |
30e7d43e JR |
155 | %{__sed} -E -i -e '1s,#!\s*/usr/bin/env\s+node(\s|$),#!%{_bindir}/node\1,' \ |
156 | res/controllers/novation-launchpad/scripts/*.js | |
157 | ||
dab252a8 | 158 | %build |
0a70bda1 ZU |
159 | export CXXFLAGS="%{rpmcxxflags}" |
160 | export CCFLAGS="%{rpmcflags}" | |
161 | export CXX="%{__cxx}" | |
162 | export QMAKE_CXX="%{__cxx}" | |
da4e7f12 | 163 | export LIBDIR=%{_libdir} |
e1f1ccba | 164 | %scons \ |
2b46b242 | 165 | prefix=%{_prefix} \ |
2b46b242 JB |
166 | %{!?with_upower:battery=0} \ |
167 | %{?with_faad:faad=1} \ | |
168 | %{?with_ffmpeg:ffmpeg=1} \ | |
169 | %{!?with_hidapi:hid=0} \ | |
170 | %{?with_ipod:ipod=1} \ | |
171 | %{?with_lv2:lilv=1} \ | |
172 | modplug=1 \ | |
173 | %{?with_qt4:qt5=0} \ | |
174 | %{?with_qtkeychain:qtkeychain=1} \ | |
175 | vinylcontrol=1 \ | |
176 | %{?with_wavpack:wv=1} | |
dab252a8 | 177 | |
178 | %install | |
179 | rm -rf $RPM_BUILD_ROOT | |
2b46b242 | 180 | |
0a70bda1 ZU |
181 | export CXXFLAGS="%{rpmcxxflags}" |
182 | export CCFLAGS="%{rpmcflags}" | |
183 | export CXX="%{__cxx}" | |
184 | export QMAKE_CXX="%{__cxx}" | |
da4e7f12 | 185 | export LIBDIR=%{_libdir} |
e1f1ccba | 186 | %scons install \ |
2b46b242 | 187 | install_root=$RPM_BUILD_ROOT%{_prefix} |
dab252a8 | 188 | |
2b46b242 | 189 | # packaged as %doc |
90e9d3da | 190 | %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/mixxx |
2b46b242 JB |
191 | %{__rm} $RPM_BUILD_ROOT%{_datadir}/mixxx/fonts/Ubuntu.LICENCE.txt |
192 | # generic Apache v2.0 license | |
193 | %{__rm} $RPM_BUILD_ROOT%{_datadir}/mixxx/fonts/OpenSans.LICENSE.txt | |
194 | ||
195 | # what a mess... | |
196 | # both ca and ca-ES exist, both up to date, with few differences... keep ca | |
197 | %{__rm} $RPM_BUILD_ROOT%{_datadir}/mixxx/translations/mixxx_ca-ES.qm | |
198 | # en is en_US in fact | |
199 | %{__mv} $RPM_BUILD_ROOT%{_datadir}/mixxx/translations/mixxx_{en,en_US}.qm | |
200 | # both es and es-ES exist, the first is outdated | |
201 | %{__mv} $RPM_BUILD_ROOT%{_datadir}/mixxx/translations/mixxx_{es-ES,es}.qm | |
202 | # both fr and fr-FR exist, the latter is outdated | |
203 | %{__rm} $RPM_BUILD_ROOT%{_datadir}/mixxx/translations/mixxx_fr-FR.qm | |
204 | # both pt and pt-PT exist, the first is outdated | |
205 | %{__mv} $RPM_BUILD_ROOT%{_datadir}/mixxx/translations/mixxx_{pt-PT,pt}.qm | |
206 | # both zh_TW and zh_TW.Big5 exist, thr latter is outdated | |
207 | %{__rm} $RPM_BUILD_ROOT%{_datadir}/mixxx/translations/mixxx_zh_TW.Big5.qm | |
208 | # unify using short code | |
209 | %{__mv} $RPM_BUILD_ROOT%{_datadir}/mixxx/translations/mixxx_{sq-AL,sq}.qm | |
210 | # underscore (not dash) should be used as delimiter | |
211 | %{__mv} $RPM_BUILD_ROOT%{_datadir}/mixxx/translations/mixxx_{es-MX,es_MX}.qm | |
dab252a8 | 212 | |
213 | %clean | |
214 | rm -rf $RPM_BUILD_ROOT | |
215 | ||
216 | %files | |
217 | %defattr(644,root,root,755) | |
2b46b242 | 218 | %doc README Mixxx-Manual.pdf res/fonts/Ubuntu.LICENCE.txt |
dab252a8 | 219 | %attr(755,root,root) %{_bindir}/mixxx |
e1f1ccba JB |
220 | %dir %{_libdir}/mixxx |
221 | %dir %{_libdir}/mixxx/plugins | |
2b46b242 JB |
222 | %dir %{_libdir}/mixxx/plugins/soundsource%{qtsuf} |
223 | %attr(755,root,root) %{_libdir}/mixxx/plugins/soundsource%{qtsuf}/libsoundsourcem4a.so | |
224 | %attr(755,root,root) %{_libdir}/mixxx/plugins/soundsource%{qtsuf}/libsoundsourcewv.so | |
225 | %dir %{_libdir}/mixxx/plugins/vamp%{qtsuf} | |
226 | %attr(755,root,root) %{_libdir}/mixxx/plugins/vamp%{qtsuf}/libmixxxminimal.so | |
227 | %{_datadir}/appdata/mixxx.appdata.xml | |
6e52a8d4 | 228 | %dir %{_datadir}/mixxx |
2b46b242 JB |
229 | %{_datadir}/mixxx/controllers |
230 | %{_datadir}/mixxx/fonts | |
231 | %{_datadir}/mixxx/keyboard | |
91288879 | 232 | %dir %{_datadir}/mixxx/skins |
2b46b242 JB |
233 | # This is the default skin |
234 | %{_datadir}/mixxx/skins/Deere | |
388c0902 | 235 | %dir %{_datadir}/mixxx/translations |
e1f1ccba JB |
236 | %lang(ar) %{_datadir}/mixxx/translations/mixxx_ar.qm |
237 | %lang(ast) %{_datadir}/mixxx/translations/mixxx_ast.qm | |
238 | %lang(bg) %{_datadir}/mixxx/translations/mixxx_bg.qm | |
239 | %lang(br) %{_datadir}/mixxx/translations/mixxx_br.qm | |
240 | %lang(bs) %{_datadir}/mixxx/translations/mixxx_bs.qm | |
241 | %lang(ca) %{_datadir}/mixxx/translations/mixxx_ca.qm | |
242 | %lang(ceb) %{_datadir}/mixxx/translations/mixxx_ceb.qm | |
243 | %lang(cs) %{_datadir}/mixxx/translations/mixxx_cs.qm | |
244 | %lang(da) %{_datadir}/mixxx/translations/mixxx_da.qm | |
245 | %lang(de) %{_datadir}/mixxx/translations/mixxx_de.qm | |
246 | %lang(el) %{_datadir}/mixxx/translations/mixxx_el.qm | |
247 | %lang(en) %{_datadir}/mixxx/translations/mixxx_en_GB.qm | |
2b46b242 | 248 | %lang(en) %{_datadir}/mixxx/translations/mixxx_en_US.qm |
e1f1ccba JB |
249 | %lang(eo) %{_datadir}/mixxx/translations/mixxx_eo.qm |
250 | %lang(es) %{_datadir}/mixxx/translations/mixxx_es.qm | |
2b46b242 | 251 | %lang(es_MX) %{_datadir}/mixxx/translations/mixxx_es_MX.qm |
e1f1ccba JB |
252 | %lang(et) %{_datadir}/mixxx/translations/mixxx_et.qm |
253 | %lang(eu) %{_datadir}/mixxx/translations/mixxx_eu.qm | |
2b46b242 | 254 | %lang(fa) %{_datadir}/mixxx/translations/mixxx_fa.qm |
e1f1ccba JB |
255 | %lang(fi) %{_datadir}/mixxx/translations/mixxx_fi.qm |
256 | %lang(fr) %{_datadir}/mixxx/translations/mixxx_fr.qm | |
257 | %lang(ga) %{_datadir}/mixxx/translations/mixxx_ga.qm | |
258 | %lang(gl) %{_datadir}/mixxx/translations/mixxx_gl.qm | |
259 | %lang(he) %{_datadir}/mixxx/translations/mixxx_he.qm | |
260 | %lang(hr) %{_datadir}/mixxx/translations/mixxx_hr.qm | |
261 | %lang(hu) %{_datadir}/mixxx/translations/mixxx_hu.qm | |
262 | %lang(hy) %{_datadir}/mixxx/translations/mixxx_hy.qm | |
263 | %lang(ia) %{_datadir}/mixxx/translations/mixxx_ia.qm | |
264 | %lang(id) %{_datadir}/mixxx/translations/mixxx_id.qm | |
265 | %lang(is) %{_datadir}/mixxx/translations/mixxx_is.qm | |
266 | %lang(it) %{_datadir}/mixxx/translations/mixxx_it.qm | |
267 | %lang(ja) %{_datadir}/mixxx/translations/mixxx_ja.qm | |
2b46b242 | 268 | %lang(ko) %{_datadir}/mixxx/translations/mixxx_ko.qm |
e1f1ccba JB |
269 | %lang(ky) %{_datadir}/mixxx/translations/mixxx_ky.qm |
270 | %lang(lb) %{_datadir}/mixxx/translations/mixxx_lb.qm | |
271 | %lang(lt) %{_datadir}/mixxx/translations/mixxx_lt.qm | |
272 | %lang(lv) %{_datadir}/mixxx/translations/mixxx_lv.qm | |
273 | %lang(mk) %{_datadir}/mixxx/translations/mixxx_mk.qm | |
274 | %lang(ml) %{_datadir}/mixxx/translations/mixxx_ml.qm | |
275 | %lang(mn) %{_datadir}/mixxx/translations/mixxx_mn.qm | |
276 | %lang(mr) %{_datadir}/mixxx/translations/mixxx_mr.qm | |
277 | %lang(ms) %{_datadir}/mixxx/translations/mixxx_ms.qm | |
278 | %lang(my) %{_datadir}/mixxx/translations/mixxx_my.qm | |
279 | %lang(nb) %{_datadir}/mixxx/translations/mixxx_nb.qm | |
280 | %lang(nl) %{_datadir}/mixxx/translations/mixxx_nl.qm | |
281 | %lang(nn) %{_datadir}/mixxx/translations/mixxx_nn.qm | |
282 | %lang(oc) %{_datadir}/mixxx/translations/mixxx_oc.qm | |
283 | %lang(pl) %{_datadir}/mixxx/translations/mixxx_pl.qm | |
284 | %lang(pt) %{_datadir}/mixxx/translations/mixxx_pt.qm | |
285 | %lang(pt_BR) %{_datadir}/mixxx/translations/mixxx_pt_BR.qm | |
286 | %lang(ro) %{_datadir}/mixxx/translations/mixxx_ro.qm | |
287 | %lang(ru) %{_datadir}/mixxx/translations/mixxx_ru.qm | |
2b46b242 JB |
288 | %lang(si) %{_datadir}/mixxx/translations/mixxx_si.qm |
289 | %lang(sk) %{_datadir}/mixxx/translations/mixxx_sk.qm | |
e1f1ccba | 290 | %lang(sl) %{_datadir}/mixxx/translations/mixxx_sl.qm |
2b46b242 JB |
291 | %lang(sn) %{_datadir}/mixxx/translations/mixxx_sn.qm |
292 | %lang(sq) %{_datadir}/mixxx/translations/mixxx_sq.qm | |
e1f1ccba JB |
293 | %lang(sr) %{_datadir}/mixxx/translations/mixxx_sr.qm |
294 | %lang(sv) %{_datadir}/mixxx/translations/mixxx_sv.qm | |
2b46b242 | 295 | %lang(ta) %{_datadir}/mixxx/translations/mixxx_ta.qm |
e1f1ccba JB |
296 | %lang(te) %{_datadir}/mixxx/translations/mixxx_te.qm |
297 | %lang(tr) %{_datadir}/mixxx/translations/mixxx_tr.qm | |
298 | %lang(uk) %{_datadir}/mixxx/translations/mixxx_uk.qm | |
299 | %lang(uz) %{_datadir}/mixxx/translations/mixxx_uz.qm | |
2b46b242 | 300 | %lang(vi) %{_datadir}/mixxx/translations/mixxx_vi.qm |
e1f1ccba JB |
301 | %lang(zh_CN) %{_datadir}/mixxx/translations/mixxx_zh_CN.qm |
302 | %lang(zh_TW) %{_datadir}/mixxx/translations/mixxx_zh_TW.qm | |
2b46b242 JB |
303 | %{_desktopdir}/mixxx.desktop |
304 | %{_pixmapsdir}/mixxx_icon.svg | |
91288879 ZU |
305 | |
306 | %files skins-core | |
307 | %defattr(644,root,root,755) | |
2b46b242 JB |
308 | # note: "?" is used to catch spaces (I can't see any way to match space explicitly in rpm) |
309 | %{_datadir}/mixxx/skins/Deere?(64?Samplers) | |
310 | %{_datadir}/mixxx/skins/LateNight | |
311 | %{_datadir}/mixxx/skins/Shade | |
312 | %{_datadir}/mixxx/skins/Tango | |
313 | %{_datadir}/mixxx/skins/Tango?(64?Samplers) |