Bug 1321416 - Review Request: gnome-shell-extension-mailnag - A Gnome-Shell extension for mailnag
Review Request: gnome-shell-extension-mailnag - A Gnome-Shell extension for m...
Status: NEW
Product: Fedora
Classification: Fedora
Component: Package Review (Show other bugs)
All Linux
unspecified Severity medium
: ---
: ---
Assigned To: Nobody's working on this, feel free to take it
Fedora Extras Quality Assurance
Depends On:
  Show dependency treegraph
Reported: 2016-03-26 10:43 EDT by Heiko Adams
Modified: 2016-05-18 09:14 EDT (History)
3 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed:
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

  None (edit)
Description Heiko Adams 2016-03-26 10:43:46 EDT
Spec URL: http://repo.heiko-adams.de/gnome-shell-extension-mailnag.spec
SRPM URL: http://repo.heiko-adams.de/Fedora/gnome-shell-extension-mailnag-3.18.0-2.fc24.src.rpm
Description: Mailnag GNOME-Shell extension
Fedora Account System Username: heikoada
Comment 1 philip.worrall 2016-05-16 11:11:24 EDT
Hi, the SRPM url is not valid. Please post a URL where we can find the SRPM package.
Comment 3 philip.worrall 2016-05-16 16:56:55 EDT

Thanks for posting the SRPM.

I am NOT a fedora packager but i'm happy to carry out an informal review whilst you look for a sponsor. Hopefully it can give some help on how you can improve your package. Please check the items below.

