Bug 554090

Summary: Review Request: sugar-physics - A physical world simulator and playground for Sugar
Product: [Fedora] Fedora Reporter: Sebastian Dziallas <sebastian>
Component: Package ReviewAssignee: Eric Smith <spacewar>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: fedora-package-review, notting, spacewar, susi.lehtola
Target Milestone: ---Flags: spacewar: fedora-review+
kevin: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: 3-3.fc11 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2010-02-02 20:39:13 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 554088, 554089    
Bug Blocks: 462625, 558617    

Comment 1 Eric Smith 2010-01-24 03:52:26 UTC
I'm not yet sponsored as a packager, but here's an unofficial review:

The Require: tag is no longer necessary, or allowed.

rpmlint output:
sugar-physics.spec:6: W: non-standard-group Sugar/Activities
sugar-physics.noarch: W: non-standard-group Sugar/Activities
1 packages and 1 specfiles checked; 0 errors, 2 warnings.

I'm fairly sure I remember seeing a requirement that the Group: tag come from the official list in /usr/share/doc/rpm-*/GROUPS, but I can't find that in the packaging guidellines now, and the Sugar packaging guidelines use Sugar/Activities just as you have, so I guess that's allowed.

source tarball verified against upstream
compiles and builds on F12 x86_64 and i386 using mock

I attempted to verify minimal functionality using sugar-emulator.  When I start the physics activity, I get a pulsating logo, but nothing else seems to happen for quite a while, then it dumps me back to the activity list.  It's entirely possible that I'm doing something wrong.

Comment 2 Sebastian Dziallas 2010-01-24 16:46:27 UTC
Thanks for taking on this one! :)

