]> git.pld-linux.org Git - packages/mixxx.git/blob - mixxx.spec
- release 6 (protobuf 3.13)
[packages/mixxx.git] / mixxx.spec
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
20 Summary:        Mixxx - DJ tool
21 Summary(hu.UTF-8):      Mixxx - DJ program
22 Summary(pl.UTF-8):      Mixxx - narzędzie dla DJ-ów
23 Name:           mixxx
24 Version:        2.2.1
25 Release:        6
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
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
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
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
98 BuildRequires:  rpmbuild(macros) >= 1.566
99 BuildRequires:  rubberband-devel
100 BuildRequires:  scons
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
109 %if %{with qt4}
110 Requires:       QtSql-sqlite3 >= %{qt4_ver}
111 %else
112 Requires:       Qt5Sql-sqldriver-sqlite3 >= %{qt5_ver}
113 %endif
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)
118
119 %if %{with qt4}
120 %define         qtsuf   %{nil}
121 %else
122 %define         qtsuf   qt5
123 %endif
124
125 %description
126 Mixxx is an open source DJ tool designed for both professional and
127 amateur DJs alike.
128
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
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.
135
136 %package skins-core
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
141
142 %description skins-core
143 The core skins for Mixxx.
144
145 %description skins-core -l hu.UTF-8
146 Alap skinek a Mixxx-hez.
147
148 %description skins-core -l pl.UTF-8
149 Podstawowe skórki dla programu Mixxx.
150
151 %prep
152 %setup -q -n %{name}-release-%{version}
153 %patch0 -p1
154
155 %{__sed} -E -i -e '1s,#!\s*/usr/bin/env\s+node(\s|$),#!%{_bindir}/node\1,' \
156       res/controllers/novation-launchpad/scripts/*.js
157
158 %build
159 export CXXFLAGS="%{rpmcxxflags}"
160 export CCFLAGS="%{rpmcflags}"
161 export CXX="%{__cxx}"
162 export QMAKE_CXX="%{__cxx}"
163 export LIBDIR=%{_libdir}
164 %scons \
165         prefix=%{_prefix} \
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}
177
178 %install
179 rm -rf $RPM_BUILD_ROOT
180
181 export CXXFLAGS="%{rpmcxxflags}"
182 export CCFLAGS="%{rpmcflags}"
183 export CXX="%{__cxx}"
184 export QMAKE_CXX="%{__cxx}"
185 export LIBDIR=%{_libdir}
186 %scons install \
187         install_root=$RPM_BUILD_ROOT%{_prefix}
188
189 # packaged as %doc
190 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/mixxx
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
212
213 %clean
214 rm -rf $RPM_BUILD_ROOT
215
216 %files
217 %defattr(644,root,root,755)
218 %doc README Mixxx-Manual.pdf res/fonts/Ubuntu.LICENCE.txt
219 %attr(755,root,root) %{_bindir}/mixxx
220 %dir %{_libdir}/mixxx
221 %dir %{_libdir}/mixxx/plugins
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
228 %dir %{_datadir}/mixxx
229 %{_datadir}/mixxx/controllers
230 %{_datadir}/mixxx/fonts
231 %{_datadir}/mixxx/keyboard
232 %dir %{_datadir}/mixxx/skins
233 # This is the default skin
234 %{_datadir}/mixxx/skins/Deere
235 %dir %{_datadir}/mixxx/translations
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
248 %lang(en) %{_datadir}/mixxx/translations/mixxx_en_US.qm
249 %lang(eo) %{_datadir}/mixxx/translations/mixxx_eo.qm
250 %lang(es) %{_datadir}/mixxx/translations/mixxx_es.qm
251 %lang(es_MX) %{_datadir}/mixxx/translations/mixxx_es_MX.qm
252 %lang(et) %{_datadir}/mixxx/translations/mixxx_et.qm
253 %lang(eu) %{_datadir}/mixxx/translations/mixxx_eu.qm
254 %lang(fa) %{_datadir}/mixxx/translations/mixxx_fa.qm
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
268 %lang(ko) %{_datadir}/mixxx/translations/mixxx_ko.qm
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
288 %lang(si) %{_datadir}/mixxx/translations/mixxx_si.qm
289 %lang(sk) %{_datadir}/mixxx/translations/mixxx_sk.qm
290 %lang(sl) %{_datadir}/mixxx/translations/mixxx_sl.qm
291 %lang(sn) %{_datadir}/mixxx/translations/mixxx_sn.qm
292 %lang(sq) %{_datadir}/mixxx/translations/mixxx_sq.qm
293 %lang(sr) %{_datadir}/mixxx/translations/mixxx_sr.qm
294 %lang(sv) %{_datadir}/mixxx/translations/mixxx_sv.qm
295 %lang(ta) %{_datadir}/mixxx/translations/mixxx_ta.qm
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
300 %lang(vi) %{_datadir}/mixxx/translations/mixxx_vi.qm
301 %lang(zh_CN) %{_datadir}/mixxx/translations/mixxx_zh_CN.qm
302 %lang(zh_TW) %{_datadir}/mixxx/translations/mixxx_zh_TW.qm
303 %{_desktopdir}/mixxx.desktop
304 %{_pixmapsdir}/mixxx_icon.svg
305
306 %files skins-core
307 %defattr(644,root,root,755)
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)
This page took 0.091179 seconds and 3 git commands to generate.