Blob Blame History Raw
%{!?ruby_sitelib:	%global ruby_sitelib	%(ruby -rrbconfig -e "puts Config::CONFIG['sitelibdir']")}

%global		gemdir		%(ruby -rubygems -e 'puts Gem::dir' 2>/dev/null)
%global		gemname		gettext
%global		geminstdir	%{gemdir}/gems/%{gemname}-%{version}

%global		rubyabi		1.8
%if 0%{?fedora} >= 11
%global		do_test		1
%else
%global		do_test		0
%endif
%global		locale_ver		2.0.5
%global		repoid			67096

Name:		rubygem-%{gemname}
Version:	2.1.0
Release:	1%{?dist}.1
Summary:	RubyGem of Localization Library and Tools for Ruby
Group:		Development/Languages

License:	Ruby
URL:		http://www.yotabanana.com/hiki/ruby-gettext.html?ruby-gettext
#Source0:	http://gems.rubyforge.org/gems/%{gemname}-%{version}.gem
Source0:	http://rubyforge.org/frs/download.php/%{repoid}/%{gemname}-%{version}.gem
Patch0:		rubygem-gettext-2.1.0-ruby186-compat.patch
BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

BuildRequires:	ruby(abi) = %{rubyabi}
BuildRequires:	ruby(rubygems)
BuildRequires:	rubygem(rake)
%if %{do_test}
BuildRequires(check):	rubygem(locale) >= %{locale_ver}
BuildRequires(check):	gettext
%endif
Requires:	ruby(abi) = %{rubyabi}
Requires:	ruby(rubygems)
Requires:	rubygem(locale) >= %{locale_ver}
Requires:	irb
Provides:	rubygem(%{gemname}) = %{version}-%{release}

BuildArch:	noarch

%description
Ruby-GetText-Package is a GNU GetText-like program for Ruby. 
The catalog file(po-file) is same format with GNU GetText. 
So you can use GNU GetText tools for maintaining.

This package provides gem for Ruby-Gettext-Package.

%package	doc
Summary:	Documentation for %{name}
Group:		Documentation
Requires:	%{name} = %{version}-%{release}

%description	doc
This package contains documentation for %{name}.


%package -n	ruby-gettext-package
Summary:	Localization Library and Tools for Ruby
Group:		Development/Languages
Requires:	%{name} = %{version}-%{release}
Requires:	ruby(locale) >= %{locale_ver}
Provides:	ruby(gettext-package) = %{version}-%{release}

%description -n	ruby-gettext-package
Ruby-GetText-Package is a Localization(L10n) Library and Tools 
which is modeled after GNU gettext package.

The library converts the messages to localized messages properly 
using client-side locale information. And the tools for developers 
support to create, use, and modify localized message files
(message catalogs) easily.

%prep 
%setup -q -T -c

gem install \
	--local \
	--install-dir .%{gemdir} \
	--force \
	--rdoc \
	-V \
	%{SOURCE0}

pushd .%{geminstdir}
%patch0 -p0
popd

