-
-%bcond_with amr
-%bcond_without js
-%bcond_without freetype
-%bcond_without faad
-%bcond_without jpeg
-%bcond_without png
-%bcond_without mad
-%bcond_without xvid
-%bcond_without ffmpeg
-
-Summary: GPAC is an implementation of the MPEG-4 Systems standard (ISO/IEC 14496-1)
-Summary(pl): GPAC jest implementacj± standardu MPEG-4 Systems (ISO/IEC 14496-1)
+# TODO:
+# - Platinum UPnP: http://www.plutinosoft.com/platinum
+# - AVCap: http://libavcap.sourceforge.net/
+# - OpenSVCDecoder: http://opensvcdecoder.sourceforge.net/
+# - libfreenect: http://openkinect.org/wiki/Main_Page
+#
+# Conditional build:
+%bcond_with amr # AMR-NB and AMR-WB (floating-point) support
+%bcond_without directfb # DirectFB support
+%bcond_without faad # AAC decoding support
+%bcond_without ffmpeg # ffmpeg support
+%bcond_without freetype # freetype support
+%bcond_without jpeg # JPEG support
+%bcond_with js # JavaScript support
+%bcond_without mad # MP3 support
+%bcond_without png # PNG support
+%bcond_without xvid # xvid support
+%bcond_without wx # wxWidgets support
+#
+Summary: GPAC - an implementation of the MPEG-4 Systems standard (ISO/IEC 14496-1)
+Summary(pl.UTF-8): GPAC - implementacja standardu MPEG-4 Systems (ISO/IEC 14496-1)
Name: gpac
-Version: 0.2.1
-Release: 1
-License: GPL
-Group: Applications
-Source0: http://mesh.dl.sourceforge.net/sourceforge/%{name}/%{name}-%{version}.tar.gz
-# Source0-md5: 3a3e193e805ab177f44514ca3289b461
-# Source0-size: 2227080
-Source1: http://www.3gpp.org/ftp/Specs/archive/26_series/26.073/26073-530.zip
-# Source1-md5: 705f6993fbf890e92eb7a331e7c716d1
-# Source1-size: 916695
+Version: 0.5.0
+Release: 11
+License: LGPL v2+
+Group: Applications/Multimedia
+Source0: http://downloads.sourceforge.net/gpac/%{name}-%{version}.tar.gz
+# Source0-md5: 19f7bb7c16913c22bdd453db1e653ca0
+Patch0: %{name}-install.patch
+Patch1: %{name}-xulrunner.patch
+Patch2: %{name}-amr.patch
+Patch3: %{name}-install-is-not-clean.patch
+Patch4: %{name}-flags.patch
+Patch5: %{name}-idl_uuid.patch
+Patch6: %{name}-js.patch
+Patch7: %{name}-apps.patch
+Patch8: %{name}-export.patch
+Patch9: %{name}-ffmpeg2.patch
URL: http://gpac.sourceforge.net/
-BuildRequires: SDL-devel
-#BuildRequires: wxWidgets-devel
-%{!?_without_js:BuildRequires: js-devel}
-%{!?_without_freetype:BuildRequires: freetype-devel}
-%{!?_without_faad:BuildRequires: faad2-devel}
-%{!?_without_jpeg:BuildRequires: libjpeg-devel}
-%{!?_without_png:BuildRequires: libpng-devel}
-%{!?_without_mad:BuildRequires: libmad-devel}
-%{!?_without_xvid:BuildRequires: xvid-devel}
-%{!?_without_ffmpeg:BuildRequires: ffmpeg-devel}
-Requires: SDL
-#Requires: wxWidgets
-%{!?_without_js:Requires: js}
-%{!?_without_freetype:Requires: freetype}
-%{!?_without_faad:Requires: faad2}
-%{!?_without_jpeg:Requires: libjpeg-6b}
-%{!?_without_png:Requires: libpng}
-%{!?_without_mad:Requires: libmad}
-%{!?_without_xvid:Requires: xvid}
-%{!?_without_ffmpeg:Requires: ffmpeg}
+%{?with_directfb:BuildRequires: DirectFB-devel}
+BuildRequires: OpenGL-GLU-devel
+BuildRequires: SDL-devel
+BuildRequires: a52dec-libs-devel
+BuildRequires: alsa-lib-devel >= 0.9
+%{?with_amr:BuildRequires: amrnb-devel}
+%{?with_amr:BuildRequires: amrwb-devel}
+%{?with_faad:BuildRequires: faad2-devel}
+%{?with_ffmpeg:BuildRequires: ffmpeg-devel >= 0.6}
+%{?with_freetype:BuildRequires: freetype-devel}
+%{?with_wx:BuildRequires: gtk+2-devel >= 2:2.20.1}
+BuildRequires: jack-audio-connection-kit-devel
+%{?with_js:BuildRequires: js-devel < 2:1.8.5}
+%{?with_jpeg:BuildRequires: libjpeg-devel}
+%{?with_mad:BuildRequires: libmad-devel}
+BuildRequires: libogg-devel
+%{?with_png:BuildRequires: libpng-devel}
+BuildRequires: libtheora-devel
+BuildRequires: libvorbis-devel
+BuildRequires: libxml2-devel
+BuildRequires: openjpeg-devel
+BuildRequires: openssl-devel
+BuildRequires: pkgconfig
+BuildRequires: pulseaudio-devel
+BuildRequires: rpmbuild(macros) >= 1.357
+BuildRequires: sed >= 4.0
+BuildRequires: unzip
+%{?with_wx:BuildRequires: wxGTK2-unicode-devel >= 2.6.0}
+BuildRequires: xmlrpc-c-server-devel
+BuildRequires: xorg-lib-libXext-devel
+BuildRequires: xorg-lib-libXv-devel
+BuildRequires: xulrunner-devel >= 2:9.0.0
+%{?with_xvid:BuildRequires: xvid-devel}
+BuildRequires: zlib-devel
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
-GPAC is an implementation of the MPEG-4 Systems standard (ISO/IEC 14496-1)
-developed from scratch in ANSI C.
-
-The main development goal is to provide a clean (a.k.a. readable by as many
-people as possible), small and flexible alternative to the MPEG-4 Systems
-reference software (known as IM1 and distributed in ISO/IEC 14496-5). The
-MPEG-4 Reference software is indeed a very large piece of software, designed
-to verify the standard rather than provide a small, production-stable software.
-GPAC is written in ANSI C for portability reasons (embedded platforms and DSPs)
-with a simple goal: keep the memory footprint as low as possible.
-The project will at term provide player(s), systems encoders and publishing
-tools for content distribution.
-
-The current GPAC release (0.2.1) is far from being complete but already covers
-a very large part of the standard, and can probably be seen as the most
-advanced and robust 2D MPEG-4 Player available worldwide (its 3D side
-is not to be neglected though).
+GPAC is an implementation of the MPEG-4 Systems standard (ISO/IEC
+14496-1) developed from scratch in ANSI C.
+
+The main development goal is to provide a clean (a.k.a. readable by as
+many people as possible), small and flexible alternative to the MPEG-4
+Systems reference software (known as IM1 and distributed in ISO/IEC
+14496-5). The MPEG-4 Reference software is indeed a very large piece
+of software, designed to verify the standard rather than provide a
+small, production-stable software. GPAC is written in ANSI C for
+portability reasons (embedded platforms and DSPs) with a simple goal:
+keep the memory footprint as low as possible. The project will at term
+provide player(s), systems encoders and publishing tools for content
+distribution.
+
+%description -l pl.UTF-8
+GPAC to implementacja standardu MPEG-4 Systems (ISO/IEC 14496-1)
+stworzona od zera w ANSI C.
+
+Głównym celem tworzenia jej jest dostarczenie czystej (tzn. czytelnej
+dla jak największej liczby ludzi), małej i elastycznej alternatywy dla
+wzorcowego oprogramowania MPEG-4 Systems (znanego jako IM1 i
+rozprowadzanego w ISO/IEC 14496-5). Wzorcowe oprogramowanie MPEG-4
+jest bardzo dużą porcją kodu, zaprojektowaną raczej do zweryfikowania
+standardu niż dostarczenia małej, stabilnej wersji produkcyjnej. GPAC
+jest pisany w ANSI C ze względu na przenośność (platformy wbudowane i
+DSP) z prostym celem: wymagać tak mało pamięci, jak to tylko możliwe.
+Projekt docelowo dostarczy odtwarzacz(e), kodery systemowe i narzędzia
+do publikacji w celu dystrybucji materiałów.
+
+%package devel
+Summary: Header files for GPAC library
+Summary(pl.UTF-8): Pliki nagłówkowe biblioteki GPAC
+Group: Development/Libraries
+Requires: %{name} = %{version}-%{release}
+
+%description devel
+Header files for GPAC library.
+
+%description devel -l pl.UTF-8
+Pliki nagłówkowe biblioteki GPAC.
+
+%package static
+Summary: Static GPAC library
+Summary(pl.UTF-8): Statyczna biblioteka GPAC
+Group: Development/Libraries
+Requires: %{name}-devel = %{version}-%{release}
+
+%description static
+Static GPAC library.
+
+%description static -l pl.UTF-8
+Statyczna biblioteka GPAC.
+
+%package gui
+Summary: wxWidgets-based GUI for GPAC
+Summary(pl.UTF-8): Oparty na wxWidgets graficzny interfejs do GPAC
+Group: X11/Applications/Multimedia
+Requires: %{name} = %{version}-%{release}
+
+%description gui
+Osmo4 - wxWidgets-based GUI for GPAC.
+
+%description gui -l pl.UTF-8
+Osmo4 - oparty na wxWidgets graficzny interfejs do GPAC.
+
+%package -n browser-plugin-%{name}
+Summary: GPAC browser plugin
+Summary(pl.UTF-8): Wtyczka GPAC do przegląderek WWW
+Group: X11/Libraries
+Requires: %{name} = %{version}-%{release}
+Requires: browser-plugins >= 2.0
+Requires: browser-plugins(%{_target_base_arch})
+
+%description -n browser-plugin-%{name}
+GPAC plugin for Netscape-compatible WWW browsers.
+
+%description -n browser-plugin-%{name} -l pl.UTF-8
+Wtyczka GPAC dla przeglądarek WWW zgodnych z Netscape.
%prep
-%setup -q -n gpac
-%if %{?_with_amr:1}%{!?_with_amr:0}
-mkdir -p Plugins/amr_dec/AMR_NB
-cd Plugins/amr_dec/AMR_NB
-unzip -j ../../SOURCES/26073-530.zip
-unzip -j 26073-530_ANSI_C_source_code.zip
-cd ../../..
-%endif
+%setup -q -n %{name}
+%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
+%patch6 -p1
+%patch7 -p1
+%patch8 -p1
+%patch9 -p0
+sed -i -e 's/wx-config/wx-gtk2-unicode-config/' configure
+chmod a+x configure
%build
-%configure --enable-oss-audio \
- %{?_with_amr: --enable-amr-nb} \
- %{?_without_js: --disable-js} \
- %{?_without_freetype: --disable-ft} \
- %{?_without_faad: --disable-faad} \
- %{?_without_jpeg: --disable-jpeg} \
- %{?_without_png: --disable-png} \
- %{?_without_mad: --disable-mad} \
- %{?_without_xvid: --disable-xvid} \
- %{?_without_ffmpeg: --disable-ffmpeg}
-
-%{__make} \
- DESTDIR=$RPM_BUILD_ROOT
+# not autoconf configure
+./configure \
+ --prefix=%{_prefix} \
+ --libdir=%{_lib} \
+ --mandir=%{_mandir} \
+ --X11-path=/usr \
+ --cc="%{__cc}" \
+ --cpp="%{__cxx}" \
+ --disable-opt \
+ %{!?with_wx:--disable-wx} \
+ %{?with_amr:--enable-amr} \
+ --enable-joystick \
+ --enable-pic \
+ --extra-cflags="%{rpmcflags}" \
+ --extra-ldflags="%{rpmldflags}" \
+ --mozdir=%{_browserpluginsdir} \
+ %{!?with_faad:--use-faad=no} \
+ %{!?with_ffmpeg:--use-ffmpeg=no} \
+ %{!?with_freetype:--use-ft=no} \
+ %{!?with_jpeg:--use-jpeg=no} \
+ %{!?with_js:--use-js=no} \
+ %{!?with_mad:--use-mad=no} \
+ %{!?with_png:--use-png=no} \
+ %{!?with_xvid:--use-xvid=no} \
+ --xulsdk-path="/usr/include/xulrunner -I/usr/include/nspr"
+
+%{!?with_directfb: sed -i 's/CONFIG_DIRECTFB.*/CONFIG_DIRECTFB=no/' config.mak}
+
+%{__make} -j1
%install
rm -rf $RPM_BUILD_ROOT
+install -d $RPM_BUILD_ROOT%{_pkgconfigdir}
-%{__make} install \
- bindir=$RPM_BUILD_ROOT%{_bindir} \
- libdir=$RPM_BUILD_ROOT%{_libdir} \
- mandir=$RPM_BUILD_ROOT%{_mandir}
+%{__make} -j1 install install-lib \
+ DESTDIR=$RPM_BUILD_ROOT
+%{__make} -j1 -C applications install \
+ DESTDIR=$RPM_BUILD_ROOT \
+ MOZILLA_DIR=$RPM_BUILD_ROOT%{_browserpluginsdir}
%clean
rm -rf $RPM_BUILD_ROOT
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
+%post -n browser-plugin-%{name}
+%update_browser_plugins
+
+%postun -n browser-plugin-%{name}
+if [ "$1" = 0 ]; then
+ %update_browser_plugins
+fi
+
%files
%defattr(644,root,root,755)
-%doc AUTHORS BUGS Changelog COPYING README TODO
-%attr(755,root,root) %{_bindir}/*
-%attr(755,root,root) %{_libdir}/*
-%{_mandir}/man1/*
+%doc AUTHORS BUGS Changelog README TODO
+%attr(755,root,root) %{_bindir}/MP4Box
+%attr(755,root,root) %{_bindir}/MP4Client
+%attr(755,root,root) %{_libdir}/libgpac.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libgpac.so.2
+%dir %{_libdir}/gpac
+%attr(755,root,root) %{_libdir}/gpac/gm_*.so
+%{_datadir}/gpac
+%{_mandir}/man1/gpac.1*
+%{_mandir}/man1/mp4box.1*
+%{_mandir}/man1/mp4client.1*
+
+%files devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libgpac.so
+%{_includedir}/gpac
+%{_pkgconfigdir}/gpac.pc
+
+%files static
+%defattr(644,root,root,755)
+%{_libdir}/libgpac_static.a
+
+%if %{with wx}
+%files gui
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/Osmo4
+%endif
+
+%files -n browser-plugin-%{name}
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_browserpluginsdir}/nposmozilla.so
+%{_browserpluginsdir}/nposmozilla.xpt