geez, I thought I did this a long time ago.
[platform/upstream/gstreamer.git] / gstreamer.spec.in
1 Name:           gstreamer
2 Version:        @VERSION@
3 Release:        @GST_VERSION_RELEASE@
4 Summary:        GStreamer streaming media framework runtime.
5
6 Group:          Libraries/Multimedia
7 License:        LGPL
8 URL:            http://gstreamer.net/
9 Vendor:         GStreamer Backpackers Team <package@gstreamer.net>
10 Source:         http://gstreamer.net/releases/%{version}/src/%{name}-%{version}.tar.gz
11 BuildRoot:      %{_tmppath}/%{name}-%{version}-root
12
13 %define         majorminor      @GST_MAJORMINOR@
14 %define         _glib2          @GLIB2_REQ@
15 %define         _libxml2        @LIBXML2_REQ@
16
17 Requires:       glib2 >= %_glib2
18 Requires:       libxml2 >= %_libxml2
19 Requires:       popt > 1.6
20 Prereq:         %{name}-tools >= %{version}
21 BuildRequires:  glib2-devel >= %_glib2
22 BuildRequires:  libxml2-devel >= %_libxml2
23 BuildRequires:  bison
24 BuildRequires:  flex
25 BuildRequires:  gtk-doc >= 0.7
26 BuildRequires:  gcc
27 BuildRequires:  zlib-devel
28 BuildRequires:  popt > 1.6
29 Prereq:         /sbin/ldconfig
30
31 ### documentation requirements
32 BuildRequires:  openjade
33 BuildRequires:  python2
34 BuildRequires:  docbook-style-dsssl
35 BuildRequires:  docbook-utils
36 BuildRequires:  transfig
37 BuildRequires:  xfig
38
39 %description
40 GStreamer is a streaming-media framework, based on graphs of filters which
41 operate on media data. Applications using this library can do anything
42 from real-time sound processing to playing videos, and just about anything
43 else media-related.  Its plugin-based architecture means that new data
44 types or processing capabilities can be added simply by installing new 
45 plugins.
46
47 %package devel
48 Summary:        Libraries/include files for GStreamer streaming media framework.
49 Group:          Development/Libraries
50
51 Requires:       %{name} = %{version}-%{release}
52 Requires:       glib2-devel >= %_glib2
53 Requires:       libxml2-devel >= %_libxml2
54
55 %description devel
56 GStreamer is a streaming-media framework, based on graphs of filters which
57 operate on media data. Applications using this library can do anything
58 from real-time sound processing to playing videos, and just about anything
59 else media-related.  Its plugin-based architecture means that new data
60 types or processing capabilities can be added simply by installing new   
61 plugins.
62
63 This package contains the libraries and includes files necessary to develop
64 applications and plugins for GStreamer.
65
66 %package tools
67 Summary:        tools for GStreamer streaming media framework.
68 Group:          Libraries/Multimedia
69
70 %description tools
71 GStreamer is a streaming-media framework, based on graphs of filters which
72 operate on media data. Applications using this library can do anything
73 from real-time sound processing to playing videos, and just about anything
74 else media-related.  Its plugin-based architecture means that new data
75 types or processing capabilities can be added simply by installing new   
76 plugins.
77
78 This package contains the basic command-line tools used for GStreamer, like
79 gst-register and gst-launch.  It is split off to allow parallel-installability
80 in the future.
81
82 %prep
83 %setup
84
85 %build
86 CFLAGS="${CFLAGS:-%optflags}" ; export CFLAGS ; \
87 CXXFLAGS="${CXXFLAGS:-%optflags}" ; export CXXFLAGS ; \
88 FFLAGS="${FFLAGS:-%optflags}" ; export FFLAGS ; \
89 %{?__libtoolize:[ -f configure.in ] && %{__libtoolize} --copy --force} ; \
90 ./configure \
91   --prefix=%{_prefix} \
92   --exec-prefix=%{_exec_prefix} \
93   --bindir=%{_bindir} \
94   --sbindir=%{_sbindir} \
95   --sysconfdir=%{_sysconfdir} \
96   --datadir=%{_datadir} \
97   --includedir=%{_includedir} \
98   --libdir=%{_libdir} \
99   --libexecdir=%{_libexecdir} \
100   --localstatedir=%{_localstatedir} \
101   --sharedstatedir=%{_sharedstatedir} \
102   --mandir=%{_mandir} \
103   --infodir=%{_infodir} \
104   --enable-debug \
105   --with-cachedir=%{_localstatedir}/cache/gstreamer-%{majorminor} \
106   --disable-tests --disable-examples
107 #  --enable-docs-build --with-html-dir=$RPM_BUILD_ROOT%{_datadir}/gtk-doc/html
108
109 if [ "$SMP" != "" ]; then
110   (make "MAKE=make -k -j $SMP"; exit 0)
111 else
112   make
113 fi
114
115 %install  
116 [ -n "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != / ] && rm -rf $RPM_BUILD_ROOT
117
118 %makeinstall
119 # Clean out files that should not be part of the rpm. 
120 # This is the recommended way of dealing with it for RH8
121 mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/cache/gstreamer-%{majorminor}
122 rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}-%{majorminor}/*.la
123 rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}-%{majorminor}/*.a
124 rm -f $RPM_BUILD_ROOT%{_libdir}/*.a
125 rm -f $RPM_BUILD_ROOT%{_libdir}/*.la
126
127 %clean
128 [ -n "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != / ] && rm -rf $RPM_BUILD_ROOT
129
130 %post
131 /sbin/ldconfig
132 %{_bindir}/gst-register-%{majorminor} > /dev/null 2> /dev/null
133
134 %postun
135 /sbin/ldconfig
136
137 %files
138 %defattr(-, root, root, -)
139 %doc AUTHORS COPYING README TODO COPYING.LIB ABOUT-NLS REQUIREMENTS DOCBUILDING RELEASE 
140 %{_libdir}/libgstreamer-%{majorminor}.so.*
141 %{_libdir}/libgstcontrol-%{majorminor}.so.*
142 %dir %{_libdir}/gstreamer-%{majorminor}
143 %dir %{_localstatedir}/cache/gstreamer-%{majorminor}
144 %{_libdir}/gstreamer-%{majorminor}/libgstautoplugcache*.so*
145 %{_libdir}/gstreamer-%{majorminor}/libgstautoplugger*.so*
146 %{_libdir}/gstreamer-%{majorminor}/libgstbasicomega*.so*
147 %{_libdir}/gstreamer-%{majorminor}/libgstoptscheduler.so*
148 %{_libdir}/gstreamer-%{majorminor}/libgstoptomega*.so*
149 %{_libdir}/gstreamer-%{majorminor}/libgstbasicgthreadscheduler*.so
150 %{_libdir}/gstreamer-%{majorminor}/libgstoptgthreadscheduler*.so
151 %{_libdir}/gstreamer-%{majorminor}/libgstelements*.so*
152 %{_libdir}/gstreamer-%{majorminor}/libgststaticautoplug*.so*
153 %{_libdir}/gstreamer-%{majorminor}/libgstgetbits*.so*
154 %{_libdir}/gstreamer-%{majorminor}/libgstspider*.so*
155 %{_libdir}/gstreamer-%{majorminor}/libgstindexers.so*
156 %{_libdir}/gstreamer-%{majorminor}/libgstbytestream.so
157 %{_datadir}/locale/*
158
159 %files tools
160 %defattr(-, root, root, -)
161 %{_bindir}/gst-xmlinspect-%{majorminor}
162 %{_bindir}/gst-complete-%{majorminor}
163 %{_bindir}/gst-compprep-%{majorminor}
164 %{_bindir}/gst-inspect-%{majorminor}
165 %{_bindir}/gst-launch-%{majorminor}
166 %{_bindir}/gst-md5sum-%{majorminor}
167 %{_bindir}/gst-register-%{majorminor}
168 %{_bindir}/gst-feedback-%{majorminor}
169 %{_bindir}/gst-xmllaunch-%{majorminor}
170 %{_bindir}/gst-typefind-%{majorminor}
171 %{_mandir}/man1/gst-feedback-%{majorminor}.* 
172 %{_mandir}/man1/gst-xmllaunch-%{majorminor}.*
173 %{_mandir}/man1/gst-complete-%{majorminor}.*
174 %{_mandir}/man1/gst-compprep-%{majorminor}.*
175 %{_mandir}/man1/gst-inspect-%{majorminor}.*
176 %{_mandir}/man1/gst-launch-%{majorminor}.*
177 %{_mandir}/man1/gst-md5sum-%{majorminor}.*
178 %{_mandir}/man1/gst-register-%{majorminor}.*
179
180 %files devel
181 %defattr(-, root, root, -)
182 %dir %{_includedir}/%{name}-%{majorminor}
183 %dir %{_includedir}/%{name}-%{majorminor}/gst
184 %{_includedir}/%{name}-%{majorminor}/gst/*.h
185 %dir %{_includedir}/%{name}-%{majorminor}/gst/control
186 %{_includedir}/%{name}-%{majorminor}/gst/control/*.h
187 %dir %{_includedir}/%{name}-%{majorminor}/gst/getbits
188 %{_includedir}/%{name}-%{majorminor}/gst/getbits/getbits.h
189 %{_includedir}/%{name}-%{majorminor}/gst/bytestream/bytestream.h
190 # %{_libdir}/libgstreamer.a
191 %{_libdir}/libgstreamer-%{majorminor}.so
192 %{_libdir}/libgstcontrol-%{majorminor}.so
193 %{_datadir}/aclocal/gst-element-check-%{majorminor}.m4
194 %{_libdir}/pkgconfig/gstreamer-%{majorminor}.pc
195 %{_libdir}/pkgconfig/gstreamer-control-%{majorminor}.pc
196 ## we specify the API docs as regular files since %docs doesn't fail when
197 #  files aren't found anymore for RPM >= 4
198 #  we list all of the files we really need to trap incomplete doc builds
199 #  then we catch the rest with *, you can safely ignore the errors from this
200 ## gstreamer API
201 # %{_datadir}/gtk-doc/html/%{name}-%{majorminor}/%{name}-%{majorminor}.devhelp
202 # %{_datadir}/gtk-doc/html/%{name}-%{majorminor}/element-types.html
203 # %{_datadir}/gtk-doc/html/%{name}-%{majorminor}/gstreamer.html
204 %{_datadir}/gtk-doc/html/%{name}-%{majorminor}/*
205 ## gstreamer-libs API
206 # %dir %{_datadir}/gtk-doc/html/%{name}-libs-%{majorminor}
207 %{_datadir}/gtk-doc/html/%{name}-libs-%{majorminor}/*
208 ## this catches all of the rest of the docs we might have forgotten
209 # %{_datadir}/gtk-doc/html/*
210
211
212 %changelog
213 * Mon Dec 01 2003 Thomas Vander Stichele <thomas at apestaart dot org>
214 - changed documentation buildrequires
215
216 * Sun Nov 09 2003 Christian Schaller <Uraeus@gnome.org>
217 - Fix spec to handle new bytestream library 
218
219 * Sun Aug 17 2003 Christian Schaller <uraeus@gnome.org>
220 - Remove docs build from RPM as the build is broken
221 - Fix stuff since more files are versioned now
222 - Remove wingo schedulers
223 - Remove putbits stuff
224
225 * Sun May 18 2003 Thomas Vander Stichele <thomas at apestaart dot org>
226 - devhelp files are now generated by gtk-doc, changed accordingly
227
228 * Sun Mar 16 2003 Christian F.K. Schaller <Uraeus@gnome.org>
229 - Add gthread scheduler
230
231 * Sat Dec 07 2002 Thomas Vander Stichele <thomas at apestaart dot org>
232 - define majorminor and use it everywhere
233 - full parallel installability
234
235 * Tue Nov 05 2002 Christian Schaller <Uraeus@linuxrising.org>
236 - Add optwingo scheduler
237 * Sat Oct 12 2002 Christian Schaller <Uraeus@linuxrising.org>
238 - Updated to work better with default RH8 rpm
239 - Added missing unspeced files
240 - Removed .a and .la files from buildroot
241
242 * Sat Sep 21 2002 Thomas Vander Stichele <thomas@apestaart.org>
243 - added gst-md5sum
244
245 * Tue Sep 17 2002 Thomas Vander Stichele <thomas@apestaart.org>
246 - adding flex to buildrequires
247
248 * Fri Sep 13 2002 Christian F.K. Schaller <Uraeus@linuxrising.org>
249 - Fixed the schedulers after the renaming
250 * Sun Sep 08 2002 Thomas Vander Stichele <thomas@apestaart.org>
251 - added transfig to the BuildRequires:
252
253 * Sat Jun 22 2002 Thomas Vander Stichele <thomas@apestaart.org>
254 - moved header location
255
256 * Mon Jun 17 2002 Thomas Vander Stichele <thomas@apestaart.org>
257 - added popt
258 - removed .la
259
260 * Fri Jun 07 2002 Thomas Vander Stichele <thomas@apestaart.org>
261 - added release of gstreamer to req of gstreamer-devel
262 - changed location of API docs to be in gtk-doc like other gtk-doc stuff
263 - reordered SPEC file
264
265 * Mon Apr 29 2002 Thomas Vander Stichele <thomas@apestaart.org>
266 - moved html docs to gtk-doc standard directory
267
268 * Tue Mar 5 2002 Thomas Vander Stichele <thomas@apestaart.org>
269 - move version defines of glib2 and libxml2 to configure.ac
270 - add BuildRequires for these two libs
271
272 * Sun Mar 3 2002 Thomas Vander Stichele <thomas@apestaart.org>
273 - put html docs in canonical place, avoiding %doc erasure
274 - added devhelp support, current install of it is hackish
275
276 * Sat Mar 2 2002 Christian Schaller <Uraeus@linuxrising.org>
277 - Added documentation to build
278
279 * Mon Feb 11 2002 Thomas Vander Stichele <thomas@apestaart.org>
280 - added libgstbasicscheduler
281 - renamed libgst to libgstreamer
282
283 * Fri Jan 04 2002 Christian Schaller <Uraeus@linuxrising.org>
284 - Added configdir parameter as it seems the configdir gets weird otherwise
285
286 * Thu Jan 03 2002 Thomas Vander Stichele <thomas@apestaart.org>
287 - split off gstreamer-editor from core
288 - removed gstreamer-gnome-apps
289
290 * Sat Dec 29 2001 Rodney Dawes <dobey@free.fr>
291 - Cleaned up the spec file for the gstreamer core/plug-ins split
292 - Improve spec file
293
294 * Sat Dec 15 2001 Christian Schaller <Uraeus@linuxrising.org>
295 - Split of more plugins from the core and put them into their own modules
296 - Includes colorspace, xfree and wav
297 - Improved package Require lines
298 - Added mp3encode (lame based) to the SPEC
299
300 * Wed Dec 12 2001 Christian Schaller <Uraeus@linuxrising.org>
301 - Thomas merged mpeg plugins into one
302 * Sat Dec 08 2001 Christian Schaller <Uraeus@linuxrising.org>
303 - More minor cleanups including some fixed descriptions from Andrew Mitchell
304
305 * Fri Dec 07 2001 Christian Schaller <Uraeus@linuxrising.org>
306 - Added logging to the make statement
307
308 * Wed Dec 05 2001 Christian Schaller <Uraeus@linuxrising.org>
309 - Updated in preparation for 0.3.0 release
310
311 * Fri Jun 29 2001 Christian Schaller <Uraeus@linuxrising.org>
312 - Updated for 0.2.1 release
313 - Split out the GUI packages into their own RPM
314 - added new plugins (FLAC, festival, quicktime etc.)
315
316 * Sat Jun 09 2001 Christian Schaller <Uraeus@linuxrising.org>
317 - Visualisation plugins bundled out togheter
318 - Moved files sections up close to their respective descriptions
319
320 * Sat Jun 02 2001 Christian Schaller <Uraeus@linuxrising.org>
321 - Split the package into separate RPMS, 
322   putting most plugins out by themselves.
323
324 * Fri Jun 01 2001 Christian Schaller <Uraeus@linuxrising.org>
325 - Updated with change suggestions from Dennis Bjorklund
326
327 * Tue Jan 09 2001 Erik Walthinsen <omega@cse.ogi.edu>
328 - updated to build -devel package as well
329
330 * Sun Jan 30 2000 Erik Walthinsen <omega@cse.ogi.edu>
331 - first draft of spec file
332