Bug 516654

Summary: Review Request: gnome-shell - Window management and application launching for GNOME [3]
Product: [Fedora] Fedora Reporter: Owen Taylor <otaylor>
Component: Package ReviewAssignee: Josh Boyer <jwboyer>
Status: CLOSED NEXTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: bnocera, fedora-package-review, jwboyer, notting, pbrobinson
Target Milestone: ---Flags: jwboyer: fedora‑review+
kevin: fedora‑cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2009-08-12 21:28:58 EDT Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:

Description Owen Taylor 2009-08-10 18:55:59 EDT
Spec URL: http://www.gnome.org/~otaylor/gnome-shell.spec
SRPM URL: http://www.gnome.org/~otaylor/gnome-shell-2.27.0-1.src.rpm
Description:
GNOME Shell provides core user interface functions for the GNOME 3 desktop,
like switching to windows and launching applications. GNOME Shell takes
advantage of the capabilities of modern graphics hardware and introduces
innovative user interface concepts to provide a visually attractive and
easy to use experience.


(The 2.27.0 tarball packaged here is mostly intended for getting packaging started rather than as a big splashy release; it's just taken in the middle of rapid development without any formal freeze process. I think it's in reasonable shape, but there probably are some horrible bugs we don't know about yet.)
Comment 1 Peter Robinson 2009-08-11 12:42:06 EDT
mutter-2.27.2-1.fc12 is now built in rawhide (this is a dep for gnome-shell). I'll get it tagged for the alpha too.
Comment 2 Peter Robinson 2009-08-11 13:45:56 EDT
mutter 2.27.2 tagged for F12 alpha
Comment 3 Owen Taylor 2009-08-11 14:30:18 EDT
Updated for parallel build problem (http://bugzilla.gnome.org/show_bug.cgi?id=591474 - I just turned off the parallel build rather than dealing with patching the Makefile.am)

http://www.gnome.org/~otaylor/gnome-shell.spec
http://www.gnome.org/~otaylor/gnome-shell-2.27.0-2.src.rpm
Comment 4 Owen Taylor 2009-08-11 15:31:54 EDT
Updated for missing BuildRequires on gir-repository-devel

http://www.gnome.org/~otaylor/gnome-shell.spec
http://www.gnome.org/~otaylor/gnome-shell-2.27.0-3.src.rpm
Comment 5 Josh Boyer 2009-08-12 09:13:55 EDT
 +:ok, =:needs attention, -:needs fixing

MUST Items:
[=] MUST: rpmlint must be run on every package.

[jwboyer@hansolo ~]$ rpmlint  ~/Download/gnome-shell.spec 
0 packages and 1 specfiles checked; 0 errors, 0 warnings.
[jwboyer@hansolo ~]$ rpmlint  ~/Download/gnome-shell-2.27.0-3.src.rpm 
1 packages and 0 specfiles checked; 0 errors, 0 warnings.
[jwboyer@hansolo ~]$ rpmlint  ~/Download/gnome-shell-2.27.0-3.x86_64.rpm 
gnome-shell.x86_64: E: explicit-lib-dependency librsvg2
gnome-shell.x86_64: E: zero-length /usr/share/doc/gnome-shell-2.27.0/README
gnome-shell.x86_64: W: non-conffile-in-etc /etc/gconf/schemas/gnome-shell.schemas
1 packages and 0 specfiles checked; 2 errors, 1 warnings.


[+] MUST: The package must be named according to the Package Naming Guidelines.
[+] MUST: The spec file name must match the base package %{name}
[+] MUST: The package must be licensed with a Fedora approved license and meet the Licensing Guidelines.
[+] MUST: The License field in the package spec file must match the actual license.
[+] 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.
[+] MUST: The spec file must be written in American English.
[+] MUST: The spec file for the package MUST be legible.
[+] MUST: The sources used to build the package must match the upstream source, as provided in the spec URL.

[jwboyer@hansolo SOURCES]$ sha1sum gnome-shell-2.27.0.tar.bz2 
9bf1f96e4d70505101730579d396cd32e2488bce  gnome-shell-2.27.0.tar.bz2
[jwboyer@hansolo SOURCES]$ wget http://ftp.gnome.org/pub/GNOME/sources/gnome-shell/2.27/gnome-shell-2.27.0.tar.bz2
--2009-08-12 08:55:24--  http://ftp.gnome.org/pub/GNOME/sources/gnome-shell/2.27/gnome-shell-2.27.0.tar.bz2
Resolving ftp.gnome.org... 130.239.18.173, 130.239.18.137, 2001:6b0:e:2018::173, ...
Connecting to ftp.gnome.org|130.239.18.173|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 437202 (427K) [application/x-bzip2]
Saving to: `gnome-shell-2.27.0.tar.bz2.1'

100%[=====================================>] 437,202      271K/s   in 1.6s    

2009-08-12 08:55:27 (271 KB/s) - `gnome-shell-2.27.0.tar.bz2.1' saved [437202/437202]

[jwboyer@hansolo SOURCES]$ sha1sum gnome-shell-2.27.0.tar.bz2.1 
9bf1f96e4d70505101730579d396cd32e2488bce  gnome-shell-2.27.0.tar.bz2.1

[+] MUST: The package must successfully compile and build into binary rpms on at least one supported architecture.
[+] MUST: All build dependencies must be listed in BuildRequires
[+] MUST: Every binary RPM package which stores shared library files (not just symlinks) in any of the dynamic linker's default paths, must call ldconfig in %post and %postun.
[-] 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.
[+] MUST: A package must not contain any duplicate files in the %files listing.
[+] MUST: Permissions on files must be set properly. Executables should be set with executable permissions, for example. Every %files section must include a %defattr(...) line.
[+] MUST: Each package must have a %clean section, which contains rm -rf %{buildroot} (or $RPM_BUILD_ROOT).
[+] MUST: Each package must consistently use macros, as described in the macros section of Packaging Guidelines.
[+] MUST: The package must contain code, or permissible content. This is described in detail in the code vs. content section of Packaging Guidelines.
[+] MUST: If a package includes something as %doc, it must not affect the runtime of the application.
[+] MUST: Packages must NOT contain any .la libtool archives, these should be removed in the spec.
[=] MUST: Packages containing GUI applications must include a %{name}.desktop file, and that file must be properly installed with desktop-file-install in the %install section.
[+] MUST: Packages must not own files or directories already owned by other packages.
[+] MUST: At the beginning of %install, each package MUST run rm -rf %{buildroot} (or $RPM_BUILD_ROOT).
[+] MUST: All filenames in rpm packages must be valid UTF-8.

SHOULD Items:
[+] SHOULD: The reviewer should test that the package builds in mock.
[+] SHOULD: The package should compile and build into binary rpms on all supported architectures.
http://koji.fedoraproject.org/koji/taskinfo?taskID=1600644

So there are a couple of small items to fixup:

1) Fix the rpmlint output
2) I think the package should own %{_datadir}/gnome-shell and %{_libdir}/gnome-shell
3) You probably need Requires: GConf2 for the usage in %pre/%postun
4) You don't actually call dekstop-file-install in the %install section.
Comment 6 Owen Taylor 2009-08-12 09:42:50 EDT
> 1 packages and 0 specfiles checked; 2 errors, 1 warnings.
> So there are a couple of small items to fixup:
> 
> 1) Fix the rpmlint output

