#
# Conditional build:
%bcond_without autodeps # don't BR packages needed only for resolving deps
+%bcond_without python # do not build Python bindings
+%bcond_without java # do not build Java bindings
%bcond_with tests # perform "make test". needs running flixd on localhost
#
+%ifarch %{x8664}
+%undefine with_python
+%undefine with_java
+%endif
+#
%include /usr/lib/rpm/macros.perl
Summary: On2 Flix Engine
Summary(pl): Silnik On2 Flix
Name: flixengine
Version: 8.0.7.1
-Release: 0.2
+Release: 0.11
License: not distributable
Group: Applications
# download demo from http://flix.on2.com/demos/
# NoSource0-md5: fb7cc89ce2689d3c43434291620cfd0f
NoSource: 0
Source1: %{name}.init
+Patch0: %{name}-libdir.patch
+Patch1: %{name}-phploader.patch
URL: http://www.on2.com/developer/flix-engine-sdk
BuildRequires: bash
-BuildRequires: jre
+%{?with_java:BuildRequires: jre}
BuildRequires: perl-base
BuildRequires: php-devel
-BuildRequires: python
+%{?with_python:BuildRequires: python}
BuildRequires: rpm-perlprov >= 4.1-13
BuildRequires: rpmbuild(macros) >= 1.344
%if %{with autodeps}
BuildRequires: lame-libs
%endif
Requires(post,preun): /sbin/chkconfig
-Requires: %{name}-libs = %{version}-%{release}
Requires: portmap
Requires: rc-scripts
-ExclusiveArch: %{ix86}
+Conflicts: %{name}-libs < %{version}-%{release}
+Conflicts: %{name}-libs > %{version}-%{release}
+ExclusiveArch: %{ix86} %{x8664}
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-# FIXME: FHS 2.x violation
-%define _libexecdir %{_prefix}/libexec
-
%description
The On2 Flix Engine provides many of the Flash 8 video encoding
features of our industry leading On2 Flix Pro video encoder in a
%description -n python-flixengine -l pl
Wi±zania Pythona dla silnika On2 Flix.
+%package docs
+Summary: HTML Documentation for On2 Flix Engine
+Group: Documentation
+
+%description docs
+HTML Documentation for On2 Flix Engine
+
%prep
%setup -q -n flix-engine-installer-linux-%{version}_DEMO
bin=flix-engine-installer-linux-%{version}_DEMO.bin
dd bs=8 if=$bin of=$tar skip=$OFFSET
%{__tar} zxf $tar
+%patch0 -p1
+%patch1 -p1
+
%{__sed} -ne '/## FUNCTIONS common/,/## END - common function/p' $bin > functions.sh
cat <<'EOF' > install.sh
#!/bin/bash
ln -snf flixhdrs flixengine2
export C_INCLUDE_PATH=$(pwd)
-ldconfig -n flixlibs
+%ifarch %{x8664}
+export LD_LIBRARY_PATH=$(pwd)/testing/lib64
+ldconfig -n testing/lib64
+%else
export LD_LIBRARY_PATH=$(pwd)/flixlibs
-export LIBRARY_PATH=$(pwd)/flixlibs
+ldconfig -n flixlibs
+%endif
+export LIBRARY_PATH=$LD_LIBRARY_PATH
# PHP
%{__make} -C flixphp \
%{?with_tests:%{__make} test}
cd ..
-# Python
+%if %{with python}
cd flixpython
%{__python} setup.py build
cd ..
+%endif
-# Java
+%if %{with java}
%{__make} -C flixjava \
CC="%{__cc}" \
-f target.mk
+%endif
%install
rm -rf $RPM_BUILD_ROOT
./install.sh \
--prefix=$RPM_BUILD_ROOT%{_prefix} \
--mandir=$RPM_BUILD_ROOT%{_mandir} \
+ --mencoderbin=$RPM_BUILD_ROOT%{_bindir} \
--flixsamples=$RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} \
--pidfile=$RPM_BUILD_ROOT/var/run/flixd.pid \
--authdir=$RPM_BUILD_ROOT/var/lib/on2 \
--no-init \
--noprereqlibs
-install -D %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/flixengine
+install -D %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/flixd
-# install bindings
cd .flix-engine-installation-files
+
+# install bindings
# PHP
%{__make} -C flixphp \
install \
- PHPINST=$RPM_BUILD_ROOT%{php_extensiondir} \
+ PHPINST=%{php_extensiondir} \
+ DESTDIR=$RPM_BUILD_ROOT \
-f target.mk
install -d $RPM_BUILD_ROOT%{php_sysconfdir}/conf.d
cat <<'EOF' > $RPM_BUILD_ROOT%{php_sysconfdir}/conf.d/flixengine.ini
rm -f $RPM_BUILD_ROOT%{perl_vendorarch}/auto/On2/flixengine2/.packlist
cd ..
-# Python
+%if %{with python}
cd flixpython
%{__python} setup.py install \
--optimize=2 \
--root=$RPM_BUILD_ROOT
%py_postclean
cd ..
+%endif
-# Java
+rm -f $RPM_BUILD_ROOT%{_docdir}/on2/flixengine/javadoc
+%if %{with java}
%{__make} -C flixjava \
SOINST=$RPM_BUILD_ROOT%{_libdir} \
JARINST=$RPM_BUILD_ROOT%{_javadir} \
# symlink without buildroot
ln -snf %{_prefix}/src/flixmodules/flixjava/doc $RPM_BUILD_ROOT%{_docdir}/on2/flixengine/javadoc
+%endif
+
+%ifarch %{x8664}
+cp -a testing/lib64/libflixengine2.so* $RPM_BUILD_ROOT%{_libdir}
+%endif
+
+# avoid collision from mplayer package
+mv $RPM_BUILD_ROOT%{_bindir}/mencoder{,-flixengine}
# do not put hardware fingerprint to rpm package
> $RPM_BUILD_ROOT/var/lib/on2/hostinfo
%postun libs -p /sbin/ldconfig
%post
-/sbin/chkconfig --add %{name}
+/sbin/chkconfig --add flixd
if [ ! -s /var/lib/on2/hostinfo ]; then
%{_sbindir}/on2_host_info > /var/lib/on2/hostinfo
%banner -e %{name} <<EOF
# %{_sbindir}/lget -u '<username>' -s '<serial>' -i /var/lib/on2/hostinfo -o /var/lib/on2/on2product.lic -a 'On2FlixEngine/%{version}_DEMO (%(uname -o))'
EOF
fi
-%service %{name} restart
+%service flixd restart
%preun
if [ "$1" = "0" ]; then
- %service -q %{name} stop
- /sbin/chkconfig --del %{name}
+ %service -q flixd stop
+ /sbin/chkconfig --del flixd
fi
%post -n php-flixengine
%files
%defattr(644,root,root,755)
-%doc %{_docdir}/on2
-%exclude %{_docdir}/on2/flixengine/javadoc
+%doc doc/*
+%{?with_java:%exclude %{_docdir}/on2/flixengine/javadoc}
%attr(755,root,root) %{_sbindir}/flixd
%attr(755,root,root) %{_sbindir}/lget
%attr(755,root,root) %{_sbindir}/on2_host_info
-%attr(754,root,root) /etc/rc.d/init.d/flixengine
+%attr(754,root,root) /etc/rc.d/init.d/flixd
%{_mandir}/man8/flixd.8*
%dir /var/lib/on2
%config(noreplace) %verify(not md5 mtime size) /var/lib/on2/hostinfo
-# TODO: FHS fix
-%dir %{_libexecdir}
-%dir %{_libexecdir}/on2
-%dir %{_libexecdir}/on2/flixengine
-%attr(755,root,root) %{_libexecdir}/on2/flixengine/mencoder
+%attr(755,root,root) %{_bindir}/mencoder-flixengine
%files libs
%defattr(644,root,root,755)
+%attr(755,root,root) %{_prefix}/lib/libflixengine2.so.*.*
+%attr(755,root,root) %{_prefix}/lib/libflixengine2_core.so.*.*
+%ifarch %{x8664}
%attr(755,root,root) %{_libdir}/libflixengine2.so.*.*
-%attr(755,root,root) %{_libdir}/libflixengine2_core.so.*.*
+%endif
%dir %{_examplesdir}/%{name}-%{version}
%files devel
%defattr(644,root,root,755)
+%attr(755,root,root) %{_prefix}/lib/libflixengine2.so
+%attr(755,root,root) %{_prefix}/lib/libflixengine2_core.so
+%ifarch %{x8664}
%attr(755,root,root) %{_libdir}/libflixengine2.so
-%attr(755,root,root) %{_libdir}/libflixengine2_core.so
+%endif
%{_includedir}/flixengine2
%{_examplesdir}/%{name}-%{version}/c
+%if %{with java}
%files -n java-flixengine
%defattr(644,root,root,755)
%doc %{_docdir}/on2/flixengine/javadoc
%attr(755,root,root) %{_libdir}/libflixengine2_jni.so
%{_javadir}/flixengine2.jar
%{_examplesdir}/%{name}-%{version}/java
+%endif
%files -n perl-flixengine
%defattr(644,root,root,755)
%defattr(644,root,root,755)
%config(noreplace) %verify(not md5 mtime size) %{php_sysconfdir}/conf.d/flixengine.ini
%attr(755,root,root) %{php_extensiondir}/flixengine2.so
-%{_libdir}/flixengine2.php
+%{_prefix}/lib/flixengine2.php
%{_examplesdir}/%{name}-%{version}/php
+%if %{with python}
%files -n python-flixengine
%defattr(644,root,root,755)
%attr(755,root,root) %{py_sitedir}/_flixengine2.so
%{py_sitedir}/flixengine2.pyc
%{py_sitedir}/flixengine2.pyo
%{_examplesdir}/%{name}-%{version}/python
+%endif
+
+%files docs
+%defattr(644,root,root,755)
+%doc %{_docdir}/on2