Spec URL: http://jeckersb.fedorapeople.org/ansible/ansible.spec SRPM URL: http://jeckersb.fedorapeople.org/ansible/ansible-0.0.2-1.fc16.src.rpm Description: Ansible is a extra-simple tool/API for doing 'parallel remote things' over SSH executing commands, running "modules", or executing larger 'playbooks' that can serve as a configuration management or deployment system.
Hi, a few note : - you should explicitely say the version of python to use in BuildRequires https://fedoraproject.org/wiki/Packaging:Python#BuildRequires - the python macro are already defined on Fedora, so no need to add them again - Prefix is forbidden - buildRoot should not be used, except for EPEL 5 https://fedoraproject.org/wiki/Packaging:Guidelines#BuildRoot_tag - so does %defattr, %clean and rm in %install - --record=INSTALLED_FILES is not used, and is not recommended https://fedoraproject.org/wiki/Packaging:Python#Byte_compiling - it seems that %{_datadir}/ansible/ would end unowned - I am not sure, but I think that "-n %{name}-%{version}" is uneeded, becuase tha's the default - the guideline ask for consistency when using macro to reference path : %config(noreplace) /etc/ansible/hosts %config(noreplace) %{_sysconfdir}/ansible/ - %{_mandir}/man1/*.gz that's not mandatory, but I think that's better to not hardcode the prefix used here, as this could be changed in the future ( ie, be something else than gz )
Adding Tim Bielawa to Cc, as he will be handling the packaging going forward.
Spec URL: http://people.redhat.com/~tbielawa/ansible/ansible.spec SRPM URL: http://people.redhat.com/~tbielawa/ansible/ansible-0.0.2-1.fc16.src.rpm Description: Ansible is a radically simple model-driven configuration management, multi-node deployment, and remote task execution system. Ansible works over SSH and does not require any software or daemons to be installed on remote nodes. Extension modules can be written in any language and are transferred to managed machines automatically. (In reply to comment #1) > Hi, > > a few note : > - you should explicitely say the version of python to use in BuildRequires > https://fedoraproject.org/wiki/Packaging:Python#BuildRequires Fixed. > - the python macro are already defined on Fedora, so no need to add them again Fixed. Only set if RHEL 5. (We're targeting that in the future) > - Prefix is forbidden Fixed. > - buildRoot should not be used, except for EPEL 5 > https://fedoraproject.org/wiki/Packaging:Guidelines#BuildRoot_tag Fixed. Only set if RHEL 5. > - so does %defattr, %clean and rm in %install I don't understand what you mean by this. Can you please expand? > - --record=INSTALLED_FILES is not used, and is not recommended > https://fedoraproject.org/wiki/Packaging:Python#Byte_compiling Removed. > - it seems that %{_datadir}/ansible/ would end unowned I think this is fixed now. > - I am not sure, but I think that "-n %{name}-%{version}" is uneeded, becuase > tha's the default Correct. Removed this too. > - the guideline ask for consistency when using macro to reference path : > %config(noreplace) /etc/ansible/hosts > %config(noreplace) %{_sysconfdir}/ansible/ Fixed. Consolidated to just "%{_sysconfdir}/ansible" > - %{_mandir}/man1/*.gz > that's not mandatory, but I think that's better to not hardcode the prefix used > here, as this could be changed in the future ( ie, be something else than gz ) Adjusted this too.
I've updated the spec and srpm from what was in my last comment. Current latest sha256sum's: 5fcc5476235cc7f632618ff6bfe75966067084255d0d7cca6ab38f3388bac1e2 ansible-0.0.2-1.fc16.src.rpm d59cf63e306fd5ad77793803e9e424b391fc643fa56b61d61ea79f4878fb2103 ansible.spec Spec URL: http://people.redhat.com/~tbielawa/ansible/ansible.spec SRPM URL: http://people.redhat.com/~tbielawa/ansible/ansible-0.0.2-1.fc16.src.rpm Diff from last time: > %define _dusetup packaging/distutils/setup.py ... > Requires: PyYAML There is now a 'Requires' on PyYAML, and there is a macro '_dusetup' for references to the distutils setup.py file.
New version (0.3) requested for review: http://people.redhat.com/~tbielawa/ansible/ansible-0.3-1.fc16.noarch.rpm http://people.redhat.com/~tbielawa/ansible/ansible.spec Just new version of the software. Spec file has a version bump + change log entry.
You have uploaded the bnary rpm instead of the src.rpm, and that's required to run fedora-review , and sorry, did forgot I started this review :/ For %defattr, this is no longer needed on newer rpm version. %clean will default to rm -Rf $RPM_BUILD_ROOT, or something like that, so this can be removed too in new distribution ( can be kept of course ). And that's the same for the rm just at the %install, it is done by default nowadays. - I think the email address is likely wrong ( unless me and LDAP missed a memo ) - Guidelines also requires ( IIRC ) to ship the license file if present, or to ask to upstream to ship it if not. ( so that's the 2nd case here, so i just remind gently to do so :) )
(In reply to comment #6) > You have uploaded the bnary rpm instead of the src.rpm, and that's required to > run fedora-review , and sorry, did forgot I started this review :/ Sorry about that, I uploaded both RPMs and linked the binary instead of the SRPM. Fixed that now: http://people.redhat.com/~tbielawa/ansible/ansible-0.3-1.fc16.src.rpm Also, uploaded the new spec file: http://people.redhat.com/~tbielawa/ansible/ansible.spec > For %defattr, this is no longer needed on newer rpm version. %clean will > default to rm -Rf $RPM_BUILD_ROOT, or something like that, so this can be > removed too in new distribution ( can be kept of course ). And that's the same > for the rm just at the %install, it is done by default nowadays. Decided we're not going to target EPEL 5: - Removed %defattr - Removed %clean > - I think the email address is likely wrong ( unless me and LDAP missed a memo > ) Good call. Fixed! > - Guidelines also requires ( IIRC ) to ship the license file if present, or to > ask to upstream to ship it if not. > ( so that's the 2nd case here, so i just remind gently to do so :) ) Fixed that too! Also, re-built the man pages to show the correct version, 0.3. Thanks for taking the time to review this. I appreciate it a lot!
Seems the license is wrong, it should be GPLv3+, not GPLv3 ( ie, the "or any later" clause ). The file used in src.rpm do not seems to be the same as the one upstream on github : $ file ansible-0.3.tar.gz /tmp/ansible-0.3.tar.gz ansible-0.3.tar.gz: gzip compressed data, was "dist/ansible-0.3.tar", last modified: Mon Apr 30 18:30:36 2012, max compression /tmp/ansible-0.3.tar.gz: gzip compressed data, was "ansible-0.3.tar", from Unix, last modified: Tue Apr 24 04:18:05 2012, max compression ( the 2nd is the one from github, the first is the one from the src.rpm ) I guess that's because you updated the spec in the tarball, and added the LICENSE. "Packages should try to preserve timestamps of original installed files.", I think that the cp invocation fail this part of the guideline ( https://fedoraproject.org/wiki/Packaging:Guidelines#Timestamps )
(In reply to comment #8) > Seems the license is wrong, it should be GPLv3+, not GPLv3 ( ie, the "or any > later" clause ). Good call! Fixed that. > The file used in src.rpm do not seems to be the same as the one upstream on > github : > > $ file ansible-0.3.tar.gz /tmp/ansible-0.3.tar.gz > ansible-0.3.tar.gz: gzip compressed data, was "dist/ansible-0.3.tar", last > modified: Mon Apr 30 18:30:36 2012, max compression > /tmp/ansible-0.3.tar.gz: gzip compressed data, was "ansible-0.3.tar", from > Unix, last modified: Tue Apr 24 04:18:05 2012, max compression > > ( the 2nd is the one from github, the first is the one from the src.rpm ) > I guess that's because you updated the spec in the tarball, and added the > LICENSE. > > "Packages should try to preserve timestamps of original installed > files.", I think that the cp invocation fail this part of the guideline > ( https://fedoraproject.org/wiki/Packaging:Guidelines#Timestamps ) I see what I did. Instead of using the sources we published on github I was using a fresh 'make sdist' copy. To make sure I didn't mess anything up with the sources this time I copied the spec file out of the tree to a temp directory and put the github sources into ~/rpmbuild/SOURCES and *then* ran `rpmbuild -bs`. Result is a fresh srpm built off of the upstream sources (Which includes the proper license file). SRPM: http://people.redhat.com/~tbielawa/ansible/ansible-0.3.1-1.fc16.src.rpm Spec: http://people.redhat.com/~tbielawa/ansible/ansible.spec Sums (for your pleasure): http://people.redhat.com/~tbielawa/ansible/ansible.asc Thanks for taking the time to review this Michael!
Sorry for not responding sooner, I am in holidays right now. The cp are still wrong : cp examples/hosts $RPM_BUILD_ROOT/etc/ansible/ ( since they do not preserve the timestamp ) However, that's just a "should", so not blocking for the review. Package Review ============== Key: - = N/A x = Pass ! = Fail ? = Not evaluated ==== Generic ==== [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. [x]: 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. [x]: MUST Each %files section contains %defattr if rpm < 4.4 Note: Note: defattr macros not found. They would be needed for EPEL5 [x]: MUST Macros in Summary, %description expandable at SRPM build time. [x]: 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 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 [x]: MUST Large documentation files are in a -doc subpackage, if required. [x]: 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. [x]: MUST License field in the package spec file matches the actual license. Note: Licenses found: "*No copyright* UNKNOWN", "GPL (v3 or later) " For detailed output of licensecheck see file: /home/misc/checkout/git/FedoraReview/src/809882/licensecheck.txt [x]: MUST Package consistently uses macros (instead of hard-coded directory names). [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. [x]: MUST Package obeys FHS, except libexecdir and /usr/target. [-]: MUST If the package is a rename of another package, proper Obsoletes and Provides are present. [x]: MUST Package must own all directories that it creates. [x]: MUST Package does not own files or directories owned by other packages. [x]: MUST Package installs properly. [x]: MUST Requires correct, justified where necessary. [!]: MUST Rpmlint output is silent. rpmlint ansible-0.3-1.fc18.noarch.rpm ansible.noarch: W: spelling-error %description -l en_US multi -> mulch, mufti 1 packages and 0 specfiles checked; 0 errors, 1 warnings. rpmlint ansible-0.3-1.fc18.src.rpm ansible.src: W: spelling-error %description -l en_US multi -> mulch, mufti 1 packages and 0 specfiles checked; 0 errors, 1 warnings. [x]: MUST Sources used to build the package match the upstream source, as provided in the spec URL. /home/misc/checkout/git/FedoraReview/src/809882/ansible-0.3.tar.gz : MD5SUM this package : 28c36c5926af878ebfd39c932cb86650 MD5SUM upstream package : 28c36c5926af878ebfd39c932cb86650 [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 a SysV-style init script if in need of one. [x]: MUST File names are valid UTF-8. [x]: SHOULD Reviewer should test that the package builds in mock. [x]: 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. [x]: 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 SourceX is a working URL. [x]: 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. [!]: SHOULD Packages should try to preserve timestamps of original installed files. [x]: SHOULD Spec use %global instead of %define. ==== Python ==== [x]: MUST Module list python2-devel or python3-devel as BuildRequires [x]: MUST Python egg is built from source [x]: MUST Python egg do not download anything during build Issues: [!]: MUST Rpmlint output is silent. rpmlint ansible-0.3-1.fc18.noarch.rpm ansible.noarch: W: spelling-error %description -l en_US multi -> mulch, mufti 1 packages and 0 specfiles checked; 0 errors, 1 warnings. rpmlint ansible-0.3-1.fc18.src.rpm ansible.src: W: spelling-error %description -l en_US multi -> mulch, mufti 1 packages and 0 specfiles checked; 0 errors, 1 warnings. See: http://fedoraproject.org/wiki/Packaging/Guidelines#rpmlint Generated by fedora-review 0.2.0git External plugins: So the package is good to go, as the only rpmlint warning is a false positive.
Horay!
New Package SCM Request ======================= Package Name: ansible Short Description: Minimal SSH command and control Owners: tbielawa Branches: f15 f16 f17
Git done (by process-git-requests).
ansible-0.3.1-1.fc15 has been submitted as an update for Fedora 15. https://admin.fedoraproject.org/updates/ansible-0.3.1-1.fc15
ansible-0.3.1-1.fc16 has been submitted as an update for Fedora 16. https://admin.fedoraproject.org/updates/ansible-0.3.1-1.fc16
ansible-0.3.1-1.fc17 has been submitted as an update for Fedora 17. https://admin.fedoraproject.org/updates/ansible-0.3.1-1.fc17
Package Change Request ====================== Package Name: ansible New Branches: el6 Owners: tbielawa
ansible-0.3.1-1.fc17 has been pushed to the Fedora 17 stable repository.
ansible-0.3.1-1.el6 has been submitted as an update for Fedora EPEL 6. https://admin.fedoraproject.org/updates/ansible-0.3.1-1.el6
ansible-0.3.1-1.el6 has been pushed to the Fedora EPEL 6 stable repository.
ansible-0.3.1-1.fc15 has been pushed to the Fedora 15 stable repository.
ansible-0.3.1-1.fc16 has been pushed to the Fedora 16 stable repository.