This commit is contained in:
Mamoru Tasaka 2012-01-22 05:07:40 +09:00
commit 68db138813
3 changed files with 75 additions and 177 deletions

1
.gitignore vendored
View file

@ -1,2 +1,3 @@
json-1.1.7.gem
/json-1.4.6.gem
/json-1.6.5.gem

View file

@ -1,15 +1,9 @@
%{!?ruby_sitelib: %global ruby_sitelib %(ruby -rrbconfig -e "puts Config::CONFIG['sitelibdir']")}
%{!?ruby_sitearch: %global ruby_sitearch %(ruby -rrbconfig -e "puts Config::CONFIG['sitearchdir']")}
%global gem_name json
%global rubyabi 1.9.1
%global gemdir %(ruby -rubygems -e 'puts Gem::dir' 2>/dev/null)
%global gemname json
%global geminstdir %{gemdir}/gems/%{gemname}-%{version}
%global installroot %{buildroot}%{geminstdir}
Name: rubygem-%{gemname}
Version: 1.4.6
Release: 4%{?dist}
Name: rubygem-%{gem_name}
Version: 1.6.5
Release: 1%{?dist}
Summary: A JSON implementation in Ruby
@ -17,17 +11,22 @@ Group: Development/Languages
License: Ruby or GPLv2
URL: http://json.rubyforge.org
Source0: http://gems.rubyforge.org/gems/%{gemname}-%{version}.gem
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Source0: http://gems.rubyforge.org/gems/%{gem_name}-%{version}.gem
Patch0: %{gemname}-1.4.3-skip-failed-test.patch
BuildRequires: ruby, ruby-devel
BuildRequires: ruby(abi) = %{rubyabi}
BuildRequires: ruby-devel
BuildRequires: rubygems-devel
BuildRequires: rubygem(rake)
Requires: ruby(abi) = 1.8
BuildRequires: rubygem(minitest)
BuildRequires: rubygem(bigdecimal)
Requires: ruby(abi) = %{rubyabi}
Requires: rubygems
Provides: rubygem(json) = %{version}
Obsoletes: rubygem-%{gem_name}-gui < %{version}
Obsoletes: ruby-%{gem_name}-gui < %{version}
Obsoletes: ruby-%{gem_name} < %{version}
%description
This is a implementation of the JSON specification according
to RFC 4627 in Ruby.
@ -40,199 +39,97 @@ Summary: Documentation for %{name}
Group: Documentation
Requires: %{name} = %{version}-%{release}
Requires: ruby(rubygems)
%description doc
This package contains documentation for %{name}.
%package -n ruby-%{gemname}
Summary: Non-Gem support package for %{gemname}
Group: Development/Languages
Requires: %{name} = %{version}-%{release}
Provides: ruby(%{gemname}) = %{version}-%{release}
%description -n ruby-%{gemname}
This package provides non-Gem support for %{gemname}.
%package -n rubygem-%{gemname}-gui
Summary: Gtk2 based Editor for ruby JSON.
Group: User Interface/Desktops
Requires: %{name} = %{version}-%{release}
Requires: ruby(gtk2)
%description -n rubygem-%{gemname}-gui
This package provides UI editor for rubygem-%{gemname}.
%package -n ruby-%{gemname}-gui
Summary: Gtk2 based editor for Ruby JSON
Group: User Interface/Desktop
Requires: ruby-%{gemname} = %{version}-%{release}
Requires: ruby(gtk2)
%description -n ruby-%{gemname}-gui
This package provides UI editor for ruby-%{gemname}.
%prep
%setup -q -c -T
mkdir -p ./%{gemdir}
mkdir -p ./%{gem_dir}
%build
export CONFIGURE_ARGS="--with-cflags='%{optflags}'"
gem install --local --install-dir .%{gemdir} -V --force %{SOURCE0}
gem install --local --install-dir .%{gem_dir} -V --force %{SOURCE0}
find . -name \*gem -exec chmod 0644 {} \;
# change cflags to honor Fedora compiler flags correctly
find . -name extconf.rb | xargs sed -i -e 's|-O3|-O2|'
pushd .%{geminstdir}
cat %PATCH0 | patch -s -p1 --fuzz=0
find . -name Makefile | xargs sed -i -e 's|-O3|-O2|'
# compile again
rake clean
rake
find . -name extconf.rb | while read f
do
make -C $(dirname $f) clean all install
done
# remove pure
rm -fr .%{gem_instdir}/lib/json/pure*
%install
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT%{gemdir}
mkdir -p $RPM_BUILD_ROOT%{_bindir}
mkdir -p $RPM_BUILD_ROOT%{ruby_sitearch}/%{gemname}/ext
mkdir -p $RPM_BUILD_ROOT%{gem_dir}
mkdir -p $RPM_BUILD_ROOT%{gem_extdir}/ext/%{gem_name}/ext
cp -a .%{gemdir}/* %{buildroot}/%{gemdir}
cp -a .%{gem_dir}/* %{buildroot}/%{gem_dir}
# Let's move arch dependent files to %%ruby_sitearch
find . -name "*.so" -exec mv {} \
$RPM_BUILD_ROOT%{ruby_sitearch}/%{gemname}/ext \;
# Let's move arch dependent files to arch specific directory
cp -a ./%{gem_instdir}/ext/json/ext/json \
$RPM_BUILD_ROOT%{gem_extdir}/ext/%{gem_name}/ext
mv $RPM_BUILD_ROOT%{gemdir}/bin/* $RPM_BUILD_ROOT%{_bindir}
chmod 0755 $RPM_BUILD_ROOT%{geminstdir}/install.rb
chmod 0755 $RPM_BUILD_ROOT%{geminstdir}/bin/*.rb
chmod 0755 $RPM_BUILD_ROOT%{geminstdir}/tests/*.rb
chmod 0755 $RPM_BUILD_ROOT%{geminstdir}/tools/server.rb
chmod 0644 $RPM_BUILD_ROOT%{geminstdir}/tools/fuzz.rb
chmod 0755 $RPM_BUILD_ROOT%{geminstdir}/benchmarks/*.rb
chmod 0644 $RPM_BUILD_ROOT%{gem_instdir}/install.rb
chmod 0644 $RPM_BUILD_ROOT%{gem_instdir}/tests/*.rb
chmod 0644 $RPM_BUILD_ROOT%{gem_instdir}/tools/server.rb
chmod 0644 $RPM_BUILD_ROOT%{gem_instdir}/tools/fuzz.rb
chmod 0644 $RPM_BUILD_ROOT%{gem_instdir}/benchmarks/*.rb
# We don't need those files anymore.
rm -rf $RPM_BUILD_ROOT%{geminstdir}/ext
rm -rf $RPM_BUILD_ROOT%{geminstdir}/install.rb
rm -rf $RPM_BUILD_ROOT%{geminstdir}/.require_paths
rm -rf $RPM_BUILD_ROOT%{gemdir}/doc/%{gemname}-%{version}/rdoc/classes/.src
rm -rf $RPM_BUILD_ROOT%{gemdir}/doc/%{gemname}-%{version}/rdoc/classes/.html
rm -rf $RPM_BUILD_ROOT%{gem_instdir}/ext
rm -rf $RPM_BUILD_ROOT%{gem_instdir}/install.rb
rm -rf $RPM_BUILD_ROOT%{gem_instdir}/{.require_paths,.gitignore,.travis.yml}
rm -rf $RPM_BUILD_ROOT%{gem_instdir}/lib/json/ext/
rm -rf $RPM_BUILD_ROOT%{gem_instdir}/diagrams
rm -rf $RPM_BUILD_ROOT%{gem_docdir}/rdoc/classes/.src
rm -rf $RPM_BUILD_ROOT%{gem_docdir}/rdoc/classes/.html
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}
%clean
rm -rf $RPM_BUILD_ROOT
rm -rf $RPM_BUILD_ROOT%{gem_instdir}/java/
%check
pushd .%{geminstdir}
rake test_ext --trace
pushd .%{gem_instdir}
ruby -S testrb -Ilib:ext/%{gem_name}/ext $(ls -1 tests/test_*.rb | sort)
popd
%files
%defattr(-,root,root,-)
%doc %{geminstdir}/[A-Z]*
%dir %{geminstdir}
%dir %{geminstdir}/lib
%dir %{geminstdir}/lib/%{gemname}
%{_bindir}/prettify_json.rb
%{geminstdir}/bin
%{geminstdir}/tools
%{geminstdir}/lib/%{gemname}.rb
%{geminstdir}/lib/%{gemname}/add
%{geminstdir}/lib/%{gemname}/pure
%{geminstdir}/lib/%{gemname}/*.xpm
%{geminstdir}/lib/%{gemname}/common.rb
%{geminstdir}/lib/%{gemname}/ext.rb
%{geminstdir}/lib/%{gemname}/pure.rb
%{geminstdir}/lib/%{gemname}/version.rb
%{ruby_sitearch}/%{gemname}
%{gemdir}/cache/%{gemname}-%{version}.gem
%{gemdir}/specifications/%{gemname}-%{version}.gemspec
%doc %{gem_instdir}/[A-Z]*
%exclude %{gem_instdir}/Rakefile
%dir %{gem_instdir}
%dir %{gem_instdir}/lib
%dir %{gem_instdir}/lib/%{gem_name}
%{gem_instdir}/tools/
%{gem_instdir}/lib/%{gem_name}.rb
%{gem_instdir}/lib/%{gem_name}/add
%{gem_instdir}/lib/%{gem_name}/common.rb
%{gem_instdir}/lib/%{gem_name}/ext.rb
%{gem_instdir}/lib/%{gem_name}/version.rb
%{gem_extdir}/
%{gem_cache}
%{gem_spec}
%files doc
%defattr(-,root,root,-)
%{geminstdir}/Rakefile
%{geminstdir}/data
%{geminstdir}/tests
%{geminstdir}/benchmarks
#%{geminstdir}/doc-main.txt
%{gemdir}/doc/%{gemname}-%{version}
%files -n ruby-%{gemname}
%defattr(-,root,root,-)
%dir %{ruby_sitelib}/%{gemname}
%{ruby_sitelib}/%{gemname}/add
%{ruby_sitelib}/%{gemname}/pure
%{ruby_sitelib}/%{gemname}/*.xpm
%{ruby_sitelib}/%{gemname}/common.rb
%{ruby_sitelib}/%{gemname}/ext.rb
%{ruby_sitelib}/%{gemname}/pure.rb
%{ruby_sitelib}/%{gemname}/version.rb
%{ruby_sitelib}/%{gemname}.rb
%files -n rubygem-%{gemname}-gui
%defattr(-,root,root,-)
%{_bindir}/edit_json.rb
%{geminstdir}/lib/%{gemname}/editor.rb
%files -n ruby-%{gemname}-gui
%defattr(-,root,root,-)
%{ruby_sitelib}/%{gemname}/editor.rb
%{gem_instdir}/Rakefile
%{gem_instdir}/data
%{gem_instdir}/tests
%{gem_instdir}/benchmarks
%{gem_instdir}/*gemspec
#%{gem_instdir}/doc-main.txt
%{gem_docdir}/
%changelog
* Sun Jan 21 2012 Mamoru Tasaka <mtasaka@fedoraproject.org> - 1.6.5-1
- 1.6.5
* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.4.6-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild

View file

@ -1 +1 @@
10a923c1c031c55d2bac861664431301 json-1.4.6.gem
f0e552b276b2bfb90a8a998c34db19ee json-1.6.5.gem