Bug 856238

Summary: Review Request: scratch - Programming language learning environment for stories, games, music and art
Product: [Fedora] Fedora Reporter: Matthew Miller <mattdm>
Component: Package ReviewAssignee: Michel Lind <michel>
Status: CLOSED CURRENTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: d.busby, i, ismael, loganjerry, michel, mike, notting, package-review, samuel-rhbugs, trevor.hemsley
Target Milestone: ---Flags: michel: fedora-review+
gwync: 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: 2013-09-25 14:55:08 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: 861633    
Bug Blocks:    

Description Matthew Miller 2012-09-11 14:23:48 UTC
Spec URL: http://mattdm.org/misc/fedora/scratch.spec
SRPM URL: http://mattdm.org/misc/fedora/scratch-1.4.0.6-15.fc17.mattdm.src.rpm
Description: 


Scratch is a programming language that makes it easy to create your own
interactive stories, animations, games, music, and art -- and share your
creations on the web.

As young people create and share Scratch projects, they learn important
mathematical and computational ideas, while also learning to think
creatively, reason systematically, and work collaboratively.


Fedora Account System Username: mattdm

----

Scratch was previously not packaged due to licensing concerns and because of an MP3 implementation. The license is now fully open source (GPLv2, MIT, and CC-BY-SA, variously), and the MP3 implementation has been removed. (In this release, there is a sanitized tarball; upstream has agreed to remove it completely for the next release.)

There are known issues with sound (unrelated to the MP3 problem), and may be a few other functional issues which need to be resolved. However, it turns out that a number of people started working on this, and we'd like to get the package into Rawhide in decent basic shape and then work collaboratively to perfect it (probably as an F19 feature).

Comment 1 David Busby 2012-09-11 14:44:28 UTC
I also began working on this independently with a view to applying for Fedora integration, I will be collaborating with Matthew on this build from here on and would like to add in my application using Matthews reference spec.

Fedora Account System Username: oneiroi

Comment 2 Matthew Miller 2012-09-11 14:53:35 UTC
Some comments on packaging decisions I made:

The three licenses used split cleanly, such that various subpackages can each bear their own license. Likewise, only the squeak plugins are arch-specific; the rest is noarch, and subpackages enable that.

The main "scratch" package is empty and serves only to tie everything together; installing that gets the whole enchilada. One can also start with just scratch-image (the naming matches "squeak-image"), which gives bare-bones functionality, and add other parts as desired. Since Media and Projects (and to a lesser extent Help) are much bigger than everything else, this may be desirable in some constrained situations.

Comment 3 Ismael Olea 2012-09-13 09:14:26 UTC
Yesterday I've been working on this too after discovered your review request:

  http://olea.org/tmp/scratch.spec
  http://olea.org/paquetes-rpm/repoview/scratch.html