* There is a newer version of this package listed as 3.20 (https://github.com/pulb/mailnag-gnome-shell/archive/v3.20.0.tar.gz)
* In your spec file you have some code referring to the git scm for this package but i noticed that upstream is providing packaged releases. You might want to simplyfy your spec file by removing the git sections and using the upstream release tarballs as sources. 
* Since fedora 18 the Group tag is ignored. In any case other gnome shell extensions in the repo use Group: User Interface/Desktops
* The upstream source package includes a LICENCE file, you should use %licence 
 in the %files section to include it.
* Similarly you might want to package the README.md file as documentation using %doc.
* On the project's website vala is listed as a build dependency, you should add this to the buildrequires section.
* At runtime this package appears to require the mailnag (>= 1.2) daemon. You should add a dependency for it in the spec file.
* You should probably add a runtime dependency to gnome-tweak-tool so that users can enable this extension through the gui. i.e. Requires: gnome-tweak-tool
* In the files section, %{_datadir}/gnome-shell/extensions/mailnag@pulb.github.com/*, I think that you can remove the asterisk at the end so that this package owns this folder.
* If you add a patch you should add a comment to explain what it does and list it in the changelog. When i look at your patch it appears to allow version 3.18 of this package to register in gnome 3.20 but upstream say that you need version 3.20 for gnome 3.20 support. I think if you update your spec file for version 3.20 you can probably drop this patch altogether.
* The %clean section is unnecessary
* Does this package fail to build on any architectures supported by fedora?, if so you should add an ExcludeArch tag for any said architectures.
* The %build section is unnecessary in this case
* When upgrading to a new upstream release you should set the release number back to 1. From your changelog it looks like you forgot to do this when you introduced version 3.18 and its still at 2.
* Its hard to say from the %description whether i *need* to install this package. Maybe you should revise the description section (e.g use the description used by the FSF or the related Debian package)...

This package provides GNOME Shell integration for Mailnag. 
It includes the following features: notifies about new 
mails via the messaging tray (including a counter badge),
shows an indicator in the top panel (including counter 
badge and popup menu) and supports lock screen integration.

* Compared with the mailnag extension listed on gnome.org an important feature of 
this package is that it ships with support for avatars. You might want to list this fact in the description.  

Package Review

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

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

[X]: Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
[!]: 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 %license.
[X]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses
     found: "BSD (3 clause)", "GPL (v2 or later)", "Unknown or generated".
     3 files have unknown license. Detailed output of licensecheck in
[!]: Package requires other packages for directories it uses.
     Note: No known owner of /usr/share/gnome-
[!]: Package must own all directories that it creates.
     Note: Directories without known owners: /usr/share/gnome-
[-]: %build honors applicable compiler flags or justifies otherwise.
[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]: glib-compile-schemas is run in %postun and %posttrans if package has
     *.gschema.xml files.
     Note: gschema file(s) in gnome-shell-extension-mailnag
[ ]: Package consistently uses macros (instead of hard-coded directory
[X]: Package is named according to the Package Naming Guidelines.
[ ]: Package does not generate any conflict.
[X]: Package obeys FHS, except libexecdir and /usr/target.
[-]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[!]: Requires correct, justified where necessary.
[X]: Spec file is legible and written in American English.
[-]: Package contains systemd file(s) if in need.
[-]: Useful -debuginfo package or justification otherwise.
[ ]: Package is not known to require an ExcludeArch tag.
[ ]: Package complies to the Packaging Guidelines
[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]: 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]: Dist tag is present.
[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
[x]: Package is named using only allowed ASCII characters.
[x]: Package does not use a name that already exists.
[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
[x]: File names are valid UTF-8.
[x]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 0 bytes in 0 files.
[x]: Packages must not store files under /srv, /opt or /usr/local

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

[!]: Package has no %clean section with rm -rf %{buildroot} (or
     Note: %clean present but not required
[!]: If the source package does not include license text(s) as a separate
     file from upstream, the packager SHOULD query upstream to include it.
[!]: Final provides and requires are sane (see attachments).
[?]: Package functions as described.
[!]: Latest version is packaged.
[X]: Package does not include license text files separate from upstream.
[ ]: Patches link to upstream bugs/comments/lists or are otherwise
[ ]: 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
[ ]: %check is present and all tests pass.
[ ]: Packages should try to preserve timestamps of original installed
[x]: Reviewer should test that the package builds in mock.
[x]: Buildroot is not present
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
[x]: Sources can be downloaded from URI in Source: tag
[x]: SourceX is a working URL.
[x]: Spec use %global instead of %define unless justified.

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

[x]: Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).
[x]: Large data in /usr/share should live in a noarch subpackage if package
     is arched.

Checking: gnome-shell-extension-mailnag-3.18.0-2.fc22.x86_64.rpm
gnome-shell-extension-mailnag.x86_64: W: incoherent-version-in-changelog 3.18.0-2.201603221945git8ad41d1 ['3.18.0-2.fc22', '3.18.0-2']
gnome-shell-extension-mailnag.x86_64: W: unstripped-binary-or-object /usr/bin/aggregate-avatars
gnome-shell-extension-mailnag.x86_64: W: no-documentation
gnome-shell-extension-mailnag.x86_64: W: no-manual-page-for-binary aggregate-avatars
gnome-shell-extension-mailnag.src:9: W: macro-in-comment %{gitdate}
gnome-shell-extension-mailnag.src:9: W: macro-in-comment %{gittime}
gnome-shell-extension-mailnag.src:9: W: macro-in-comment %{githash}
gnome-shell-extension-mailnag.src: W: file-size-mismatch gnome-shell-extension-mailnag-v3.18.0-8ad41d1.tar.gz = 26362, https://github.com/pulb/mailnag-gnome-shell/archive/8ad41d19e655f173af5dc736beef8bc939b9f83f/gnome-shell-extension-mailnag-v3.18.0-8ad41d1.tar.gz = 18341
2 packages and 0 specfiles checked; 0 errors, 8 warnings.

Rpmlint (installed packages)
gnome-shell-extension-mailnag.x86_64: W: incoherent-version-in-changelog 3.18.0-2.201603221945git8ad41d1 ['3.18.0-2.fc22', '3.18.0-2']
gnome-shell-extension-mailnag.x86_64: W: unstripped-binary-or-object /usr/bin/aggregate-avatars
gnome-shell-extension-mailnag.x86_64: W: no-documentation
gnome-shell-extension-mailnag.x86_64: W: no-manual-page-for-binary aggregate-avatars
1 packages and 0 specfiles checked; 0 errors, 4 warnings.

gnome-shell-extension-mailnag (rpmlib, GLIBC filtered):


Source checksums
https://github.com/pulb/mailnag-gnome-shell/archive/8ad41d19e655f173af5dc736beef8bc939b9f83f/gnome-shell-extension-mailnag-v3.18.0-8ad41d1.tar.gz :
  CHECKSUM(SHA256) this package     : 891a6a77cb246575cbe14caef721843b65bb444f5dc8d43df00dd51e324f1e24
  CHECKSUM(SHA256) upstream package : cf38a1a04142e3dac05546cd07cc66a17dfee2cd59abd2e876823e10b336d894
However, diff -r shows no differences
Comment 4 Heiko Adams 2016-05-17 07:55:10 EDT
Okay, I tried to follow all items you listed above.
So here are the updated files:

Spec URL: http://repo.heiko-adams.de/gnome-shell-extension-mailnag.spec
SRPM URL: http://repo.heiko-adams.de/gnome-shell-extension-mailnag-3.20.0-1.fc24.src.rpm
Comment 5 philip.worrall 2016-05-18 07:37:05 EDT
Thanks for posting a revision.

Could you indicate which items you have addressed and which you haven't.

A quick scan shows you're still using the git sources but upstream provide a release tarball that includes documentation. You could clean up all those global variables by using this and in the files section put %license LICENSE, %doc README.md etc. Is there any particular reason why you want to use git directly?
Comment 6 Heiko Adams 2016-05-18 09:12:08 EDT
Since I'm also packaging git snapshots for testing purpose it's easier for me to use one specfile for both instead of juggling with 2 mostly identical specfiles.
Comment 7 Heiko Adams 2016-05-18 09:14:17 EDT
(In reply to philip.worrall from comment #5)
> Thanks for posting a revision.
> Could you indicate which items you have addressed and which you haven't.
I tried to adress all items marked with an "!"

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