# NOTE: This package has been failing the EPEL dependency checks for months on # EL6. There was a bug filed long ago (probably about a year) asking GTK to # not be a dependency. This was split into a seperate package, however since # ruby-gtk2 was not available in EPEL6, failures still happened. After waiting # and wanting JSON in EPEL for quite a while, I decided to take action. In # this spec I have commented out the -gui package. This removes the # requirements for ruby-gtk2 and then we get json. # As of today, there is still no ruby-gtk2 available in EL6 or EPEL. # stahnma 2011-Dec-27 %{!?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 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: 1%{?dist} Summary: A JSON implementation in Ruby 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) BuildRequires: ruby, ruby-devel BuildRequires: rubygem(rake) Requires: ruby(abi) = 1.8 Requires: rubygems Provides: rubygem(json) = %{version} %description This is a implementation of the JSON specification according to RFC 4627 in Ruby. You can think of it as a low fat alternative to XML, if you want to store data to disk or transmit it over a network rather than use a verbose markup language. %package doc 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} %build export CONFIGURE_ARGS="--with-cflags='%{optflags}'" gem install --local --install-dir .%{gemdir} -V --force %{SOURCE0} %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 cp -a .%{gemdir}/* %{buildroot}/%{gemdir} # Let's move arch dependent files to %%ruby_sitearch find . -name "*.so" -exec mv {} \ $RPM_BUILD_ROOT%{ruby_sitearch}/%{gemname}/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 # 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 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} # Removing GTK as a requirement rm -f %{buildroot}%{_bindir}/edit_json.rb rm -f %{buildroot}%{geminstdir}/lib/%{gemname}/editor.rb rm -f %{buildroot}%{ruby_sitelib}/%{gemname}/editor.rb %clean rm -rf $RPM_BUILD_ROOT %check #pushd .%{geminstdir} #rake test --trace #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 %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 %changelog * Wed Dec 28 2011 - 1.4.6-1 - Update to 1.4.6. (where rawhide is) - rebuilt to remove dependency (and subpackage) for gui * Fri Jun 11 2010 Xavier Lamien - 1.4.3-3 - Move ruby's site_lib editor to ruby-json-gui. * Mon May 10 2010 Xavier Lamien - 1.4.3-2 - Move editor out of ruby-json sub-package. * Sun May 09 2010 Xavier Lamien - 1.4.3-1 - Update release. - Split-out json editor. * Thu Oct 29 2009 Xavier Lamien - 1.1.9-1 - Update release. * Wed Aug 12 2009 Xavier Lamien - 1.1.7-3 - Fix gem scripts and install_dir. - Enable %%check stage. * Wed Aug 05 2009 Xavier Lamien - 1.1.7-2 - Rebuild in correct buildir process. - Add sub packages. * Mon Aug 03 2009 Xavier Lamien - 1.1.7-1 - Update release. * Sat Jun 06 2009 Xavier Lamien - 1.1.6-1 - Update release. * Tue May 12 2009 Xavier Lamien - 1.1.5-1 - Update release. * Thu Apr 02 2009 Xavier Lamien - 1.1.4-1 - Update release. * Sat Jul 12 2008 Xavier Lamien - 1.1.3-1 - Initial RPM release.