%define with_static   1

Name:        gpac
Summary:     MPEG-4 multimedia framework
Version:     0.4.5
Release:     11%{?_dist_release}
License:     LGPLv2+
Group:       System Environment/Libraries
URL:         http://gpac.sourceforge.net/
Source0:     http://downloads.sourceforge.net/gpac/gpac-%{version}.tar.gz
#Source0:     http://rpms.kwizart.net/fedora/SOURCE/gpac-%{version}-repack.tar.bz2
#Source9:     gpac-snapshot.sh
Patch0:      gpac-0.4.5-makefix.patch
Patch1:      gpac-0.4.5-soname.patch
Patch2:      gpac-0.4.5-amr.patch
Patch3:      gpac-0.4.5-lib64.patch
Patch4:      gpac-0.4.5-system_openjpeg.patch
Patch6:      gpac-0.4.5-shared_sggen.patch
Patch7:      gpac-0.4.5-libxml2.patch
Patch8:      gpac-ppc64.patch
Patch9:      gpac-0.4.5-ffmpeg.patch

BuildRoot:   %{_tmppath}/%{name}-%{version}-%{release}-root

BuildRequires:  ImageMagick
BuildRequires:  SDL-devel
BuildRequires:  librsvg2-devel >= 2.5.0
BuildRequires:  libGLU-devel
BuildRequires:  freeglut-devel
BuildRequires:  freetype2-devel >= 2.1.4
BuildRequires:  libjpeg-devel
BuildRequires:  libpng-devel >= 1.2.5
BuildRequires:  libxml2-devel
BuildRequires:  openssl-devel
#BuildRequires:  openjpeg-devel
BuildRequires:  pulseaudio-libs-devel
BuildRequires:  zlib-devel
BuildRequires:  libogg-devel libvorbis-devel libtheora-devel
BuildRequires:  libXt-devel
BuildRequires:  libXpm-devel
BuildRequires:  libXv-devel
#BuildRequires:  wxGTK-devel
BuildRequires:  xmlrpc-epi-devel
%{?_with_mozilla:BuildRequires: gecko-devel}
#BuildRequires:  doxygen
BuildRequires:  desktop-file-utils
%{?_with_amr:BuildRequires: amrnb-devel amrwb-devel}
# *-devel packages provided by other self-build-* should only be listed
# in self-build-%{name}.spec as PreReq.
#BuildRequires:  a52dec-devel
#BuildRequires:  faad2-devel
#BuildRequires:  libmad-devel
#BuildRequires:  xvidcore-devel >= 1.0.0
##BuildRequires:  ffmpeg-devel


%description
GPAC is a multimedia framework based on the MPEG-4 Systems standard developed
from scratch in ANSI C.  The original development goal is to provide a clean,
small and flexible alternative to the MPEG-4 Systems reference software.

GPAC features the integration of recent multimedia standards (SVG/SMIL, VRML,
X3D, SWF, 3GPP(2) tools and more) into a single framework. GPAC also features
MPEG-4 Systems encoders/multiplexers, publishing tools for content distribution
for MP4 and 3GPP(2) files and many tools for scene descriptions
(MPEG4 <-> VRML <-> X3D converters, SWF -> MPEG-4, etc).

%package        libs
Summary:        Library for %{name}
Group:          System Environment/Libraries

%description    libs
The %{name}-libs package contains library for %{name}.


%package  devel
Summary:  Development libraries and files for %{name}
Group:    Development/Libraries
Requires: %{name}-libs = %{version}-%{release}


%description  devel
Development libraries and files for gpac.


%if %{with_static}
%package  devel-static
Summary:  Development libraries and files for %{name}
Group:    Development/Libraries
Requires: %{name}-devel = %{version}-%{release}


%description  devel-static
Static library for gpac.
%endif


%prep
%setup -q -n gpac
## remove extra_libs directory
%__rm -rf extra_libs

%patch0 -p1 -b .makefix
%patch1 -p1 -b .soname
%patch2 -p1 -b .amr
%ifarch x86_64
%patch3 -p1 -b .lib64
%endif
#%patch4 -p1 -b .openjpeg
%patch6 -p1 -b .shared
%patch7 -p1 -b .libxml2
%patch8 -p1 -b .ppc64
%patch9 -p1 -b .ffmpeg

## kwizart - enable dynamic mode - hardcoded with patch2
# define SONAME number from the first number of gpac version.
#define soname libgpac.so.0
#sed -i.soname -e 's|EXTRALIBS+=$(GPAC_SH_FLAGS)|EXTRALIBS+=$(GPAC_SH_FLAGS)\nLDFLAGS+="-Wl,-soname,%{soname}"|' src/Makefile

# # Update doxygen
# pushd doc
# doxygen -u
# popd

# Fix encoding warnings
%__cp -p Changelog Changelog.origine
iconv -f ISO-8859-1 -t UTF8 Changelog.origine >  Changelog
touch -r Changelog.origine Changelog
%__rm -rf Changelog.origine