(I'm uploading these while writing)

Seems to me both part from the same Kevin Somervill sources. I think you can pick some minor things from my spec too.

Is there any technical reason for split scratch in so many subpackages? I mean: is there any external dependency or strong convenience for reuse some of it? Maybe some Sugar restriction...  if not, I feel it's better to keep it simpler as possible.

Comment 4 Matthew Miller 2012-09-13 14:13:37 UTC
 > Seems to me both part from the same Kevin Somervill sources. I think you can
> pick some minor things from my spec too.

Definitely. Anything in particular? I notice you require squeak-vm-nonXOplugins — are there things in that set of plugins which enhance Scratch?

> Is there any technical reason for split scratch in so many subpackages? I
> mean: is there any external dependency or strong convenience for reuse some
> of it? Maybe some Sugar restriction...  if not, I feel it's better to keep
> it simpler as possible.

I think comment #2 covers this. :)

Comment 5 Matthew Miller 2012-09-14 15:03:12 UTC
Updated package for upstream release 1.4.0.7. This has mp3 totally removed. (No binary plugins in the source tarball, and all the standard mp3s are now wav files so it's largely a non-issue.)



Spec URL: http://mattdm.org/misc/fedora/scratch.spec
SRPM URL: http://mattdm.org/misc/fedora/scratch-1.4.0.7-1.fc17.mattdm.src.rpm

Comment 6 Michel Lind 2012-09-17 00:27:21 UTC
Having used this to teach introductory programming classes, it's great to see this entering Fedora -- I'd be happy to review.

Swap for dataquay? It's a simple qmake-using library that's a new dependency for an existing package (sonic-visualiser), blocking its update.

https://bugzilla.redhat.com/show_bug.cgi?id=857705

Comment 7 Michel Lind 2012-09-17 07:00:26 UTC
Three issues stand out as needing to be fixed:
- Scratch.image bundled by upstream is shipped in the binary RPMs without being regenerated
- License field should be of the form "X and Y and Z". A breakdown of which components fall under which license, in a comment above the license field would be nice esp if it's not the case that the license applies cleanly to a whole subpackage
- Desktop file needs to be validated and/or installed properly; icon cache needs to be refreshed

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

Key:
- = N/A
x = Pass
! = Fail
? = Not evaluated



==== C/C++ ====
[x]: MUST Header files in -devel subpackage, if present.
[x]: MUST Package does not contain any libtool archives (.la)
[x]: MUST Package does not contain kernel modules.
[x]: MUST Package contains no static executables.
[x]: MUST Rpath absent or only used for internal libs.


==== Generic ====
[x]: EXTRA Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).
[x]: EXTRA Spec file according to URL is the same as in SRPM.
[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.
[x]: MUST Package successfully compiles and builds into binary rpms on at
     least one supported primary architecture.
[x]: 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.
[!]: MUST Package contains no bundled libraries.
     Is there any reason Scratch.image is not regenerated, but the bundled one
     from the source tarball used?
[x]: MUST Changelog in prescribed format.
[x]: MUST Sources contain only permissible code or content.
[!]: MUST Each %files section contains %defattr if rpm < 4.4
     Note: defattr(....) present in %files squeak-cameraplugin section. This
     is OK if packaging for EPEL5. Otherwise not needed
[x]: MUST Macros in Summary, %description expandable at SRPM build time.
[x]: MUST Package contains desktop file if it is a GUI application.
[!]: MUST Package installs a %{name}.desktop using desktop-file-install if
     there is such a file.
     Don't just copy the desktop file by hand
[-]: MUST Development files must be in a -devel package
[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.
[x]: MUST Fully versioned dependency in subpackages, if present.
[!]: MUST Package complies to the Packaging Guidelines
     Icon cache must be refreshed, else after the installation the Scratch
     launcher won't have a proper icon yet:
     https://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Icon_Cache
[x]: MUST Spec file lacks Packager, Vendor, PreReq tags.
[!]: MUST Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
     Note: rm -rf is only needed if supporting EPEL5
[-]: 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.
[!]: MUST License field in the package spec file matches the actual license.
     Licenses should be separated by "and" -- GPLv2 and MIT and CC-BY-SA
     Note: Checking patched sources after %prep for licenses. Licenses found:
     "MIT/X11 (BSD like)" For detailed output of licensecheck see file:
     /home/michel/sources/fedora/projects/FedoraReview/src/856238-scratch/licensecheck.txt
[x]: MUST License file installed when any subpackage combination is installed.
[!]: MUST Package consistently uses macro is (instead of hard-coded directory
     names).
     Note: Using both %{buildroot} and $RPM_BUILD_ROOT
[!]: MUST If the package is under multiple licenses, the licensing breakdown
     must be documented in the spec.
     Please describe in a comment which parts are under which licenses
[x]: MUST Package is named using only allowed ascii characters.
[x]: MUST Package is named according to the Package Naming Guidelines.
[x]: MUST Package does not generate any conflict.
     Note: Package contains no Conflicts: tag(s)
[x]: MUST Package obeys FHS, except libexecdir and /usr/target.
[-]: MUST If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[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.
[x]: MUST Package is not relocatable.
[x]: MUST Requires correct, justified where necessary.
[x]: MUST Rpmlint is run on all rpms the build produces.
     Note: There are rpmlint messages (see attachment).
[x]: MUST Sources used to build the package match the upstream source, as
     provided in the spec URL.
[x]: MUST Spec file is legible and written in American English.
[x]: MUST Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[-]: MUST Package contains systemd file(s) if in need.
[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.
[!]: SHOULD Buildroot is not present
     Note: Buildroot is not needed unless packager plans to package for EPEL5
[!]: SHOULD Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
     Note: Clean is needed only if supporting EPEL5
[-]: 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.
[x]: SHOULD Dist tag is present.
[x]: 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 Patches link to upstream bugs/comments/lists or are otherwise
     justified.
[x]: SHOULD SourceX tarball generation or download is documented.
[x]: SHOULD SourceX / PatchY prefixed with %{name}.
[x]: SHOULD SourceX is a working URL.
[-]: SHOULD Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[?]: SHOULD Package should compile and build into binary rpms on all supported
     architectures.
[!]: SHOULD %check is present and all tests pass.
[x]: SHOULD Packages should try to preserve timestamps of original installed
     files.
[x]: SHOULD Spec use %global instead of %define.

Issues:
[!]: MUST Each %files section contains %defattr if rpm < 4.4
     Note: defattr(....) present in %files squeak-cameraplugin section. This
     is OK if packaging for EPEL5. Otherwise not needed
See: http://fedoraproject.org/wiki/Packaging/Guidelines#FilePermissions
[!]: MUST Package installs a %{name}.desktop using desktop-file-install if
     there is such a file.
See: http://fedoraproject.org/wiki/Packaging/Guidelines#desktop
[!]: MUST Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
     Note: rm -rf is only needed if supporting EPEL5
See: None
[!]: MUST 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

Rpmlint
-------
Checking: scratch-squeak-wedoplugin-1.4.0.7-1.fc17.x86_64.rpm
          scratch-squeak-cameraplugin-1.4.0.7-1.fc17.x86_64.rpm
          scratch-projects-1.4.0.7-1.fc17.noarch.rpm
          scratch-help-1.4.0.7-1.fc17.noarch.rpm
          scratch-debuginfo-1.4.0.7-1.fc17.x86_64.rpm
          scratch-media-1.4.0.7-1.fc17.noarch.rpm
          scratch-1.4.0.7-1.fc17.x86_64.rpm
          scratch-1.4.0.7-1.fc17.src.rpm
          scratch-image-1.4.0.7-1.fc17.noarch.rpm
          scratch-squeak-unicodeplugin-1.4.0.7-1.fc17.x86_64.rpm
          scratch-squeak-scratchplugin-1.4.0.7-1.fc17.x86_64.rpm
          scratch-i18n-1.4.0.7-1.fc17.noarch.rpm
scratch-squeak-cameraplugin.x86_64: W: spelling-error Summary(en_US) webcams -> web cams, web-cams, webmaster
scratch-squeak-cameraplugin.x86_64: W: spelling-error %description -l en_US webcams -> web cams, web-cams, webmaster
scratch-squeak-cameraplugin.x86_64: W: spelling-error %description -l en_US webcam -> web cam, web-cam, became
scratch-debuginfo.x86_64: W: invalid-license GPLv2, MIT,
scratch.x86_64: W: spelling-error %description -l en_US subpackages -> sub packages, sub-packages, prepackages
scratch.x86_64: W: invalid-license GPLv2, MIT,
scratch.x86_64: E: no-binary
scratch.src: W: spelling-error %description -l en_US subpackages -> sub packages, sub-packages, prepackages
scratch.src: W: invalid-license GPLv2, MIT,
scratch.src:159: W: macro-in-comment %{buildroot}
scratch.src:159: W: macro-in-comment %{_libdir}
scratch.src:159: W: macro-in-comment %{name}
12 packages and 0 specfiles checked; 1 errors, 11 warnings.


Rpmlint (installed packages)
----------------------------
# rpmlint scratch-squeak-scratchplugin scratch-help scratch-im 
age scratch-media scratch-squeak-cameraplugin
scratch-squeak-cameraplugin.x86_64: W: spelling-error Summary(en_US) webcams -> web cams, web-cams, webmaster
scratch-squeak-cameraplugin.x86_64: W: spelling-error %description -l en_US webcams -> web cams, web-cams, webmaster
scratch-squeak-cameraplugin.x86_64: W: spelling-error %description -l en_US webcam -> web cam, web-cam, became
5 packages and 0 specfiles checked; 0 errors, 3 warnings.
# echo 'rpmlint-done:'

Requires
--------
scratch-squeak-wedoplugin-1.4.0.7-1.fc17.x86_64.rpm (rpmlib, GLIBC filtered):
    
    libc.so.6()(64bit)  
    rtld(GNU_HASH)  

scratch-squeak-cameraplugin-1.4.0.7-1.fc17.x86_64.rpm (rpmlib, GLIBC filtered):
    
    libc.so.6()(64bit)  
    rtld(GNU_HASH)  

scratch-projects-1.4.0.7-1.fc17.noarch.rpm (rpmlib, GLIBC filtered):
    

scratch-help-1.4.0.7-1.fc17.noarch.rpm (rpmlib, GLIBC filtered):
    

scratch-debuginfo-1.4.0.7-1.fc17.x86_64.rpm (rpmlib, GLIBC filtered):
    

scratch-media-1.4.0.7-1.fc17.noarch.rpm (rpmlib, GLIBC filtered):
    

scratch-1.4.0.7-1.fc17.x86_64.rpm (rpmlib, GLIBC filtered):
    
    scratch-help  
    scratch-i18n  
    scratch-image  
    scratch-media  
    scratch-projects  
    scratch-squeak-cameraplugin  
    scratch-squeak-scratchplugin  
    scratch-squeak-unicodeplugin  
    scratch-squeak-wedoplugin  

scratch-image-1.4.0.7-1.fc17.noarch.rpm (rpmlib, GLIBC filtered):
    
    /bin/sh  
    squeak-vm  

scratch-squeak-unicodeplugin-1.4.0.7-1.fc17.x86_64.rpm (rpmlib, GLIBC filtered):
    
    libc.so.6()(64bit)  
    libcairo.so.2()(64bit)  
    libglib-2.0.so.0()(64bit)  
    libgobject-2.0.so.0()(64bit)  
    libpango-1.0.so.0()(64bit)  
    libpangocairo-1.0.so.0()(64bit)  
    rtld(GNU_HASH)  

scratch-squeak-scratchplugin-1.4.0.7-1.fc17.x86_64.rpm (rpmlib, GLIBC filtered):
    
    libc.so.6()(64bit)  
    rtld(GNU_HASH)  

scratch-i18n-1.4.0.7-1.fc17.noarch.rpm (rpmlib, GLIBC filtered):
    

Provides
--------
scratch-squeak-wedoplugin-1.4.0.7-1.fc17.x86_64.rpm:
    
    WeDoPlugin()(64bit)  
    scratch-squeak-wedoplugin = 1.4.0.7-1.fc17
    scratch-squeak-wedoplugin(x86-64) = 1.4.0.7-1.fc17

scratch-squeak-cameraplugin-1.4.0.7-1.fc17.x86_64.rpm:
    
    CameraPlugin()(64bit)  
    scratch-squeak-cameraplugin = 1.4.0.7-1.fc17
    scratch-squeak-cameraplugin(x86-64) = 1.4.0.7-1.fc17

scratch-projects-1.4.0.7-1.fc17.noarch.rpm:
    
    scratch-projects = 1.4.0.7-1.fc17

scratch-help-1.4.0.7-1.fc17.noarch.rpm:
    
    scratch-help = 1.4.0.7-1.fc17

scratch-debuginfo-1.4.0.7-1.fc17.x86_64.rpm:
    
    scratch-debuginfo = 1.4.0.7-1.fc17
    scratch-debuginfo(x86-64) = 1.4.0.7-1.fc17

scratch-media-1.4.0.7-1.fc17.noarch.rpm:
    
    scratch-media = 1.4.0.7-1.fc17

scratch-1.4.0.7-1.fc17.x86_64.rpm:
    
    scratch = 1.4.0.7-1.fc17
    scratch(x86-64) = 1.4.0.7-1.fc17

scratch-image-1.4.0.7-1.fc17.noarch.rpm:
    
    mimehandler(application/x-scratch-project)  
    scratch-image = 1.4.0.7-1.fc17

scratch-squeak-unicodeplugin-1.4.0.7-1.fc17.x86_64.rpm:
    
    UnicodePlugin()(64bit)  
    scratch-squeak-unicodeplugin = 1.4.0.7-1.fc17
    scratch-squeak-unicodeplugin(x86-64) = 1.4.0.7-1.fc17

scratch-squeak-scratchplugin-1.4.0.7-1.fc17.x86_64.rpm:
    
    ScratchPlugin()(64bit)  
    scratch-squeak-scratchplugin = 1.4.0.7-1.fc17
    scratch-squeak-scratchplugin(x86-64) = 1.4.0.7-1.fc17

scratch-i18n-1.4.0.7-1.fc17.noarch.rpm:
    
    scratch-i18n = 1.4.0.7-1.fc17

MD5-sum check
-------------
http://download.scratch.mit.edu/scratch-1.4.0.7.src.tar.gz :
  CHECKSUM(SHA256) this package     : b94d89278ecef2ba2d1147eec23936dd99697293ffa2c216c0a375ba98226a3e
  CHECKSUM(SHA256) upstream package : b94d89278ecef2ba2d1147eec23936dd99697293ffa2c216c0a375ba98226a3e


Generated by fedora-review 0.2.0 (2fb2447) last change: 2012-07-22
Command line :./fedora-review -b 856238 -m fedora-17-x86_64
External plugins:

Comment 8 Matthew Miller 2012-09-17 11:23:12 UTC
(In reply to comment #7)
> Three issues stand out as needing to be fixed:
> - Scratch.image bundled by upstream is shipped in the binary RPMs without
> being regenerated

I'll look into this. I'm not a Squeak expert, but it's my understanding that the image is actually the preferred form for making modifications. See http://wiki.squeak.org/squeak/1053 and http://info.scratch.mit.edu/Source_Code -- which raises the point that some of the code within the image is actually MIT and Apache 2.0 licensed. Exciting. So I'll look into _both_ of those issues.


> - License field should be of the form "X and Y and Z". A breakdown of which
> components fall under which license, in a comment above the license field
> would be nice esp if it's not the case that the license applies cleanly to a
> whole subpackage

Excepting the caveat above, it does happen that all of the subpackages and licenses map nicely in a 1:1 manner.


> - Desktop file needs to be validated and/or installed properly; icon cache
> needs to be refreshed

*nod*

Comment 9 Matthew Miller 2012-09-28 18:30:30 UTC
Update on the Scratch.image bundle -- in Squeak (and Smalltalk in general), this is actually the preferred form of modification. Regenerating the whole thing from scratch (heh) is just not done. This is similar to etoys, which is included already. (See http://www.redhat.com/archives/fedora-packaging/2009-January/msg00126.html)

Therefore, I think this is okay. Will run it by the packaging committee, though.

I will, though, also include the Squeak 2.0 image from which the Scratch image is derived in the source RPM, so that it's all together. This plus the existing Scratch image plus the .changes file found in the source constitutes upstream's preferred form of modification.


Also, on the Apache 2.0 license issue: the license text implies that GPLv3 may be used; that would be compatible with Apache 2.0, making that a non-issue. I've asked upstream to clarify.

Comment 10 Matthew Miller 2012-09-28 19:28:03 UTC
Updated packages:

Spec URL: http://mattdm.org/misc/fedora/scratch.spec
SRPM URL: http://mattdm.org/misc/fedora/scratch-1.4.0.7-2.fc17.mattdm.src.rpm


As noted above, there is still a licensing issue to resolve. Additionally, sound does not work, but we'd like to fix that after the package is in rawhide.

Comment 11 Matthew Miller 2012-09-29 16:06:39 UTC
Also: looks like all of the plugins except Unicode are included in Squeak VM 4.10.2.2593 and newer. (And possibly the Unicode support is also covered.) So, if we can get newer squeak-vm (bug #861633), that will significantly simplify this package *and* fix the sound probem.

(The whole thing coudl be made noarch, and the scratch-image subpackage could be combined back into main package, and probably i18n as well. Then we'd just have the main package plus the three CC-BY-SA help, media, and projects subpackages.)

Comment 12 Matthew Miller 2012-09-30 20:31:06 UTC
Rudimentary testing shows that Scratch works with the updated VM.

Comment 13 Michel Lind 2012-10-09 02:31:40 UTC
Sorry for the delay, will re-test today

Comment 14 Michel Lind 2012-10-09 06:29:08 UTC
Some minor issues with deprecated fields (e.g. BuildRoot, %clean) that only apply to RHEL 5 or RHEL, but those are just cosmetic.

You probably should make the arch-specific subpackages depend on the main Scratch package of the same archiecture -- see the [!] note below -- when importing the package.

Other than that, package is fine -- APPROVED

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

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



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

C/C++:
[x]: Header files in -devel subpackage, if present.
[x]: Package does not contain any libtool archives (.la)
[x]: Package does not contain kernel modules.
[x]: Package contains no static executables.
[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]: Package successfully compiles and builds into binary rpms on at least one
     supported primary architecture.
[x]: %build honors applicable compiler flags or justifies otherwise.
[x]: All build dependencies are listed in BuildRequires, except for any that
     are listed in the exceptions section of Packaging Guidelines.
[x]: Package contains no bundled libraries.
     There's a pre-built image but this is normal for Smalltalk
[x]: Changelog in prescribed format.
[x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
     Note: rm -rf %{buildroot} present but not required
[x]: Sources contain only permissible code or content.
[!]: Each %files section contains %defattr if rpm < 4.4
     Note: %defattr present but not needed
[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.
[-]: Development files must be in a -devel package
[x]: 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 does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[!]: Fully versioned dependency in subpackages, if present.
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in %package
     squeak-cameraplugin, %package media, %package squeak-unicodeplugin,
     %package i18n, %package image, %package projects, %package help, %package
     squeak-wedoplugin, %package squeak-scratchplugin

     For the noarch subpackages, this does not matter, but for the
     arch-specific subpackages, maybe depending on scratch with the
     same architecture would prevent problems if someone ever tries to
     mix and match 32- and 64-bit Scratch plugins

[x]: Package complies to the Packaging Guidelines
[x]: Spec file lacks Packager, Vendor, PreReq tags.
[-]: Large documentation files are in a -doc subpackage, if required.
[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]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses found:
     "MIT/X11 (BSD like)", "Unknown or generated". 2 files have unknown
     license. Detailed output of licensecheck in
     /home/michel/sources/fedora/reviews/review-scratch/licensecheck.txt
[x]: License file installed when any subpackage combination is installed.
[x]: Package consistently uses macro is (instead of hard-coded directory
     names).
[x]: If the package is under multiple licenses, the licensing breakdown must
     be documented in the spec.
[x]: Package is named using only allowed ASCII characters.
[x]: Package is named according to the Package Naming Guidelines.
[x]: Package does not generate any conflict.
     Note: Package contains no Conflicts: tag(s)
[x]: Package do not use a name that already exist
[x]: Package obeys FHS, except libexecdir and /usr/target.
[-]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[x]: Package must own all directories that it creates.
[x]: Package does not own files or directories owned by other packages.
[x]: Package installs properly.
[x]: Package is not relocatable.
[x]: Requires correct, justified where necessary.
[x]: CheckResultdir
[x]: Rpmlint is run on all rpms the build produces.
     Note: There are rpmlint messages (see attachment).
[x]: Sources used to build the package match the upstream source, as provided
     in the spec URL.
[x]: Spec file is legible and written in American English.
[x]: Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[-]: Package contains systemd file(s) if in need.
[x]: File names are valid UTF-8.
[x]: Useful -debuginfo package or justification otherwise.

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

Generic:
[x]: Reviewer should test that the package builds in mock.
[!]: Buildroot is not present
     Note: Buildroot: present but not needed
[!]: Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
     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.
[x]: Dist tag is present.
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: Final provides and requires are sane (rpm -q --provides and rpm -q
     --requires).
[x]: Package functions as described.
[x]: 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 justified.
[x]: The placement of pkgconfig(.pc) files are correct.
[x]: Scriptlets must be sane, if used.
[x]: SourceX tarball generation or download is documented.
[x]: SourceX / PatchY prefixed with %{name}.
     Note: Source0 (scratch-1.4.0.7.src.tar.gz) Source1 (SqueakV2.sources.gz)
[x]: SourceX is a working URL.
[-]: 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.
[!]: %check is present and all tests pass.
[x]: Packages should try to preserve timestamps of original installed files.
[x]: Spec use %global instead of %define.

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

Generic:
[x]: Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).
[x]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: scratch-media-1.4.0.7-2.fc18.noarch.rpm
          scratch-1.4.0.7-2.fc18.x86_64.rpm
          scratch-squeak-cameraplugin-1.4.0.7-2.fc18.x86_64.rpm
          scratch-i18n-1.4.0.7-2.fc18.noarch.rpm
          scratch-help-1.4.0.7-2.fc18.noarch.rpm
          scratch-1.4.0.7-2.fc18.src.rpm
          scratch-image-1.4.0.7-2.fc18.noarch.rpm
          scratch-squeak-scratchplugin-1.4.0.7-2.fc18.x86_64.rpm
          scratch-squeak-unicodeplugin-1.4.0.7-2.fc18.x86_64.rpm
          scratch-projects-1.4.0.7-2.fc18.noarch.rpm
          scratch-debuginfo-1.4.0.7-2.fc18.x86_64.rpm
          scratch-squeak-wedoplugin-1.4.0.7-2.fc18.x86_64.rpm
scratch.x86_64: W: spelling-error %description -l en_US subpackages -> sub packages, sub-packages, prepackages
scratch.x86_64: E: no-binary
scratch-squeak-cameraplugin.x86_64: W: spelling-error Summary(en_US) webcams -> web cams, web-cams, webmaster
scratch-squeak-cameraplugin.x86_64: W: spelling-error %description -l en_US webcams -> web cams, web-cams, webmaster
scratch-squeak-cameraplugin.x86_64: W: spelling-error %description -l en_US webcam -> web cam, web-cam, became
scratch.src: W: spelling-error %description -l en_US subpackages -> sub packages, sub-packages, prepackages
scratch.src:167: W: macro-in-comment %{buildroot}
scratch.src:167: W: macro-in-comment %{_libdir}
scratch.src:167: W: macro-in-comment %{name}
12 packages and 0 specfiles checked; 1 errors, 8 warnings.




Rpmlint (installed packages)
----------------------------
# rpmlint scratch-image scratch-i18n scratch scratch-media scr 
atch-squeak-cameraplugin scratch-debuginfo scratch-squeak-scratchplugin scratch- 
help scratch-squeak-wedoplugin scratch-squeak-unicodeplugin scratch-projects
scratch.x86_64: W: spelling-error %description -l en_US subpackages -> sub packages, sub-packages, prepackages
scratch.x86_64: E: no-binary
scratch-squeak-cameraplugin.x86_64: W: spelling-error Summary(en_US) webcams -> web cams, web-cams, webmaster
scratch-squeak-cameraplugin.x86_64: W: spelling-error %description -l en_US webcams -> web cams, web-cams, webmaster
scratch-squeak-cameraplugin.x86_64: W: spelling-error %description -l en_US webcam -> web cam, web-cam, became
11 packages and 0 specfiles checked; 1 errors, 4 warnings.
# echo 'rpmlint-done:'



Requires
--------
scratch-media-1.4.0.7-2.fc18.noarch.rpm (rpmlib, GLIBC filtered):
    

scratch-1.4.0.7-2.fc18.x86_64.rpm (rpmlib, GLIBC filtered):
    
    scratch-help
    scratch-i18n
    scratch-image
    scratch-media
    scratch-projects
    scratch-squeak-cameraplugin
    scratch-squeak-scratchplugin
    scratch-squeak-unicodeplugin
    scratch-squeak-wedoplugin

scratch-squeak-cameraplugin-1.4.0.7-2.fc18.x86_64.rpm (rpmlib, GLIBC filtered):
    
    libc.so.6()(64bit)
    rtld(GNU_HASH)

scratch-i18n-1.4.0.7-2.fc18.noarch.rpm (rpmlib, GLIBC filtered):
    

scratch-help-1.4.0.7-2.fc18.noarch.rpm (rpmlib, GLIBC filtered):
    

scratch-image-1.4.0.7-2.fc18.noarch.rpm (rpmlib, GLIBC filtered):
    
    /bin/sh
    squeak-vm

scratch-squeak-scratchplugin-1.4.0.7-2.fc18.x86_64.rpm (rpmlib, GLIBC filtered):
    
    libc.so.6()(64bit)
    rtld(GNU_HASH)

scratch-squeak-unicodeplugin-1.4.0.7-2.fc18.x86_64.rpm (rpmlib, GLIBC filtered):
    
    libc.so.6()(64bit)
    libcairo.so.2()(64bit)
    libglib-2.0.so.0()(64bit)
    libgobject-2.0.so.0()(64bit)
    libpango-1.0.so.0()(64bit)
    libpangocairo-1.0.so.0()(64bit)
    rtld(GNU_HASH)

scratch-projects-1.4.0.7-2.fc18.noarch.rpm (rpmlib, GLIBC filtered):
    

scratch-debuginfo-1.4.0.7-2.fc18.x86_64.rpm (rpmlib, GLIBC filtered):
    

scratch-squeak-wedoplugin-1.4.0.7-2.fc18.x86_64.rpm (rpmlib, GLIBC filtered):
    
    libc.so.6()(64bit)
    rtld(GNU_HASH)



Provides
--------
scratch-media-1.4.0.7-2.fc18.noarch.rpm:
    
    scratch-media = 1.4.0.7-2.fc18

scratch-1.4.0.7-2.fc18.x86_64.rpm:
    
    scratch = 1.4.0.7-2.fc18
    scratch(x86-64) = 1.4.0.7-2.fc18

scratch-squeak-cameraplugin-1.4.0.7-2.fc18.x86_64.rpm:
    
    CameraPlugin()(64bit)
    scratch-squeak-cameraplugin = 1.4.0.7-2.fc18
    scratch-squeak-cameraplugin(x86-64) = 1.4.0.7-2.fc18

scratch-i18n-1.4.0.7-2.fc18.noarch.rpm:
    
    scratch-i18n = 1.4.0.7-2.fc18

scratch-help-1.4.0.7-2.fc18.noarch.rpm:
    
    scratch-help = 1.4.0.7-2.fc18

scratch-image-1.4.0.7-2.fc18.noarch.rpm:
    
    mimehandler(application/x-scratch-project)
    scratch-image = 1.4.0.7-2.fc18

scratch-squeak-scratchplugin-1.4.0.7-2.fc18.x86_64.rpm:
    
    ScratchPlugin()(64bit)
    scratch-squeak-scratchplugin = 1.4.0.7-2.fc18
    scratch-squeak-scratchplugin(x86-64) = 1.4.0.7-2.fc18

scratch-squeak-unicodeplugin-1.4.0.7-2.fc18.x86_64.rpm:
    
    UnicodePlugin()(64bit)
    scratch-squeak-unicodeplugin = 1.4.0.7-2.fc18
    scratch-squeak-unicodeplugin(x86-64) = 1.4.0.7-2.fc18

scratch-projects-1.4.0.7-2.fc18.noarch.rpm:
    
    scratch-projects = 1.4.0.7-2.fc18

scratch-debuginfo-1.4.0.7-2.fc18.x86_64.rpm:
    
    scratch-debuginfo = 1.4.0.7-2.fc18
    scratch-debuginfo(x86-64) = 1.4.0.7-2.fc18

scratch-squeak-wedoplugin-1.4.0.7-2.fc18.x86_64.rpm:
    
    WeDoPlugin()(64bit)
    scratch-squeak-wedoplugin = 1.4.0.7-2.fc18
    scratch-squeak-wedoplugin(x86-64) = 1.4.0.7-2.fc18



MD5-sum check
-------------
http://download.scratch.mit.edu/scratch-1.4.0.7.src.tar.gz :
  CHECKSUM(SHA256) this package     : b94d89278ecef2ba2d1147eec23936dd99697293ffa2c216c0a375ba98226a3e
  CHECKSUM(SHA256) upstream package : b94d89278ecef2ba2d1147eec23936dd99697293ffa2c216c0a375ba98226a3e
http://ftp.squeak.org/2.0/SqueakV2.sources.gz :
  CHECKSUM(SHA256) this package     : bcf9cf640c85a2371dc88b5d3a38746ccb7bcb7103fbb51b5afd19a660662812
  CHECKSUM(SHA256) upstream package : bcf9cf640c85a2371dc88b5d3a38746ccb7bcb7103fbb51b5afd19a660662812


Generated by fedora-review 0.3.0 (c78e275) last change: 2012-09-24
Buildroot used: fedora-18-x86_64
Command line :/usr/bin/fedora-review -m fedora-18-x86_64 -n scratch

Comment 15 Matthew Miller 2012-10-09 19:37:54 UTC
Awesome, thanks. I'm going to hold off a week to see if we can get the squeak-vm maintainer situation resolved, and if so, will update as outlined in comment #11 -- this should get a lot simpler, and the plugins issue will go away.

Comment 16 Michel Lind 2012-11-01 17:40:31 UTC
Any update re: the squeak-vm situation?

Comment 17 Matthew Miller 2012-11-02 13:34:08 UTC
Not yet. Will ping Jaroslav.

Comment 18 Matthew Miller 2012-11-08 01:16:24 UTC
Fedora Legal has cleared the license as is. I've made an updated package which assumes the squeak-vm in progress. This works with the latest from bug #861633, with the caveat that you might need to edit /usr/bin/squeak to say "lib64". 

Audio works and everything. Hopefully that package will land soon. In the meantime:

Spec URL: http://mattdm.org/misc/fedora/scratch.spec
SRPM URL: http://mattdm.org/misc/fedora/scratch-1.4.0.7-4.fc18.mattdm.src.rpm

Comment 19 Matthew Miller 2012-11-24 19:37:00 UTC
Okay. Bug #861633 has landed, which means we are _good to go_. Updated spec and source rpm:


Spec URL: http://mattdm.org/misc/fedora/scratch.spec
SRPM URL: http://mattdm.org/misc/fedora/scratch-1.4.0.7-5.fc18.mattdm.src.rpm

Comment 20 Matthew Miller 2012-11-24 19:39:42 UTC
PS: there is a known bug where exiting presentation mode gives a frozen white screen. I'll file a separate bug for this once this review is completed and we have a component to file it against.

Comment 21 Josh Boyer 2012-12-03 12:35:15 UTC
I used this over the weekend and it seemed to work very well on f18.  The only issue I had was that sound did not work at all.  Anytime a sound was played, this error messages was spit out:

soundStart: snd_add_pcm_handler: Function not implemented

I didn't really look into it yet and I don't believe it's a blocker for review.  Just something I thought I would mention in case it was a known problem.

Comment 22 Matthew Miller 2012-12-03 18:37:03 UTC
(In reply to comment #21)
> I used this over the weekend and it seemed to work very well on f18.  The
> only issue I had was that sound did not work at all.  Anytime a sound was
> played, this error messages was spit out:
> 
> soundStart: snd_add_pcm_handler: Function not implemented
> 
> I didn't really look into it yet and I don't believe it's a blocker for
> review.  Just something I thought I would mention in case it was a known
> problem.

Thanks.

This is a PulseAudio thing -- it's an intentional incompatibility in the ALSA compatibility layer. If you're running PulseAudio, the native support should have been used automatically. If not (or if you're not running PA and are getting this) we should make bug for that once this is through review.

Comment 23 Matthew Miller 2013-01-16 18:17:16 UTC
Anything else needed on this?

Comment 24 Matthew Miller 2013-03-08 13:16:26 UTC
Ping Michel. Where are we on this?

Comment 25 Michel Lind 2013-03-09 04:18:35 UTC
Nothing else needed, I approved the review a while back. As I understand it, you wanted to wait out the squeak-vm situation, but we didn't discuss whether a re-review is needed or not.

Comment 26 Matthew Miller 2013-03-11 13:01:30 UTC
Okay, thanks. I don't think a re-review is needed, but I wanted to make sure you were still all good.

Comment 27 Matthew Miller 2013-03-11 13:04:55 UTC
New Package SCM Request
=======================
Package Name: scratch
Short Description: Programming language learning environment for stories, games, music and art
Owners: mattdm
Branches: f18
InitialCC:

Comment 28 Gwyn Ciesla 2013-03-11 13:32:40 UTC
Git done (by process-git-requests).

Comment 29 Trevor Hemsley 2013-09-18 17:55:39 UTC
Thanks! Have just rebuild this under mock for CentOS 6 and it builds cleanly. Have attached a patch for squeak-vm build for i386 under the other ticket linked above as that would not build.

My 8 y.o says thanks too.

Comment 30 Christopher Meng 2013-09-25 14:55:08 UTC
Please remember to close bugs before spreading Fedora.next.