[rubygem-goocanvas] Workaround for rubygem-glib 2.0.x

Mamoru Tasaka mtasaka at fedoraproject.org
Fri Aug 16 13:40:34 UTC 2013


commit 1c2d8114549a670d67a1c64df9725a4a09661944
Author: Mamoru TASAKA <mtasaka at fedoraproject.org>
Date:   Fri Aug 16 22:40:23 2013 +0900

    Workaround for rubygem-glib 2.0.x

 rubygem-goocanvas.spec |  148 ++++-------------------------------------------
 1 files changed, 13 insertions(+), 135 deletions(-)
---
diff --git a/rubygem-goocanvas.spec b/rubygem-goocanvas.spec
index 7b9fdc7..6ff984d 100644
--- a/rubygem-goocanvas.spec
+++ b/rubygem-goocanvas.spec
@@ -1,43 +1,23 @@
-%if 0%{?fedora} >= 17
-%if 0%{?fedora} < 19
 %global	rubyabi	1.9.1
-%endif
-%global	header_dir	%{ruby_vendorarchdir}
-%global	ruby19	1
-%else
-%global	ruby_sitelib	%(ruby -rrbconfig -e "puts Config::CONFIG['sitelibdir']")
-%global	ruby_sitearch	%(ruby -rrbconfig -e "puts Config::CONFIG['sitearchdir']")
-
-%global	rubyabi	1.8
-%global	header_dir	%{ruby_sitearch}
-%global	ruby19	0
-%endif
 
 %global	gem_name	goocanvas
 
-%global	glibminver	1.2.0
-%global	gtkminver	1.1.3
+%global	glibminver	2.0.0
+%global	gtkminver	2.0.0
 %global	obsoleteevr	0.90.7-1.999
 
 Summary:	Ruby binding of GooCanvas
 Name:		rubygem-%{gem_name}
 Version:	1.2.6
-Release:	2%{?dist}
+Release:	3%{?dist}
 Group:		Development/Languages
 # from README
 License:	LGPLv2
 URL:		http://ruby-gnome2.sourceforge.jp/
 Source0:	http://rubygems.org/gems/%{gem_name}-%{version}.gem
 
-%if 0%{?fedora} >= 19
 Requires:	ruby(release)
 BuildRequires:	ruby(release)
-%else
-Requires:	ruby(abi) = %{rubyabi}
-Requires:	ruby 
-BuildRequires:	ruby(abi) = %{rubyabi}
-BuildRequires:	ruby 
-%endif
 
 BuildRequires:	rubygems-devel
 BuildRequires:  rubygem-cairo-devel%{?_isa}
@@ -50,9 +30,7 @@ Requires:	rubygem(gtk2) >= %{glibminver}
 Provides:	rubygem(%{gem_name}) = %{version}
 # Kill non-gem support on F-16+
 # Obsoletes but not provides
-%if 0%{?fedora} >= 16
 Obsoletes:	ruby-%{gem_name} < %{version}-%{release}
-%endif
 
 
 %description
@@ -66,21 +44,6 @@ Requires:	%{name}%{?_isa} = %{version}-%{release}
 %description	doc
 This package contains documentation for %{name}.
 
-%if 0%{?fedora} < 16
-%package	-n ruby-%{gem_name}
-# Non-gem support is only for < F-16
-Summary:	Non-Gem support package for %{gem_name}
-Group:		Development/Languages
-Requires:	%{name}%{?_isa} = %{version}-%{release}
-# Requires for corresponsing non-gem rpms
-Requires:       ruby(cairo)
-Requires:	ruby(gtk2)
-Provides:	ruby(%{gem_name}) = %{version}-%{release}
-
-%description	-n ruby-%{gem_name}
-This package provides non-Gem support for %{gem_name}.
-%endif
-
 %package	devel
 Summary:	Ruby/GooCanvas development environment
 Group:		Development/Languages
@@ -89,10 +52,6 @@ Requires:	%{name}%{?_isa} = %{version}-%{release}
 # ruby(%%{gem_name}-devel) Provides is for compatibility
 # on F-15 and below
 Obsoletes:	ruby-%{gem_name}-devel < %{obsoleteevr}
