| 1 | # Note: this .spec is borrowed from ffmpeg-2.6.8-1.fc22.src.rpm (rpmfusion.org) | 
|---|
| 2 |  | 
|---|
| 3 | # TODO: add make test to %%check section | 
|---|
| 4 |  | 
|---|
| 5 | %global _without_frei0r   1 | 
|---|
| 6 | %global _without_opencv   1 | 
|---|
| 7 | %global _without_ladspa   1 | 
|---|
| 8 | %global _without_openal   1 | 
|---|
| 9 | %global _without_lame     1 | 
|---|
| 10 | %global _without_cdio     1 | 
|---|
| 11 | %global _without_theora   1 | 
|---|
| 12 | %global _without_vorbis   1 | 
|---|
| 13 | %global _without_vaapi    1 | 
|---|
| 14 | %global _without_x264     1 | 
|---|
| 15 | %global _without_x265     1 | 
|---|
| 16 | %global _without_xvidcore 1 | 
|---|
| 17 | %global _without_pulse    1 | 
|---|
| 18 |  | 
|---|
| 19 | %global _without_extra    1 | 
|---|
| 20 |  | 
|---|
| 21 | Summary:        Digital VCR and streaming server | 
|---|
| 22 | Name:           ffmpeg | 
|---|
| 23 | Version:        2.8.6 | 
|---|
| 24 | Release:        2%{?dist} | 
|---|
| 25 | %if 0%{?_with_amr:1} | 
|---|
| 26 | License:        GPLv3+ | 
|---|
| 27 | %else | 
|---|
| 28 | License:        GPLv2+ | 
|---|
| 29 | %endif | 
|---|
| 30 | URL:            http://ffmpeg.org/ | 
|---|
| 31 | #Source0:        http://ffmpeg.org/releases/ffmpeg-%{version}.tar.bz2 | 
|---|
| 32 | Vendor:         bww bitwise works GmbH | 
|---|
| 33 | Requires:       %{name}-libs = %{version}-%{release} | 
|---|
| 34 |  | 
|---|
| 35 | %define github_name FFmpeg | 
|---|
| 36 | %define github_url  https://github.com/bitwiseworks/%{github_name}/archive | 
|---|
| 37 | %define github_rev  2587a3aa8d80fb40a0b96d84deda3140bdb4aac8 | 
|---|
| 38 |  | 
|---|
| 39 | Source: %{github_name}-%{github_rev}.zip | 
|---|
| 40 |  | 
|---|
| 41 | BuildRequires: gcc make curl zip | 
|---|
| 42 |  | 
|---|
| 43 | BuildRequires: bzip2-devel | 
|---|
| 44 | BuildRequires: freetype-devel | 
|---|
| 45 | BuildRequires: fontconfig-devel | 
|---|
| 46 | %{?_with_celt:BuildRequires: celt-devel} | 
|---|
| 47 | %{?_with_dirac:BuildRequires: dirac-devel} | 
|---|
| 48 | %{?_with_faac:BuildRequires: faac-devel} | 
|---|
| 49 | %{?_with_fdk_aac:BuildRequires: fdk-aac-devel} | 
|---|
| 50 | BuildRequires:  freetype-devel | 
|---|
| 51 | %{!?_without_frei0r:BuildRequires: frei0r-devel} | 
|---|
| 52 | %{!?_without_extra:BuildRequires: gnutls-devel} | 
|---|
| 53 | %{!?_without_extra:BuildRequires: gsm-devel} | 
|---|
| 54 | %{!?_without_lame:BuildRequires: lame-devel >= 3.98.3} | 
|---|
| 55 | %{?_with_jack:BuildRequires: jack-audio-connection-kit-devel} | 
|---|
| 56 | %{!?_without_ladspa:BuildRequires: ladspa-devel} | 
|---|
| 57 | %{!?_without_extra:BuildRequires: libass-devel} | 
|---|
| 58 | %{!?_without_cdio:BuildRequires: libcdio-paranoia-devel} | 
|---|
| 59 | #libcrystalhd is currently broken | 
|---|
| 60 | %{?_with_crystalhd:BuildRequires: libcrystalhd-devel} | 
|---|
| 61 | %{!?_without_extra:BuildRequires: libdc1394-devel} | 
|---|
| 62 | %{!?_without_extra:Buildrequires: libmodplug-devel} | 
|---|
| 63 | %{?_with_rtmp:BuildRequires: librtmp-devel} | 
|---|
| 64 | %{!?_without_theora:BuildRequires: libtheora-devel} | 
|---|
| 65 | %{!?_without_extra:BuildRequires: libv4l-devel} | 
|---|
| 66 | %{!?_without_extra:BuildRequires: libvdpau-devel} | 
|---|
| 67 | %{!?_without_vorbis:BuildRequires:  libvorbis-devel} | 
|---|
| 68 | %{!?_without_vpx:BuildRequires: libvpx-devel >= 0.9.1} | 
|---|
| 69 | %ifarch %{ix86} x86_64 | 
|---|
| 70 | %{!?_without_extra:BuildRequires: libXvMC-devel} | 
|---|
| 71 | %{?!_without_vaapi:BuildRequires: libva-devel >= 0.31.0} | 
|---|
| 72 | %endif | 
|---|
| 73 | %{?_with_amr:BuildRequires: opencore-amr-devel vo-amrwbenc-devel} | 
|---|
| 74 | %{!?_without_openal:BuildRequires: openal-soft-devel} | 
|---|
| 75 | %{?_with_opencl:BuildRequires: opencl-headers ocl-icd-devel} | 
|---|
| 76 | %{!?_without_opencv:BuildRequires: opencv-devel} | 
|---|
| 77 | %{!?_without_extra:BuildRequires: openjpeg-devel} | 
|---|
| 78 | %{!?_without_extra:BuildRequires: opus-devel} | 
|---|
| 79 | %{!?_without_pulse:BuildRequires: pulseaudio-libs-devel} | 
|---|
| 80 | #BuildRequires:  perl(Pod::Man) | 
|---|
| 81 | %{!?_without_extra:BuildRequires: schroedinger-devel} | 
|---|
| 82 | BuildRequires: SDL-devel | 
|---|
| 83 | %{!?_without_extra:BuildRequires: soxr-devel} | 
|---|
| 84 | %{!?_without_extra:BuildRequires: speex-devel} | 
|---|
| 85 | #BuildRequires: subversion | 
|---|
| 86 | #BuildRequires:  texi2html | 
|---|
| 87 | BuildRequires:  texinfo | 
|---|
| 88 | %{!?_without_x264:BuildRequires: x264-devel >= 0.0.0-0.31} | 
|---|
| 89 | %{!?_without_x265:BuildRequires: x265-devel} | 
|---|
| 90 | %{!?_without_xvidcore:BuildRequires: xvidcore-devel} | 
|---|
| 91 | BuildRequires:  zlib-devel | 
|---|
| 92 | %ifarch %{ix86} x86_64 | 
|---|
| 93 | #BuildRequires:  yasm | 
|---|
| 94 | %endif | 
|---|
| 95 |  | 
|---|
| 96 | %description | 
|---|
| 97 | FFmpeg is a complete and free Internet live audio and video | 
|---|
| 98 | broadcasting solution for Linux/Unix. It also includes a digital | 
|---|
| 99 | VCR. It can encode in real time in many formats including MPEG1 audio | 
|---|
| 100 | and video, MPEG4, h263, ac3, asf, avi, real, mjpeg, and flash. | 
|---|
| 101 |  | 
|---|
| 102 | %package        libs | 
|---|
| 103 | Summary:        Libraries for %{name} | 
|---|
| 104 |  | 
|---|
| 105 | %description    libs | 
|---|
| 106 | FFmpeg is a complete and free Internet live audio and video | 
|---|
| 107 | broadcasting solution for Linux/Unix. It also includes a digital | 
|---|
| 108 | VCR. It can encode in real time in many formats including MPEG1 audio | 
|---|
| 109 | and video, MPEG4, h263, ac3, asf, avi, real, mjpeg, and flash. | 
|---|
| 110 | This package contains the libraries for %{name} | 
|---|
| 111 |  | 
|---|
| 112 | %package     -n libavdevice | 
|---|
| 113 | Summary:        Special devices muxing/demuxing library | 
|---|
| 114 |  | 
|---|
| 115 | %description -n libavdevice | 
|---|
| 116 | Libavdevice is a complementary library to libavf "libavformat". It provides | 
|---|
| 117 | various "special" platform-specific muxers and demuxers, e.g. for grabbing | 
|---|
| 118 | devices, audio capture and playback etc. | 
|---|
| 119 |  | 
|---|
| 120 | %package        devel | 
|---|
| 121 | Summary:        Development package for %{name} | 
|---|
| 122 | Requires:       %{name}-libs = %{version}-%{release} | 
|---|
| 123 | Requires:       libavdevice = %{version}-%{release} | 
|---|
| 124 | Requires:       pkgconfig | 
|---|
| 125 |  | 
|---|
| 126 | %description    devel | 
|---|
| 127 | FFmpeg is a complete and free Internet live audio and video | 
|---|
| 128 | broadcasting solution for Linux/Unix. It also includes a digital | 
|---|
| 129 | VCR. It can encode in real time in many formats including MPEG1 audio | 
|---|
| 130 | and video, MPEG4, h263, ac3, asf, avi, real, mjpeg, and flash. | 
|---|
| 131 | This package contains development files for %{name} | 
|---|
| 132 |  | 
|---|
| 133 | %debug_package | 
|---|
| 134 |  | 
|---|
| 135 | %global ff_configure \ | 
|---|
| 136 | ./configure \\\ | 
|---|
| 137 | --prefix=%{_prefix} \\\ | 
|---|
| 138 | --bindir=%{_bindir} \\\ | 
|---|
| 139 | --datadir=%{_datadir}/%{name} \\\ | 
|---|
| 140 | --incdir=%{_includedir}/%{name} \\\ | 
|---|
| 141 | --libdir=%{_libdir} \\\ | 
|---|
| 142 | --mandir=%{_mandir} \\\ | 
|---|
| 143 | --arch=%{_arch} \\\ | 
|---|
| 144 | --optflags="$RPM_OPT_FLAGS" \\\ | 
|---|
| 145 | %{?_with_amr:--enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-amrwbenc --enable-version3} \\\ | 
|---|
| 146 | --enable-bzlib \\\ | 
|---|
| 147 | %{!?_with_crystalhd:--disable-crystalhd} \\\ | 
|---|
| 148 | %{!?_without_frei0r:--enable-frei0r} \\\ | 
|---|
| 149 | %{!?_without_extra:--enable-gnutls} \\\ | 
|---|
| 150 | %{!?_without_ladspa:--enable-ladspa} \\\ | 
|---|
| 151 | %{!?_without_extra:--enable-libass} \\\ | 
|---|
| 152 | %{!?_without_cdio:--enable-libcdio} \\\ | 
|---|
| 153 | %{?_with_celt:--enable-libcelt} \\\ | 
|---|
| 154 | %{!?_without_extra:--enable-libdc1394} \\\ | 
|---|
| 155 | %{?_with_dirac:--enable-libdirac} \\\ | 
|---|
| 156 | %{?_with_faac:--enable-libfaac --enable-nonfree} \\\ | 
|---|
| 157 | %{?_with_fdk-aac:--enable-libfdk-aac --enable-nonfree} \\\ | 
|---|
| 158 | %{!?_with_jack:--disable-indev=jack} \\\ | 
|---|
| 159 | --enable-libfreetype \\\ | 
|---|
| 160 | --enable-fontconfig \\\ | 
|---|
| 161 | %{!?_without_extra:--enable-libgsm} \\\ | 
|---|
| 162 | %{!?_without_lame:--enable-libmp3lame} \\\ | 
|---|
| 163 | %{?_with_nvenc:--enable-nvenc  --enable-nonfree} \\\ | 
|---|
| 164 | %{!?_without_openal:--enable-openal} \\\ | 
|---|
| 165 | %{?_with_opencl:--enable-opencl} \\\ | 
|---|
| 166 | %{!?_without_opencv:--enable-libopencv} \\\ | 
|---|
| 167 | %{!?_without_extra:--enable-libopenjpeg} \\\ | 
|---|
| 168 | %{!?_without_extra:--enable-libopus} \\\ | 
|---|
| 169 | %{!?_without_pulse:--enable-libpulse} \\\ | 
|---|
| 170 | %{?_with_rtmp:--enable-librtmp} \\\ | 
|---|
| 171 | %{!?_without_extra:--enable-libschroedinger} \\\ | 
|---|
| 172 | %{!?_without_extra:--enable-libsoxr} \\\ | 
|---|
| 173 | %{!?_without_extra:--enable-libspeex} \\\ | 
|---|
| 174 | %{!?_without_theora:--enable-libtheora} \\\ | 
|---|
| 175 | %{!?_without_vorbis:--enable-libvorbis} \\\ | 
|---|
| 176 | %{!?_without_extra:--enable-libv4l2} \\\ | 
|---|
| 177 | %{!?_without_vpx:--enable-libvpx} \\\ | 
|---|
| 178 | %{!?_without_x264:--enable-libx264} \\\ | 
|---|
| 179 | %{!?_without_x265:--enable-libx265} \\\ | 
|---|
| 180 | %{!?_without_xvidcore:--enable-libxvid} \\\ | 
|---|
| 181 | %{!?_without_extra:--enable-x11grab} \\\ | 
|---|
| 182 | --enable-avfilter \\\ | 
|---|
| 183 | --enable-avresample \\\ | 
|---|
| 184 | --enable-postproc \\\ | 
|---|
| 185 | %{!?_without_extra:--enable-pthreads} \\\ | 
|---|
| 186 | --disable-static \\\ | 
|---|
| 187 | --enable-shared \\\ | 
|---|
| 188 | --enable-gpl \\\ | 
|---|
| 189 | --disable-debug \\\ | 
|---|
| 190 | --disable-stripping | 
|---|
| 191 |  | 
|---|
| 192 |  | 
|---|
| 193 | %prep | 
|---|
| 194 | %if %(sh -c 'if test -f "%{_sourcedir}/%{github_name}-%{github_rev}.zip" ; then echo 1 ; else echo 0 ; fi') | 
|---|
| 195 | %setup -n "%{github_name}-%{github_rev}" -q | 
|---|
| 196 | %else | 
|---|
| 197 | %setup -n "%{github_name}-%{github_rev}" -Tc | 
|---|
| 198 | rm -f "%{_sourcedir}/%{github_name}-%{github_rev}.zip" | 
|---|
| 199 | curl -sSL "%{github_url}/%{github_rev}.zip" -o "%{_sourcedir}/%{github_name}-%{github_rev}.zip" | 
|---|
| 200 | unzip "%{_sourcedir}/%{github_name}-%{github_rev}.zip" -d .. | 
|---|
| 201 | %endif | 
|---|
| 202 |  | 
|---|
| 203 | # fix -O3 -g in host_cflags | 
|---|
| 204 | sed -i "s|-O3 -g|$RPM_OPT_FLAGS|" configure | 
|---|
| 205 |  | 
|---|
| 206 | %build | 
|---|
| 207 | %{ff_configure}\ | 
|---|
| 208 | --shlibdir=%{_libdir} \ | 
|---|
| 209 | --disable-doc \ | 
|---|
| 210 | %if 0%{?ffmpegsuffix:1} | 
|---|
| 211 | --build-suffix=%{ffmpegsuffix} \ | 
|---|
| 212 | --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver \ | 
|---|
| 213 | %else | 
|---|
| 214 | %ifarch %{ix86} | 
|---|
| 215 | --cpu=%{_target_cpu} \ | 
|---|
| 216 | %endif | 
|---|
| 217 | %ifarch %{ix86} x86_64 ppc ppc64 | 
|---|
| 218 | --enable-runtime-cpudetect \ | 
|---|
| 219 | %endif | 
|---|
| 220 | %endif | 
|---|
| 221 | --extra-ldflags="-Zhigh-mem" \ | 
|---|
| 222 | --extra-libs="-lpoll -lmmap" | 
|---|
| 223 |  | 
|---|
| 224 | make %{?_smp_mflags} V=1 | 
|---|
| 225 | make documentation V=1 | 
|---|
| 226 | make alltools V=1 | 
|---|
| 227 |  | 
|---|
| 228 | %install | 
|---|
| 229 | make install DESTDIR=$RPM_BUILD_ROOT V=1 | 
|---|
| 230 | %if 0%{!?ffmpegsuffix:1} | 
|---|
| 231 | install -pm755 tools/qt-faststart.exe $RPM_BUILD_ROOT%{_bindir} | 
|---|
| 232 | %endif | 
|---|
| 233 |  | 
|---|
| 234 | %post libs | 
|---|
| 235 |  | 
|---|
| 236 | %postun libs | 
|---|
| 237 |  | 
|---|
| 238 | %if 0%{!?ffmpegsuffix:1} | 
|---|
| 239 | %files | 
|---|
| 240 | %doc COPYING.* CREDITS README.md doc/ffserver.conf | 
|---|
| 241 | %{_bindir}/ffmpeg.exe | 
|---|
| 242 | %{_bindir}/ffplay.exe | 
|---|
| 243 | %{_bindir}/ffprobe.exe | 
|---|
| 244 | %{_bindir}/ffserver.exe | 
|---|
| 245 | %{_bindir}/qt-faststart.exe | 
|---|
| 246 | # @todo we miss perl(Pod::Man) or such | 
|---|
| 247 | #%{_mandir}/man1/ffmpeg*.1* | 
|---|
| 248 | #%{_mandir}/man1/ffplay*.1* | 
|---|
| 249 | #%{_mandir}/man1/ffprobe*.1* | 
|---|
| 250 | #%{_mandir}/man1/ffserver*.1* | 
|---|
| 251 | %{_datadir}/ffmpeg | 
|---|
| 252 | %endif | 
|---|
| 253 |  | 
|---|
| 254 | %files libs | 
|---|
| 255 | %{_libdir}/*.dll | 
|---|
| 256 | %exclude %{_libdir}/avdevi*.dll | 
|---|
| 257 | # @todo we miss perl(Pod::Man) or such | 
|---|
| 258 | #%{_mandir}/man3/lib*.3.gz | 
|---|
| 259 |  | 
|---|
| 260 | %files -n libavdevice | 
|---|
| 261 | %{_libdir}/avdevi*.dll | 
|---|
| 262 |  | 
|---|
| 263 | %files devel | 
|---|
| 264 | %doc MAINTAINERS doc/APIchanges doc/*.txt | 
|---|
| 265 | %{_includedir}/ffmpeg | 
|---|
| 266 | %{_libdir}/pkgconfig/lib*.pc | 
|---|
| 267 | %{_libdir}/*.a | 
|---|
| 268 | %{_libdir}/*.lib | 
|---|
| 269 |  | 
|---|
| 270 |  | 
|---|
| 271 | %changelog | 
|---|
| 272 | * Mon Apr 18 2016 Dmitriy Kuminov <coding@dmik.org> 2.8.6-2 | 
|---|
| 273 | - Enable high memory support. | 
|---|
| 274 |  | 
|---|
| 275 | * Fri Apr 15 2016 Dmitriy Kuminov <coding@dmik.org> 2.8.6-1 | 
|---|
| 276 | - Initial release of version 2.8.6. | 
|---|