Bug 710902 (oct-struct) - Review Request: octave-struct - Structure handling for Octave
Summary: Review Request: octave-struct - Structure handling for Octave
Keywords:
Status: CLOSED ERRATA
Alias: oct-struct
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: José Matos
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2011-06-05 16:20 UTC by Thomas Sailer
Modified: 2011-08-27 16:47 UTC (History)
4 users (show)

Fixed In Version: octave-control-2.0.2-2.fc15
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2011-06-24 03:47:56 UTC
Type: ---
Embargoed:
jamatos: fedora-review+
gwync: fedora-cvs+


Attachments (Terms of Use)

Description Thomas Sailer 2011-06-05 16:20:56 UTC
Spec URL: http://sailer.fedorapeople.org/octave-struct.spec
SRPM URL: http://sailer.fedorapeople.org/octave-struct-1.0.9-1.fc15.src.rpm
Description: Additional Structure manipulations functions.

Scratch Build:
http://koji.fedoraproject.org/koji/taskinfo?taskID=3112043

Comment 1 José Matos 2011-06-13 14:08:40 UTC
I will take this package review.

One question meanwhile, why is not this package NoArch? I only see octave code, I do not see any architecture dependent code in the final package.

Comment 2 José Matos 2011-06-13 14:32:55 UTC
OK, after looking into further detail you can ignore my last remark.

Here follows the review with points to take care at the end. They are quite small but I would like to have your input on them.


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

Key:
- = N/A
x = Check
! = Problem
? = Not evaluated

[x] : MUST - Package successfully compiles and builds into binary rpms on at least one supported architecture.
[x] : MUST - Each %files section contains %defattr
[x] : MUST - Spec file lacks Packager, Vendor, PreReq tags.
[x] : MUST - Package does not contain any libtool archives (.la)
[x] : MUST - Package use %makeinstall only when make install DESTDIR=... doesn't work.
[x] : MUST - Package is named according to the Package Naming Guidelines.
[x] : MUST - Sources used to build the package matches the upstream source, as provided in the spec URL.
        MD5SUM this package     : b067676d6360dbed7995658fa4266076
        MD5SUM upstream package : b067676d6360dbed7995658fa4266076
[x] : MUST - Spec file name must match the spec package %{name}, in the format %{name}.spec.
[-] : MUST - %config files are marked noreplace or the reason is justified.
[-] : MUST - Package contains a properly installed %{name}.desktop using desktop-file-install file if it is a GUI application.
[-] : MUST - Fully versioned dependency in subpackages, if present.
[-] : MUST - Header files in -devel subpackage, if present.
[-] : MUST - ldconfig called in %post and %postun if required.
[-] : MUST - License file installed when any subpackage combination is installed.
[-] : MUST - The spec file handles locales properly.
[-] : MUST - No %config files under /usr.
[-] : MUST - Development .so files in -devel subpackage, if present.
[-] : MUST - Static libraries in -static subpackage, if present.
[!] : MUST - Rpmlint output is silent.
        
        rpmlint octave-struct-1.0.9-1.fc16.i686.rpm
        ================================================================================
        octave-struct.i686: W: obsolete-not-provided octave-forge
        octave-struct.i686: W: hidden-file-or-dir /usr/share/octave/packages/struct-1.0.9/packinfo/.autoload
        octave-struct.i686: E: zero-length /usr/share/octave/packages/struct-1.0.9/packinfo/.autoload
        octave-struct.i686: W: dangerous-command-in-%preun rm
        1 packages and 0 specfiles checked; 1 errors, 3 warnings.
        ================================================================================
        
        rpmlint octave-struct-debuginfo-1.0.9-1.fc16.i686.rpm
        ================================================================================
        1 packages and 0 specfiles checked; 0 errors, 0 warnings.
        ================================================================================
        
        rpmlint octave-struct-1.0.9-1.fc16.src.rpm
        ================================================================================
        1 packages and 0 specfiles checked; 0 errors, 0 warnings.
        ================================================================================
        
