[mingw-gstreamer-plugins-base] Added win64 support (contributed by Marc-André Lureau)

epienbro epienbro at fedoraproject.org
Sun Mar 18 16:47:00 UTC 2012


commit aacea075e47bc8bae01f6699b96d1d3f4ebfeb94
Author: Erik van Pienbroek <epienbro at fedoraproject.org>
Date:   Sun Mar 18 17:46:36 2012 +0100

    Added win64 support (contributed by Marc-André Lureau)
    
    - Added win64 support (contributed by Marc-André Lureau)
    - Use mingw macros without leading underscore
    - Backported fix for GNOME bug #654816
    - Use %global instead of %define

 gst-plugins-base-rtsp.patch       |   14 ++
 mingw-gstreamer-plugins-base.spec |  285 ++++++++++++++++++++++++++-----------
 2 files changed, 218 insertions(+), 81 deletions(-)
---
diff --git a/gst-plugins-base-rtsp.patch b/gst-plugins-base-rtsp.patch
new file mode 100644
index 0000000..7f4acde
--- /dev/null
+++ b/gst-plugins-base-rtsp.patch
@@ -0,0 +1,14 @@
+diff -up ./gst-libs/gst/rtsp/gstrtspconnection.c.gcsontos ./gst-libs/gst/rtsp/gstrtspconnection.c
+--- ./gst-libs/gst/rtsp/gstrtspconnection.c.gcsontos	2011-01-07 02:51:26.000000000 +0100
++++ ./gst-libs/gst/rtsp/gstrtspconnection.c	2011-06-03 10:46:01.474452047 +0200
+@@ -2269,7 +2269,9 @@ gst_rtsp_connection_receive (GstRTSPConn
+     if (gst_poll_fd_has_error (conn->fdset, conn->writefd))
+       goto socket_error;
+ 
+-    gst_poll_set_controllable (conn->fdset, FALSE);
++    /* once we start reading the wait cannot be controlled */
++    if (builder.state != STATE_START)
++      gst_poll_set_controllable (conn->fdset, FALSE);
+   }
+ 
+   /* we have a message here */
diff --git a/mingw-gstreamer-plugins-base.spec b/mingw-gstreamer-plugins-base.spec
index c3404fa..2b30938 100644
--- a/mingw-gstreamer-plugins-base.spec
+++ b/mingw-gstreamer-plugins-base.spec
@@ -1,13 +1,11 @@
-%global __strip %{_mingw32_strip}
-%global __objdump %{_mingw32_objdump}
-%define __debug_install_post %{?_mingw32_debug_install_post}
+%?mingw_package_header
 
-%define         majorminor      0.10
-%define         gstreamer_version %{majorminor}.35
+%global         majorminor      0.10
+%global         gstreamer_version %{majorminor}.35
 
 Name:    mingw-gstreamer-plugins-base
 Version: %{gstreamer_version}
-Release: 3%{?dist}
+Release: 4%{?dist}
 Summary: Cross compiled GStreamer media framework base plug-ins
 
 Group:   Applications/Multimedia
@@ -15,16 +13,16 @@ License: LGPLv2+
 URL:     http://gstreamer.freedesktop.org/
 Source:  http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-%{version}.tar.bz2
 
+# fix GNOME bug #654816
+Patch:		gst-plugins-base-rtsp.patch
+
 BuildArch:      noarch
 
-BuildRequires:  mingw32-filesystem
+BuildRequires:  mingw32-filesystem >= 95
 BuildRequires:  mingw32-gcc
 BuildRequires:  mingw32-binutils
 BuildRequires:  mingw32-gettext
 BuildRequires:  mingw32-gcc-c++
-# We need glib-mkenums
-BuildRequires:  glib2-devel
-
 BuildRequires:  mingw32-gstreamer >= %{gstreamer_version}
 BuildRequires:  mingw32-libogg >= 1.0
 BuildRequires:  mingw32-libvorbis >= 1.0
@@ -34,6 +32,24 @@ BuildRequires:  mingw32-gtk2
 BuildRequires:  mingw32-pango
 #BuildRequires:  mingw32-libvisual
 
