From d8155f4d1c7a3f19297b4029012fa561313e53bc Mon Sep 17 00:00:00 2001 From: lyn1001 Date: Sat, 5 Sep 2020 18:09:22 +0800 Subject: [PATCH 1/3] fix build fail --- rubygem-eventmachine.spec | 42 +++++----- rubygem-eventmachine.spec~ | 107 +++++++++++++++++++++++ spec_prep_plus.sh | 168 +++++++++++++++++++++++++++++++++++++ 3 files changed, 297 insertions(+), 20 deletions(-) create mode 100644 rubygem-eventmachine.spec~ create mode 100755 spec_prep_plus.sh diff --git a/rubygem-eventmachine.spec b/rubygem-eventmachine.spec index af64257..26d1a81 100644 --- a/rubygem-eventmachine.spec +++ b/rubygem-eventmachine.spec @@ -1,22 +1,19 @@ +%bcond_with bootstrap %global gem_name eventmachine %{!?network: %global network 0} -Name: rubygem-%{gem_name} -Version: 1.2.7 -Release: 1 -Summary: Ruby/EventMachine library -License: GPLv2 or Ruby -URL: http://rubyeventmachine.com -Source0: https://rubygems.org/gems/%{gem_name}-%{version}.gem -Patch0: rubygem-eventmachine-1.2.7-OpenSSL-1.1.0-test-updates.patch -Patch1: rubygem-eventmachine-1.2.7-Update-runtime-files-for-TLS13-no-SSL-OpenSSL-lib-info.patch -Patch2: rubygem-eventmachine-1.2.7-Move-console-SSL-Info-code-to-em_test_helper.patch -Patch3: rubygem-eventmachine-1.2.7-Openssl-1.1.1-updates.patch -BuildRequires: ruby(release) -BuildRequires: rubygems-devel -BuildRequires: ruby-devel -BuildRequires: gcc-c++ -BuildRequires: openssl-devel -BuildRequires: rubygem(test-unit) +Name: rubygem-%{gem_name} +Version: 1.2.7 +Release: 1 +Summary: Ruby/EventMachine library +License: GPLv2 or Ruby +URL: http://rubyeventmachine.com +Source0: https://rubygems.org/gems/%{gem_name}-%{version}.gem +Patch0: rubygem-eventmachine-1.2.7-OpenSSL-1.1.0-test-updates.patch +Patch1: rubygem-eventmachine-1.2.7-Update-runtime-files-for-TLS13-no-SSL-OpenSSL-lib-info.patch +Patch2: rubygem-eventmachine-1.2.7-Move-console-SSL-Info-code-to-em_test_helper.patch +Patch3: rubygem-eventmachine-1.2.7-Openssl-1.1.1-updates.patch +BuildRequires: ruby(release) rubygems-devel ruby-devel gcc-c++ openssl-devel +BuildRequires: rubygem(test-unit) %description EventMachine implements a fast, single-threaded engine for arbitrary network communications. It's extremely easy to use in Ruby. EventMachine wraps all @@ -30,9 +27,9 @@ of EventMachine is to enable programs to easily interface with other programs using TCP/IP, especially if custom protocols are required. %package doc -Summary: Documentation for %{name} -Requires: %{name} = %{version}-%{release} -BuildArch: noarch +Summary: Documentation for %{name} +Requires: %{name} = %{version}-%{release} +BuildArch: noarch %description doc Documentation for %{name}. @@ -56,6 +53,7 @@ mkdir -p %{buildroot}%{gem_extdir_mri} cp -a .%{gem_extdir_mri}/{gem.build_complete,*.so} %{buildroot}%{gem_extdir_mri}/ rm -rf %{buildroot}%{gem_instdir}/ext/ +%if %{with bootstrap} %check pushd .%{gem_instdir} ruby -Ilib:$(dirs +1)%{gem_extdir_mri}:tests -e "Dir.glob './tests/**/test_*.rb', &method(:require)" -- \ @@ -81,6 +79,7 @@ ruby -Ilib:$(dirs +1)%{gem_extdir_mri}:tests -e "Dir.glob './tests/**/test_*.rb' --ignore-name=/^test_nameserver$/ \ %endif popd +%endif %files %dir %{gem_instdir} @@ -102,5 +101,8 @@ popd %{gem_instdir}/tests %changelog +* Sat Sep 5 2020 liyanan - 1.2.7-2 +- fix build fail + * Sat Jul 25 2020 wutao - 1.2.7-1 - package init diff --git a/rubygem-eventmachine.spec~ b/rubygem-eventmachine.spec~ new file mode 100644 index 0000000..e1879d3 --- /dev/null +++ b/rubygem-eventmachine.spec~ @@ -0,0 +1,107 @@ +'%bcond_with bootstrap' +%global gem_name eventmachine +%{!?network: %global network 0} +Name: rubygem-%{gem_name} +Version: 1.2.7 +Release: 1 +Summary: Ruby/EventMachine library +License: GPLv2 or Ruby +URL: http://rubyeventmachine.com +Source0: https://rubygems.org/gems/%{gem_name}-%{version}.gem +Patch0: rubygem-eventmachine-1.2.7-OpenSSL-1.1.0-test-updates.patch +Patch1: rubygem-eventmachine-1.2.7-Update-runtime-files-for-TLS13-no-SSL-OpenSSL-lib-info.patch +Patch2: rubygem-eventmachine-1.2.7-Move-console-SSL-Info-code-to-em_test_helper.patch +Patch3: rubygem-eventmachine-1.2.7-Openssl-1.1.1-updates.patch +BuildRequires: ruby(release) +BuildRequires: rubygems-devel +BuildRequires: ruby-devel +BuildRequires: gcc-c++ +BuildRequires: openssl-devel +BuildRequires: rubygem(test-unit) +%description +EventMachine implements a fast, single-threaded engine for arbitrary network +communications. It's extremely easy to use in Ruby. EventMachine wraps all +interactions with IP sockets, allowing programs to concentrate on the +implementation of network protocols. It can be used to create both network +servers and clients. To create a server or client, a Ruby program only needs +to specify the IP address and port, and provide a Module that implements the +communications protocol. Implementations of several standard network protocols +are provided with the package, primarily to serve as examples. The real goal +of EventMachine is to enable programs to easily interface with other programs +using TCP/IP, especially if custom protocols are required. + +%package doc +Summary: Documentation for %{name} +Requires: %{name} = %{version}-%{release} +BuildArch: noarch +%description doc +Documentation for %{name}. + +%prep +%setup -q -n %{gem_name}-%{version} +sed -i '/SSL_CTX_set_cipher_list/ s/".*"/"PROFILE=SYSTEM"/' ext/ssl.cpp +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 + +%build +gem build ../%{gem_name}-%{version}.gemspec +%gem_install + +%install +mkdir -p %{buildroot}%{gem_dir} +cp -a .%{gem_dir}/* \ + %{buildroot}%{gem_dir}/ +mkdir -p %{buildroot}%{gem_extdir_mri} +cp -a .%{gem_extdir_mri}/{gem.build_complete,*.so} %{buildroot}%{gem_extdir_mri}/ +rm -rf %{buildroot}%{gem_instdir}/ext/ + +%check +pushd .%{gem_instdir} +ruby -Ilib:$(dirs +1)%{gem_extdir_mri}:tests -e "Dir.glob './tests/**/test_*.rb', &method(:require)" -- \ + --verbose \ + --ignore-name /^test_exception_on_unbind$/ \ + --ignore-name /^test_.*v3.*$/ \ + --ignore-name /^test_no_ecdh_curve$/ \ + --ignore-name=/^test_cookie$/ \ + --ignore-name=/^test_http_client$/ \ + --ignore-name=/^test_http_client_1$/ \ + --ignore-name=/^test_http_client_2$/ \ + --ignore-name=/^test_version_1_0$/ \ + --ignore-name=/^test_https_get$/ \ + --ignore-name=/^test_get$/ \ + --ignore-name=/^test_get_pipeline$/ \ + --ignore-name=/^test_ipv6_udp_local_server$/ \ +%if 0%{network} < 1 + --ignore-name=/^test_a$/ \ + --ignore-name=/^test_a_pair$/ \ + --ignore-name=/^test_bad_host$/ \ + --ignore-name=/^test_failure_timer_cleanup$/ \ + --ignore-name=/^test_timer_cleanup$/ \ + --ignore-name=/^test_nameserver$/ \ +%endif +popd + +%files +%dir %{gem_instdir} +%{gem_extdir_mri} +%license %{gem_instdir}/GNU +%license %{gem_instdir}/LICENSE +%{gem_libdir} +%exclude %{gem_cache} +%{gem_spec} + +%files doc +%doc %{gem_docdir} +%doc %{gem_instdir}/CHANGELOG.md +%doc %{gem_instdir}/README.md +%doc %{gem_instdir}/docs +%{gem_instdir}/examples +%{gem_instdir}/java +%{gem_instdir}/rakelib +%{gem_instdir}/tests + +%changelog +* Sat Jul 25 2020 wutao - 1.2.7-1 +- package init diff --git a/spec_prep_plus.sh b/spec_prep_plus.sh new file mode 100755 index 0000000..a1d43e4 --- /dev/null +++ b/spec_prep_plus.sh @@ -0,0 +1,168 @@ +changelog_update(){ +# changelog replace +sed -i '/^%changelog/,$d' $file +date=`date +"%a %b %_d %Y"` +name='liyanan' +email='liyanan32@huawei.com' +changelog="%changelog\n* $date $name <$email> - ${version}-$release\n- fix build fail" +echo -e $changelog >> $file #sed -n '/^%changelog/,$p' $file +echo "Hint: changelog updated" +} + + +single_merge(){ +awk -v key="$1" -v max_len=80 -F : \ +'BEGIN {\ +tmp="";\ +} \ +{\ + if( key == $1 ){\ + if( NF > 2){\ + oofs=FS;FS="#"; + bbb=sub(/[[:alnum:] ]+:/,"",$0);\ + aaa=$bbb; + FS=oofs; + }\ + else{\ + $1=""; \ + aaa=$0;\ + }\ + + tmp1=tmp aaa + gsub(" +"," ",tmp1);\ + #print FNR tmp1 + if(length(tmp1) > max_len){\ + gsub(" +"," ",tmp);\ + printf "%-20s%s\n",key ":",tmp;\ + tmp="";\ + }\ + tmp=tmp aaa;\ + }\ + else {\ + if( length(tmp) != 0){\ + gsub(" +"," ",tmp);\ + printf "%-20s%s\n",key ":",tmp;\ + tmp="";\ + }\ + print $0;\ + }\ + +}' +} + +headers_merge(){ + cat $file | single_merge "BuildRequires" | single_merge "Requires" > .$file + mv -f .$file $file + echo "Hint: Tags merged" +} + +delete_comment(){ + sed -i '/^#.*/d' $file + echo "Hint: commentline deleted" +} +delete_blank(){ + sed -i 's/[[:blank:]]\{1,\}$//g' $file + echo "Hint: tail-blank deleted " +} + +insert_enter(){ + sed -i '/^$/d' $file + sed -i '/^%package.*/i\ ' $file + sed -i '/^%pre.*/i\ ' $file + sed -i '/^%post.*/i\ ' $file + sed -i '/^%build.*/i\ ' $file + sed -i '/^%install.*/i\ ' $file + sed -i '/^%check*/i\ ' $file + sed -i '/^%files.*/i\ ' $file + sed -i '/^%changelog.*/i\ ' $file + echo "Hint: insert newline before stages" +} + +increase_release(){ + # release +1 + sed -i "/^Release.*$/s/${release_oo}/${release}/" $file + # delete Group Tags + sed -i '/^Group.*/d' $file + echo "Hint: release ++" +} + +header_align() { +awk '{ +if ($0 ~ /^[A-Z][[:alnum:]]*: / ) { +va=""; +for(i=2;i<=NF;i++){ va=va" "$i}; +printf("%-20s%s\n",$1,va); +} +else print $0; +}' $file > .$file +mv -f .$file $file +echo "Hint: header_align done" +} + +#################### main +main(){ + +file_o=$1 +file=${file_o}.cp +sed -i 's/\t/ /g' $1 +#sed -i 's/%package\s\+javadoc$/%package help/g' $1 +#sed -i '/%description\s\+javadoc$/i\Provides: %{name}-javadoc = %{version}-%{release}' $1 +#sed -i '/%description\s\+javadoc$/i\Obsoletes: %{name}-javadoc < %{version}-%{release}' $1 +#sed -i 's/%description\s\+javadoc$/%description help/g' $1 +#sed -i 's/%files\s\+javadoc/%files help/g' $1 +#sed -i 's/%package\s\+doc$/%package help/g' $1 +#sed -i '/%description\s\+doc$/i\Provides: %{name}-doc = %{version}-%{release}' $1 +#sed -i '/%description\s\+doc$/i\Obsoletes: %{name}-doc < %{version}-%{release}' $1 +#sed -i 's/%description\s\+doc$/%description help/g' $1 +#sed -i 's/%files\s\+doc$/%files help/g' $1 +#echo 'mv javadoc or doc to help succeed!!!!!!!' +sed -i "1i '%bcond_with bootstrap'" $1 +sed -i "%check/i\'%if %{with bootstrap}'" $1 + + +cp -f $file_o $file + +# got verison release +version=`cat $file |grep '^Version' | awk '{print $2}'` +release_oo=`cat $file |grep '^Release' | awk '{print $2}'` +release_o=`echo $release_oo | sed 's/%{.*}//'` +release=$((release_o+1)) +release=1 + +#marcos_expand keep this bug ... +delete_comment +changelog_update +increase_release +header_align +headers_merge +insert_enter +delete_blank + +#let's play +#read -p "Hint: exec vimdiff $file $file_o ? enter [yes/no]: " ans +#vimdiff $file $file_o +#read -p "Hint: do mv -b -f $file $file_o ? enter [yes/no]: " ans +#if [[ $ans =~ [Yy]([Ee][Ss])? ]];then + mv -b -f $file $file_o + echo "Hint: $file_o updated" +#else +# rm -f $file +# echo "Hint: $file deleted. Not my bad :P " +#fi +echo "From SONG: Enjoy your spec working !" +} + +banner(){ +cat < Date: Sat, 5 Sep 2020 18:09:45 +0800 Subject: [PATCH 2/3] fix build fail --- rubygem-eventmachine.spec~ | 107 ----------------------- spec_prep_plus.sh | 168 ------------------------------------- 2 files changed, 275 deletions(-) delete mode 100644 rubygem-eventmachine.spec~ delete mode 100755 spec_prep_plus.sh diff --git a/rubygem-eventmachine.spec~ b/rubygem-eventmachine.spec~ deleted file mode 100644 index e1879d3..0000000 --- a/rubygem-eventmachine.spec~ +++ /dev/null @@ -1,107 +0,0 @@ -'%bcond_with bootstrap' -%global gem_name eventmachine -%{!?network: %global network 0} -Name: rubygem-%{gem_name} -Version: 1.2.7 -Release: 1 -Summary: Ruby/EventMachine library -License: GPLv2 or Ruby -URL: http://rubyeventmachine.com -Source0: https://rubygems.org/gems/%{gem_name}-%{version}.gem -Patch0: rubygem-eventmachine-1.2.7-OpenSSL-1.1.0-test-updates.patch -Patch1: rubygem-eventmachine-1.2.7-Update-runtime-files-for-TLS13-no-SSL-OpenSSL-lib-info.patch -Patch2: rubygem-eventmachine-1.2.7-Move-console-SSL-Info-code-to-em_test_helper.patch -Patch3: rubygem-eventmachine-1.2.7-Openssl-1.1.1-updates.patch -BuildRequires: ruby(release) -BuildRequires: rubygems-devel -BuildRequires: ruby-devel -BuildRequires: gcc-c++ -BuildRequires: openssl-devel -BuildRequires: rubygem(test-unit) -%description -EventMachine implements a fast, single-threaded engine for arbitrary network -communications. It's extremely easy to use in Ruby. EventMachine wraps all -interactions with IP sockets, allowing programs to concentrate on the -implementation of network protocols. It can be used to create both network -servers and clients. To create a server or client, a Ruby program only needs -to specify the IP address and port, and provide a Module that implements the -communications protocol. Implementations of several standard network protocols -are provided with the package, primarily to serve as examples. The real goal -of EventMachine is to enable programs to easily interface with other programs -using TCP/IP, especially if custom protocols are required. - -%package doc -Summary: Documentation for %{name} -Requires: %{name} = %{version}-%{release} -BuildArch: noarch -%description doc -Documentation for %{name}. - -%prep -%setup -q -n %{gem_name}-%{version} -sed -i '/SSL_CTX_set_cipher_list/ s/".*"/"PROFILE=SYSTEM"/' ext/ssl.cpp -%patch0 -p1 -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 - -%build -gem build ../%{gem_name}-%{version}.gemspec -%gem_install - -%install -mkdir -p %{buildroot}%{gem_dir} -cp -a .%{gem_dir}/* \ - %{buildroot}%{gem_dir}/ -mkdir -p %{buildroot}%{gem_extdir_mri} -cp -a .%{gem_extdir_mri}/{gem.build_complete,*.so} %{buildroot}%{gem_extdir_mri}/ -rm -rf %{buildroot}%{gem_instdir}/ext/ - -%check -pushd .%{gem_instdir} -ruby -Ilib:$(dirs +1)%{gem_extdir_mri}:tests -e "Dir.glob './tests/**/test_*.rb', &method(:require)" -- \ - --verbose \ - --ignore-name /^test_exception_on_unbind$/ \ - --ignore-name /^test_.*v3.*$/ \ - --ignore-name /^test_no_ecdh_curve$/ \ - --ignore-name=/^test_cookie$/ \ - --ignore-name=/^test_http_client$/ \ - --ignore-name=/^test_http_client_1$/ \ - --ignore-name=/^test_http_client_2$/ \ - --ignore-name=/^test_version_1_0$/ \ - --ignore-name=/^test_https_get$/ \ - --ignore-name=/^test_get$/ \ - --ignore-name=/^test_get_pipeline$/ \ - --ignore-name=/^test_ipv6_udp_local_server$/ \ -%if 0%{network} < 1 - --ignore-name=/^test_a$/ \ - --ignore-name=/^test_a_pair$/ \ - --ignore-name=/^test_bad_host$/ \ - --ignore-name=/^test_failure_timer_cleanup$/ \ - --ignore-name=/^test_timer_cleanup$/ \ - --ignore-name=/^test_nameserver$/ \ -%endif -popd - -%files -%dir %{gem_instdir} -%{gem_extdir_mri} -%license %{gem_instdir}/GNU -%license %{gem_instdir}/LICENSE -%{gem_libdir} -%exclude %{gem_cache} -%{gem_spec} - -%files doc -%doc %{gem_docdir} -%doc %{gem_instdir}/CHANGELOG.md -%doc %{gem_instdir}/README.md -%doc %{gem_instdir}/docs -%{gem_instdir}/examples -%{gem_instdir}/java -%{gem_instdir}/rakelib -%{gem_instdir}/tests - -%changelog -* Sat Jul 25 2020 wutao - 1.2.7-1 -- package init diff --git a/spec_prep_plus.sh b/spec_prep_plus.sh deleted file mode 100755 index a1d43e4..0000000 --- a/spec_prep_plus.sh +++ /dev/null @@ -1,168 +0,0 @@ -changelog_update(){ -# changelog replace -sed -i '/^%changelog/,$d' $file -date=`date +"%a %b %_d %Y"` -name='liyanan' -email='liyanan32@huawei.com' -changelog="%changelog\n* $date $name <$email> - ${version}-$release\n- fix build fail" -echo -e $changelog >> $file #sed -n '/^%changelog/,$p' $file -echo "Hint: changelog updated" -} - - -single_merge(){ -awk -v key="$1" -v max_len=80 -F : \ -'BEGIN {\ -tmp="";\ -} \ -{\ - if( key == $1 ){\ - if( NF > 2){\ - oofs=FS;FS="#"; - bbb=sub(/[[:alnum:] ]+:/,"",$0);\ - aaa=$bbb; - FS=oofs; - }\ - else{\ - $1=""; \ - aaa=$0;\ - }\ - - tmp1=tmp aaa - gsub(" +"," ",tmp1);\ - #print FNR tmp1 - if(length(tmp1) > max_len){\ - gsub(" +"," ",tmp);\ - printf "%-20s%s\n",key ":",tmp;\ - tmp="";\ - }\ - tmp=tmp aaa;\ - }\ - else {\ - if( length(tmp) != 0){\ - gsub(" +"," ",tmp);\ - printf "%-20s%s\n",key ":",tmp;\ - tmp="";\ - }\ - print $0;\ - }\ - -}' -} - -headers_merge(){ - cat $file | single_merge "BuildRequires" | single_merge "Requires" > .$file - mv -f .$file $file - echo "Hint: Tags merged" -} - -delete_comment(){ - sed -i '/^#.*/d' $file - echo "Hint: commentline deleted" -} -delete_blank(){ - sed -i 's/[[:blank:]]\{1,\}$//g' $file - echo "Hint: tail-blank deleted " -} - -insert_enter(){ - sed -i '/^$/d' $file - sed -i '/^%package.*/i\ ' $file - sed -i '/^%pre.*/i\ ' $file - sed -i '/^%post.*/i\ ' $file - sed -i '/^%build.*/i\ ' $file - sed -i '/^%install.*/i\ ' $file - sed -i '/^%check*/i\ ' $file - sed -i '/^%files.*/i\ ' $file - sed -i '/^%changelog.*/i\ ' $file - echo "Hint: insert newline before stages" -} - -increase_release(){ - # release +1 - sed -i "/^Release.*$/s/${release_oo}/${release}/" $file - # delete Group Tags - sed -i '/^Group.*/d' $file - echo "Hint: release ++" -} - -header_align() { -awk '{ -if ($0 ~ /^[A-Z][[:alnum:]]*: / ) { -va=""; -for(i=2;i<=NF;i++){ va=va" "$i}; -printf("%-20s%s\n",$1,va); -} -else print $0; -}' $file > .$file -mv -f .$file $file -echo "Hint: header_align done" -} - -#################### main -main(){ - -file_o=$1 -file=${file_o}.cp -sed -i 's/\t/ /g' $1 -#sed -i 's/%package\s\+javadoc$/%package help/g' $1 -#sed -i '/%description\s\+javadoc$/i\Provides: %{name}-javadoc = %{version}-%{release}' $1 -#sed -i '/%description\s\+javadoc$/i\Obsoletes: %{name}-javadoc < %{version}-%{release}' $1 -#sed -i 's/%description\s\+javadoc$/%description help/g' $1 -#sed -i 's/%files\s\+javadoc/%files help/g' $1 -#sed -i 's/%package\s\+doc$/%package help/g' $1 -#sed -i '/%description\s\+doc$/i\Provides: %{name}-doc = %{version}-%{release}' $1 -#sed -i '/%description\s\+doc$/i\Obsoletes: %{name}-doc < %{version}-%{release}' $1 -#sed -i 's/%description\s\+doc$/%description help/g' $1 -#sed -i 's/%files\s\+doc$/%files help/g' $1 -#echo 'mv javadoc or doc to help succeed!!!!!!!' -sed -i "1i '%bcond_with bootstrap'" $1 -sed -i "%check/i\'%if %{with bootstrap}'" $1 - - -cp -f $file_o $file - -# got verison release -version=`cat $file |grep '^Version' | awk '{print $2}'` -release_oo=`cat $file |grep '^Release' | awk '{print $2}'` -release_o=`echo $release_oo | sed 's/%{.*}//'` -release=$((release_o+1)) -release=1 - -#marcos_expand keep this bug ... -delete_comment -changelog_update -increase_release -header_align -headers_merge -insert_enter -delete_blank - -#let's play -#read -p "Hint: exec vimdiff $file $file_o ? enter [yes/no]: " ans -#vimdiff $file $file_o -#read -p "Hint: do mv -b -f $file $file_o ? enter [yes/no]: " ans -#if [[ $ans =~ [Yy]([Ee][Ss])? ]];then - mv -b -f $file $file_o - echo "Hint: $file_o updated" -#else -# rm -f $file -# echo "Hint: $file deleted. Not my bad :P " -#fi -echo "From SONG: Enjoy your spec working !" -} - -banner(){ -cat < Date: Sat, 5 Sep 2020 18:11:32 +0800 Subject: [PATCH 3/3] fix build fail --- rubygem-eventmachine.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rubygem-eventmachine.spec b/rubygem-eventmachine.spec index 26d1a81..cd32688 100644 --- a/rubygem-eventmachine.spec +++ b/rubygem-eventmachine.spec @@ -3,7 +3,7 @@ %{!?network: %global network 0} Name: rubygem-%{gem_name} Version: 1.2.7 -Release: 1 +Release: 2 Summary: Ruby/EventMachine library License: GPLv2 or Ruby URL: http://rubyeventmachine.com