3 %bcond_without autodeps # don't BR packages needed only for resolving deps
4 %bcond_with tests # perform "make test". needs running flixd on localhost
6 %include /usr/lib/rpm/macros.perl
7 Summary: On2 Flix Engine
11 License: not distributable
13 # download demo from http://flix.on2.com/demos/
14 Source0: %{name}linuxdemo.tar.gz
15 # Source0-md5: ea7d3a0efaf08611aad9374259015d71
18 URL: http://www.on2.com/developer/flix-engine-sdk
20 BuildRequires: ffmpeg-libs
21 BuildRequires: lame-libs
25 BuildRequires: perl-base
26 BuildRequires: php-devel
28 BuildRequires: rpm-perlprov >= 4.1-13
29 Requires: %{name}-libs = %{version}-%{release}
30 ExclusiveArch: %{ix86}
31 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
33 %define _libexecdir %{_prefix}/libexec
34 %define extensionsdir %(php-config --extension-dir 2>/dev/null)
37 The On2 Flix Engine provides many of the Flash 8 video encoding
38 features of our industry leading On2 Flix Pro video encoder in a
39 powerful software SDK.
41 The Engine enables you to add the power and efficiency of Flash video
42 with On2 VP6 encoding to your intranet, website and other server-based
43 applications, preserve alpha channel in the video output, and much
46 The major feature of the On2 Flix Engine 8 is support for Adobe Flash
47 8 video with the On2 VP6 codec and FLV video output that can be played
48 directly in the Flash Player, streamed through the Adobe Flash Media
49 Server, or imported into Flash Studio. The new FLV output also is
50 fully compliant with FLV format metadata and Adobe Flash Player
54 Summary: Shared libraries for On2 Flix Engine
58 Shared libraries for On2 Flix Engine.
61 Summary: Header files for On2 Flix Engine library
62 Group: Development/Libraries
65 Header files for On2 Flix Engine library.
67 %package -n java-flixengine
68 Summary: Java bindings for On2 Flix Engine
70 Requires: %{name}-libs = %{version}-%{release}
72 %description -n java-flixengine
73 Java bindings for On2 Flix Engine.
75 %package -n perl-flixengine
76 Summary: Perl bindings for On2 Flix Engine
78 Requires: %{name}-libs = %{version}-%{release}
80 %description -n perl-flixengine
81 Perl bindings for On2 Flix Engine.
83 %package -n php-flixengine
84 Summary: PHP bindings for On2 Flix Engine
85 %{?requires_php_extension}
87 Requires: %{name}-libs = %{version}-%{release}
88 Requires: /etc/php/conf.d
90 %description -n php-flixengine
91 PHP bindings for On2 Flix Engine.
93 %package -n python-flixengine
94 Summary: Python bindings for On2 Flix Engine
96 Requires: %{name}-libs = %{version}-%{release}
98 %description -n python-flixengine
99 Python bindings for On2 Flix Engine.
102 %setup -q -n flix-engine-installer-linux-%{version}_DEMO
103 bin=flix-engine-installer-linux-%{version}_DEMO.bin
104 tar=flix-engine-linux-%{version}_DEMO.tar.gz
106 OFFSET=$( awk -F= '/OFFSET=/{print $2; exit}' $bin)
107 dd bs=8 if=$bin of=$tar skip=$OFFSET
110 %{__sed} -ne '/## FUNCTIONS common/,/## END - common function/p' $bin > functions.sh
111 cat <<'EOF' > install.sh
113 export VERSION=%{version}_DEMO
114 export FLIXENGINEDEMO=1
115 export nullout=/dev/null
116 export tempdir=%{_builddir}/flix-engine-installer-linux-%{version}_DEMO
118 . $(dirname "$0")/functions.sh
119 cd .flix-engine-installation-files
121 export -f getinput inset ynanswer
126 cd .flix-engine-installation-files
128 # force installing initscript into buildroot without detection
129 s,^initchk$,inittype=sysv1; INITDIR=$RPM_BUILD_ROOT/etc/rc.d/init.d,
132 s,clear 2>\$nullout,#&,
134 # we want to install examples, but not compile them in install
135 # and somewhy --no-compile didn not work, had to specify also --no-modules,
136 # which made no modules installed either, chicken-egg problem.
137 s,COMPILEMODULES=y,COMPILEMODULES=n,
138 s,INSTALLEDPERLFILES="n",INSTALLEDPERLFILES="y",
139 s,INSTALLEDPHPFILES="n",INSTALLEDPHPFILES="y",
140 s,INSTALLEDPYTHONFILES="n",INSTALLEDPYTHONFILES="y",
141 s,INSTALLEDFLIXLIBRARIES="n",INSTALLEDFLIXLIBRARIES="y",
142 s,INSTALLEDJAVAFILES="n",INSTALLEDJAVAFILES="y",
147 cd .flix-engine-installation-files
149 ln -snf flixhdrs flixengine2
150 export C_INCLUDE_PATH=$(pwd)
153 export LD_LIBRARY_PATH=$(pwd)/flixlibs
154 export LIBRARY_PATH=$(pwd)/flixlibs
157 %{__make} -C flixphp \
163 %{__perl} Makefile.PL \
167 OPTIMIZE="%{rpmcflags}"
168 %{?with_tests:%{__make} test}
173 %{__python} setup.py build
177 %{__make} -C flixjava \
182 rm -rf $RPM_BUILD_ROOT
185 --prefix=$RPM_BUILD_ROOT%{_prefix} \
186 --mandir=$RPM_BUILD_ROOT%{_mandir} \
187 --flixsamples=$RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} \
188 --pidfile=$RPM_BUILD_ROOT/var/run/flixd.pid \
189 --authdir=$RPM_BUILD_ROOT/var/lib/on2 \
192 --yesireadtheon2license \
198 install -D %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/flixengine
201 cd .flix-engine-installation-files
203 %{__make} -C flixphp \
205 PHPINST=$RPM_BUILD_ROOT%{extensionsdir} \
207 install -d $RPM_BUILD_ROOT/etc/php/conf.d
208 cat <<'EOF' > $RPM_BUILD_ROOT/etc/php/conf.d/flixengine.ini
209 ; Enable flixengine extension module
210 extension=flixengine2.so
215 %{__make} pure_install \
216 DESTDIR=$RPM_BUILD_ROOT
217 rm -f $RPM_BUILD_ROOT%{perl_vendorarch}/auto/On2/flixengine2/.packlist
222 %{__python} setup.py install \
224 --root=$RPM_BUILD_ROOT
229 %{__make} -C flixjava \
230 SOINST=$RPM_BUILD_ROOT%{_libdir} \
231 JARINST=$RPM_BUILD_ROOT%{_javadir} \
235 # symlink without buildroot
236 ln -snf %{_prefix}/src/flixmodules/flixjava/doc $RPM_BUILD_ROOT%{_docdir}/on2/flixengine/javadoc
238 # do not put hardware fingerprint to rpm package
239 > $RPM_BUILD_ROOT/var/lib/on2/hostinfo
242 rm -f $RPM_BUILD_ROOT%{_sbindir}/flix-engine-uninstall.sh
245 rm -rf $RPM_BUILD_ROOT
247 %post libs -p /sbin/ldconfig
248 %postun libs -p /sbin/ldconfig
251 if [ ! -s /var/lib/on2/hostinfo ]; then
252 %{_sbindir}/on2_host_info > /var/lib/on2/hostinfo
255 %post -n php-flixengine
256 [ ! -f /etc/apache/conf.d/??_mod_php.conf ] || %service -q apache restart
257 [ ! -f /etc/httpd/httpd.conf/??_mod_php.conf ] || %service -q httpd restart
259 %postun -n php-flixengine
260 if [ "$1" = 0 ]; then
261 [ ! -f /etc/apache/conf.d/??_mod_php.conf ] || %service -q apache restart
262 [ ! -f /etc/httpd/httpd.conf/??_mod_php.conf ] || %service -q httpd restart
266 %defattr(644,root,root,755)
268 %attr(755,root,root) %{_sbindir}/flixd
269 %attr(755,root,root) %{_sbindir}/lget
270 %attr(755,root,root) %{_sbindir}/on2_host_info
271 %attr(754,root,root) /etc/rc.d/init.d/flixengine
272 %{_mandir}/man8/flixd.8*
274 %config(noreplace) %verify(not md5 mtime size) /var/lib/on2/hostinfo
275 %{_libexecdir}/on2/flixengine/mencoder
278 %defattr(644,root,root,755)
279 %attr(755,root,root) %{_libdir}/libflixengine2.so.*.*
280 %attr(755,root,root) %{_libdir}/libflixengine2_core.so.*.*
283 %defattr(644,root,root,755)
284 %attr(755,root,root) %{_libdir}/libflixengine2.so
285 %attr(755,root,root) %{_libdir}/libflixengine2_core.so
286 %{_includedir}/flixengine2
288 %dir %{_examplesdir}/%{name}-%{version}
289 %{_examplesdir}/%{name}-%{version}/c
290 %{_examplesdir}/%{name}-%{version}/java
291 %{_examplesdir}/%{name}-%{version}/perl
292 %{_examplesdir}/%{name}-%{version}/php
293 %{_examplesdir}/%{name}-%{version}/python
295 %files -n java-flixengine
296 %defattr(644,root,root,755)
297 %attr(755,root,root) %{_libdir}/libflixengine2_jni.so
298 %{_javadir}/flixengine2.jar
300 %files -n perl-flixengine
301 %defattr(644,root,root,755)
302 %dir %{perl_vendorarch}/On2
303 %{perl_vendorarch}/On2/flixengine2.pm
304 %dir %{perl_vendorarch}/auto/On2
305 %dir %{perl_vendorarch}/auto/On2/flixengine2
306 %{perl_vendorarch}/auto/On2/flixengine2/flixengine2.bs
307 %attr(755,root,root) %{perl_vendorarch}/auto/On2/flixengine2/flixengine2.so
309 %files -n php-flixengine
310 %defattr(644,root,root,755)
311 %config(noreplace) %verify(not md5 mtime size) /etc/php/conf.d/flixengine.ini
312 %attr(755,root,root) %{extensionsdir}/flixengine2.so
313 %{_libdir}/flixengine2.php
315 %files -n python-flixengine
316 %defattr(644,root,root,755)
317 %attr(755,root,root) %{py_sitedir}/_flixengine2.so
318 %{py_sitedir}/flixengine2.pyc
319 %{py_sitedir}/flixengine2.pyo