Bug 840619

Summary: Review Request: heat - AWS CloudFormation functionality for OpenStack
Product: [Fedora] Fedora Reporter: Jeff Peeler <jpeeler>
Component: Package ReviewAssignee: Steven Dake <sdake>
Status: CLOSED NEXTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: dwmw2, limburgher, notting, package-review, sdake
Target Milestone: ---Flags: sdake: fedora‑review+
limburgher: fedora‑cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-10-07 11:56:01 EDT Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Description Jeff Peeler 2012-07-16 13:35:21 EDT
Spec URL: https://raw.github.com/heat-api/heat-rpms/master/heat.spec
SRPM URL: http://people.redhat.com/jpeeler/heat-4-2-src.rpm
Description: Heat provides a REST API to orchestrate multiple composite cloud applications implementing the AWS CloudFormation API.
Fedora Account System Username: jpeeler
Comment 1 Jeff Peeler 2012-07-16 13:40:21 EDT
I have already found my sponsor and will point him here. I have several package reviews currently in progress so that I can join the packager group:

Review Request: gimp-dds-plugin
https://bugzilla.redhat.com/show_bug.cgi?id=821404

Review Request: gnome-shell-extension-system-monitor-applet
https://bugzilla.redhat.com/show_bug.cgi?id=755510

Review Request: rubygem-sshkey
https://bugzilla.redhat.com/show_bug.cgi?id=831749
Comment 2 Steven Dake 2012-07-16 14:07:07 EDT
I'll sponsor you.

Its nice that you already know the drill ;)  Your reviews look pretty good, but unfortunately some fields are left blank in the fedora review tool.  Please re-review the above packages completing the review.  A [ ] doesn't tell the new packager the state of the requirement.  Also, please provide a full review of rubygem-sshkey, rather then a "it looks good".

Regards
-steve
Comment 3 Jeff Peeler 2012-07-16 14:59:15 EDT
Steve, I'll fully complete the above reviews now. Also, here is another review request that is a companion package for Heat, heat_jeos:

https://bugzilla.redhat.com/show_bug.cgi?id=840636
Comment 4 Steven Dake 2012-07-18 22:33:51 EDT
The reviews in comment #1 are outstanding.  I'm convinced you know how to provide reviews.  The next step is for me to review this package and then add you to the packagers group.  After the review is completed, I will prompt you to submit a git scm request.
Comment 5 Steven Dake 2012-07-18 22:44:03 EDT
Jeff,

Please read:
http://fedoraproject.org/wiki/Packaging:Python

Specifically this package needs a python2-devel BR.  The rest looks pretty good.  I'll provide a more complete review in the morning.
Comment 6 Jeff Peeler 2012-07-19 16:09:58 EDT
I added python2-devel in the BuildRequires.
Comment 7 Steven Dake 2012-07-20 13:49:59 EDT
Jeff,

After making any change in a review please post a new SRPM and SPEC file in a new comment.

Regards
-steve
Comment 8 Jeff Peeler 2012-07-20 13:53:16 EDT
Spec URL: https://raw.github.com/heat-api/heat-rpms/master/heat.spec
SRPM URL: http://people.redhat.com/jpeeler/heat-4-2-src.rpm
Description: Heat provides a REST API to orchestrate multiple composite cloud applications implementing the AWS CloudFormation API.
Fedora Account System Username: jpeeler
Comment 9 Jeff Peeler 2012-07-20 14:07:11 EDT
With version bump this time.

Spec URL: https://raw.github.com/heat-api/heat-rpms/master/heat.spec
SRPM URL: http://people.redhat.com/jpeeler/heat-4-3-src.rpm
Comment 10 Steven Dake 2012-07-21 15:18:24 EDT
specfile changelog missing 4-3...  Can you update the spec file?

Thanks
-steve
Comment 11 Steven Dake 2012-07-21 15:43:50 EDT
Jeff,

I cannot download your src.rpm file.  Perhaps permissions on the file need to be expanded to other users?
Comment 12 Jeff Peeler 2012-07-22 21:35:08 EDT
Sorry Steve, typoed both times.

SRPM URL: http://people.redhat.com/jpeeler/heat-4-3.src.rpm
Comment 14 Steven Dake 2012-07-24 11:38:06 EDT
Package review:

Package Review
==============

Key:
- = N/A
x = Pass
! = Fail
? = Not evaluated



==== Generic ====
[x]: EXTRA Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).
[x]: EXTRA Spec file according to URL is the same as in SRPM.
[x]: MUST Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[x]: MUST Package successfully compiles and builds into binary rpms on at
     least one supported primary architecture.
[-]: MUST %build honors applicable compiler flags or justifies otherwise.
[x]: MUST All build dependencies are listed in BuildRequires, except for any
     that are listed in the exceptions section of Packaging Guidelines.