[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.
[-] : 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 - Package contains no bundled libraries.
[x] : MUST - Changelog in prescribed format.
[x] : MUST - Sources contain only permissible code or content.
[-] : 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.
[-] : 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.
[x] : MUST - Package consistently uses macros. instead of hard-coded directory names.
[x] : MUST - Package meets the Packaging Guidelines.
[x] : MUST - Package does not generates any conflict.
[x] : MUST - Package does not contains kernel modules.
[x] : MUST - Package contains no static executables.
[x] : MUST - Package obeys FHS, except libexecdir and /usr/target.
[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.
[-] : MUST - Rpath absent or only used for internal libs.
[x] : MUST - Package is not relocatable.
[x] : MUST - Requires correct, justified where necessary.
[x] : MUST - Spec file is legible and written in American English.
[-] : MUST - Package contains a SysV-style init script if in need of one.
[x] : MUST - File names are valid UTF-8.
[x] : MUST - Useful -debuginfo package or justification otherwise.
[x] : SHOULD - Reviewer should test that the package builds in mock.
[x] : SHOULD - Dist tag is present.
[x] : SHOULD - SourceX is a working URL.
[x] : SHOULD - Spec use %global instead of %define.
[-] : SHOULD - Uses parallel make.
[-] : SHOULD - The placement of pkgconfig(.pc) files are correct.
[!] : SHOULD - SourceX / PatchY prefixed with %{name}.
        Patch0:         octave-struct-nostrip.patch (octave-struct-nostrip.patch)
        
[-] : 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 - 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.
[-] : SHOULD - Man pages included for all executables.
[!] : SHOULD - Patches link to upstream bugs/comments/lists or are otherwise justified.
[x] : SHOULD - Scriptlets must be sane, if used.
[-] : 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.
[x] : SHOULD - %check is present and all tests pass.
[x] : SHOULD - Packages should try to preserve timestamps of original installed files.

Issues:
[!] : SHOULD - Patches link to upstream bugs/comments/lists or are otherwise justified.

* You can remove octave from the BuildRequires field since octave-devel already requires it (as it is usual for all *-devel to depend on the non-devel part)

* The description part could be expanded a bit (I am aware that this is what shows the project page).

Comment 3 Thomas Sailer 2011-06-13 17:45:33 UTC
(In reply to comment #2)

Thank you for taking the review!

> [!] : MUST - Rpmlint output is silent.

Please compare this to Bug 693798, the review of octave-image.

>         rpmlint octave-struct-1.0.9-1.fc16.i686.rpm
>         octave-struct.i686: W: obsolete-not-provided octave-forge

As Orion Poplawski argued in the above referred bug, the obsoletes is necessary.

>         octave-struct.i686: W: hidden-file-or-dir
> /usr/share/octave/packages/struct-1.0.9/packinfo/.autoload
>         octave-struct.i686: E: zero-length
> /usr/share/octave/packages/struct-1.0.9/packinfo/.autoload

This is the way the octave packaging system works; octave-image also contains such an empty .autoload file

>         octave-struct.i686: W: dangerous-command-in-%preun rm

This warning comes from the rpm macros installed by octave, and should be fixed there, IMO. That was already discussed in bug 693798.


> [!] : SHOULD - SourceX / PatchY prefixed with %{name}.
>         Patch0:         octave-struct-nostrip.patch
> (octave-struct-nostrip.patch)

Changed to:
Patch0:         %{name}-nostrip.patch

> Issues:
> [!] : SHOULD - Patches link to upstream bugs/comments/lists or are otherwise
> justified.

Ok, I will take the "otherwise justified" route.

Upstream made a deliberate choice to strip binaries upon installation.
This however runs counter to our packaging guidelines (namely that we
do not want useless debug packages). This patch just patches out the
stripping on installation. This is, therefore, a fedora specific
change, that needs not be reported to upstream (they will ignore it anyway
as it runs counter to their decision)

> * You can remove octave from the BuildRequires field since octave-devel already
> requires it (as it is usual for all *-devel to depend on the non-devel part)

Removed BR octave

> * The description part could be expanded a bit (I am aware that this is what
> shows the project page).

I tried to come up with a slightly longer and more informative text.

Comment 4 José Matos 2011-06-13 18:07:13 UTC
(In reply to comment #3)
> (In reply to comment #2)
> 
> Thank you for taking the review!

You are welcome.

> > [!] : MUST - Rpmlint output is silent.
> 
> Please compare this to Bug 693798, the review of octave-image.
> 
> >         rpmlint octave-struct-1.0.9-1.fc16.i686.rpm
> >         octave-struct.i686: W: obsolete-not-provided octave-forge
> 
> As Orion Poplawski argued in the above referred bug, the obsoletes is
> necessary.
> 
> >         octave-struct.i686: W: hidden-file-or-dir
> > /usr/share/octave/packages/struct-1.0.9/packinfo/.autoload
> >         octave-struct.i686: E: zero-length
> > /usr/share/octave/packages/struct-1.0.9/packinfo/.autoload
> 
> This is the way the octave packaging system works; octave-image also contains
> such an empty .autoload file
> 
> >         octave-struct.i686: W: dangerous-command-in-%preun rm
> 
> This warning comes from the rpm macros installed by octave, and should be fixed
> there, IMO. That was already discussed in bug 693798.

I am aware that is why I did not consider them to be an issue.

On retrospective I should have placed a note saying exactly that.

> > [!] : SHOULD - SourceX / PatchY prefixed with %{name}.
> >         Patch0:         octave-struct-nostrip.patch
> > (octave-struct-nostrip.patch)
> 
> Changed to:
> Patch0:         %{name}-nostrip.patch
> 
> > Issues:
> > [!] : SHOULD - Patches link to upstream bugs/comments/lists or are otherwise
> > justified.
> 
> Ok, I will take the "otherwise justified" route.
> 
> Upstream made a deliberate choice to strip binaries upon installation.
> This however runs counter to our packaging guidelines (namely that we
> do not want useless debug packages). This patch just patches out the
> stripping on installation. This is, therefore, a fedora specific
> change, that needs not be reported to upstream (they will ignore it anyway
> as it runs counter to their decision)

My point here is that a single comment like:

# Avoid package stripping to have a useful debug package

over the patch is enough. You can rephrase it as you wish, but you get the idea.

> > * You can remove octave from the BuildRequires field since octave-devel already
> > requires it (as it is usual for all *-devel to depend on the non-devel part)
> 
> Removed BR octave
> 
> > * The description part could be expanded a bit (I am aware that this is what
> > shows the project page).
> 
> I tried to come up with a slightly longer and more informative text.

Usually it is nice to have a link for the new sources. It is not required but it is nice. :-)

Comment 5 Thomas Sailer 2011-06-13 18:34:41 UTC
(In reply to comment #4)

> over the patch is enough. You can rephrase it as you wish, but you get the
> idea.

Now I understand; I've done now just that.

> Usually it is nice to have a link for the new sources. It is not required but
> it is nice. :-)

Sorry about that, I just copied it at the original place.

But here are the updated links:

http://sailer.fedorapeople.org/octave-struct-1.0.9-3.fc15.src.rpm
http://sailer.fedorapeople.org/octave-struct.spec

Comment 6 José Matos 2011-06-13 18:57:18 UTC
OK, thank you. :-)

The packaged is APPROVED.

BTW nice work with the description I really like it now. :-)

I will have leave soon so I will not review the other packages until tomorrow. If there are cases that are similar to the issues raised in this package it would be nice if you could take care of them because then the review will be even easier. :-)

At least but not at least nice work with this and all the other octave packages, it is appreciated. :-)

