Bug 1092149 - Review Request: dib-utils - Standalone parts of diskimage-builder
Summary: Review Request: dib-utils - Standalone parts of diskimage-builder
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Steven Hardy
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: 1086494
TreeView+ depends on / blocked
 
Reported: 2014-04-28 20:13 UTC by Ben Nemec
Modified: 2018-07-05 18:46 UTC (History)
4 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2018-07-05 18:46:18 UTC
Type: ---
Embargoed:
shardy: fedora-review+
gwync: fedora-cvs+


Attachments (Terms of Use)

Description Ben Nemec 2014-04-28 20:13:49 UTC
Spec URL: http://fedorapeople.org/~bnemec/dib-utils.spec
SRPM URL: http://fedorapeople.org/~bnemec/dib-utils-0.0.1-1.fc20.src.rpm
Description: Pieces of diskimage-builder that are useful standalone
Fedora Account System Username: bnemec

This package is intended to reflect an upcoming change in the upstream project (as seen in https://review.openstack.org/#/c/90281/ ), but because we need a split version of diskimage-builder for inclusion in the Fedora cloud image we don't have time to wait for the upstream change to go through.  Adding this as a separate package now should address the immediate needs and allow for an easy transition to the new upstream repo when it becomes available.

Comment 1 Steven Hardy 2014-04-29 16:51:27 UTC
- Package looks good, my only remarks are:
    * Unqualified use of Conflicts
    * Doesn't package the latest upstream version
    * Query re the package versioning wrt the upstream release


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

Legend:
[x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated
[ ] = Manual review needed



===== MUST items =====

Generic:
[x]: Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[x]: License field in the package spec file matches the actual license.
[x]: Package contains no bundled libraries without FPC exception.
[x]: Changelog in prescribed format.
[x]: Sources contain only permissible code or content.
[-]: Package contains desktop file if it is a GUI application.
[-]: Development files must be in a -devel package
[x]: Package uses nothing in %doc for runtime.
[x]: Package consistently uses macros (instead of hard-coded directory names).
[x]: Package is named according to the Package Naming Guidelines.
[!]: Package does not generate any conflict.
     It does create a conflict, and the diskimage-builder version which conflicts is not specified:
     https://fedoraproject.org/wiki/Packaging:Conflicts#Splitting_Packages
[x]: Package obeys FHS, except libexecdir and /usr/target.
[-]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[x]: Requires correct, justified where necessary.
[x]: Spec file is legible and written in American English.
[-]: Package contains systemd file(s) if in need.
[x]: Package is not known to require an ExcludeArch tag.
[-]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 20480 bytes in 1 files.
[!]: Package complies to the Packaging Guidelines
     Failed due to conflict mentioned above
[x]: Package successfully compiles and builds into binary rpms on at least one
     supported primary architecture.
[x]: Package installs properly.
[x]: Rpmlint is run on all rpms the build produces.
     Note: There are rpmlint messages (see attachment).
[x]: 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]: Package requires other packages for directories it uses.
[x]: Package must own all directories that it creates.
[x]: Package does not own files or directories owned by other packages.
[x]: All build dependencies are listed in BuildRequires, except for any that
     are listed in the exceptions section of Packaging Guidelines.
[x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT
[x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
[x]: Macros in Summary, %description expandable at SRPM build time.
[x]: Package does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[x]: Package use %makeinstall only when make install' ' DESTDIR=... doesn't
     work.
[x]: Package is named using only allowed ASCII characters.
[x]: Package do not use a name that already exist
[x]: Package is not relocatable.
[x]: Sources used to build the package match the upstream source, as provided
     in the spec URL.
[x]: Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[x]: File names are valid UTF-8.
[x]: Packages must not store files under /srv, /opt or /usr/local

===== SHOULD items =====

Generic:
[-]: 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]: Final provides and requires are sane (see attachments).
[?]: Package functions as described.
     I built and installed it, but have not been able to test the script itself
[!]: Latest version is packaged.
     diskimage-builder-0.1.13 is in the SRPM but 0.1.14 has been released upstream
     Also query re the package versioning - is it intended that this no longer aligns
     with the DiB package numbering due to the split?
[x]: Package does not include license text files separate from upstream.
[-]: Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[?]: Package should compile and build into binary rpms on all supported
     architectures.
     Tested on x86_64, it's only a shell script so no issues expected
[-]: %check is present and all tests pass.
[-]: Packages should try to preserve timestamps of original installed files.
[x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
[x]: Sources can be downloaded from URI in Source: tag
[x]: Reviewer should test that the package builds in mock.
[x]: Buildroot is not present
[x]: Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
[x]: Dist tag is present (not strictly required in GL).
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: SourceX is a working URL.
[x]: Spec use %global instead of %define unless justified.

===== EXTRA items =====

Generic:
[x]: Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).
[x]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: dib-utils-0.0.1-1.fc20.noarch.rpm
          dib-utils-0.0.1-1.fc20.src.rpm
dib-utils.noarch: W: spelling-error Summary(en_US) diskimage -> disk image, disk-image, disparage
dib-utils.noarch: W: spelling-error %description -l en_US diskimage -> disk image, disk-image, disparage
dib-utils.noarch: W: no-manual-page-for-binary dib-run-parts
dib-utils.src: W: spelling-error Summary(en_US) diskimage -> disk image, disk-image, disparage
dib-utils.src: W: spelling-error %description -l en_US diskimage -> disk image, disk-image, disparage
dib-utils.src: W: no-%build-section
2 packages and 0 specfiles checked; 0 errors, 6 warnings.




Rpmlint (installed packages)
----------------------------
# rpmlint dib-utils
dib-utils.noarch: W: spelling-error Summary(en_US) diskimage -> disk image, disk-image, disparage
dib-utils.noarch: W: spelling-error %description -l en_US diskimage -> disk image, disk-image, disparage
dib-utils.noarch: W: no-manual-page-for-binary dib-run-parts
1 packages and 0 specfiles checked; 0 errors, 3 warnings.
# echo 'rpmlint-done:'



Requires
--------
dib-utils (rpmlib, GLIBC filtered):
    /bin/bash



Provides
--------
dib-utils:
    dib-utils



Source checksums
----------------
http://tarballs.openstack.org/diskimage-builder/diskimage-builder-0.1.13.tar.gz :
  CHECKSUM(SHA256) this package     : e2b510a2ac3db108e011bbb11d08981435fdd2ca34e6855eaa349e63cbc292e0
  CHECKSUM(SHA256) upstream package : e2b510a2ac3db108e011bbb11d08981435fdd2ca34e6855eaa349e63cbc292e0


Generated by fedora-review 0.5.1 (bb9bf27) last change: 2013-12-13
Command line :/usr/bin/fedora-review -b 1092149
Buildroot used: fedora-20-x86_64
Active plugins: Generic, Shell-api
Disabled plugins: Java, C/C++, Python, fonts, SugarActivity, Ocaml, Perl, Haskell, R, PHP, Ruby
Disabled flags: EXARCH, EPEL5, BATCH, DISTTAG

Comment 2 Steven Hardy 2014-04-29 16:59:34 UTC
Initial review completed, minor issues spotted so waiting on comment from reporter before proceeding.

Comment 3 Ben Nemec 2014-04-29 19:23:01 UTC
Thanks for the review.  Some responses:

* I will bump the diskimage-builder version used.  I just didn't realize .14 was released yet.

* I don't know what upstream will do with the versioning on this new project/package, so I figured I would start at 0.0.1 and if they decide to match diskimage-builder then I can always bump the rpm version too.  If I start at 0.1.14 and they decide to go with 0.0.1 I think that would be a problem.

* There's a bit of a timing issue with version capping the conflict, at least until I know which release of diskimage-builder is going to have dib-run-parts removed.  I could remove dib-run-parts in the diskimage-builder spec, but then diskimage-builder would have a dependency on this package, so this has to be available before any package of diskimage-builder that doesn't include dib-run-parts.  It's doable, but possibly more complicated since this is a new package?

So I guess it would be a little simpler to wait and resolve the conflict once the upstream split happens, but I think I could do it now too if that would be preferable.  I'm not sure how big a deal the unversioned conflict is.

Comment 4 Steven Dake 2014-04-30 20:49:00 UTC
(In reply to Ben Nemec from comment #3)
> Thanks for the review.  Some responses:
> 
> * I will bump the diskimage-builder version used.  I just didn't realize .14
> was released yet.
> 

yup should be an easy adjustment

> * I don't know what upstream will do with the versioning on this new
> project/package, so I figured I would start at 0.0.1 and if they decide to
> match diskimage-builder then I can always bump the rpm version too.  If I
> start at 0.1.14 and they decide to go with 0.0.1 I think that would be a
> problem.
> 

Set Version field to 0.0.0 so upgrades work (if 0.0.1 is the first release, an upgrade will correctly upgrade - if you start with 0.0.1 yum won't upgrade as expected).


> * There's a bit of a timing issue with version capping the conflict, at
> least until I know which release of diskimage-builder is going to have
> dib-run-parts removed.  I could remove dib-run-parts in the
> diskimage-builder spec, but then diskimage-builder would have a dependency
> on this package, so this has to be available before any package of
> diskimage-builder that doesn't include dib-run-parts.  It's doable, but
> possibly more complicated since this is a new package?

release both dib and dib-utils together both as a combined update - and update the dib-run-parts to indicate the current version is a conflict.  Use the release field as part of the version conflict.  I suspect this should work.


> 
> So I guess it would be a little simpler to wait and resolve the conflict
> once the upstream split happens, but I think I could do it now too if that
> would be preferable.  I'm not sure how big a deal the unversioned conflict
> is.

Yes please resolve the conflict before the upstream split happens - ideally need to get this resolved before May 2nd (this Friday).  I believe my suggested approach should work - if you run into trouble let the reviewer know.

Regards,
-steve

Comment 5 Steven Dake 2014-04-30 20:51:01 UTC
Just a note, when your ready with new spec files and srpms, please post them as a new comment to signal to shardy to re-review the package.

Comment 6 Ben Nemec 2014-05-01 17:59:02 UTC
Okay, I've updated the spec and srpm:

http://fedorapeople.org/~bnemec/dib-utils-0.0.0-1.fc20.src.rpm
http://fedorapeople.org/~bnemec/dib-utils.spec

I believe that should address the comments so far.

I also have a spec update for the diskimage-builder version referenced in the conflicts, but since it removes dib-run-parts it needs to wait for this to be available or diskimage-builder will be broken.  That shouldn't be a problem though since the current diskimage-builder rpm works fine, it just can't be installed with dib-utils.  Once dib-utils goes in I'll push the diskimage-builder update.  os-refresh-config will also need a dep added on this new package.

Comment 7 Ben Nemec 2014-05-01 18:09:06 UTC
For anyone interested in testing the split package, the diskimage-builder-0.1.15 build is available here: http://koji.fedoraproject.org/koji/taskinfo?taskID=6804123

Comment 8 Steven Hardy 2014-05-02 10:17:50 UTC
My review comments have all been addressed, thanks!  Setting fedora-review +.

Comment 9 Ben Nemec 2014-05-02 19:33:46 UTC
New Package SCM Request
=======================
Package Name: dib-utils
Short Description: Pieces of diskimage-builder that are useful standalone
Owners: bnemec slagle
Branches: f20 el6 epel7
InitialCC:

Comment 10 Gwyn Ciesla 2014-05-02 19:56:59 UTC
Git done (by process-git-requests).

Comment 11 Ben Nemec 2018-07-05 18:46:18 UTC
This has been done for a long time now.


Note You need to log in before you can comment on or make changes to this bug.