[rubygem-gstreamer] Initial commit

Mamoru Tasaka mtasaka at fedoraproject.org
Sat Jan 7 16:20:20 UTC 2012


commit 2014ed713cfc519798bf61cbe16f24f1b20f9c8a
Author: Mamoru Tasaka <tasaka1 at localhost.localdomain>
Date:   Sun Jan 8 01:19:56 2012 +0900

    Initial commit

 .gitignore             |    1 +
 rubygem-gstreamer.spec |  296 ++++++++++++++++++++++++++++++++++++++++++++++++
 sources                |    1 +
 3 files changed, 298 insertions(+), 0 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index e69de29..641e395 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/gstreamer-1.0.3.gem
diff --git a/rubygem-gstreamer.spec b/rubygem-gstreamer.spec
new file mode 100644
index 0000000..6c0519e
--- /dev/null
+++ b/rubygem-gstreamer.spec
@@ -0,0 +1,296 @@
+%global		ruby_sitelib		%(ruby -rrbconfig -e "puts Config::CONFIG['sitelibdir']")
+%global		ruby_sitearch		%(ruby -rrbconfig -e "puts Config::CONFIG['sitearchdir']")
+
+%global		gemdir		%(ruby -rubygems -e 'puts Gem::dir' 2>/dev/null)
+%global		gemname		gstreamer
+%global		gemsoname	gst
+%global		geminstdir	%{gemdir}/gems/%{gemname}-%{version}
+
+%global		glibminver		0.90.7
+%global		obsoleteevr	0.90.7-1.999
+
+%global		rubyabi		1.8
+
+Summary:	Ruby binding of GStreamer
+Name:		rubygem-%{gemname}
+Version:	1.0.3
+Release:	3%{?dist}
+Group:		Development/Languages
+# from README
+License:	LGPLv2
+URL:		http://ruby-gnome2.sourceforge.jp/
+Source0:	http://rubygems.org/gems/%{gemname}-%{version}.gem
+
+# test/test_buffer.rb:164:in `test_span'
+# ArgumentError: assertion message must be String, Proc or 
+# Test::Unit::Assertions::AssertionMessage: <7>(<Fixnum>)
+# https://github.com/ruby-gnome2/ruby-gnome2/issues/87
+Patch0:		rubygem-gstreamer-1.0.3-assert-length.patch
+# test_caps:
+# GStreamer-CRITICAL **: gst_buffer_set_caps: assertion `caps == NULL
+# || GST_CAPS_IS_SIMPLE (caps)' failed
+# https://github.com/ruby-gnome2/ruby-gnome2/issues/86
+Patch1:		rubygem-gstreamer-1.0.3-fail-with-gst_buffer_set_caps.patch
+# test/test_value.rb:35
+# https://github.com/ruby-gnome2/ruby-gnome2/issues/89
+Patch2:		rubygem-gstreamer-1.0.3-set_flaction_range.patch
+# test/test_clock.rb:3
+# <TypeError> exception expected but none was thrown.
+# https://github.com/ruby-gnome2/ruby-gnome2/issues/88
+Patch3:		rubygem-gstreamer-1.0.3-test_clock_omit.patch
+# test_state(TestElement) [./test/test_element.rb:50]:
+# sometimes fails with #<Gst::StateChangeReturn failure>
+# https://github.com/ruby-gnome2/ruby-gnome2/issues/91
+Patch4:		rubygem-gstreamer-1.0.3-async-timeout.patch
+
+BuildRequires:		ruby(abi) = %{rubyabi}
+BuildRequires:		rubygem-glib2-devel%{?_isa} >= %{glibminver}
+BuildRequires:		ruby-devel%{?_isa}
+BuildRequires:		gstreamer-plugins-base-devel%{?_isa}
+# %%check
+# test/test_caps.rb: smpte = Gst::ElementFactory.find("smpte")
+BuildRequires:		gstreamer-plugins-good%{?_isa}
+# test/test_element.rb:70 assert_boolean
+BuildRequires:		rubygem(test-unit)
+Requires:	ruby(abi) = %{rubyabi}
+Requires:	rubygem(glib2) >= %{glibminver}
+Provides:	rubygem(%{gemname}) = %{version}-%{release}
+# Kill non-gem support on F-17+
+# Obsoletes but not provides
+%if 0%{?fedora} > 16
+Obsoletes:	ruby-%{gemname} < %{version}-%{release}
+%endif
+
+
+%description
+Ruby/GStreamer is a Ruby binding of GStreamer.
+
+%package	doc
+Summary:	Documentation for %{name}
+Group:		Documentation
+Requires:	%{name}%{?_isa} = %{version}-%{release}
+
+%description	doc
+This package contains documentation for %{name}.
+
+%if 0%{?fedora} < 17
+%package	-n ruby-%{gemname}
+# Non-gem support is only for < F-17
+Summary:	Non-Gem support package for %{gemname}
+Group:		Development/Languages
+Requires:	%{name}%{?_isa} = %{version}-%{release}
+# Requires for corresponsing non-gem rpms
+Requires:	ruby(glib2)
+Provides:	ruby(%{gemname}) = %{version}-%{release}
+
+%description	-n ruby-%{gemname}
+This package provides non-Gem support for %{gemname}.
+%endif
+
+%package	devel
+Summary:	Ruby/GStreamer development environment
+Group:		Development/Languages
+Requires:	%{name}%{?_isa} = %{version}-%{release}
+# Obsoletes / Provides
+# ruby(%%{gemname}-devel) Provides is for compatibility
+# on F-15 and below
+Obsoletes:	ruby-%{gemname}-devel < %{obsoleteevr}
+%if 0%{?fedora} < 16
+Provides:	ruby-%{gemname}-devel = %{version}-%{release}
+Provides:	ruby(%{gemname}-devel) = %{version}-%{release}
+%endif
+
+%description devel
+Header files and libraries for building a extension library for the
+rubygem-%{gemname}
+
+%prep
+%setup -q -c -T
+mkdir -p .%{gemdir}
+
+export CONFIGURE_ARGS="--with-cflags='%{optflags}'"
+export CONFIGURE_ARGS="$CONFIGURE_ARGS --with-pkg-config-dir=$(pwd)%{_libdir}/pkgconfig"
+gem install \
+	-V \
+	--local \
+	--install-dir .%{gemdir} \
+	--force \
+	--rdoc \
+	%{SOURCE0}
+
+find . -name \*.gem | xargs chmod 0644
+
+pushd .%{geminstdir}
+
+# Patches
+%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+
+# Fix wrong shebang
+#grep -rl /usr/local/bin sample | \
+#	xargs sed -i -e 's|/usr/local/bin|/usr/bin|'
+
+# Kill shebang
+grep -rl '#!.*/usr/bin' sample | \
+	xargs sed -i -e '\@#![ ]*/usr/bin at d'
+find sample/ -name \*.rb | xargs chmod 0644
+popd
+
+%build
+# Move C extension library to some private directory
+pushd .%{geminstdir}
+mkdir lib/ruby-gnome2
+mv lib/%{gemsoname}.so lib/ruby-gnome2/
+grep -rl '%{gemsoname}.so' . | \
+	xargs sed -i \
+		-e "\@require at s|'%{gemsoname}.so'|'ruby-gnome2/%{gemsoname}.so'|" \
+		-e '\@require at s|"%{gemsoname}.so"|"ruby-gnome2/%{gemsoname}.so"|'
+
+# Fix up Rakefile for "gnome2-raketask" requirement
+sed -i -e "/require.*gnome2-raketask/s|^\(.*\)|begin\n  \1\nrescue LoadError\n  require 'rubygems'\n  require 'gnome2-raketask'\nend\n|" \
+	Rakefile
+
+%install
+# Once copy all
+mkdir -p %{buildroot}%{gemdir}
+cp -a .%{gemdir}/* \
+	%{buildroot}%{gemdir}/
+
+pushd %{buildroot}
+# move header files, C extension files to the correct directory
+mkdir -p .%{ruby_sitearch}/ruby-gnome2/
+# mv .%%{geminstdir}/lib/*.h .%%{ruby_sitearch}/
+mv .%{geminstdir}/lib/ruby-gnome2/%{gemsoname}.so .%{ruby_sitearch}/ruby-gnome2/
+popd
+
+# move pkgconfig file
+mkdir %{buildroot}%{_libdir}/pkgconfig
+install -cpm 644 ./%{_libdir}/pkgconfig/*.pc \
+	%{buildroot}%{_libdir}/pkgconfig/
+
+
+# Cleanups
+pushd %{buildroot}
+rm -rf .%{geminstdir}/ext/
+rm -f .%{geminstdir}/extconf.rb
+popd
+
+%if 0%{?fedora} < 17
+# The following method is completely copied from rubygem-gettext
+# spec file
+#
+# Create symlinks
+##
+## Note that before switching to gem %%{ruby_sitelib}/%%{gemname}
+## already existed as a directory, so this cannot be replaced
+## by symlink (cpio fails)
+## Similarly, all directories under %%{ruby_sitelib} cannot be
+## replaced by symlink
+#
+
+create_symlink_rec(){
+
+ORIGBASEDIR=$1
+TARGETBASEDIR=$2
+
+## First calculate relative path of ORIGBASEDIR 
+## from TARGETBASEDIR
+TMPDIR=$TARGETBASEDIR
+BACKDIR=
+DOWNDIR=
+num=0
+nnum=0
+while true
+do
+	num=$((num+1))
+	TMPDIR=$(echo $TMPDIR | sed -e 's|/[^/][^/]*$||')
+	DOWNDIR=$(echo $ORIGBASEDIR | sed -e "s|^$TMPDIR||")
+	if [ x$DOWNDIR != x$ORIGBASEDIR ]
+	then
+		nnum=0
+		while [ $nnum -lt $num ]
+		do
+			BACKDIR="../$BACKDIR"
+			nnum=$((nnum+1))
+		done
+		break
+	fi
+done
+
+RELBASEDIR=$( echo $BACKDIR/$DOWNDIR | sed -e 's|//*|/|g' )
+
+## Next actually create symlink
+pushd %{buildroot}/$ORIGBASEDIR
+find . -type f | while read f
+do
+	DIRNAME=$(dirname $f)
+	BACK2DIR=$(echo $DIRNAME | sed -e 's|/[^/][^/]*|/..|g')
+	mkdir -p %{buildroot}${TARGETBASEDIR}/$DIRNAME
+	LNNAME=$(echo $BACK2DIR/$RELBASEDIR/$f | \
+		sed -e 's|^\./||' | sed -e 's|//|/|g' | \
+		sed -e 's|/\./|/|' )
+	ln -s -f $LNNAME %{buildroot}${TARGETBASEDIR}/$f
+done
+popd
+
+}
+
+create_symlink_rec %{geminstdir}/lib %{ruby_sitelib}
+%endif
+
+%check
+pushd .%{geminstdir}
+
+mkdir TMPDIR
+cd TMPDIR
+ln -sf /bin/true make
+PATH=$(pwd):$PATH
+cd ..
+
+ruby -Ilib:test test/run-test.rb --verbose
+
+%files
+%dir	%{geminstdir}
+%dir	%{geminstdir}/lib/
+
+%doc	%{geminstdir}/[A-Z]*
+%exclude	%{geminstdir}/Rakefile
+
+%{geminstdir}/lib/%{gemsoname}.rb
+# %%ruby_sitearch/ruby-gnome2 is owned by rubygem-glib2
+%{ruby_sitearch}/ruby-gnome2/%{gemsoname}.so
+
+%{gemdir}/cache/%{gemname}-%{version}.gem
+%{gemdir}/specifications/%{gemname}-%{version}.gemspec
+
+%if 0%{?fedora} < 17
+%files	-n ruby-%{gemname}
+%defattr(-,root,root,-)
+%{ruby_sitelib}/*.rb
+%endif
+
+%files	devel
+%defattr(-,root,root,-)
+%{_libdir}/pkgconfig/ruby-%{gemname}.pc
+
+%files	doc
+%defattr(-,root,root,-)
+%{gemdir}/doc/%{gemname}-%{version}
+%{geminstdir}/Rakefile
+%{geminstdir}/sample/
+%{geminstdir}/test/
+
+%changelog
+* Sat Dec 31 2011 Mamoru Tasaka <mtasaka at fedoraproject.org> - 1.0.3-3
+- Rescue test failure
+
+* Thu Dec 29 2011 Mamoru Tasaka <mtasaka at fedoraproject.org> - 1.0.3-2
+- Add BR: gstreamer-plugins-good for smpte_caps in test/test_caps.rb
+- Add BR: rubygem(test-unit)
+
+* Wed Dec 28 2011 Mamoru Tasaka <mtasaka at fedoraproject.org> - 1.0.3-1
+- Initial package
+
diff --git a/sources b/sources
index e69de29..13e5ac5 100644
--- a/sources
+++ b/sources
@@ -0,0 +1 @@
+a0b94eafefeb79aeafb8aec3127bd9ee  gstreamer-1.0.3.gem


More information about the scm-commits mailing list