Comment 7 Thomas Sailer 2011-06-13 19:16:02 UTC
Thanks Jose!

I will go over the other packages tomorrow. Those with a scratch build btw are those that should go in first, the others depend on those with scratch build.

New Package SCM Request
=======================
Package Name: octave-struct
Short Description: Structure handling for Octave
Owners: sailer
Branches: f15
InitialCC:

Comment 8 Gwyn Ciesla 2011-06-15 12:00:31 UTC
Git done (by process-git-requests).

Comment 9 Fedora Update System 2011-06-15 16:32:29 UTC
octave-control-2.0.2-2.fc15,octave-symbolic-1.0.9-2.fc15,octave-audio-1.1.4-2.fc15,octave-quaternion-1.0.0-2.fc15,octave-miscellaneous-1.0.11-2.fc15,octave-specfun-1.0.9-2.fc15,octave-struct-1.0.9-3.fc15 has been submitted as an update for Fedora 15.
https://admin.fedoraproject.org/updates/octave-control-2.0.2-2.fc15,octave-symbolic-1.0.9-2.fc15,octave-audio-1.1.4-2.fc15,octave-quaternion-1.0.0-2.fc15,octave-miscellaneous-1.0.11-2.fc15,octave-specfun-1.0.9-2.fc15,octave-struct-1.0.9-3.fc15

Comment 10 Fedora Update System 2011-06-15 23:52:48 UTC
octave-control-2.0.2-2.fc15, octave-symbolic-1.0.9-2.fc15, octave-audio-1.1.4-2.fc15, octave-quaternion-1.0.0-2.fc15, octave-miscellaneous-1.0.11-2.fc15, octave-specfun-1.0.9-2.fc15, octave-struct-1.0.9-3.fc15 has been pushed to the Fedora 15 testing repository.

Comment 11 Fedora Update System 2011-06-24 03:47:20 UTC
octave-control-2.0.2-2.fc15, octave-symbolic-1.0.9-2.fc15, octave-audio-1.1.4-2.fc15, octave-quaternion-1.0.0-2.fc15, octave-miscellaneous-1.0.11-2.fc15, octave-specfun-1.0.9-2.fc15, octave-struct-1.0.9-3.fc15 has been pushed to the Fedora 15 stable repository.


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