Spec URL: http://mifo.sk/RPMS/rubygem-deltacloud-core.spec SRPM URL: http://mifo.sk/RPMS/rubygem-deltacloud-core-0.2.0-1.fc14.src.rpm Description: The Deltacloud API is built as a service-based REST API. You do not directly link a Deltacloud library into your program to use it. Instead, a client speaks the Deltacloud API over HTTP to a server which implements the REST interface.
rpmlint: rubygem-deltacloud-core.noarch: W: no-documentation - There is a -doc subpackage rubygem-deltacloud-core.noarch: W: no-manual-page-for-binary deltacloudd - Non blocker (?) rubygem-deltacloud-core.noarch: W: incoherent-init-script-name deltacloud-core ('rubygem-deltacloud-core', 'rubygem-deltacloud-cored') - Well, I think for user it's better to keep 'gemname' as a init script name to avoid confusion. I think there are two options, first to keep name of this package (rubygem-deltacloud-core) and keep init script name as it is, or second to rename whole package to 'deltacloud-core'. What do you think ? 1 packages and 0 specfiles checked; 0 errors, 3 warnings.
I am taking this one.
* Check - pushd ./%{geminstdir} is not stepping into the correct directory. The right one is: pushd %{buildroot}%{geminstdir} * Shipping external project - This gem bundles external project in support folder. On Fedora shipping external project in the same package should (must) be avoided, see: https://fedoraproject.org/wiki/Packaging/Guidelines#Bundling_of_multiple_projects * Missing dependencies - Since this is Sinatra application, there have to be specified appropriate dependencies: Require: rubygem(sinatra) BuildRequire: rubygem(sinatra) - Missing rubygem-net-ssh dependency. Not sure if it is runtime or just development dependency - There are missing plenty of others, such as rack. Please test using mock. * rpmlint output: - Is this package ahead of upstream? $ rpmlint rubygem-deltacloud-core.spec rubygem-deltacloud-core.spec: W: invalid-url Source0: http://gems.rubyforge.org/gems/deltacloud-core-0.2.0.gem HTTP Error 404: Not Found 0 packages and 1 specfiles checked; 0 errors, 1 warnings. I am not going forward with this review, since I cannot build on my environment due to missing dependencies.
(In reply to comment #3) > * Check > - pushd ./%{geminstdir} is not stepping into the correct directory. > The right one is: pushd %{buildroot}%{geminstdir} AFAIK it's stepping to buildroot, but I replaced ./ with that macro just for sure. Thanks for noticing that. > * Shipping external project > - This gem bundles external project in support folder. On Fedora shipping > external project in the same package should (must) be avoided, see: Ouch, sorry I built that gem in support directory so there was some leftovers. It should be fixed now. > https://fedoraproject.org/wiki/Packaging/Guidelines#Bundling_of_multiple_projects > > * Missing dependencies > - Since this is Sinatra application, there have to be specified > appropriate dependencies: > > Require: rubygem(sinatra) > BuildRequire: rubygem(sinatra) Require: rubygem(sinatra) was already here but it was missing in BuildRequire. Should be fixed now. > - Missing rubygem-net-ssh dependency. Not sure if it is runtime > or just development dependency That's right, thanks for corrections. > > - There are missing plenty of others, such as rack. Please test using mock. Should be fixed now. Note that other dependencies like 'rubygem-aws' are not 'runtime' dependencies but they are optional. Eg. for using EC2 or other cloud providers. > * rpmlint output: > - Is this package ahead of upstream? > > $ rpmlint rubygem-deltacloud-core.spec > rubygem-deltacloud-core.spec: W: invalid-url Source0: > http://gems.rubyforge.org/gems/deltacloud-core-0.2.0.gem > HTTP Error 404: Not Found > 0 packages and 1 specfiles checked; 0 errors, 1 warnings. Yes, I'll need to wait with importing until this package will be available in upstream (which should happen in next few days). > > I am not going forward with this review, since I cannot build on my environment > due to missing dependencies. ======================= v0.2.0-2 ====================== Spec URL: http://mifo.sk/RPMS/deltacloud-core.spec SRPM URL: http://mifo.sk/RPMS/deltacloud-core-0.2.0-2.fc14.src.rpm Koji build: http://koji.fedoraproject.org/koji/taskinfo?taskID=2761635
(In reply to comment #4) > (In reply to comment #3) > > * Check > > - pushd ./%{geminstdir} is not stepping into the correct directory. > > The right one is: pushd %{buildroot}%{geminstdir} > > AFAIK it's stepping to buildroot, but I replaced ./ with that macro just for > sure. Thanks for noticing that. > > > * Shipping external project > > - This gem bundles external project in support folder. On Fedora shipping > > external project in the same package should (must) be avoided, see: > > Ouch, sorry I built that gem in support directory so there was some leftovers. > It should be fixed now. Still the same gem file is bundled => it is not fixed yet. > > https://fedoraproject.org/wiki/Packaging/Guidelines#Bundling_of_multiple_projects > > > > * Missing dependencies > > - Since this is Sinatra application, there have to be specified > > appropriate dependencies: > > > > Require: rubygem(sinatra) > > BuildRequire: rubygem(sinatra) > > Require: rubygem(sinatra) was already here but it was missing in BuildRequire. > Should be fixed now. > > > - Missing rubygem-net-ssh dependency. Not sure if it is runtime > > or just development dependency > > That's right, thanks for corrections. > > > > > - There are missing plenty of others, such as rack. Please test using mock. > > Should be fixed now. Note that other dependencies like 'rubygem-aws' are not > 'runtime' dependencies but they are optional. Eg. for using EC2 or other cloud > providers. > > > * rpmlint output: > > - Is this package ahead of upstream? > > > > $ rpmlint rubygem-deltacloud-core.spec > > rubygem-deltacloud-core.spec: W: invalid-url Source0: > > http://gems.rubyforge.org/gems/deltacloud-core-0.2.0.gem > > HTTP Error 404: Not Found > > 0 packages and 1 specfiles checked; 0 errors, 1 warnings. > > Yes, I'll need to wait with importing until this package will be available in > upstream (which should happen in next few days). > > > > > I am not going forward with this review, since I cannot build on my environment > > due to missing dependencies. > > ======================= v0.2.0-2 ====================== > > Spec URL: http://mifo.sk/RPMS/deltacloud-core.spec > SRPM URL: http://mifo.sk/RPMS/deltacloud-core-0.2.0-2.fc14.src.rpm > > Koji build: http://koji.fedoraproject.org/koji/taskinfo?taskID=2761635 * Rawhide build - The package cannot be build against rawhide, since rawhide contains newer Sinatra package and there are missing dependencies (tilt, may be others). But this might very well be Sinatra package flaw, since tilt is required in lib/sinatra/base.rb for sinatra 1.1.2 (hmm, no test suite executed during Sinatra build, so no surprise :/ ) * Project name - You have renamed the project, but I have some doubts about that. I believe it should be discussed in Ruby-SIG. Are there some policies for shipping Rails/Sinatra/Other Ruby applications? The reasons are bellow. - Is there any chance that any other gem will use the code in lib? If no, then it just pollutes Ruby load path and should be avoided to prevent unnecessary name collisions. - This package should be manageable just by RPM. Managing by RubyGems has no benefits for Fedora nor Ruby environment. Therefore please consider providing package in tar.gz or similar form instead of gem. * Shipping external project - This gem bundles external projects in lib/sinatra folder. On Fedora shipping external project in the same package should (must) be avoided, see: https://fedoraproject.org/wiki/Packaging/Guidelines#Bundling_of_multiple_projects * Licensing - lib/deltacloud/drivers/opennebula is GPLv2.1+
(In reply to comment #5) > (In reply to comment #4) > > (In reply to comment #3) > > > * Check > > > - pushd ./%{geminstdir} is not stepping into the correct directory. > > > The right one is: pushd %{buildroot}%{geminstdir} > > > > AFAIK it's stepping to buildroot, but I replaced ./ with that macro just for > > sure. Thanks for noticing that. > > > > > * Shipping external project > > > - This gem bundles external project in support folder. On Fedora shipping > > > external project in the same package should (must) be avoided, see: > > > > Ouch, sorry I built that gem in support directory so there was some leftovers. > > It should be fixed now. > > Still the same gem file is bundled => it is not fixed yet. Sorry for that, seems like building this RPM inside support directory wasn't good idea... > > > > https://fedoraproject.org/wiki/Packaging/Guidelines#Bundling_of_multiple_projects > > > > > > * Missing dependencies > > > - Since this is Sinatra application, there have to be specified > > > appropriate dependencies: > > > > > > Require: rubygem(sinatra) > > > BuildRequire: rubygem(sinatra) > > > > Require: rubygem(sinatra) was already here but it was missing in BuildRequire. > > Should be fixed now. > > > > > - Missing rubygem-net-ssh dependency. Not sure if it is runtime > > > or just development dependency > > > > That's right, thanks for corrections. > > > > > > > > - There are missing plenty of others, such as rack. Please test using mock. > > > > Should be fixed now. Note that other dependencies like 'rubygem-aws' are not > > 'runtime' dependencies but they are optional. Eg. for using EC2 or other cloud > > providers. > > > > > * rpmlint output: > > > - Is this package ahead of upstream? > > > > > > $ rpmlint rubygem-deltacloud-core.spec > > > rubygem-deltacloud-core.spec: W: invalid-url Source0: > > > http://gems.rubyforge.org/gems/deltacloud-core-0.2.0.gem > > > HTTP Error 404: Not Found > > > 0 packages and 1 specfiles checked; 0 errors, 1 warnings. > > > > Yes, I'll need to wait with importing until this package will be available in > > upstream (which should happen in next few days). > > > > > > > > I am not going forward with this review, since I cannot build on my environment > > > due to missing dependencies. > > > > ======================= v0.2.0-2 ====================== > > > > Spec URL: http://mifo.sk/RPMS/deltacloud-core.spec > > SRPM URL: http://mifo.sk/RPMS/deltacloud-core-0.2.0-2.fc14.src.rpm > > > > Koji build: http://koji.fedoraproject.org/koji/taskinfo?taskID=2761635 > > * Rawhide build > - The package cannot be build against rawhide, since rawhide contains newer > Sinatra package and there are missing dependencies (tilt, may be others). > But this might very well be Sinatra package flaw, since tilt is required in > lib/sinatra/base.rb for sinatra 1.1.2 (hmm, no test suite executed during > Sinatra build, so no surprise :/ ) > > * Project name > - You have renamed the project, but I have some doubts about that. I believe > it should be discussed in Ruby-SIG. Are there some policies for shipping > Rails/Sinatra/Other Ruby applications? The reasons are bellow. > > - Is there any chance that any other gem will use the code in lib? If no, > then > it just pollutes Ruby load path and should be avoided to prevent > unnecessary > name collisions. Well I guess all gems are separated and it will not pollute anything when it will not be explicitly required with 'require'. > - This package should be manageable just by RPM. Managing by RubyGems has no > benefits for Fedora nor Ruby environment. Therefore please consider > providing package in tar.gz or similar form instead of gem. I agree, this is something that needs to be discussed in Ruby-SIG. > * Shipping external project > - This gem bundles external projects in lib/sinatra folder. On Fedora > shipping external project in the same package should (must) be avoided, > see: > > > https://fedoraproject.org/wiki/Packaging/Guidelines#Bundling_of_multiple_projects Well it ships some rack middleware, which is not packaged and those are just single files with our modifications. Rack-Accept is also our modification which is not compatible with upstream either fedora package. Another things are OK I guess, url_for is also our source, not external one (managed and created by us). > * Licensing > - lib/deltacloud/drivers/opennebula is GPLv2.1+ Yes, but since we switched code to Apache Incubator, all sources are now under ASF licence. I'll fix the licence in upstream. Will upload new version tomorrow.
Closing this review. I'll open a new one with updated SPEC, which is totally different from this one. Also the new one will be not a Ruby gem.