+BuildRequires:  mingw64-filesystem >= 95
+BuildRequires:  mingw64-gcc
+BuildRequires:  mingw64-binutils
+BuildRequires:  mingw64-gettext
+BuildRequires:  mingw64-gcc-c++
+BuildRequires:  mingw64-gstreamer >= %{gstreamer_version}
+BuildRequires:  mingw64-libogg >= 1.0
+BuildRequires:  mingw64-libvorbis >= 1.0
+#BuildRequires:  mingw64-libtheora >= 1.0
+#BuildRequires:  mingw64-orc >= 0.4.11
+BuildRequires:  mingw64-gtk2
+BuildRequires:  mingw64-pango
+#BuildRequires:  mingw64-libvisual
+
+# We need glib-mkenums
+BuildRequires:  glib2-devel
+
+
 %description
 GStreamer is a streaming media framework, based on graphs of filters which
 operate on media data. Applications using this library can do anything
@@ -45,9 +61,13 @@ plug-ins.
 This package contains a set of well-maintained base plug-ins.
 
 
+# Win32
 %package -n mingw32-gstreamer-plugins-base
 Summary:        Cross compiled GStreamer media framework base plug-ins
 Requires:       mingw32-gstreamer >= %{gstreamer_version}
+# Fix upgrade path when upgrading from the testing repository
+Obsoletes:      mingw32-gstreamer-plugins-base-static < 0.10.35-4
+Provides:       mingw32-gstreamer-plugins-base-static = 0.10.35-4
 
 %description  -n mingw32-gstreamer-plugins-base
 GStreamer is a streaming media framework, based on graphs of filters which
@@ -59,105 +79,208 @@ plug-ins.
 
 This package contains a set of well-maintained base plug-ins.
 
-%{_mingw32_debug_package}
+# Win64
+%package -n mingw64-gstreamer-plugins-base
+Summary:        Cross compiled GStreamer media framework base plug-ins
+Requires:       mingw64-gstreamer >= %{gstreamer_version}
+# Fix upgrade path when upgrading from the testing repository
+Obsoletes:      mingw64-gstreamer-plugins-base-static < 0.10.35-4
+Provides:       mingw64-gstreamer-plugins-base-static = 0.10.35-4
+
+%description  -n mingw64-gstreamer-plugins-base
+GStreamer is a streaming media framework, based on graphs of filters which
+operate on media data. Applications using this library can do anything
+from real-time sound processing to playing videos, and just about anything
+else media-related.  Its plugin-based architecture means that new data
+types or processing capabilities can be added simply by installing new
+plug-ins.
+
+This package contains a set of well-maintained base plug-ins.
+
+
+%?mingw_debug_package
+
 
 %prep
 %setup -q -n gst-plugins-base-%{version}
+%patch -p1 -b .rtsp
+
 
 %build
-%{_mingw32_configure} \
---with-package-name='Fedora Mingw gstreamer-plugins-base package' \
---with-package-origin='http://download.fedora.redhat.com/fedora' \
---enable-experimental \
---disable-gtk-doc \
---disable-gnome_vfs \
---disable-x \
---disable-static
+%mingw_configure                                                        \
+    --with-package-name='Fedora Mingw gstreamer-plugins-base package'   \
+    --with-package-origin='http://download.fedora.redhat.com/fedora'    \
+    --enable-experimental                                               \
+    --disable-gtk-doc                                                   \
+    --enable-orc                                                        \
+    --disable-gnome_vfs                                                 \
+    --disable-static
+
+%mingw_make %{?_smp_mflags}
 
-make %{?_smp_mflags}
 
 %install
-make DESTDIR=$RPM_BUILD_ROOT install
+%mingw_make_install DESTDIR=$RPM_BUILD_ROOT
 
 # Clean out files that should not be part of the rpm.
