]> git.pld-linux.org Git - packages/obs-studio.git/blob - obs-studio.spec
- release 2
[packages/obs-studio.git] / obs-studio.spec
1 # TODO: AJA (BR: libajantv2)
2 #
3 # Conditional build:
4 %bcond_with     qt5     # Qt 5 instead of Qt 6
5
6 Summary:        OBS Studio - live streaming and screen recording software
7 Summary(pl.UTF-8):      OBS Studio - oprogramowanie do przesyłania strumieni na żywo i nagrywania ekranu
8 Name:           obs-studio
9 Version:        29.1.3
10 Release:        2
11 License:        GPL v2+
12 %define         obs_vst_gitref  8ad3f64e702ac4f1799b209a511620eb1d096a01
13 Group:          X11/Applications/Multimedia
14 #Source0Download: https://github.com/obsproject/obs-studio/releases
15 Source0:        https://github.com/jp9000/obs-studio/archive/%{version}/%{name}-%{version}.tar.gz
16 # Source0-md5:  5597636f9c66342566f47d68aa4c6693
17 Patch0:         disable-missing-plugins.patch
18 Patch1:         size_t.patch
19 Patch2:         x32.patch
20 URL:            https://obsproject.com/
21 BuildRequires:  ImageMagick-devel
22 BuildRequires:  OpenGL-GLX-devel
23 BuildRequires:  alsa-lib-devel
24 BuildRequires:  cmake >= 3.16
25 BuildRequires:  curl-devel
26 BuildRequires:  dbus-devel
27 # avcodec avfilter avdevice avutil swscale avformat swresample
28 BuildRequires:  ffmpeg-devel
29 BuildRequires:  fontconfig-devel
30 BuildRequires:  freetype-devel >= 2
31 BuildRequires:  glib2-devel >= 2.0
32 BuildRequires:  jack-audio-connection-kit-devel
33 BuildRequires:  jansson-devel >= 2.5
34 BuildRequires:  libdrm-devel
35 BuildRequires:  librist-devel
36 BuildRequires:  libstdc++-devel >= 6:4.7
37 BuildRequires:  libv4l-devel
38 BuildRequires:  libva-devel
39 BuildRequires:  libx264-devel
40 # xcb xcb-composite xcb-randr xcb-shm xcb-xfixes xcb-xinerama
41 BuildRequires:  libxcb-devel
42 %ifnarch x32
43 BuildRequires:  luajit-devel
44 %endif
45 BuildRequires:  mbedtls-devel
46 BuildRequires:  pciutils-devel
47 BuildRequires:  pipewire-devel >= 0.3.33
48 BuildRequires:  pkgconfig
49 BuildRequires:  pulseaudio-devel
50 BuildRequires:  python3-devel >= 1:3.2
51 BuildRequires:  rpmbuild(macros) >= 1.605
52 BuildRequires:  speexdsp-devel
53 BuildRequires:  srt-devel
54 BuildRequires:  swig-python >= 2
55 BuildRequires:  udev-devel
56 BuildRequires:  vlc-devel
57 # wayland-client
58 BuildRequires:  wayland-devel
59 BuildRequires:  wayland-egl-devel
60 BuildRequires:  xorg-lib-libX11-devel
61 BuildRequires:  zlib-devel
62 %if %{with qt5}
63 BuildRequires:  Qt5Core-devel >= 5
64 BuildRequires:  Qt5Gui-devel >= 5
65 BuildRequires:  Qt5Network-devel >= 5
66 BuildRequires:  Qt5Svg-devel >= 5
67 BuildRequires:  Qt5Widgets-devel >= 5
68 BuildRequires:  Qt5Xml-devel >= 5
69 BuildRequires:  qt5-build >= 5
70 BuildRequires:  qt5-qmake >= 5
71 %else
72 BuildRequires:  Qt6Core-devel >= 6
73 BuildRequires:  Qt6Gui-devel >= 6
74 BuildRequires:  Qt6Network-devel >= 6
75 BuildRequires:  Qt6Svg-devel >= 6
76 BuildRequires:  Qt6Widgets-devel >= 6
77 BuildRequires:  Qt6Xml-devel >= 6
78 BuildRequires:  qt6-build >= 6
79 BuildRequires:  qt6-qmake >= 6
80 %endif
81 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
82
83 %define         _noautoprovfiles        %{_libdir}/obs-plugins
84
85 # symbols from libm confuse the checker
86 %define         skip_post_check_so      libobs.so.*
87
88 %description
89 OBS Studio is software designed for capturing, compositing, encoding,
90 recording, and streaming video content, efficiently.
91
92 %description -l pl.UTF-8
93 OBS Studio to oprogramowanie służące do wydajnego przechwytywania,
94 składania, kodowania, nagrywania i przesyłania treści wideo.
95
96 %package devel
97 Summary:        Header files for OBS Studio
98 Summary(pl.UTF-8):      Pliki nagłówkowe OBS Studio
99 Group:          Development/Libraries
100 Requires:       %{name} = %{version}-%{release}
101
102 %description devel
103 Header files for OBS Studio.
104
105 %description devel -l pl.UTF-8
106 Pliki nagłówkowe OBS Studio.
107
108 %prep
109 %setup -q
110 %patch0 -p1
111 %patch1 -p1
112 %ifarch x32
113 %patch2 -p1
114 %endif
115
116 %build
117 export OBS_MULTIARCH_SUFFIX="%(echo "%{_lib}" | sed -e 's/^lib//')"
118 %cmake -B build \
119         -DCMAKE_INSTALL_BINDIR:PATH=bin \
120         -DCMAKE_INSTALL_INCLUDEDIR:PATH=include \
121         -DCMAKE_INSTALL_DATAROOTDIR:PATH=share \
122         -DCMAKE_INSTALL_DATADIR:PATH=share \
123         -DCMAKE_INSTALL_LIBDIR:PATH=%{_lib} \
124         -DCMAKE_SKIP_RPATH=1 \
125         -DBUILD_BROWSER=OFF \
126         -DCALM_DEPRECATION=ON \
127         -DENABLE_AJA=OFF \
128 %ifarch x32
129         -DENABLE_SCRIPTING_LUA=OFF \
130 %endif
131         -DOBS_VERSION_OVERRIDE=%{version} \
132         -DQT_VERSION=%{?with_qt5:5}%{!?with_qt5:6} \
133         -DUNIX_STRUCTURE=1
134
135 %{__make} -C build
136
137 %install
138 rm -rf $RPM_BUILD_ROOT
139
140 %{__make} -C build install/fast \
141         DESTDIR=$RPM_BUILD_ROOT
142
143 builddir="$(pwd)"
144
145 cd $RPM_BUILD_ROOT
146 reldatadir="$(echo %{_datadir} | sed -e 's,^/,,')"
147 for f in $reldatadir/obs/obs-studio/locale/??*-??*.ini $reldatadir/obs/obs-plugins/*/locale/??*-??*.ini ; do
148         locale="$(basename "$f" .ini | tr - _)"
149         case "$locale" in
150           en_US)
151                 loctag=""
152                 ;;
153           pt_BR|zh_CN|zh_TW)
154                 loctag="%lang($locale) "
155                 ;;
156           *)
157                 # this rule covers also conversion of bogus Serbian codes to "sr": "sr_CS" (actually sr_RS@latin), "sr_SP" (actually sr_RS, cyrillic)
158                 loctag="%lang(${locale%_??}) "
159                 ;;
160         esac
161         echo "${loctag}/$f"
162 done > "$builddir/%{name}.lang"
163
164 # dir guard
165 %{__rm} $RPM_BUILD_ROOT%{_datadir}/obs/obs-plugins/{decklink-captions,decklink-output-ui}/.keepme
166 %{__rm} $RPM_BUILD_ROOT%{_datadir}/obs/obs-plugins/linux-pipewire/.gitkeep
167
168 %clean
169 rm -rf $RPM_BUILD_ROOT
170
171 %post   -p /sbin/ldconfig
172 %postun -p /sbin/ldconfig
173
174 %files -f %{name}.lang
175 %defattr(644,root,root,755)
176 %doc AUTHORS README.rst
177 %attr(755,root,root) %{_bindir}/obs
178 %attr(755,root,root) %{_bindir}/obs-ffmpeg-mux
179 %attr(755,root,root) %{_libdir}/libobs-frontend-api.so.29
180 %attr(755,root,root) %ghost %{_libdir}/libobs-frontend-api.so.0
181 %attr(755,root,root) %{_libdir}/libobs-opengl.so.29
182 %attr(755,root,root) %ghost %{_libdir}/libobs-opengl.so.1
183 %attr(755,root,root) %{_libdir}/libobs.so.29
184 %attr(755,root,root) %ghost %{_libdir}/libobs.so.0
185 %attr(755,root,root) %{_libdir}/libobs-scripting.so.29
186 %attr(755,root,root) %ghost %{_libdir}/libobs-scripting.so.1
187
188 %dir %{_libdir}/obs-plugins
189 %attr(755,root,root) %{_libdir}/obs-plugins/decklink-captions.so
190 %attr(755,root,root) %{_libdir}/obs-plugins/decklink-output-ui.so
191 %attr(755,root,root) %{_libdir}/obs-plugins/decklink.so
192 %attr(755,root,root) %{_libdir}/obs-plugins/frontend-tools.so
193 %attr(755,root,root) %{_libdir}/obs-plugins/image-source.so
194 %attr(755,root,root) %{_libdir}/obs-plugins/linux-alsa.so
195 %attr(755,root,root) %{_libdir}/obs-plugins/linux-capture.so
196 %attr(755,root,root) %{_libdir}/obs-plugins/linux-pipewire.so
197 %attr(755,root,root) %{_libdir}/obs-plugins/linux-pulseaudio.so
198 %attr(755,root,root) %{_libdir}/obs-plugins/linux-v4l2.so
199 %attr(755,root,root) %{_libdir}/obs-plugins/obs-ffmpeg.so
200 %attr(755,root,root) %{_libdir}/obs-plugins/obs-filters.so
201 %attr(755,root,root) %{_libdir}/obs-plugins/obs-outputs.so
202 %attr(755,root,root) %{_libdir}/obs-plugins/obs-transitions.so
203 %attr(755,root,root) %{_libdir}/obs-plugins/obs-vst.so
204 %attr(755,root,root) %{_libdir}/obs-plugins/obs-x264.so
205 %attr(755,root,root) %{_libdir}/obs-plugins/rtmp-services.so
206 %attr(755,root,root) %{_libdir}/obs-plugins/text-freetype2.so
207 %attr(755,root,root) %{_libdir}/obs-plugins/vlc-video.so
208 %dir %{_libdir}/obs-scripting
209 %ifnarch x32
210 %attr(755,root,root) %{_libdir}/obs-scripting/obslua.so
211 %endif
212 %attr(755,root,root) %{_libdir}/obs-scripting/_obspython.so
213 %attr(755,root,root) %{_libdir}/obs-scripting/obspython.py
214
215 %{_datadir}/metainfo/com.obsproject.Studio.appdata.xml
216 %{_desktopdir}/com.obsproject.Studio.desktop
217 %{_iconsdir}/hicolor/*x*/apps/com.obsproject.Studio.png
218 %{_iconsdir}/hicolor/scalable/apps/com.obsproject.Studio.svg
219
220 %dir %{_datadir}/obs
221 %{_datadir}/obs/libobs
222 %dir %{_datadir}/obs/obs-plugins
223 %dir %{_datadir}/obs/obs-studio
224 %{_datadir}/obs/obs-studio/OBSPublicRSAKey.pem
225 %{_datadir}/obs/obs-studio/authors
226 %{_datadir}/obs/obs-studio/images
227 %{_datadir}/obs/obs-studio/license
228 %dir %{_datadir}/obs/obs-studio/locale
229 %{_datadir}/obs/obs-studio/themes
230 %{_datadir}/obs/obs-studio/locale.ini
231
232 %dir %{_datadir}/obs/obs-plugins/decklink
233 %dir %{_datadir}/obs/obs-plugins/decklink/locale
234
235 %dir %{_datadir}/obs/obs-plugins/frontend-tools
236 %dir %{_datadir}/obs/obs-plugins/frontend-tools/locale
237 %dir %{_datadir}/obs/obs-plugins/frontend-tools/scripts
238 %{_datadir}/obs/obs-plugins/frontend-tools/scripts/*.lua
239 %{_datadir}/obs/obs-plugins/frontend-tools/scripts/*.py
240 %{_datadir}/obs/obs-plugins/frontend-tools/scripts/clock-source
241
242 %dir %{_datadir}/obs/obs-plugins/image-source
243 %dir %{_datadir}/obs/obs-plugins/image-source/locale
244
245 %dir %{_datadir}/obs/obs-plugins/linux-alsa
246 %dir %{_datadir}/obs/obs-plugins/linux-alsa/locale
247
248 %dir %{_datadir}/obs/obs-plugins/linux-capture
249 %dir %{_datadir}/obs/obs-plugins/linux-capture/locale
250
251 %dir %{_datadir}/obs/obs-plugins/linux-pipewire
252 %dir %{_datadir}/obs/obs-plugins/linux-pipewire/locale
253
254 %dir %{_datadir}/obs/obs-plugins/linux-pulseaudio
255 %dir %{_datadir}/obs/obs-plugins/linux-pulseaudio/locale
256
257 %dir %{_datadir}/obs/obs-plugins/linux-v4l2
258 %dir %{_datadir}/obs/obs-plugins/linux-v4l2/locale
259
260 %dir %{_datadir}/obs/obs-plugins/obs-ffmpeg
261 %dir %{_datadir}/obs/obs-plugins/obs-ffmpeg/locale
262
263 %dir %{_datadir}/obs/obs-plugins/obs-filters
264 %{_datadir}/obs/obs-plugins/obs-filters/*.effect
265 %{_datadir}/obs/obs-plugins/obs-filters/LUTs
266 %dir %{_datadir}/obs/obs-plugins/obs-filters/locale
267
268 %dir %{_datadir}/obs/obs-plugins/obs-outputs
269 %dir %{_datadir}/obs/obs-plugins/obs-outputs/locale
270
271 %dir %{_datadir}/obs/obs-plugins/obs-transitions
272 %{_datadir}/obs/obs-plugins/obs-transitions/*.effect
273 %{_datadir}/obs/obs-plugins/obs-transitions/luma_wipes
274 %dir %{_datadir}/obs/obs-plugins/obs-transitions/locale
275
276 %dir %{_datadir}/obs/obs-plugins/obs-vst
277 %dir %{_datadir}/obs/obs-plugins/obs-vst/locale
278
279 %dir %{_datadir}/obs/obs-plugins/obs-x264
280 %dir %{_datadir}/obs/obs-plugins/obs-x264/locale
281
282 %dir %{_datadir}/obs/obs-plugins/rtmp-services
283 %{_datadir}/obs/obs-plugins/rtmp-services/*.json
284 %dir %{_datadir}/obs/obs-plugins/rtmp-services/schema
285 %{_datadir}/obs/obs-plugins/rtmp-services/schema/*.json
286 %dir %{_datadir}/obs/obs-plugins/rtmp-services/locale
287
288 %dir %{_datadir}/obs/obs-plugins/text-freetype2
289 %{_datadir}/obs/obs-plugins/text-freetype2/*.effect
290 %dir %{_datadir}/obs/obs-plugins/text-freetype2/locale
291
292 %dir %{_datadir}/obs/obs-plugins/vlc-video
293 %dir %{_datadir}/obs/obs-plugins/vlc-video/locale
294
295 %files devel
296 %defattr(644,root,root,755)
297 %attr(755,root,root) %{_libdir}/libobs.so
298 %attr(755,root,root) %{_libdir}/libobs-frontend-api.so
299 %attr(755,root,root) %{_libdir}/libobs-opengl.so
300 %attr(755,root,root) %{_libdir}/libobs-scripting.so
301 %{_includedir}/obs
302 %{_pkgconfigdir}/libobs.pc
303 %{_libdir}/cmake/libobs
304 %{_libdir}/cmake/obs-frontend-api
This page took 0.227796 seconds and 3 git commands to generate.