Bug 864535 - Review Request: libvirt-designer - Libvirt configuration designer
Review Request: libvirt-designer - Libvirt configuration designer
Status: CLOSED NEXTRELEASE
Product: Fedora
Classification: Fedora
Component: Package Review (Show other bugs)
rawhide
All Linux
medium Severity medium
: ---
: ---
Assigned To: Darryl L. Pierce
Fedora Extras Quality Assurance
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2012-10-09 10:15 EDT by Michal Privoznik
Modified: 2015-06-21 20:08 EDT (History)
4 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2012-11-07 09:32:50 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
dpierce: fedora‑review+
limburgher: fedora‑cvs+


Attachments (Terms of Use)

  None (edit)
Description Michal Privoznik 2012-10-09 10:15:23 EDT
Spec URL: http://fedorapeople.org/~mprivozn/libvirt-designer/libvirt-designer.spec
SRPM URL: http://fedorapeople.org/~mprivozn/libvirt-designer/libvirt-designer-0.0.1-1.fc19.zippy1349791557.src.rpm

These URL are however just temporal. Like every libvirt-* package, the real SPEC is within git:
  http://libvirt.org/git/?p=libvirt-designer.git;a=blob;f=libvirt-designer.spec.in

Description:
 The libvirt-designer package provides a library that integrates libosinfo
and libvirt-gconfig. Given an operating system identifier and libvirt
host capabilities, it queries the libosinfo database to determine optimal
hardware configuration and uses this information to design suitable domain
XML for running the OS as a guest. In a similar manner it facilitates the
setup of guest hardware devices such as disks, network interfaces, video
cards, etc. These APIs are inspired by experience creating internal APIs
for similar tasks in the virt-install/virt-manager projects.

Fedora Account System Username: mprivozn
Comment 1 Darryl L. Pierce 2012-10-09 14:21:01 EDT
The package fails to build on koji using the SRPM provided:

DEBUG util.py:257:  libvirt-designer            warning: user zippy does not exist - using root
DEBUG util.py:257:  warning: group zippy does not exist - using root
DEBUG util.py:257:  ##################################################
DEBUG util.py:257:  warning: user zippy does not exist - using root
DEBUG util.py:257:  warning: group zippy does not exist - using root
DEBUG util.py:347:  Child return code was: 0
DEBUG backend.py:860:  ['/usr/bin/yum-builddep', '--installroot', '/var/lib/mock/f17-build-1477939-245982/root/', '/var/lib/mock/f17-build-1477939-245982/root///builddir/build/SRPMS/libvirt-designer-0.0.1-1.fc17.src.rpm']
DEBUG util.py:307:  Executing command: ['/usr/bin/yum-builddep', '--installroot', '/var/lib/mock/f17-build-1477939-245982/root/', '/var/lib/mock/f17-build-1477939-245982/root///builddir/build/SRPMS/libvirt-designer-0.0.1-1.fc17.src.rpm'] with env {'LANG': 'en_US.UTF-8', 'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOSTNAME': 'mock', 'PROMPT_COMMAND': 'echo -n "<mock-chroot>"', 'HOME': '/builddir', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin'}
DEBUG util.py:257:  Getting requirements for libvirt-designer-0.0.1-1.fc17.src
DEBUG util.py:257:  Error: No Package found for libvirt-gconfig-devel >= 0.0.9

F17 only has libvirt-gconfig-devel 0.0.8. Is this package only for F18 and later?
Comment 2 Michal Privoznik 2012-10-09 15:00:54 EDT
Yeah. This package is only for F18 and rawhide. Not only because the libvirt-gconfig dependency as you've pointed out, but the whole libvirt-glib. It uses APIs that were added in libvirt-glib-1.3.0 release (libvirt-gobject in particular).
Comment 3 Darryl L. Pierce 2012-10-09 15:15:40 EDT
(In reply to comment #2)
> Yeah. This package is only for F18 and rawhide. Not only because the
> libvirt-gconfig dependency as you've pointed out, but the whole
> libvirt-glib. It uses APIs that were added in libvirt-glib-1.3.0 release
> (libvirt-gobject in particular).

Okay, thanks for the quick response. A few very important points below:

LEGEND: X=Met, !=Not met, ?=Not a blocker but should be fixed
=============================================================
[X]   MUST: rpmlint must be run on the source rpm and all binary rpms the build produces. The output should be posted in the review.[1]

mcpierce@mcpierce-laptop:review  $ rpmlint *rpm
libvirt-designer.src: W: file-size-mismatch libvirt-designer-0.0.1.tar.gz = 410005, http://libvirt.org/sources/designer/libvirt-designer-0.0.1.tar.gz = 418435
4 packages and 0 specfiles checked; 0 errors, 1 warnings.

[X]   MUST: The package must be named according to the Package Naming Guidelines .
[X]   MUST: The spec file name must match the base package %{name}, in the format %{name}.spec unless your package has an exemption. [2] . 
[!]   MUST: The package must meet the Packaging Guidelines .

The changelog lists Dan Berrange as the packager, but the package review is from Michal Privoznik. The changelog should name the packager.

[X]   MUST: The package must be licensed with a Fedora approved license and meet the Licensing Guidelines .
[X]   MUST: The License field in the package spec file must match the actual license. [3]
[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 must be included in %doc.[4]
[X]   MUST: The spec file must be written in American English. [5]
[X]   MUST: The spec file for the package MUST be legible. [6]
[!]   MUST: The sources used to build the package must match the upstream source, as provided in the spec URL. Reviewers should use sha256sum for this task as it is used by the sources file once imported into git. If no upstream URL can be specified for this package, please see the Source URL Guidelines for how to deal with this.

The source file in the SRPM does not match the upstream source:

mcpierce@mcpierce-laptop:temp  $ ll libvirt-designer*tar*
-rw-rw-r--. 1 mcpierce mcpierce 410005 Oct  9 14:12 libvirt-designer-0.0.1.tar.gz
-rw-rw-r--. 1 mcpierce mcpierce 418435 Oct  9 06:28 libvirt-designer-0.0.1.tar.gz-downloaded
mcpierce@mcpierce-laptop:temp  $ md5sum libvirt-designer-0.0.1.tar.gz libvirt-designer-0.0.1.tar.gz-downloaded 
d26c5a4f148ba37ccbd1d95577cb97a7  libvirt-designer-0.0.1.tar.gz
634b50ad539ab6b5c0188644780578d3  libvirt-designer-0.0.1.tar.gz-downloaded
sy
[X]   MUST: The package MUST successfully compile and build into binary rpms on at least one primary architecture. [7]

Since this is only for F18+, be sure when it finally is approved to only request F18+ git modules.

[X]   MUST: All build dependencies must be listed in BuildRequires, except for any that are listed in the exceptions section of the Packaging Guidelines ; inclusion of those as BuildRequires is optional. Apply common sense.
[X]   MUST: The spec file MUST handle locales properly. This is done by using the %find_lang macro. Using %{_datadir}/locale/* is strictly forbidden.[9]
[X]   MUST: Every binary RPM package (or subpackage) which stores shared library files (not just symlinks) in any of the dynamic linker's default paths, must call ldconfig in %post and %postun. [10]
[X]   MUST: Packages must NOT bundle copies of system libraries.[11]
[X]   MUST: A package must own all directories that it creates. If it does not create a directory that it uses, then it should require a package which does create that directory. [13]
[X]   MUST: A Fedora package must not list a file more than once in the spec file's %files listings. (Notable exception: license texts in specific situations)[14]
[X]   MUST: Permissions on files must be set properly. Executables should be set with executable permissions, for example. [15]
[X]   MUST: Each package must consistently use macros. [16]
[X]   MUST: The package must contain code, or permissable content. [17]
[?]   MUST: Large documentation files must go in a -doc subpackage. (The definition of large is left up to the packager's best judgement, but is not restricted to size. Large can refer to either size or quantity). [18]

There are documentation files in the -devel package. Maybe consider putting them into a -devel-doc package.

[X]   MUST: If a package includes something as %doc, it must not affect the runtime of the application. To summarize: If it is in %doc, the program must run properly if it is not present. [18]
[X]   MUST: Packages must NOT contain any .la libtool archives, these must be removed in the spec if they are built.[19]
[!]   MUST: Packages must not own files or directories already owned by other packages. The rule of thumb here is that the first package to be installed should own the files or directories that other packages may rely upon. This means, for example, that no package in Fedora should ever share ownership with any of the files or directories owned by the filesystem or man package. If you feel that you have a good reason to own a file or directory that another package owns, then please present that at package review time. [23]

Both libvirt-designer-devel and libvirt-design-libs provide /usr/lib{64}/libvirt-designer-1.0.so*

[X]   MUST: All filenames in rpm packages must be valid UTF-8. [24]
Comment 4 Darryl L. Pierce 2012-10-10 14:04:44 EDT
I think before I continue with this review (since I'm not a sponsor yet) I need to ask if you're already an approved package maintainer; i.e., are you already maintaining a package in Fedora?
Comment 5 Michal Privoznik 2012-10-11 05:02:27 EDT
Yes, I maintain libvirt-snmp.
Comment 6 Michal Privoznik 2012-10-12 08:41:45 EDT
Darryl,

I've updated the package to reflect your findings. However, In [23] I don't think /usr/lib{64}/libvirt-designer-1.0.so is provided by any other package but -devel.

The new set of URLs has prefix http://fedorapeople.org/~mprivozn/libvirt-designer/2/ that's:

SPEC file: http://fedorapeople.org/~mprivozn/libvirt-designer/2/libvirt-designer.spec
SRPM: http://fedorapeople.org/~mprivozn/libvirt-designer/2/libvirt-designer-0.0.1-1.fc19.src.rpm
Comment 7 Darryl L. Pierce 2012-10-12 10:27:22 EDT
(In reply to comment #6)
> Darryl,
> 
> I've updated the package to reflect your findings. However, In [23] I don't
> think /usr/lib{64}/libvirt-designer-1.0.so is provided by any other package
> but -devel.

If you build and then look inside of the RPMs you'll see that they're both creating the same symlink to the sofile.

> 
> The new set of URLs has prefix
> http://fedorapeople.org/~mprivozn/libvirt-designer/2/ that's:
> 
> SPEC file:
> http://fedorapeople.org/~mprivozn/libvirt-designer/2/libvirt-designer.spec
> SRPM:
> http://fedorapeople.org/~mprivozn/libvirt-designer/2/libvirt-designer-0.0.1-
> 1.fc19.src.rpm

Thank you for the updates. Here's my feedback on this:

LEGEND: X=Met, !=Not met, ?=Not a blocker but should be fixed
=============================================================
[X]   MUST: rpmlint must be run on the source rpm and all binary rpms the build produces. The output should be posted in the review.[1]

mcpierce@mcpierce-laptop:review  $ rpmlint *rpm
5 packages and 0 specfiles checked; 0 errors, 0 warnings.

[X]   MUST: The package must be named according to the Package Naming Guidelines .
[X]   MUST: The spec file name must match the base package %{name}, in the format %{name}.spec unless your package has an exemption. [2] . 
[?]   MUST: The package must meet the Packaging Guidelines .

The %changelog should be more explicit. Have it read something like:

  Initial packaging of libvirt-designer.

It should also have a second entry and updated release number for this second round of reviews:

---8<[snip]---
%changelog
* Fri Oct 12 2012 Michal Privoznik <mprivozn@redhat.com> 0.0.1-2
- (List the specific changes made to the package for this round of reviews)

* Tue Oct 09 2012 Michal Privoznik <mprivozn@redhat.com> 0.0.1-1
- Initial packaging of libvirt-designer
---8<[snip]---

This way the reviewer can look at the changelog to see what specifically should be different in this round of reviews.

The next update that addresses the issues I mention here should be 0.0.1-3.

[X]   MUST: The package must be licensed with a Fedora approved license and meet the Licensing Guidelines .
[X]   MUST: The License field in the package spec file must match the actual license. [3]
[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 must be included in %doc.[4]
[X]   MUST: The spec file must be written in American English. [5]
[X]   MUST: The spec file for the package MUST be legible. [6]
[X]   MUST: The sources used to build the package must match the upstream source, as provided in the spec URL. Reviewers should use sha256sum for this task as it is used by the sources file once imported into git. If no upstream URL can be specified for this package, please see the Source URL Guidelines for how to deal with this.
[X]   MUST: The package MUST successfully compile and build into binary rpms on at least one primary architecture. [7]

Since this is only for F18+, be sure when it finally is approved to only request F18+ git modules.

[!]   MUST: All build dependencies must be listed in BuildRequires, except for any that are listed in the exceptions section of the Packaging Guidelines ; inclusion of those as BuildRequires is optional. Apply common sense.

The version dependency changed for libvirt-gobject-devel to 0.1.3, which is not available in F17 or F18. Since F18 is the next release the package should minimally be buildable against it. It's critical to keep things consistent between rounds of reviews.

Please don't change dependencies mid-package review: revert back to the previous build dependency of 0.0.9 and only change such things after the review is finished.

[X]   MUST: The spec file MUST handle locales properly. This is done by using the %find_lang macro. Using %{_datadir}/locale/* is strictly forbidden.[9]
[X]   MUST: Every binary RPM package (or subpackage) which stores shared library files (not just symlinks) in any of the dynamic linker's default paths, must call ldconfig in %post and %postun. [10]
[X]   MUST: Packages must NOT bundle copies of system libraries.[11]
[X]   MUST: A package must own all directories that it creates. If it does not create a directory that it uses, then it should require a package which does create that directory. [13]
[X]   MUST: A Fedora package must not list a file more than once in the spec file's %files listings. (Notable exception: license texts in specific situations)[14]
[X]   MUST: Permissions on files must be set properly. Executables should be set with executable permissions, for example. [15]
[?]   MUST: Each package must consistently use macros. [16]

The top of this specfile has conditional macros for working with F15+ and RHEL. The former macros needs to be deleted since this package is only targeting F18+, and the latter needs to be deleted since RHEL packaging is a totally separate beast from Fedora.

[X]   MUST: The package must contain code, or permissable content. [17]
[!]   MUST: Large documentation files must go in a -doc subpackage. (The definition of large is left up to the packager's best judgement, but is not restricted to size. Large can refer to either size or quantity). [18]

There are documentation files in the -devel package. Please put these into a -doc package.

[X]   MUST: If a package includes something as %doc, it must not affect the runtime of the application. To summarize: If it is in %doc, the program must run properly if it is not present. [18]
[X]   MUST: Packages must NOT contain any .la libtool archives, these must be removed in the spec if they are built.[19]
[!]   MUST: Packages must not own files or directories already owned by other packages. The rule of thumb here is that the first package to be installed should own the files or directories that other packages may rely upon. This means, for example, that no package in Fedora should ever share ownership with any of the files or directories owned by the filesystem or man package. If you feel that you have a good reason to own a file or directory that another package owns, then please present that at package review time. [23]

Both libvirt-designer-devel and libvirt-designer-libs provide /usr/lib{64}/libvirt-designer-1.0.so.0.0.1

From libvirt-designer-devel:

lrwxrwxrwx    1 root    root                       29 Oct 12 10:07 /usr/lib64/libvirt-designer-1.0.so -> libvirt-designer-1.0.so.0.0.1

from libvirt-designer-libs:

lrwxrwxrwx    1 root    root                       29 Oct 12 10:07 /usr/lib64/libvirt-designer-1.0.so.0 -> libvirt-designer-1.0.so.0.0.1

This needs to be fixed.

[X]   MUST: All filenames in rpm packages must be valid UTF-8. [24]
Comment 9 Darryl L. Pierce 2012-10-16 12:15:42 EDT
LEGEND: X=Met, !=Not met, ?=Not a blocker but should be fixed
=============================================================
[X]   MUST: rpmlint must be run on the source rpm and all binary rpms the build produces. The output should be posted in the review.[1]

mcpierce@mcpierce-laptop:review  $ rpmlint *rpm
5 packages and 0 specfiles checked; 0 errors, 0 warnings.

[X]   MUST: The package must be named according to the Package Naming Guidelines .
[X]   MUST: The spec file name must match the base package %{name}, in the format %{name}.spec unless your package has an exemption. [2] . 
[X]   MUST: The package must meet the Packaging Guidelines .

[X]   MUST: The package must be licensed with a Fedora approved license and meet the Licensing Guidelines .
[X]   MUST: The License field in the package spec file must match the actual license. [3]
[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 must be included in %doc.[4]
[X]   MUST: The spec file must be written in American English. [5]
[X]   MUST: The spec file for the package MUST be legible. [6]
[X]   MUST: The sources used to build the package must match the upstream source, as provided in the spec URL. Reviewers should use sha256sum for this task as it is used by the sources file once imported into git. If no upstream URL can be specified for this package, please see the Source URL Guidelines for how to deal with this.
[X]   MUST: The package MUST successfully compile and build into binary rpms on at least one primary architecture. [7]

Since this is only for F18+, be sure when it finally is approved to only request F18+ git modules.

[X]   MUST: All build dependencies must be listed in BuildRequires, except for any that are listed in the exceptions section of the Packaging Guidelines ; inclusion of those as BuildRequires is optional. Apply common sense.
[X]   MUST: The spec file MUST handle locales properly. This is done by using the %find_lang macro. Using %{_datadir}/locale/* is strictly forbidden.[9]
[X]   MUST: Every binary RPM package (or subpackage) which stores shared library files (not just symlinks) in any of the dynamic linker's default paths, must call ldconfig in %post and %postun. [10]
[X]   MUST: Packages must NOT bundle copies of system libraries.[11]
[X]   MUST: A package must own all directories that it creates. If it does not create a directory that it uses, then it should require a package which does create that directory. [13]
[X]   MUST: A Fedora package must not list a file more than once in the spec file's %files listings. (Notable exception: license texts in specific situations)[14]
[X]   MUST: Permissions on files must be set properly. Executables should be set with executable permissions, for example. [15]
[X]   MUST: Each package must consistently use macros. [16]
[X]   MUST: The package must contain code, or permissable content. [17]
[X]   MUST: Large documentation files must go in a -doc subpackage. (The definition of large is left up to the packager's best judgement, but is not restricted to size. Large can refer to either size or quantity). [18]
[X]   MUST: If a package includes something as %doc, it must not affect the runtime of the application. To summarize: If it is in %doc, the program must run properly if it is not present. [18]
[X]   MUST: Packages must NOT contain any .la libtool archives, these must be removed in the spec if they are built.[19]
[X]   MUST: Packages must not own files or directories already owned by other packages. The rule of thumb here is that the first package to be installed should own the files or directories that other packages may rely upon. This means, for example, that no package in Fedora should ever share ownership with any of the files or directories owned by the filesystem or man package. If you feel that you have a good reason to own a file or directory that another package owns, then please present that at package review time. [23]
[X]   MUST: All filenames in rpm packages must be valid UTF-8. [24]

PACKAGE APPROVED.
Comment 10 Michal Privoznik 2012-10-17 03:30:49 EDT
New Package SCM Request
=======================
Package Name: libvirt-designer
Short Description: Libvirt configuration designer
Owners: mprivozn berrange
Branches: f18
InitialCC: berrange
Comment 11 Gwyn Ciesla 2012-10-17 08:15:05 EDT
Git done (by process-git-requests).

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