(In reply to comment #1)
> I'm not yet sponsored as a packager, but here's an unofficial review:
> 
> The Require: tag is no longer necessary, or allowed.

Well, since this is a Python package we still need to use the Requires tag, as the dependencies don't get added here automagically. 

> rpmlint output:
> sugar-physics.spec:6: W: non-standard-group Sugar/Activities
> sugar-physics.noarch: W: non-standard-group Sugar/Activities
> 1 packages and 1 specfiles checked; 0 errors, 2 warnings.
> 
> I'm fairly sure I remember seeing a requirement that the Group: tag come from
> the official list in /usr/share/doc/rpm-*/GROUPS, but I can't find that in the
> packaging guidellines now, and the Sugar packaging guidelines use
> Sugar/Activities just as you have, so I guess that's allowed.

Yes, this is common practice among the Sugar Activity packages and in the guidelines here: http://fedoraproject.org/wiki/Packaging:SugarActivityGuidelines#Sample_SPEC
 
> source tarball verified against upstream
> compiles and builds on F12 x86_64 and i386 using mock
> 
> I attempted to verify minimal functionality using sugar-emulator.  When I start
> the physics activity, I get a pulsating logo, but nothing else seems to happen
> for quite a while, then it dumps me back to the activity list.  It's entirely
> possible that I'm doing something wrong.

Oh yeah, I see. Looks like I'm missing another requirement (I had it already installed when giving it some initial testing). After installing python-olpcgames, you should be good to go. I'll add it to the next release bump.

Comment 3 Eric Smith 2010-01-31 11:39:55 UTC
It does work for me with that requirement added.  I can now do a formal review if you provide the updated SPEC and SRPM.

Comment 4 Susi Lehtola 2010-01-31 12:15:43 UTC
(In reply to comment #2)
> (In reply to comment #1)
> > I'm fairly sure I remember seeing a requirement that the Group: tag come from
> > the official list in /usr/share/doc/rpm-*/GROUPS, but I can't find that in the
> > packaging guidellines now, and the Sugar packaging guidelines use
> > Sugar/Activities just as you have, so I guess that's allowed.

That statement is in the Creating Packages HOWTO. I don't think that there is an official guideline about this. Since the Group: tag doesn't have much meaning anymore as comps are used in package selection, instead, you really should use standard RPM groups, as you will get unnecessary rpmlint warnings if you don't...

Comment 5 Sebastian Dziallas 2010-01-31 19:04:53 UTC
Alright, I've updated the .spec and .srpm.

Spec URL: http://sdz.fedorapeople.org/rpmbuild/sugar-physics.spec
SRPM URL: http://sdz.fedorapeople.org/rpmbuild/sugar-physics-3-2.fc12.src.rpm

Comment 6 Eric Smith 2010-02-01 00:01:28 UTC
rpmlint output:
sugar-physics.spec:6: W: non-standard-group Sugar/Activities
sugar-physics.noarch: W: non-standard-group Sugar/Activities

Since the Fedora Packaging:SugarActivityGuidelines specifically use the group Sugar/Activities in the sample spec, the rpmlint warnings are not a problem.  Ideally Sugar/Activities would get added to the official group list.

MUST: The package must be named according to the Package Naming Guidelines. OK
MUST: The spec file for the package is legible and macros are used
consistently. OK
MUST: The package must be licensed with a Fedora approved license and meet the 
Licensing Guidelines. OK
MUST: The License field in the package spec file must match the actual license.
OK
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. OK
MUST: The spec file must be written in American English. OK
MUST: The spec file for the package MUST be legible. OK
MUST: The sources used to build the package must match the upstream source, as
provided in the spec URL. OK
MUST: The package MUST successfully compile and build into binary rpms on at least one primary architecture. OK
MUST: If the package does not successfully compile, build or work on an architecture, then those architectures should be listed in the spec in ExcludeArch. N/A
MUST: All build dependencies must be listed in BuildRequires, OK
MUST: The spec file MUST handle locales properly. OK
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. N/A
MUST: Packages must NOT bundle copies of system libraries. OK
MUST: If the package is designed to be relocatable, the packager must state this fact in the request for review, along with the rationalization for relocation of that specific package. Without this, use of Prefix: /usr is considered a blocker. OK
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. OK
MUST: A Fedora package must not list a file more than once in the spec file's %files listings. OK
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. OK
MUST: Each package must have a %clean section, which contains rm -rf %{buildroot} (or $RPM_BUILD_ROOT). OK
MUST: Each package must consistently use macros. OK
MUST: The package must contain code, or permissable content. OK
MUST: Large documentation files must go in a -doc subpackage. N/A
MUST: If a package includes something as %doc, it must not affect the runtime of the application. OK
MUST: Header files must be in a -devel package. N/A
MUST: Static libraries must be in a -static package. N/A
MUST: Packages containing pkgconfig(.pc) files must 'Requires: pkgconfig' N/A
MUST: If a package contains library files with a suffix (e.g. libfoo.so.1.1), then library files that end in .so (without suffix) must go in a -devel package. N/A
MUST: In the vast majority of cases, devel packages must require the base package using a fully versioned dependency N/A
MUST: Packages must NOT contain any .la libtool archives, these must be removed in the spec if they are built. N/A
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 N/A
MUST: Packages must not own files or directories already owned by other packages. OK
MUST: At the beginning of %install, each package MUST run rm -rf %{buildroot} (or $RPM_BUILD_ROOT). OK
MUST: All filenames in rpm packages must be valid UTF-8. OK

SHOULD: If the package does not include license text(s) as separate files from
upstream, the packager should query upstream to include it. NEEDSWORK
SHOULD: The description and summary sections in the package spec file should contain translations for supported Non-English languages, if available. NEEDSWORK
    I'm not sure whether suitable translations are available, but based on the inclusion of message translations in the package, it seems like they might be.
SHOULD: The package builds in mock. OK
SHOULD: The reviewer should test that the package functions as described. A package should not segfault instead of running, for example. OK
SHOULD: If scriptlets are used, those scriptlets must be sane. This is vague, and left up to the reviewers judgement to determine sanity. N/A
SHOULD: Usually, subpackages other than devel should require the base package using a fully versioned dependency. N/A
SHOULD: The placement of pkgconfig(.pc) files depends on their usecase, and this is usually for development purposes, so should be placed in a -devel pkg. A reasonable exception is that the main pkg itself is a devel tool not installed in a user runtime, e.g. gcc or gdb. N/A
SHOULD: If the package has file dependencies outside of /etc, /bin, /sbin, /usr/bin, or /usr/sbin consider requiring the package which provides the file instead of the file itself. N/A
SHOULD: your package should contain man pages for binaries/scripts. If it doesn't, work with upstream to add them where they make sense. N/A


Review summary:  The only NEEDSWORK items are two SHOULD items, to request that upstream include the GPLv3 license text in a file in the source distribution, and to include translated description and summary sections if available.

Comment 7 Sebastian Dziallas 2010-02-01 16:49:37 UTC
Thanks for the review! Since those are only "should" items, could you approve the package and / or set the review flag?

I can file a ticket with upstream to include the license text in the next release. Also, I haven't found translated summaries and descriptions.

Comment 8 Eric Smith 2010-02-01 20:30:27 UTC
This package is

APPROVED

You can continue by requesting the CVS branches.

Comment 9 Sebastian Dziallas 2010-02-01 22:16:18 UTC
New Package CVS Request
=======================
Package Name: sugar-physics
Short Description: A physical world simulator and playground for Sugar
Owners: sdz
Branches: F-11 F-12

Comment 10 Sebastian Dziallas 2010-02-01 22:18:52 UTC
Awesome stuff, thanks! I filed a ticket with upstream for a license file: http://bugs.sugarlabs.org/ticket/1695

Comment 11 Kevin Fenzi 2010-02-01 22:52:25 UTC
CVS done (by process-cvs-requests.py).

Comment 12 Fedora Update System 2010-02-02 00:14:23 UTC
sugar-physics-3-3.fc11 has been submitted as an update for Fedora 11.
http://admin.fedoraproject.org/updates/sugar-physics-3-3.fc11

Comment 13 Fedora Update System 2010-02-02 00:14:28 UTC
sugar-physics-3-3.fc12 has been submitted as an update for Fedora 12.
http://admin.fedoraproject.org/updates/sugar-physics-3-3.fc12

Comment 14 Fedora Update System 2010-02-02 20:39:08 UTC
sugar-physics-3-3.fc12 has been pushed to the Fedora 12 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 15 Fedora Update System 2010-02-02 20:39:54 UTC
sugar-physics-3-3.fc11 has been pushed to the Fedora 11 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 16 Susi Lehtola 2010-02-02 23:25:31 UTC
This package should BR: python-devel as it builds python stuff.

Moreover, the license is not defined in all of the source files (only physics.py contains a license statement), and there is no global license statement. I wouldn't have passed the package as is without upstream releasing a new tarball that either adds license headers in the source code, or includes a COPYING (or README) stating that all the files are GPLv3 (or both).

Comment 17 Eric Smith 2010-02-02 23:48:44 UTC
Darn, I thought I'd checked everything, but I missed that.

Sebastian says he's already requested inclusion of a license file.  I just ifled a ticket asking for that and for copyright & license headers in the other source files:

http://dev.laptop.org/ticket/10011

Comment 18 Susi Lehtola 2010-02-03 08:57:28 UTC
Normally you just need to run
 $ licensecheck -r foo-1.2.3/
(licensecheck is in rpmdevtools), but if the licence headers aren't there (or licensecheck doesn't find them correctly) you still have to go through the source manually. And even if you'd think that everything is OK judging from the output of licensecheck, it's still good to go through a couple of files manually to verify that licensecheck has worked correctly.

Comment 19 Sebastian Dziallas 2010-02-23 20:01:36 UTC
Just a quick heads-up here. I submitted a fixed version to testing, so that this should all be good soon. Thanks all for the help! :)