[x]: MUST Buildroot is not present
     Note: Unless packager wants to package for EPEL5 this is fine
[x]: MUST Package contains no bundled libraries.
[x]: MUST Changelog in prescribed format.
[x]: MUST Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
     Note: Clean would be needed if support for EPEL is required
[x]: MUST Sources contain only permissible code or content.
[x]: MUST %config files are marked noreplace or the reason is justified.
[!]: MUST Each %files section contains %defattr if rpm < 4.4
     Note: defattr(....) present in %files section. This is OK if packaging
     for EPEL5. Otherwise not needed
[x]: MUST Macros in Summary, %description expandable at SRPM build time.
[-]: MUST Package contains desktop file if it is a GUI application.
[-]: MUST Development files must be in a -devel package
[-]: MUST Package requires other packages for directories it uses.
[x]: MUST Package uses nothing in %doc for runtime.
[x]: MUST Package is not known to require ExcludeArch.
[x]: MUST Permissions on files are set properly.
[x]: MUST Package does not contain duplicates in %files.
[x]: MUST Package complies to the Packaging Guidelines
[x]: MUST Spec file lacks Packager, Vendor, PreReq tags.
[x]: MUST Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
     Note: rm -rf would be needed if support for EPEL5 is required
[-]: MUST Large documentation files are in a -doc subpackage, if required.
[!]: MUST If (and only if) the source package includes the text of the
     license(s) in its own file, then that file, containing the text of the
     license(s) for the package is included in %doc.

A license file is in the source tarball, but not listed as a %doc.

[x]: MUST License field in the package spec file matches the actual license.

     "Apache (v2.0)", "*No copyright* UNKNOWN", "*No copyright* Apache
     (v2.0)", "Apache (v2.0) MIT/X11 (BSD like)", "*No copyright* GENERATED
     FILE" For detailed output of licensecheck see file:
     /home/sdake/heat/840619-heat/licensecheck.txt
[x]: MUST Package consistently uses macro is (instead of hard-coded directory
     names).
[x]: MUST Package is named using only allowed ascii characters.
[x]: MUST Package is named according to the Package Naming Guidelines.
[x]: MUST No %config files under /usr.
[x]: MUST Package does not generate any conflict.
     Note: Package contains no Conflicts: tag(s)
[x]: MUST Package obeys FHS, except libexecdir and /usr/target.
[!]: MUST Package must own all directories that it creates.

/etc/heat is unowned

[x]: MUST Package does not own files or directories owned by other packages.
[x]: MUST Package installs properly.
[x]: MUST Package is not relocatable.
[x]: MUST Requires correct, justified where necessary.
[x]: MUST Rpmlint is run on all rpms the build produces.
     Note: There are rpmlint messages (see attachment).
[x]: MUST Sources used to build the package match the upstream source, as
     provided in the spec URL.
[x]: MUST Spec file is legible and written in American English.

[x]: MUST Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[-]: MUST Package contains systemd file(s) if in need.
[x]: MUST File names are valid UTF-8.
[x]: SHOULD Reviewer should test that the package builds in mock.
[-]: SHOULD If the source package does not include license text(s) as a
     separate file from upstream, the packager SHOULD query upstream to
     include it.
[!]: SHOULD Dist tag is present.
[x]: SHOULD No file requires outside of /etc, /bin, /sbin, /usr/bin,
     /usr/sbin.
[x]: SHOULD Final provides and requires are sane (rpm -q --provides and rpm -q
     --requires).
[x]: SHOULD Package functions as described.
[x]: SHOULD Latest version is packaged.
[x]: SHOULD Package does not include license text files separate from
     upstream.
[x]: SHOULD Scriptlets must be sane, if used.
[x]: SHOULD SourceX / PatchY prefixed with %{name}.
[x]: SHOULD SourceX is a working URL.
[-]: SHOULD Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.

[x]: SHOULD Package should compile and build into binary rpms on all supported
     architectures.
[-]: SHOULD %check is present and all tests pass.
[x]: SHOULD Packages should try to preserve timestamps of original installed
     files.
[x]: SHOULD Spec use %global instead of %define.

Issues:
[!]: MUST Each %files section contains %defattr if rpm < 4.4
     Note: defattr(....) present in %files section. This is OK if packaging
     for EPEL5. Otherwise not needed
See: http://fedoraproject.org/wiki/Packaging/Guidelines#FilePermissions
[!]: MUST If (and only if) the source package includes the text of the
     license(s) in its own file, then that file, containing the text of the
     license(s) for the package is included in %doc.

A license file is in the source tarball, but not listed as a %doc.
[!]: MUST Package must own all directories that it creates.