#%%{__rm} -f .%{geminstdir}/Rakefile
%{__rm} -f .%{geminstdir}/%{gemname}.gemspec
%{__rm} -f .%{geminstdir}/replace.rb
%{__rm} -rf .%{geminstdir}/po/
%{__rm} -rf .%{gemdir}/bin/
%{__chmod} 0755 .%{geminstdir}/bin/*
%{__chmod} 0644 .%{gemdir}/cache/*.gem
find .%{geminstdir}/ -name \*.po | xargs %{__chmod} 0644

# Cleanups for rpmlint
find .%{geminstdir}/lib/ -name \*.rb | while read f
do
	%{__sed} -i -e '/^#!/d' $f
done

# fix timestamps
find . -type f -print0 | xargs -0 touch -r %{SOURCE0}

%build

%install
%{__rm} -rf %{buildroot}
%{__mkdir_p} %{buildroot}%{gemdir}

%{__cp} -a .%{gemdir}/* %{buildroot}%{gemdir}/
find %{buildroot}%{gemdir} -name \*.rb.patch\* -delete

# 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}
create_symlink_rec %{geminstdir}/bin %{_bindir}
create_symlink_rec %{geminstdir}/data/locale %{_datadir}/locale

# For --short-circult
%{__rm} -f *.lang

%find_lang rgettext
%{__cat} *.lang >> %{name}.lang

# modify find-lang.sh to deal with gettext .mo files under
# %%{geminstdir}/data/locale
%{__sed} -e 's|/share/locale/|/data/locale/|' \
	/usr/lib/rpm/find-lang.sh \
	> find-lang-modified.sh

sh find-lang-modified.sh %{buildroot} rgettext rgettext-gem.lang
%{__cat} *-gem.lang >> %{name}-gem.lang

# list directories under %%{geminstdir}/data/
find %{buildroot}%{geminstdir}/data -type d | while read dir
do
	echo "%%dir ${dir#%{buildroot}}" >> %{name}-gem.lang
done

%if %{do_test}
%check
pushd .%{geminstdir}
rake test
%endif

%clean
%{__rm} -rf %{buildroot}

%files	-f %{name}-gem.lang
%defattr(-,root,root,-)
%{_bindir}/rgettext
%{_bindir}/rmsgfmt
%{_bindir}/rmsgmerge

%dir %{geminstdir}/
%doc %{geminstdir}/[A-Z]*
%exclude %{geminstdir}/Rakefile
%{geminstdir}/bin/
%{geminstdir}/lib/
%{geminstdir}/src/

%{gemdir}/cache/%{gemname}-%{version}.gem
%{gemdir}/specifications/%{gemname}-%{version}.gemspec

%files		doc
%defattr(-,root,root,-)
%{gemdir}/doc/%{gemname}-%{version}/
%{geminstdir}/benchmark/
%{geminstdir}/samples/
%{geminstdir}/test.rb
%{geminstdir}/test/

%files -n	ruby-gettext-package	-f %{name}.lang
%defattr(-,root,root,-)
%{ruby_sitelib}/%{gemname}.rb
%{ruby_sitelib}/%{gemname}/


%changelog
* Tue Jan 12 2010 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp>
- gems.rubyforge.org gem file seems old, changing Source0 URL for now

* Wed Nov 18 2009 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 2.1.0-1
- 2.1.0

* Sat Jul 25 2009 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 2.0.4-2
- F-12: Mass rebuild

* Wed May 28 2009 Mamoru Tasaka <mtasaka@ios.s.u-tokyo.ac.jp> - 2.0.4-1
- 2.0.4

* Mon May 11 2009 Mamoru Tasaka <mtasaka@ios.s.u-tokyo.ac.jp> - 2.0.3-2
- 2.0.3
- Add "BR: gettext" (not to Requires) for rake test

* Fri May  1 2009 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 2.0.1-3
- Mark LICENSE etc as %%doc

* Wed Apr 22 2009 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 2.0.1-2
- Bump ruby-locale Requires version

* Tue Apr 21 2009 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 2.0.1-1
- 2.0.1, drop patches already in upstream (all)

* Sat Mar 29 2009 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 2.0.0-1
- Update to 2.0.0
- Now require rubygem(locale)
- Rescue NoMethodError on gem call on gettext.rb
- Reintroduce 4 args bindtextdomain() compatibility

* Tue Feb 24 2009 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.93.0-8
- %%global-ize "nested" macro 

* Thu Oct 23 2008 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.93.0-7
- Handle gettext .mo files under %%{geminstdir}/data/locale by
  modifying find-lang.sh

* Tue Oct  7 2008 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.93.0-6
- Move sed edit section for lib/ files from %%install to %%build
  stage for cached gem file

* Tue Oct  7 2008 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.93.0-5
- Recreate gettext .mo files (by using this itself)

* Mon Oct  6 2008 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.93.0-3
- Some modification for spec file by Scott

* Tue Sep 23 2008 Scott Seago <sseago@redhat.com> - 1.93.0-2
- Initial package (of rubygem-gettext)
  Set at release 2 to supercede ruby-gettext-package-1.93.0-1

* Thu Sep 18 2008 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.93.0-1
- 1.93.0

* Sat Aug  9 2008 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.92.0-1
- 1.92.0

* Thu May 22 2008 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.91.0-1
- 1.91.0

* Sun Feb  3 2008 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.90.0-1
- 1.90.0
- Arch changed to noarch

* Wed Aug 29 2007 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.10.0-1
- 1.10.0

* Wed Aug 22 2007 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.9.0-2.dist.2
- Mass rebuild (buildID or binutils issue)

* Fri Aug  3 2007 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.9.0-2.dist.1
- License update

* Mon May  7 2007 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.9.0-2
- Create -doc subpackage

* Sat Apr 21 2007 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.9.0-1
- Initial packaging