%__cp -p doc/ipmpx_syntax.bt doc/ipmpx_syntax.bt.origine
iconv -f ISO-8859-1 -t UTF8 doc/ipmpx_syntax.bt.origine >  doc/ipmpx_syntax.bt
touch -r doc/ipmpx_syntax.bt.origine doc/ipmpx_syntax.bt
%__rm -rf doc/ipmpx_syntax.bt.origine


# executable ./configure
chmod +x configure

%build
%configure \
    --X11-path=%{_prefix} \
    %{?_with_mozilla:--mozdir=%{_libdir}/mozilla/plugins} \
    --enable-pic \
    --disable-static \
    --disable-wx \
    --extra-cflags="$RPM_OPT_FLAGS -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D_LARGEFILE_SOURCE=1 -D_GNU_SOURCE=1" \
    --disable-oss-audio \
    --use-js=no \
    --use-openjpeg=local \
    ;

# Parallele build will fail
%__make all OPTFLAGS="$RPM_OPT_FLAGS -fPIC -DPIC" 
#{?_smp_mflags}
%__make sggen OPTFLAGS="$RPM_OPT_FLAGS -fPIC -DPIC" 
#{?_smp_mflags}

# ## kwizart - build doxygen doc for devel
# pushd doc
# doxygen
# popd

%install
%__rm -rf $RPM_BUILD_ROOT
%__make DESTDIR=$RPM_BUILD_ROOT install install-lib

## kwizart - rpmlint gpac no-ldconfig-symlink
%__ln_s -f libgpac.so.%{version} $RPM_BUILD_ROOT%{_libdir}/libgpac.so.0
%__ln_s -f libgpac.so.0 $RPM_BUILD_ROOT%{_libdir}/libgpac.so

#Install generated sggen binaries
for b in MPEG4 SVG X3D; do
  pushd applications/generators/${b}
    %__install -pm 0755 ${b}Gen $RPM_BUILD_ROOT%{_bindir}
  popd
done

# #Fix doxygen timestamp
# touch -r Changelog doc/html/*


%clean
%__rm -rf $RPM_BUILD_ROOT

%post libs -p /sbin/ldconfig

%postun libs -p /sbin/ldconfig