/etc/heat is unowned
[!]: SHOULD Dist tag is present.

Rpmlint
-------
Checking: heat-4-3.src.rpm
          heat-4-3.noarch.rpm
heat.noarch: E: explicit-lib-dependency python-httplib2
2 packages and 0 specfiles checked; 1 errors, 0 warnings.

Rpmlint (installed packages)
----------------------------
Cannot parse rpmlint output:
Requires
--------
heat-4-3.noarch.rpm (rpmlib, GLIBC filtered):

    /bin/bash
    /bin/sh
    /usr/bin/python
    config(heat) = 4-3
    pysendfile
    python(abi) = 2.7
    python-crypto
    python-eventlet
    python-glance
    python-greenlet
    python-httplib2
    python-iso8601
    python-keystoneclient
    python-kombu

    python-lxml
    python-memcached
    python-migrate
    python-novaclient
    python-paste
    python-qpid
    python-routes
    python-sqlalchemy
    python-webob
    systemd-units

Provides
--------
heat-4-3.noarch.rpm:

    config(heat) = 4-3
    heat = 4-3

MD5-sum check
-------------
https://github.com/downloads/heat-api/heat/heat-4.tar.gz :
  MD5SUM this package     : b68933487b4669de3ae100663bd35f62
  MD5SUM upstream package : b68933487b4669de3ae100663bd35f62


Generated by fedora-review 0.2.0 (53cc903) last change: 2012-07-09
Command line :/usr/bin/fedora-review -b 840619
External plugins:
Comment 15 Steven Dake 2012-07-24 11:38:57 EDT
Jeff,

There are several blocking issues:
[!]: MUST Each %files section contains %defattr if rpm < 4.4
     Note: defattr(....) present in %files section. This is OK if packaging
     for EPEL5. Otherwise not needed
See: http://fedoraproject.org/wiki/Packaging/Guidelines#FilePermissions
[!]: MUST If (and only if) the source package includes the text of the
     license(s) in its own file, then that file, containing the text of the
     license(s) for the package is included in %doc.

A license file is in the source tarball, but not listed as a %doc.
[!]: MUST Package must own all directories that it creates.

/etc/heat is unowned
[!]: SHOULD Dist tag is present.
Comment 16 Steven Dake 2012-07-24 11:44:36 EDT
Regarding this rpmlint error:

[root@bigiron results]# rpmlint heat*noarch.rpm
heat.noarch: E: explicit-lib-dependency python-httplib2
1 packages and 0 specfiles checked; 1 errors, 0 warnings.

I believe rpmlint is looking at the filename and determining it has "lib" in it.  This seems incorrect behavior for python packages, where rpm cannot automatically determine python library dependencies.  Please file a bug against rpmlint and follow up with changes to packaging as necessary.
Comment 17 Jeff Peeler 2012-07-24 12:55:33 EDT
Requested changes made.

Spec URL: https://raw.github.com/heat-api/heat-rpms/master/heat.spec
SRPM URL: http://people.redhat.com/jpeeler/heat-4-5.fc17.src.rpm
Comment 18 Steven Dake 2012-07-24 15:37:36 EDT
PASS Must: Python eggs must be built from source. They cannot simply drop an egg from upstream into the proper directory. (See prebuilt binaries Guidelines for details)
PASS Must: Python eggs must not download any dependencies during the build process.
N/A Must: When building a compat package, it must install using easy_install -m so it won't conflict with the main package.
N/A Must: When building multiple versions (for a compat package) one of the packages must contain a default version that is usable via "import MODULE" with no prior setup.
N/A Should: A package which is used by another package via an egg interface should provide egg info.
Comment 19 Steven Dake 2012-07-24 15:41:39 EDT
General packaging guidelines met.
Python packaging guidelines met.

PACKAGE APPROVED.

Congratulations Jeff - welcome to the packagers group!  You should receive a mail shortly indicating you have been added.  Once that is complete, submit a SCM request.  In the SCM request, make sure to add the appropriate members to the owners list (the heat developers).

http://fedoraproject.org/wiki/Package_SCM_admin_requests
Comment 20 Jeff Peeler 2012-07-24 23:23:47 EDT
New Package SCM Request
=======================
Package Name: heat
Short Description: AWS CloudFormation functionality for OpenStack
Owners: asalkeld gblomqui shardy imain jpeeler sdake tsedovic zbitter calfonso
Branches: devel
InitialCC:


(Note for the future: devel will be f18.)
Comment 21 Jon Ciesla 2012-07-25 05:59:41 EDT
This has been created in git, but because gblomqui isn't in FAS and shardy isn't in the packager group, it only assigned the first owner.  The rest will have to be added in pkgdb.