suggest sane values for autotool programs
[platform/upstream/gstreamer.git] / gstreamer.spec.in
index 6ccff3e..e63a9e6 100644 (file)
@@ -1,18 +1,37 @@
-%define name    gstreamer
-%define ver     @VERSION@
-%define rel     SNAP
-%define prefix  /usr
-
-Summary: GStreamer Streaming-media framework runtime
-Name: %name
-Version: %ver
-Release: %rel
-Copyright: LGPL
-Group: Libraries
-Source: %{name}-%{ver}.tar.gz
-BuildRoot: /var/tmp/%{name}-%{ver}-root
-Docdir: %{prefix}/doc
-Prefix: %prefix
+Name:          gstreamer
+Version:       @VERSION@
+Release:       @GST_VERSION_RELEASE@
+Summary:       GStreamer streaming media framework runtime.
+
+Group:                 Libraries/Multimedia
+License:       LGPL
+URL:           http://gstreamer.net/
+Vendor:         GStreamer Backpackers Team <package@gstreamer.net>
+Source:        http://gstreamer.net/releases/%{version}/src/%{name}-%{version}.tar.gz
+BuildRoot:     %{_tmppath}/%{name}-%{version}-root
+
+%define        _glib2          @GLIB2_REQ@
+%define        _libxml2        @LIBXML2_REQ@
+
+Requires:      glib2 >= %_glib2
+Requires:      libxml2 >= %_libxml2
+Requires:      popt > 1.6
+BuildRequires:         glib2-devel >= %_glib2
+BuildRequires:         libxml2-devel >= %_libxml2
+BuildRequires:         nasm >= 0.90
+BuildRequires:         bison
+BuildRequires:         flex
+BuildRequires:         gtk-doc >= 0.7
+BuildRequires:         gcc
+BuildRequires:         zlib-devel
+BuildRequires:  popt > 1.6
+Prereq:                /sbin/ldconfig
+
+### documentation requirements
+BuildRequires:  openjade
+BuildRequires:  python2
+BuildRequires:  docbook-style-dsssl docbook-dtd31-sgml
+BuildRequires: transfig
 
 %description
 GStreamer is a streaming-media framework, based on graphs of filters which
@@ -23,9 +42,12 @@ types or processing capabilities can be added simply by installing new
 plugins.
 
 %package devel
-Summary: Libraries and include files for GStreamer streaming-media framework
-Group: Development/Libraries
-Requires: %{name}
+Summary:       Libraries/include files for GStreamer streaming media framework.
+Group:                 Development/Libraries
+
+Requires:      %{name} = %{version}-%{release}
+Requires:      glib2-devel >= %_glib2
+Requires:      libxml2-devel >= %_libxml2
 
 %description devel
 GStreamer is a streaming-media framework, based on graphs of filters which
@@ -38,50 +60,249 @@ plugins.
 This package contains the libraries and includes files necessary to develop
 applications and plugins for GStreamer.
 
-%changelog
-* Tue Jan 09 2001 Erik Walthinsen <omega@cse.ogi.edu>
-- updated to build -devel package as well
-
-* Sun Jan 30 2000 Erik Walthinsen <omega@cse.ogi.edu>
-- first draft of spec file
-
 %prep
 %setup
 
 %build
-CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%prefix
+CFLAGS="${CFLAGS:-%optflags}" ; export CFLAGS ; \
+CXXFLAGS="${CXXFLAGS:-%optflags}" ; export CXXFLAGS ; \
+FFLAGS="${FFLAGS:-%optflags}" ; export FFLAGS ; \
+%{?__libtoolize:[ -f configure.in ] && %{__libtoolize} --copy --force} ; \
+./configure \
+  --prefix=%{_prefix} \
+  --exec-prefix=%{_exec_prefix} \
+  --bindir=%{_bindir} \
+  --sbindir=%{_sbindir} \
+  --sysconfdir=%{_sysconfdir} \
+  --datadir=%{_datadir} \
+  --includedir=%{_includedir} \
+  --libdir=%{_libdir} \
+  --libexecdir=%{_libexecdir} \
+  --localstatedir=%{_localstatedir} \
+  --sharedstatedir=%{_sharedstatedir} \
+  --mandir=%{_mandir} \
+  --infodir=%{_infodir} \
+  --enable-debug \
+  --with-configdir=/etc/gstreamer \
+  --disable-tests --disable-examples \
+  --enable-docs-build --with-html-dir=$RPM_BUILD_ROOT%{_datadir}/gtk-doc/html
 
 if [ "$SMP" != "" ]; then
   (make "MAKE=make -k -j $SMP"; exit 0)