%files
%defattr(-,root,root,-)
%doc AUTHORS BUGS Changelog COPYING README TODO 
%{_bindir}/MP4*
%{_bindir}/*Gen
%{_datadir}/gpac/
%{_mandir}/man1/*.1.*

%files libs
%defattr(-,root,root)
%{_libdir}/libgpac.so.*
%{_libdir}/gpac/

%files devel
%doc doc/CODING_STYLE doc/ipmpx_syntax.bt
%defattr(-,root,root)
%{_includedir}/gpac/
%{_libdir}/libgpac.so

%if %{with_static}
%files devel-static
%defattr(-,root,root,-)
%{_libdir}/libgpac_static.a
%else
%exclude %{_libdir}/libgpac_static.a
%endif


%changelog
* Mon Apr 18 2011 Munehiro Yamamoto <munepi@vinelinux.org> 0.4.5-11
- rebuilt with internal openjpeg
  - added --use-openjpeg=local in configure options
- added --enable-pic in configure options

* Sat Mar 26 2011 Munehiro Yamamoto <munepi@vinelinux.org> 0.4.5-10
- rebuild

* Sat Jun 26 2010 Munehiro Yamamoto <munepi@vinelinux.org> 0.4.5-9
- removed doxygen support

* Sat Mar 20 2010 Munehiro Yamamoto <munepi@vinelinux.org> 0.4.5-8
- change release to sync with self-build-gpac

* Thu Feb 18 2010 Munehiro Yamamoto <munepi@vinelinux.org> 0.4.5-7
- rebuild

* Sun Jun 07 2009 Munehiro Yamamoto <munepi@cg8.so-net.ne.jp> 0.4.5-6
- added --use-js=no in configure
- added devel-static subpackage

* Tue May 26 2009 Munehiro Yamamoto <munepi@cg8.so-net.ne.jp> 0.7.4-5
- change release to sync with self-build-gpac

* Thu May 14 2009 Munehiro Yamamoto <munepi@cg8.so-net.ne.jp> 0.4.5-4
- change release to sync with self-build-gpac

* Thu Mar 26 2009 Munehiro Yamamoto <munepi@cg8.so-net.ne.jp> 0.4.5-3
- applied gpac-0.4.5-ffmpeg.patch (RPM Fusion #454)
- corrected default %%defattr

* Thu Mar 12 2009 Munehiro Yamamoto <munepi@cg8.so-net.ne.jp> 0.4.5-2
- dropped BuildRequires: ffmpeg-devel as self-build-ffmpeg
  - rebuilt with ffmpeg-devel by self-build-ffmpeg

* Sun Mar 01 2009 Munehiro Yamamoto <munepi@cg8.so-net.ne.jp> 0.4.5-1
- initial build based on RPM Fusion
  - without Osmo4 and its plugins for Mozilla browsers
  - added --disable-wx in configure options
  - included %%{_libdir}/libgpac_static.a in devel subpackage

* Sun Dec 28 2008 kwizart < kwizart at gmail.com > - 0.4.5-3
- Fix -devel doc timestamp which leads to multilib conflict 
  ( RPM Fusion #270 )

* Thu Dec 18 2008 kwizart < kwizart at gmail.com > - 0.4.5-2
- Fix for ppc64

* Wed Dec 17 2008 kwizart < kwizart at gmail.com > - 0.4.5-1
- Update to 0.4.5 (final)
- Drop upstreamed patches - Rewrite some
- Add More BR.
- Conditionalize --with mozilla amr

* Mon Sep  8 2008 kwizart < kwizart at gmail.com > - 0.4.5-0.5.20080217cvs
- Fix for Large File Support (was livna #2075 )

* Mon Feb 25 2008 kwizart < kwizart at gmail.com > - 0.4.5-0.3.20080217cvs
- Enable devel-static
- Conditionalize Osmo4 (buggy).
- Clean the spec

* Sun Feb 17 2008 kwizart < kwizart at gmail.com > - 0.4.5-0.2.20080217cvs
- Update to 20080217.
- Split libs.
- Use the new amr nosrc scheme (need an end-users rebuilt to add support to it).
- Add openjpeg-devel missing BR
- Static patching instead of dyn patch when possible.
- Disable %%{smp_mflags} (it tries to build the bin before the lib is ready)
- Define soname as libgpac.so.0 (instead of libgpac.so.%%version )
- Exclude static lib

* Mon Feb 11 2008 Stewart Adam < s.adam at diffingo.com > - 0.4.5-0.1.20080211cvs
- Use %%{smp_mflags}
- Oops, we're actually 0.4.5
- Fix gpac so filenames
- Only install nposmozilla when %%{with_firefox} is set

* Mon Feb 11 2008 Stewart Adam < s.adam at diffingo.com > - 0.4.4-3.20080211cvs
- Update to 20080211cvs
- Disable osmozilla, doesn't build with xulrunner
- Fix builds with gcc 4.3

* Sat Dec 15 2007 Stewart Adam < s.adam at diffingo.com > - 0.4.4-2
- Rebuild for rawhide

* Tue Oct 16 2007 Stewart Adam < s.adam at diffingo.com > - 0.4.4-1
- Update to v4.4

* Sat May 26 2007 kwizart < kwizart at gmail.com > - 0.4.3-0.1cvs20070526
- Update to cvs 20070526
- Enable conditional build ( 3gpp firefox )

* Wed Apr 11 2007 kwizart < kwizart at gmail.com > - 0.4.3-0.1cvs20070411
- Update to cvs 20070411

* Thu Dec 08 2006 kwizart < kwizart at gmail.com > - 0.4.3-cvs20061208.1.kwizart.fc6
- Update to 20061208
- Uses firefox-devel (since fc6!)
- Drop tutorial
- Use version-DEV-date with libgpac.so
- Disabled osmozilla
- Fix soname 
- Enabled gprof

* Tue Oct 17 2006 kwizart < kwizart at gmail.com > - 0.4.3-cvs20061017.1_FC5
- gpac snapshot.sh
- Revert Patch osmozilla.cpp (v1.17 - build error from gpac/internal/terminal_dev.h)
- TODO: - no-soname make option for libgpac.so
  - static lib in devel - needed ?
  - osmozilla - xpt link problem.
  - Osmo4: segmentation fault on exit.
  - MP4Client: segmentation fault on launch.
  - The program 'Osmo4' received an X Window System error:
  "The error was 'BadMatch (invalid parameter attributes)'.
  (Details: serial 37 error_code 8 request_code 42 minor_code 0)"
  - MP4Box -version display: GPAC version 0.4.3-DEV (try to display cvs )

* Sat Oct 15 2006 kwizart < kwizart at gmail.com > - 0.4.2-rc2.1_FC5
- Update to 0.4.2cvs20061017
- Use DESTDIR=RPM_BUILD_ROOT in various Makefile.
- Enable mozilla plugin: osmozilla.
- Enable AMR_NB_FLOAT and AMR_WB_FLOAT / bundle AMR_NB_FIXED (but not used by default).
- Provide documentation html in doc .
- Provide tutorial from http://www.wildamerica.com/pages/Marty.html
- Various corrections.

* Fri Sep 01 2006 Anssi Hannula <anssi@zarb.org> 0.4.1-0.20060630.2plf2007.0
- lib64 fixes

* Fri Jan 30 2006 Austin Acton <austin@mandriva.org> 0.4.1-0.20060630.1plf2007.0
- initial package
