# Generated from ffi-yajl-2.4.0.gem by gem2rpm -*- rpm-spec -*- %global gem_name ffi-yajl Name: rubygem-%{gem_name} Version: 2.4.0 Release: 2%{?dist} Summary: Ruby FFI wrapper around YAJL 2.x License: MIT URL: http://github.com/chef/ffi-yajl Source0: https://rubygems.org/gems/%{gem_name}-%{version}.gem # git clone https://github.com/chef/ffi-yajl && cd yajl # git checkout v2.4.0 # tar -czf rubygem-ffi-yajl-2.4.0-specs.tar.gz spec/ Source1: rubygem-ffi-yajl-2.4.0-specs.tar.gz # This provides libyajl2 gem stub to avoid the dependency. Patch0: rubygem-ffi-yajl-2.3.0-Provide-libyajl2-stub-to-avoid-the-need-for-libyajl2.patch Requires: (libyajl.so.2()(64bit) if libyajl.so.2()(64bit)) Requires: (libyajl.so.2 if libyajl.so.2) BuildRequires: ruby(release) BuildRequires: rubygems-devel BuildRequires: ruby-devel >= 2.2 # Compiler is required for build of gem binary extension. # https://fedoraproject.org/wiki/Packaging:C_and_C++#BuildRequires_and_Requires BuildRequires: gcc BuildRequires: yajl-devel BuildRequires: rubygem(rspec) Requires: ruby(release) %description Ruby FFI wrapper around YAJL 2.x. %package doc Summary: Documentation for %{name} Requires: %{name} = %{version}-%{release} BuildArch: noarch %description doc Documentation for %{name}. %prep %setup -q -n %{gem_name}-%{version} -b 1 %patch0 -p1 # Add fake libyajl2.rb introduced by patch0 into the file list. sed -i '/s.files/ s|\]$|, "lib/libyajl2.rb".freeze]|' ../%{gem_name}-%{version}.gemspec %gemspec_remove_dep -g libyajl2 ">= 1.2" # Use versioned .so file, otherwise yajl-devel would be needed. # https://github.com/chef/ffi-yajl/pull/83 sed -e 's/libyajl.so/libyajl.so.2/g' -i lib/ffi_yajl/map_library_name.rb ../spec/ffi_yajl/map_library_name_spec.rb %build # Create the gem as gem install only works on a gem file gem build ../%{gem_name}-%{version}.gemspec # %%gem_install compiles any C extensions and installs the gem into ./%%gem_dir # by default, so that we can move it into the buildroot in %%install export RUBYOPT=-I$(pwd)/lib %gem_install %install mkdir -p %{buildroot}%{gem_dir} cp -a .%{gem_dir}/* \ %{buildroot}%{gem_dir}/ mkdir -p %{buildroot}%{gem_extdir_mri}/ffi_yajl/ext cp -a .%{gem_extdir_mri}/gem.build_complete %{buildroot}%{gem_extdir_mri}/ cp -a .%{gem_extdir_mri}/ffi_yajl/ext/*.so %{buildroot}%{gem_extdir_mri}/ffi_yajl/ext/ # Prevent dangling symlink in -debuginfo (rhbz#878863). rm -rf %{buildroot}%{gem_instdir}/ext/ mkdir -p %{buildroot}%{_bindir} cp -a .%{_bindir}/* \ %{buildroot}%{_bindir}/ find %{buildroot}%{gem_instdir}/bin -type f -exec chmod a+x '{}' \; chmod a-x %{buildroot}%{gem_instdir}/lib/ffi_yajl/benchmark/subjects/unicode.json %check pushd .%{gem_instdir} ln -s %{_builddir}/spec . rspec -I$(dirs +1)%{gem_extdir_mri} popd %files %dir %{gem_instdir} %{_bindir}/ffi-yajl-bench %{gem_extdir_mri} %license %{gem_instdir}/LICENSE %license %{gem_instdir}/lib/ffi_yajl/benchmark/MIT-LICENSE %{gem_instdir}/bin %{gem_libdir} %exclude %{gem_libdir}/ffi_yajl/ext/.keep %exclude %{gem_cache} %{gem_spec} %files doc %doc %{gem_docdir} %doc %{gem_instdir}/README.md %changelog * Thu May 27 2021 Davide Cavalca - 2.4.0-2 - Fix requires for yail - Add missing requires on ruby(release) - Install additional license file * Sat May 1 2021 Davide Cavalca - 2.4.0-1 - Update to 2.4.0 - Require libyajl.so.2 directly - Fix file permissions - Add missing changelog entry * Sun Jan 21 2018 Julian C. Dunn - 2.3.1-1 - Update to 2.3.1 * Mon May 29 2017 Vít Ondruch - 2.3.0-1 - Initial package