-%if 0%{?fedora} < 16
-Provides:	ruby-%{gem_name}-devel = %{version}-%{release}
-Provides:	ruby(%{gem_name}-devel) = %{version}-%{release}
-%endif
 
 %description devel
 Header files and libraries for building a extension library for the
@@ -110,6 +69,12 @@ find . -name \*.gem | xargs chmod 0644
 
 pushd .%{gem_instdir}
 
+# For rubygem-glib 2.0.x
+sed -i \
+	-e 's|GLib.prepend_environment_path|GLib.prepend_dll_path|' \
+	lib/goocanvas.rb \
+	sample/goocanvas-gi.rb
+
 # Fix wrong shebang
 #grep -rl /usr/local/bin sample | \
 #	xargs sed -i -e 's|/usr/local/bin|/usr/bin|'
@@ -123,18 +88,7 @@ popd
 %build
 # Move C extension library to some private directory
 pushd .%{gem_instdir}
-%if ! %{ruby19}
-mkdir lib/ruby-gnome2
-mv lib/%{gem_name}.so lib/ruby-gnome2/
-grep -rl '%{gem_name}.so' . | \
-	xargs sed -i \
-		-e "\@require at s|'%{gem_name}.so'|'ruby-gnome2/%{gem_name}.so'|" \
-		-e '\@require at s|"%{gem_name}.so"|"ruby-gnome2/%{gem_name}.so"|'
-%endif
-
-# 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
@@ -144,13 +98,8 @@ cp -a .%{gem_dir}/* \
 
 pushd %{buildroot}
 # move header files, C extension files to the correct directory
-%if ! %{ruby19}
-mkdir -p .%{ruby_sitearch}/ruby-gnome2
-mv .%{gem_instdir}/lib/ruby-gnome2/%{gem_name}.so .%{ruby_sitearch}/ruby-gnome2/
-%else
 mkdir -p .%{gem_extdir_mri}/lib
 mv .%{gem_instdir}/lib/%{gem_name}.so .%{gem_extdir_mri}/lib
-%endif
 # mv .%%{gem_instdir}/lib/*.h .%%{ruby_sitearch}/
 popd
 
@@ -166,69 +115,6 @@ rm -rf .%{gem_instdir}/ext/
 rm -f .%{gem_instdir}/extconf.rb
 popd
 
-%if 0%{?fedora} < 16
-# The following method is completely copied from rubygem-gettext
-# spec file
-#
-# Create symlinks
-##
-## Note that before switching to gem %%{ruby_sitelib}/%%{gem_name}
-## 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 %{gem_instdir}/lib %{ruby_sitelib}
-%endif
-
 %check
 # Currently no testsuite available
 
@@ -240,24 +126,13 @@ create_symlink_rec %{gem_instdir}/lib %{ruby_sitelib}
 %exclude	%{gem_instdir}/Rakefile
 
 %{gem_instdir}/lib/%{gem_name}.rb
-%if %{ruby19}
 %dir	%{gem_extdir_mri}
 %dir	%{gem_extdir_mri}/lib
 %{gem_extdir_mri}/lib/%{gem_name}.so
-%else
-# %%ruby_sitearch/ruby-gnome2 is owned by rubygem-glib2
-%{ruby_sitearch}/ruby-gnome2/%{gem_name}.so
-%endif
 
 %{gem_cache}
 %{gem_spec}
 
-%if 0%{?fedora} < 16
-%files	-n ruby-%{gem_name}
-%defattr(-,root,root,-)
-%{ruby_sitelib}/*.rb
-%endif
-
 %files	devel
 %defattr(-,root,root,-)
 %{_libdir}/pkgconfig/ruby-%{gem_name}.pc
@@ -269,6 +144,9 @@ create_symlink_rec %{gem_instdir}/lib %{ruby_sitelib}
 %{gem_instdir}/sample/
 
 %changelog
+* Fri Aug 16 2013 Mamoru TASAKA <mtasaka at fedoraproject.org> - 1.2.6-3
+- Workaround for rubygem-glib 2.0.x
+
 * Sun Aug 04 2013 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 1.2.6-2
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
 


More information about the scm-commits mailing list