-  make
 else
   make
 fi
 
 %install  
 [ -n "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != / ] && rm -rf $RPM_BUILD_ROOT
+# adding devhelp stuff here for now, need to integrate better
+# when devhelp allows it
+mkdir -p $RPM_BUILD_ROOT/usr/share/devhelp/specs
+cp $RPM_BUILD_DIR/%{name}-%{version}/docs/devhelp/*.devhelp $RPM_BUILD_ROOT/usr/share/devhelp/specs
 
-make prefix=$RPM_BUILD_ROOT%{prefix} install
+%makeinstall
 
 %clean
 [ -n "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != / ] && rm -rf $RPM_BUILD_ROOT
 
 %post
 /sbin/ldconfig
-%{prefix}/bin/gstreamer-register
+# registry handling is now done automatically
+# %{_prefix}/bin/gst-register --gst-mask=0
+
+%post devel
+# adding devhelp links to work around different base not working
+mkdir -p %{_datadir}/devhelp/books
+ln -sf %{_datadir}/gtk-doc/html/gstreamer %{_datadir}/devhelp/books
+ln -sf %{_datadir}/gtk-doc/html/gstreamer-libs %{_datadir}/devhelp/books
 
 %postun
 /sbin/ldconfig
-  
+
 %files
 %defattr(-, root, root)
-%{prefix}/bin/*
-%{prefix}/lib/lib*.so.*
-%{prefix}/lib/gst/*
-%{prefix}/share/*
+%doc AUTHORS COPYING README TODO COPYING.LIB ABOUT-NLS REQUIREMENTS DOCBUILDING RELEASE 
+%{_bindir}/gst-complete
+%{_bindir}/gst-compprep
+%{_bindir}/gst-inspect
+%{_bindir}/gst-launch
+%{_bindir}/gst-md5sum
+%{_bindir}/gst-register
+%{_bindir}/gst-feedback
+%{_libdir}/libgstreamer-%{version}.so.*
+%{_libdir}/gst/libgstautoplugcache*.so*
+%{_libdir}/gst/libgstautoplugger*.so*
+%{_libdir}/gst/libgstbasicomega*.so*
+%{_libdir}/gst/libgstfastomega*.so*
+%{_libdir}/gst/libgstoptomega*.so*
+%{_libdir}/gst/libgstbasicwingo*.so*
+%{_libdir}/gst/libgstfastwingo*.so*
+%{_libdir}/gst/libgstelements*.so*
+%{_libdir}/gst/libgsttypes*.so*
+%{_libdir}/gst/libgststaticautoplug*.so*
+%{_libdir}/gst/libgstbytestream*.so*
+%{_libdir}/gst/libgstgetbits*.so*
+%{_libdir}/gst/libgstputbits*.so*
+%{_libdir}/gst/libgstspider*.so*
+%{_mandir}/man1/gst-complete.*
+%{_mandir}/man1/gst-compprep.*
+%{_mandir}/man1/gst-inspect.*
+%{_mandir}/man1/gst-launch.*
+%{_mandir}/man1/gst-md5sum.*
+%{_mandir}/man1/gst-register.*
+
+%{_libdir}/libgstcontrol*.so*
 
 %files devel
-%{prefix}/include/*
-%{prefix}/lib/lib*.a
-%{prefix}/lib/lib*.so
-%{prefix}/lib/pkgconfig/*
+%defattr(-, root, root)
+%{_includedir}/%{name}-%{version}/gst
+%{_libdir}/libgstreamer.a
+%{_libdir}/libgstreamer.so
+%{_libdir}/pkgconfig/gstreamer*.pc
+## we specify the API docs as regular files since %docs doesn't fail when
+#  files aren't found anymore for RPM >= 4
+#  we list all of the files we really need to trap incomplete doc builds
+#  then we catch the rest with *, you can safely ignore the errors from this
+## gstreamer API
+%{_datadir}/gtk-doc/html/gstreamer/autopluggers.html
+%{_datadir}/gtk-doc/html/gstreamer/book1.html
+%{_datadir}/gtk-doc/html/gstreamer/element-types.html
+%{_datadir}/gtk-doc/html/gstreamer/gstautoplugfactory.html
+%{_datadir}/gtk-doc/html/gstreamer/gstautoplug.html
+%{_datadir}/gtk-doc/html/gstreamer/gstbin.html
+%{_datadir}/gtk-doc/html/gstreamer/gstclock.html
+%{_datadir}/gtk-doc/html/gstreamer/gstelement.html
+%{_datadir}/gtk-doc/html/gstreamer/gst-index.html
+%{_datadir}/gtk-doc/html/gstreamer/gstobject.html
+%{_datadir}/gtk-doc/html/gstreamer/gstpad.html
+%{_datadir}/gtk-doc/html/gstreamer/gstpipeline.html
+%{_datadir}/gtk-doc/html/gstreamer/gstpluginfeature.html
+# %{_datadir}/gtk-doc/html/gstreamer/gstreamer-cothreads.html
+%{_datadir}/gtk-doc/html/gstreamer/gstreamer-gstbuffer.html
+%{_datadir}/gtk-doc/html/gstreamer/gstreamer-gstbufferpool.html
+%{_datadir}/gtk-doc/html/gstreamer/gstreamer-gstcaps.html
+%{_datadir}/gtk-doc/html/gstreamer/gstreamer-gstcpu.html
+%{_datadir}/gtk-doc/html/gstreamer/gstreamer-gstdata.html
+%{_datadir}/gtk-doc/html/gstreamer/gstreamer-gstevent.html
+%{_datadir}/gtk-doc/html/gstreamer/gstreamer-gst.html
+%{_datadir}/gtk-doc/html/gstreamer/gstreamer-gstinfo.html
+%{_datadir}/gtk-doc/html/gstreamer/gstreamer-gstparse.html
+%{_datadir}/gtk-doc/html/gstreamer/gstreamer-gstplugin.html
+%{_datadir}/gtk-doc/html/gstreamer/gstreamer-gstprops.html
+%{_datadir}/gtk-doc/html/gstreamer/gstreamer-gststaticautoplug.html
+%{_datadir}/gtk-doc/html/gstreamer/gstreamer-gststaticautoplugrender.html
+%{_datadir}/gtk-doc/html/gstreamer/gstreamer-gsttee.html
+%{_datadir}/gtk-doc/html/gstreamer/gstreamer-gsttype.html
+%{_datadir}/gtk-doc/html/gstreamer/gstreamer-gstutils.html
+%{_datadir}/gtk-doc/html/gstreamer/gstreamer.html
+%{_datadir}/gtk-doc/html/gstreamer/gstschedulerfactory.html
+%{_datadir}/gtk-doc/html/gstreamer/gstscheduler.html
+%{_datadir}/gtk-doc/html/gstreamer/gstthread.html
+%{_datadir}/gtk-doc/html/gstreamer/gsttimecache.html
+%{_datadir}/gtk-doc/html/gstreamer/gsttypefactory.html
+%{_datadir}/gtk-doc/html/gstreamer/gstxml.html
+%{_datadir}/gtk-doc/html/gstreamer/index.sgml
+## gstreamer-libs API
+%{_datadir}/gtk-doc/html/gstreamer-libs/book1.html
+%{_datadir}/gtk-doc/html/gstreamer-libs/gstreamer-libs-gstcolorspace.html
+%{_datadir}/gtk-doc/html/gstreamer-libs/gstreamer-libs-gstgetbits.html
+%{_datadir}/gtk-doc/html/gstreamer-libs/gstreamer-libs.html
+%{_datadir}/gtk-doc/html/gstreamer-libs/index.sgml
+## this catches all of the rest of the docs we might have forgotten
+%{_datadir}/gtk-doc/html/*
+%{_datadir}/devhelp/specs/gstreamer.devhelp
+%{_datadir}/devhelp/specs/gstreamer-libs.devhelp
+
+
+%changelog
+* Sat Sep 21 2002 Thomas Vander Stichele <thomas@apestaart.org>
+- added gst-md5sum
+
+* Tue Sep 17 2002 Thomas Vander Stichele <thomas@apestaart.org>
+- adding flex to buildrequires
+
+* Fri Sep 13 2002 Christian F.K. Schaller <Uraeus@linuxrising.org>
+- Fixed the schedulers after the renaming
+* Sun Sep 08 2002 Thomas Vander Stichele <thomas@apestaart.org>
+- added transfig to the BuildRequires:
+
+* Sat Jun 22 2002 Thomas Vander Stichele <thomas@apestaart.org>
+- moved header location
+
+* Mon Jun 17 2002 Thomas Vander Stichele <thomas@apestaart.org>
+- added popt
+- removed .la
+
+* Fri Jun 07 2002 Thomas Vander Stichele <thomas@apestaart.org>
+- added release of gstreamer to req of gstreamer-devel
+- changed location of API docs to be in gtk-doc like other gtk-doc stuff
+- reordered SPEC file
+
+* Mon Apr 29 2002 Thomas Vander Stichele <thomas@apestaart.org>
+- moved html docs to gtk-doc standard directory
+
+* Tue Mar 5 2002 Thomas Vander Stichele <thomas@apestaart.org>
+- move version defines of glib2 and libxml2 to configure.ac
+- add BuildRequires for these two libs
+
+* Sun Mar 3 2002 Thomas Vander Stichele <thomas@apestaart.org>
+- put html docs in canonical place, avoiding %doc erasure
+- added devhelp support, current install of it is hackish
+
+* Sat Mar 2 2002 Christian Schaller <Uraeus@linuxrising.org>
+- Added documentation to build
+
+* Mon Feb 11 2002 Thomas Vander Stichele <thomas@apestaart.org>
+- added libgstbasicscheduler
+- renamed libgst to libgstreamer
+
+* Fri Jan 04 2002 Christian Schaller <Uraeus@linuxrising.org>
+- Added configdir parameter as it seems the configdir gets weird otherwise
+
+* Thu Jan 03 2002 Thomas Vander Stichele <thomas@apestaart.org>
+- split off gstreamer-editor from core
+- removed gstreamer-gnome-apps
+
+* Sat Dec 29 2001 Rodney Dawes <dobey@free.fr>
+- Cleaned up the spec file for the gstreamer core/plug-ins split
+- Improve spec file
+
+* Sat Dec 15 2001 Christian Schaller <Uraeus@linuxrising.org>
+- Split of more plugins from the core and put them into their own modules
+- Includes colorspace, xfree and wav
+- Improved package Require lines
+- Added mp3encode (lame based) to the SPEC
+
+* Wed Dec 12 2001 Christian Schaller <Uraeus@linuxrising.org>
+- Thomas merged mpeg plugins into one
+* Sat Dec 08 2001 Christian Schaller <Uraeus@linuxrising.org>
+- More minor cleanups including some fixed descriptions from Andrew Mitchell
+
+* Fri Dec 07 2001 Christian Schaller <Uraeus@linuxrising.org>
+- Added logging to the make statement
+
+* Wed Dec 05 2001 Christian Schaller <Uraeus@linuxrising.org>
+- Updated in preparation for 0.3.0 release
+
+* Fri Jun 29 2001 Christian Schaller <Uraeus@linuxrising.org>
+- Updated for 0.2.1 release
+- Split out the GUI packages into their own RPM
+- added new plugins (FLAC, festival, quicktime etc.)
+
+* Sat Jun 09 2001 Christian Schaller <Uraeus@linuxrising.org>
+- Visualisation plugins bundled out togheter
+- Moved files sections up close to their respective descriptions
+
+* Sat Jun 02 2001 Christian Schaller <Uraeus@linuxrising.org>
+- Split the package into separate RPMS, 
+  putting most plugins out by themselves.
+
+* Fri Jun 01 2001 Christian Schaller <Uraeus@linuxrising.org>
+- Updated with change suggestions from Dennis Bjorklund
+
+* Tue Jan 09 2001 Erik Walthinsen <omega@cse.ogi.edu>
+- updated to build -devel package as well
+
+* Sun Jan 30 2000 Erik Walthinsen <omega@cse.ogi.edu>
+- first draft of spec file
+