Bug 1002288 - Review Request: gnome-software - A software center for GNOME
Review Request: gnome-software - A software center for GNOME
Status: CLOSED NEXTRELEASE
Product: Fedora
Classification: Fedora
Component: Package Review (Show other bugs)
rawhide
All Linux
medium Severity medium
: ---
: ---
Assigned To: Antonio Trande
Fedora Extras Quality Assurance
:
Depends On:
Blocks: 998562 1021600
  Show dependency treegraph
 
Reported: 2013-08-28 15:48 EDT by Richard Hughes
Modified: 2013-10-21 11:37 EDT (History)
6 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2013-09-02 12:06:45 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
anto.trande: fedora‑review+
dennis: fedora‑cvs+


Attachments (Terms of Use)

  None (edit)
Description Richard Hughes 2013-08-28 15:48:46 EDT
Spec URL: http://people.freedesktop.org/~hughsient/temp/gnome-software.spec
SRPM URL: http://people.freedesktop.org/~hughsient/temp/gnome-software-0.1-1.fc19.src.rpm
Koji URL: http://koji.fedoraproject.org/koji/taskinfo?taskID=5866559
Fedora Account System Username: rhughes

Description: gnome-software is an application that makes it easy to add, remove and update software in the GNOME desktop.

rpmlint output:
[hughsie@hughsie-laptop gnome-software (master %)]$ rpmlint /home/hughsie/rpmbuild/*/gnome-software*rpm
3 packages and 0 specfiles checked; 0 errors, 0 warnings.
Comment 1 Antonio Trande 2013-08-28 16:05:27 EDT
Hi Richard.

- .desktop file must be validated.
(http://fedoraproject.org/wiki/Packaging:Guidelines#desktop-file-install_usage)

- %defattr(-,root,root,-) is no more necessary
(http://fedoraproject.org/wiki/Packaging:Guidelines#File_Permissions)
Comment 2 Richard Hughes 2013-08-29 05:13:03 EDT
> - .desktop file must be validated.
> - %defattr(-,root,root,-) is no more necessary

Both fixed:

Spec URL: http://people.freedesktop.org/~hughsient/temp/gnome-software.spec
SRPM URL: http://people.freedesktop.org/~hughsient/temp/gnome-software-0.1-2.fc19.src.rpm

Thanks,

Richard.
Comment 3 Christopher Meng 2013-08-29 07:40:34 EDT
Suggestion:

%{buildroot}/%{_datadir}

should be 

%{buildroot}%{_datadir}

as  %{_datadir} already has a slash eq "/"usr/share
Comment 4 Antonio Trande 2013-08-29 10:38:32 EDT
I fetch this review request.
Comment 5 Richard Hughes 2013-08-29 16:09:54 EDT
(In reply to Christopher Meng from comment #3)
> should be 
> %{buildroot}%{_datadir}

Fixed, thanks.
Comment 6 Mohamed El Morabity 2013-08-29 20:56:54 EDT
Notice that Requires on gtk-update-icon-cache are not needed according to http://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Icon_Cache
Comment 7 Mohamed El Morabity 2013-08-29 21:17:15 EDT
By the way, since the provided desktop file doesn't contain any MimeType key, updating the desktop database in %post/%postun is useless.
Comment 8 Christopher Meng 2013-08-29 23:47:27 EDT
And,

DESTDIR=$RPM_BUILD_ROOT

You've used

desktop-file-validate %{buildroot}/%{_datadir}/applications/gnome-software.desktop

So, change $RPM_BUILD_ROOT to %{buildroot}
Comment 9 Antonio Trande 2013-08-31 10:37:49 EDT
Package Review
==============

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


Issues:
=======
- update-desktop-database is invoked when required
  Note: desktop file(s) in gnome-software
  See: http://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Icon_Cache

Use 'update-desktop-database' when a desktop entry has a MimeType key.
The .desktop file does not have a MimeType key so you can remove those script commands
in %post/%postun

- Package consistently uses macro is (instead of hard-coded directory names).
  Note: Using both %{buildroot} and $RPM_BUILD_ROOT
  See: http://fedoraproject.org/wiki/Packaging/Guidelines#macros

Please, use always %{buildroot} or always $RPM_BUILD_ROOT, not both in same spec file.

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

C/C++:
[x]: Package does not contain kernel modules.
[x]: Package contains no static executables.
[-]: Development (unversioned) .so files in -devel subpackage, if present.
     Note: Unversioned so-files in private %_libdir subdirectory (see
     attachment). Verify they are not in ld path.
[x]: Package does not contain any libtool archives (.la)
[x]: Rpath absent or only used for internal libs.

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]: %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.
[-]: Development files must be in a -devel package
[-]: Package requires other packages for directories it uses.
[x]: Package uses nothing in %doc for runtime.
[x]: Package is not known to require ExcludeArch.
[x]: Package complies to the Packaging Guidelines
[x]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses found:
     "LGPL (v2.1 or later)", "GPL (v2 or later)", "Unknown or generated". 3
     files have unknown license. Detailed output of licensecheck in
     /home/sagitter/1002288-gnome-software/licensecheck.txt

There is the src/gs-self-test.c released with LGPLv2+ license but it's not
used in the compilation. 
License tag is right.

[x]: The spec file handles locales properly.
[x]: Package is named according to the Package Naming Guidelines.
[x]: 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.
[!]: Package must own all directories that it creates.

Package doesn't own %{_libdir}/gs-plugins and %{_datadir}/gnome-software
directories. Please fix them.

[x]: Package does not own files or directories owned by other packages.
[x]: Requires correct, justified where necessary.

Requires(*): /usr/bin/gtk-update-icon-cache are not necessary according to
http://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Icon_Cache.


[x]: Spec file is legible and written in American English.
[-]: Package contains systemd file(s) if in need.
[x]: Useful -debuginfo package or justification otherwise.
[-]: Large documentation must go in a -doc subpackage.
     Note: Documentation size is 30720 bytes in 4 files.
[x]: All build dependencies are listed in BuildRequires, except for any that
     are listed in the exceptions section of Packaging Guidelines.
[x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
[x]: Each %files section contains %defattr if rpm < 4.4
[x]: Macros in Summary, %description expandable at SRPM build time.
[x]: Package contains desktop file if it is a GUI application.
[x]: Package installs a %{name}.desktop using desktop-file-install if there is
     such a file.
[x]: Package does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[x]: Fully versioned dependency in subpackages, if present.
[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 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
[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: No rpmlint messages.

===== 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 cannot test this software yet.

[x]: Latest version is packaged.
[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.
[x]: Package should compile and build into binary rpms on all supported
     architectures.
[x]: %check is present and all tests pass.
[x]: 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.
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: Uses parallel make.
[x]: SourceX tarball generation or download is documented.
[x]: SourceX is a working URL.
[x]: Spec use %global instead of %define.

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

Generic:
[x]: Large data in /usr/share should live in a noarch subpackage if package is
     arched.
     Note: Arch-ed rpms have a total of 1105920 bytes in /usr/share 1105920
     gnome-software-0.1-2.fc21.i686.rpm
[x]: Rpmlint is run on all installed packages.
     Note: No rpmlint messages.
[x]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: gnome-software-0.1-2.fc21.i686.rpm
1 packages and 0 specfiles checked; 0 errors, 0 warnings.




Rpmlint (installed packages)
----------------------------
# rpmlint gnome-software
1 packages and 0 specfiles checked; 0 errors, 0 warnings.
# echo 'rpmlint-done:'



Requires
--------
gnome-software (rpmlib, GLIBC filtered):
    /bin/sh
    /usr/bin/gtk-update-icon-cache
    gnome-icon-theme
    libatk-1.0.so.0
    libc.so.6
    libcairo-gobject.so.2
    libcairo.so.2
    libgdk-3.so.0
    libgdk_pixbuf-2.0.so.0
    libgio-2.0.so.0
    libglib-2.0.so.0
    libgmodule-2.0.so.0
    libgobject-2.0.so.0
    libgtk-3.so.0
    libm.so.6
    libpackagekit-glib2.so.16
    libpango-1.0.so.0
    libpangocairo-1.0.so.0
    libpthread.so.0
    libsqlite3.so.0
    rtld(GNU_HASH)



Provides
--------
gnome-software:
    gnome-software
    gnome-software(x86-32)
    libgs_plugin_datadir_apps.so
    libgs_plugin_datadir_filename.so
    libgs_plugin_desktopdb.so
    libgs_plugin_dummy.so
    libgs_plugin_hardcoded-descriptions.so
    libgs_plugin_hardcoded-featured.so
    libgs_plugin_hardcoded-kind.so
    libgs_plugin_hardcoded-popular.so
    libgs_plugin_hardcoded-ratings.so
    libgs_plugin_hardcoded-screenshots.so
    libgs_plugin_local-ratings.so
    libgs_plugin_packagekit-refine.so
    libgs_plugin_packagekit.so



Unversioned so-files
--------------------
gnome-software: /usr/lib/gs-plugins/libgs_plugin_datadir_apps.so
gnome-software: /usr/lib/gs-plugins/libgs_plugin_datadir_filename.so
gnome-software: /usr/lib/gs-plugins/libgs_plugin_desktopdb.so
gnome-software: /usr/lib/gs-plugins/libgs_plugin_dummy.so
gnome-software: /usr/lib/gs-plugins/libgs_plugin_hardcoded-descriptions.so
gnome-software: /usr/lib/gs-plugins/libgs_plugin_hardcoded-featured.so
gnome-software: /usr/lib/gs-plugins/libgs_plugin_hardcoded-kind.so
gnome-software: /usr/lib/gs-plugins/libgs_plugin_hardcoded-popular.so
gnome-software: /usr/lib/gs-plugins/libgs_plugin_hardcoded-ratings.so
gnome-software: /usr/lib/gs-plugins/libgs_plugin_hardcoded-screenshots.so
gnome-software: /usr/lib/gs-plugins/libgs_plugin_local-ratings.so
gnome-software: /usr/lib/gs-plugins/libgs_plugin_packagekit-refine.so
gnome-software: /usr/lib/gs-plugins/libgs_plugin_packagekit.so

Source checksums
----------------
http://people.freedesktop.org/~hughsient/temp/gnome-software-0.1.tar.xz :
  CHECKSUM(SHA256) this package     : 16570523f5cb4ece6f36707ad0737b6482c03b7ab1ec6f9a0055cccaf46444bc
  CHECKSUM(SHA256) upstream package : 16570523f5cb4ece6f36707ad0737b6482c03b7ab1ec6f9a0055cccaf46444bc


Generated by fedora-review 0.4.1 (b2e211f) last change: 2013-04-29
Buildroot used: fedora-rawhide-i386
Command line :/usr/bin/fedora-review -m fedora-rawhide-i386 -b 1002288
Comment 10 Richard Hughes 2013-09-01 07:07:59 EDT
(In reply to Antonio Trande from comment #9)
> Use 'update-desktop-database' when a desktop entry has a MimeType key.
> The .desktop file does not have a MimeType key so you can remove those
> script commands
> in %post/%postun

Fixed.

> Please, use always %{buildroot} or always $RPM_BUILD_ROOT, not both in same
> spec file.

Fixed.

> There is the src/gs-self-test.c released with LGPLv2+ license but it's not
> used in the compilation. 
> License tag is right.

OOPS! This is supposed to be GPLv2+ like the other files. I've changed it upstream, and this will be in the next tarball release: https://git.gnome.org/browse/gnome-software/commit/?id=c8704e740220e8882fbb3fbe2c52f0a54dc015f3

Good catch.

> Package doesn't own %{_libdir}/gs-plugins and %{_datadir}/gnome-software
> directories. Please fix them.

Fixed.

> [x]: Package does not own files or directories owned by other packages.
> [x]: Requires correct, justified where necessary.
> 
> Requires(*): /usr/bin/gtk-update-icon-cache are not necessary according to
> http://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Icon_Cache.

Fixed.

New spec: http://people.freedesktop.org/~hughsient/temp/gnome-software.spec
New SRPM: http://people.freedesktop.org/~hughsient/temp/gnome-software-0.1-3.fc19.src.rpm

Thanks,

Richard.
Comment 11 Antonio Trande 2013-09-01 07:59:37 EDT
Just another note.
You can also replace 'gnome-software' with the macro %{name}; for example:

 %{_datadir}/applications/gnome-software.desktop 
becomes
 %{_datadir}/applications/%{name}.desktop

Now, I can't test the package yet since I don't have available a F20.
I hope this doesn't nullify my review.


Package approved !
Comment 12 Richard Hughes 2013-09-02 08:00:44 EDT
New Package SCM Request
=======================
Package Name: gnome-software
Short Description: gnome-software is an application that makes it easy to add, remove and update software in the GNOME desktop.
Owners: rhughes
Branches: f20
InitialCC: rhughes
Comment 13 Dennis Gilmore 2013-09-02 11:12:34 EDT
Git done (by process-git-requests).
Comment 14 Richard Hughes 2013-09-02 12:06:45 EDT
Thanks all!

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