-rm -f $RPM_BUILD_ROOT%{_mingw32_libdir}/gstreamer-%{majorminor}/*.la
-rm -f $RPM_BUILD_ROOT%{_mingw32_libdir}/gstreamer-%{majorminor}/*.a
-rm -f $RPM_BUILD_ROOT%{_mingw32_bindir}/gst-visualise*
-rm -f $RPM_BUILD_ROOT%{_mingw32_mandir}/man1/gst-visualise*
-rm -rf $RPM_BUILD_ROOT%{_mingw32_datadir}/gtk-doc
+rm -f $RPM_BUILD_ROOT%{mingw32_libdir}/gstreamer-%{majorminor}/*.a
+rm -f $RPM_BUILD_ROOT%{mingw64_libdir}/gstreamer-%{majorminor}/*.a
+rm -f $RPM_BUILD_ROOT%{mingw32_bindir}/gst-visualise*
+rm -f $RPM_BUILD_ROOT%{mingw64_bindir}/gst-visualise*
+rm -f $RPM_BUILD_ROOT%{mingw32_mandir}/man1/gst-visualise*
+rm -f $RPM_BUILD_ROOT%{mingw64_mandir}/man1/gst-visualise*
+rm -rf $RPM_BUILD_ROOT%{mingw32_datadir}/gtk-doc
+rm -rf $RPM_BUILD_ROOT%{mingw64_datadir}/gtk-doc
 
 # Drop all .la files
 find $RPM_BUILD_ROOT -name "*.la" -delete
 
-%find_lang gst-plugins-base-0.10
+%mingw_find_lang gst-plugins-base-0.10 --all-name
+
+
+# Win32
+%files -n mingw32-gstreamer-plugins-base -f mingw32-gst-plugins-base-0.10.lang
+%doc AUTHORS COPYING README REQUIREMENTS
+
+# libraries
+%{mingw32_bindir}/gst-discoverer-0.10.exe
+%{mingw32_bindir}/libgstapp-%{majorminor}-0.dll
+%{mingw32_bindir}/libgstaudio-%{majorminor}-0.dll
+%{mingw32_bindir}/libgstcdda-%{majorminor}-0.dll
+%{mingw32_bindir}/libgstfft-%{majorminor}-0.dll
+%{mingw32_bindir}/libgstinterfaces-%{majorminor}-0.dll
+%{mingw32_bindir}/libgstnetbuffer-%{majorminor}-0.dll
+%{mingw32_bindir}/libgstpbutils-%{majorminor}-0.dll
+%{mingw32_bindir}/libgstriff-%{majorminor}-0.dll
+%{mingw32_bindir}/libgstrtp-%{majorminor}-0.dll
+%{mingw32_bindir}/libgstrtsp-%{majorminor}-0.dll
+%{mingw32_bindir}/libgstsdp-%{majorminor}-0.dll
+%{mingw32_bindir}/libgsttag-%{majorminor}-0.dll
+%{mingw32_bindir}/libgstvideo-%{majorminor}-0.dll
+
+# base plugins without external dependencies
+%dir %{mingw32_libdir}/gstreamer-%{majorminor}
+%{mingw32_libdir}/gstreamer-%{majorminor}/libgstadder.dll
+%{mingw32_libdir}/gstreamer-%{majorminor}/libgstapp.dll
+%{mingw32_libdir}/gstreamer-%{majorminor}/libgstaudioconvert.dll
+%{mingw32_libdir}/gstreamer-%{majorminor}/libgstaudiorate.dll
+%{mingw32_libdir}/gstreamer-%{majorminor}/libgstaudioresample.dll
+%{mingw32_libdir}/gstreamer-%{majorminor}/libgstaudiotestsrc.dll
+%{mingw32_libdir}/gstreamer-%{majorminor}/libgstdecodebin.dll
+%{mingw32_libdir}/gstreamer-%{majorminor}/libgstdecodebin2.dll
+%{mingw32_libdir}/gstreamer-%{majorminor}/libgstencodebin.dll
+%{mingw32_libdir}/gstreamer-%{majorminor}/libgstffmpegcolorspace.dll
+%{mingw32_libdir}/gstreamer-%{majorminor}/libgstgdp.dll
+%{mingw32_libdir}/gstreamer-%{majorminor}/libgstgio.dll
+%{mingw32_libdir}/gstreamer-%{majorminor}/libgstplaybin.dll
+%{mingw32_libdir}/gstreamer-%{majorminor}/libgstsubparse.dll
+%{mingw32_libdir}/gstreamer-%{majorminor}/libgsttypefindfunctions.dll
+%{mingw32_libdir}/gstreamer-%{majorminor}/libgstvideorate.dll
+%{mingw32_libdir}/gstreamer-%{majorminor}/libgstvideoscale.dll
+%{mingw32_libdir}/gstreamer-%{majorminor}/libgstvideotestsrc.dll
+%{mingw32_libdir}/gstreamer-%{majorminor}/libgstvolume.dll
+
+# base plugins with dependencies
+%{mingw32_libdir}/gstreamer-%{majorminor}/libgstogg.dll
+%{mingw32_libdir}/gstreamer-%{majorminor}/libgstpango.dll
+%{mingw32_libdir}/gstreamer-%{majorminor}/libgstvorbis.dll
+
+# plugin helper library headers
+%{mingw32_includedir}/gstreamer-%{majorminor}
+
+%{mingw32_libdir}/libgstapp-%{majorminor}.dll.a
+%{mingw32_libdir}/libgstaudio-%{majorminor}.dll.a
+%{mingw32_libdir}/libgstcdda-%{majorminor}.dll.a
+%{mingw32_libdir}/libgstfft-%{majorminor}.dll.a
+%{mingw32_libdir}/libgstinterfaces-%{majorminor}.dll.a
+%{mingw32_libdir}/libgstnetbuffer-%{majorminor}.dll.a
+%{mingw32_libdir}/libgstpbutils-%{majorminor}.dll.a
+%{mingw32_libdir}/libgstriff-%{majorminor}.dll.a
+%{mingw32_libdir}/libgstrtp-%{majorminor}.dll.a
+%{mingw32_libdir}/libgstrtsp-%{majorminor}.dll.a
+%{mingw32_libdir}/libgstsdp-%{majorminor}.dll.a
+%{mingw32_libdir}/libgsttag-%{majorminor}.dll.a
+%{mingw32_libdir}/libgstvideo-%{majorminor}.dll.a
 
-%files -n mingw32-gstreamer-plugins-base -f gst-plugins-base-0.10.lang
+# pkg-config files
+%{mingw32_libdir}/pkgconfig/*.pc
+
+
+# Win64
+%files -n mingw64-gstreamer-plugins-base -f mingw64-gst-plugins-base-0.10.lang
 %doc AUTHORS COPYING README REQUIREMENTS
 
 # libraries
-%{_mingw32_bindir}/gst-discoverer-0.10.exe
-%{_mingw32_bindir}/libgstapp-%{majorminor}-0.dll
-%{_mingw32_bindir}/libgstaudio-%{majorminor}-0.dll
-%{_mingw32_bindir}/libgstcdda-%{majorminor}-0.dll
-%{_mingw32_bindir}/libgstfft-%{majorminor}-0.dll
-%{_mingw32_bindir}/libgstinterfaces-%{majorminor}-0.dll
-%{_mingw32_bindir}/libgstnetbuffer-%{majorminor}-0.dll
-%{_mingw32_bindir}/libgstpbutils-%{majorminor}-0.dll
-%{_mingw32_bindir}/libgstriff-%{majorminor}-0.dll
-%{_mingw32_bindir}/libgstrtp-%{majorminor}-0.dll
-%{_mingw32_bindir}/libgstrtsp-%{majorminor}-0.dll
-%{_mingw32_bindir}/libgstsdp-%{majorminor}-0.dll
-%{_mingw32_bindir}/libgsttag-%{majorminor}-0.dll
-%{_mingw32_bindir}/libgstvideo-%{majorminor}-0.dll
+%{mingw64_bindir}/gst-discoverer-0.10.exe
+%{mingw64_bindir}/libgstapp-%{majorminor}-0.dll
+%{mingw64_bindir}/libgstaudio-%{majorminor}-0.dll
+%{mingw64_bindir}/libgstcdda-%{majorminor}-0.dll
+%{mingw64_bindir}/libgstfft-%{majorminor}-0.dll
+%{mingw64_bindir}/libgstinterfaces-%{majorminor}-0.dll
+%{mingw64_bindir}/libgstnetbuffer-%{majorminor}-0.dll
+%{mingw64_bindir}/libgstpbutils-%{majorminor}-0.dll
+%{mingw64_bindir}/libgstriff-%{majorminor}-0.dll
+%{mingw64_bindir}/libgstrtp-%{majorminor}-0.dll
+%{mingw64_bindir}/libgstrtsp-%{majorminor}-0.dll
+%{mingw64_bindir}/libgstsdp-%{majorminor}-0.dll
+%{mingw64_bindir}/libgsttag-%{majorminor}-0.dll
+%{mingw64_bindir}/libgstvideo-%{majorminor}-0.dll
 
 # base plugins without external dependencies
-%dir %{_mingw32_libdir}/gstreamer-%{majorminor}
-%{_mingw32_libdir}/gstreamer-%{majorminor}/libgstadder.dll
-%{_mingw32_libdir}/gstreamer-%{majorminor}/libgstapp.dll
-%{_mingw32_libdir}/gstreamer-%{majorminor}/libgstaudioconvert.dll
-%{_mingw32_libdir}/gstreamer-%{majorminor}/libgstaudiorate.dll
-%{_mingw32_libdir}/gstreamer-%{majorminor}/libgstaudioresample.dll
-%{_mingw32_libdir}/gstreamer-%{majorminor}/libgstaudiotestsrc.dll
-%{_mingw32_libdir}/gstreamer-%{majorminor}/libgstdecodebin.dll
-%{_mingw32_libdir}/gstreamer-%{majorminor}/libgstdecodebin2.dll
-%{_mingw32_libdir}/gstreamer-%{majorminor}/libgstencodebin.dll
-%{_mingw32_libdir}/gstreamer-%{majorminor}/libgstffmpegcolorspace.dll
-%{_mingw32_libdir}/gstreamer-%{majorminor}/libgstgdp.dll
-%{_mingw32_libdir}/gstreamer-%{majorminor}/libgstgio.dll
-%{_mingw32_libdir}/gstreamer-%{majorminor}/libgstplaybin.dll
-%{_mingw32_libdir}/gstreamer-%{majorminor}/libgstsubparse.dll
-%{_mingw32_libdir}/gstreamer-%{majorminor}/libgsttypefindfunctions.dll
-%{_mingw32_libdir}/gstreamer-%{majorminor}/libgstvideorate.dll
-%{_mingw32_libdir}/gstreamer-%{majorminor}/libgstvideoscale.dll
-%{_mingw32_libdir}/gstreamer-%{majorminor}/libgstvideotestsrc.dll
-%{_mingw32_libdir}/gstreamer-%{majorminor}/libgstvolume.dll
+%dir %{mingw64_libdir}/gstreamer-%{majorminor}
+%{mingw64_libdir}/gstreamer-%{majorminor}/libgstadder.dll
+%{mingw64_libdir}/gstreamer-%{majorminor}/libgstapp.dll
+%{mingw64_libdir}/gstreamer-%{majorminor}/libgstaudioconvert.dll
+%{mingw64_libdir}/gstreamer-%{majorminor}/libgstaudiorate.dll
+%{mingw64_libdir}/gstreamer-%{majorminor}/libgstaudioresample.dll
+%{mingw64_libdir}/gstreamer-%{majorminor}/libgstaudiotestsrc.dll
+%{mingw64_libdir}/gstreamer-%{majorminor}/libgstdecodebin.dll
+%{mingw64_libdir}/gstreamer-%{majorminor}/libgstdecodebin2.dll
+%{mingw64_libdir}/gstreamer-%{majorminor}/libgstencodebin.dll
+%{mingw64_libdir}/gstreamer-%{majorminor}/libgstffmpegcolorspace.dll
+%{mingw64_libdir}/gstreamer-%{majorminor}/libgstgdp.dll
+%{mingw64_libdir}/gstreamer-%{majorminor}/libgstgio.dll
+%{mingw64_libdir}/gstreamer-%{majorminor}/libgstplaybin.dll
+%{mingw64_libdir}/gstreamer-%{majorminor}/libgstsubparse.dll
+%{mingw64_libdir}/gstreamer-%{majorminor}/libgsttypefindfunctions.dll
+%{mingw64_libdir}/gstreamer-%{majorminor}/libgstvideorate.dll
+%{mingw64_libdir}/gstreamer-%{majorminor}/libgstvideoscale.dll
+%{mingw64_libdir}/gstreamer-%{majorminor}/libgstvideotestsrc.dll
+%{mingw64_libdir}/gstreamer-%{majorminor}/libgstvolume.dll
 
 # base plugins with dependencies
-%{_mingw32_libdir}/gstreamer-%{majorminor}/libgstogg.dll
-%{_mingw32_libdir}/gstreamer-%{majorminor}/libgstpango.dll
-%{_mingw32_libdir}/gstreamer-%{majorminor}/libgstvorbis.dll
+%{mingw64_libdir}/gstreamer-%{majorminor}/libgstogg.dll
+%{mingw64_libdir}/gstreamer-%{majorminor}/libgstpango.dll
+%{mingw64_libdir}/gstreamer-%{majorminor}/libgstvorbis.dll
 
 # plugin helper library headers
-%{_mingw32_includedir}/gstreamer-%{majorminor}
-
-%{_mingw32_libdir}/libgstapp-%{majorminor}.dll.a
-%{_mingw32_libdir}/libgstaudio-%{majorminor}.dll.a
-%{_mingw32_libdir}/libgstcdda-%{majorminor}.dll.a
-%{_mingw32_libdir}/libgstfft-%{majorminor}.dll.a
-%{_mingw32_libdir}/libgstinterfaces-%{majorminor}.dll.a
-%{_mingw32_libdir}/libgstnetbuffer-%{majorminor}.dll.a
-%{_mingw32_libdir}/libgstpbutils-%{majorminor}.dll.a
-%{_mingw32_libdir}/libgstriff-%{majorminor}.dll.a
-%{_mingw32_libdir}/libgstrtp-%{majorminor}.dll.a
-%{_mingw32_libdir}/libgstrtsp-%{majorminor}.dll.a
-%{_mingw32_libdir}/libgstsdp-%{majorminor}.dll.a
-%{_mingw32_libdir}/libgsttag-%{majorminor}.dll.a
-%{_mingw32_libdir}/libgstvideo-%{majorminor}.dll.a
+%{mingw64_includedir}/gstreamer-%{majorminor}
+
+%{mingw64_libdir}/libgstapp-%{majorminor}.dll.a
+%{mingw64_libdir}/libgstaudio-%{majorminor}.dll.a
+%{mingw64_libdir}/libgstcdda-%{majorminor}.dll.a
+%{mingw64_libdir}/libgstfft-%{majorminor}.dll.a
+%{mingw64_libdir}/libgstinterfaces-%{majorminor}.dll.a
+%{mingw64_libdir}/libgstnetbuffer-%{majorminor}.dll.a
+%{mingw64_libdir}/libgstpbutils-%{majorminor}.dll.a
+%{mingw64_libdir}/libgstriff-%{majorminor}.dll.a
+%{mingw64_libdir}/libgstrtp-%{majorminor}.dll.a
+%{mingw64_libdir}/libgstrtsp-%{majorminor}.dll.a
+%{mingw64_libdir}/libgstsdp-%{majorminor}.dll.a
+%{mingw64_libdir}/libgsttag-%{majorminor}.dll.a
+%{mingw64_libdir}/libgstvideo-%{majorminor}.dll.a
 
 # pkg-config files
-%{_mingw32_libdir}/pkgconfig/*.pc
+%{mingw64_libdir}/pkgconfig/*.pc
+
 
 %changelog
+* Sun Mar 18 2012 Erik van Pienbroek <epienbro at fedoraproject.org> - 0.10.35-4
+- Added win64 support (contributed by Marc-André Lureau)
+- Use mingw macros without leading underscore
+- Backported fix for GNOME bug #654816
+- Use %%global instead of %%define
+
 * Tue Feb 28 2012 Erik van Pienbroek <epienbro at fedoraproject.org> - 0.10.35-3
 - Rebuild against the mingw-w64 toolchain
 


More information about the scm-commits mailing list