> gnome-shell.x86_64: E: explicit-lib-dependency librsvg2

This warning is bogus; an explicit requirement on the librsvg2 package is needed because that package provides the svg loader for gdk-pixbuf, which we use to load the imagines in the shell.

> gnome-shell.x86_64: E: zero-length /usr/share/doc/gnome-shell-2.27.0/README

I included the README even if it was zero-length in the theory that the upstream would get non-lame and write one soon enough. Wait, I am the upstream... filed a reminder to myself as:

 http://bugzilla.gnome.org/show_bug.cgi?id=591564

> gnome-shell.x86_64: W: non-conffile-in-etc /etc/gconf/schemas/gnome-shell.schemas

These aren't actually config files, just where GConf happens to put them. I'd rather have the rpmlint warning then to mark them spuriously as %config

> 2) I think the package should own %{_datadir}/gnome-shell and
> %{_libdir}/gnome-shell

Looks like it does to me?

> 3) You probably need Requires: GConf2 for the usage in %pre/%postun

Not a bad idea - currently there will be a file dependency on libgconf-2.so.4 which will pull that in, but an explicit requires is probably safer. I'll add it.

> 4) You don't actually call dekstop-file-install in the %install section.  

desktop-file-validate is a valid alternative now. The review checklist really should be updated... I complained about this reviewing someone else's package this a few weeks ago and was pointed to:

https://fedoraproject.org/wiki/Packaging/Guidelines#desktop-file-install_usage

Updated:
Spec URL: http://www.gnome.org/~otaylor/gnome-shell.spec
SRPM URL: http://www.gnome.org/~otaylor/gnome-shell-2.27.0-4.src.rpm
Comment 7 Josh Boyer 2009-08-12 09:57:03 EDT
(In reply to comment #6)
> > 1 packages and 0 specfiles checked; 2 errors, 1 warnings.
> > So there are a couple of small items to fixup:
> > 
> > 1) Fix the rpmlint output
> 
> > gnome-shell.x86_64: E: explicit-lib-dependency librsvg2
> 
> This warning is bogus; an explicit requirement on the librsvg2 package is
> needed because that package provides the svg loader for gdk-pixbuf, which we
> use to load the imagines in the shell.

Ok.

> > gnome-shell.x86_64: E: zero-length /usr/share/doc/gnome-shell-2.27.0/README
> 
> I included the README even if it was zero-length in the theory that the
> upstream would get non-lame and write one soon enough. Wait, I am the
> upstream... filed a reminder to myself as:
> 
>  http://bugzilla.gnome.org/show_bug.cgi?id=591564

Heh, cool :)

> > gnome-shell.x86_64: W: non-conffile-in-etc /etc/gconf/schemas/gnome-shell.schemas
> 
> These aren't actually config files, just where GConf happens to put them. I'd
> rather have the rpmlint warning then to mark them spuriously as %config

That's fine with me.  rpmlint is known to be stupid.

> > 2) I think the package should own %{_datadir}/gnome-shell and
> > %{_libdir}/gnome-shell
> 
> Looks like it does to me?

Oops.  Yes.

> > 3) You probably need Requires: GConf2 for the usage in %pre/%postun
> 
> Not a bad idea - currently there will be a file dependency on libgconf-2.so.4
> which will pull that in, but an explicit requires is probably safer. I'll add
> it.
> 
> > 4) You don't actually call dekstop-file-install in the %install section.  
> 
> desktop-file-validate is a valid alternative now. The review checklist really
> should be updated... I complained about this reviewing someone else's package
> this a few weeks ago and was pointed to:
> 
> https://fedoraproject.org/wiki/Packaging/Guidelines#desktop-file-install_usage

Indeed.  Thanks for pointing that out.

> Updated:
> Spec URL: http://www.gnome.org/~otaylor/gnome-shell.spec
> SRPM URL: http://www.gnome.org/~otaylor/gnome-shell-2.27.0-4.src.rpm  

APPROVED.  Thanks, and happy packaging.
Comment 8 Owen Taylor 2009-08-12 10:11:13 EDT
New Package CVS Request
=======================
Package Name: gnome-shell
Short Description: Window management and application launching for GNOME
Owners: otaylor walters
Branches:
InitialCC:
Comment 9 Kevin Fenzi 2009-08-12 19:55:55 EDT
cvs done.
Comment 10 Owen Taylor 2009-08-12 21:28:58 EDT
Built successfully:

http://koji.fedoraproject.org/koji/taskinfo?taskID=1602365