Bug 3805

Summary: Review request: cannonball - An Enhanced OutRun Engine
Product: Package Reviews Reporter: Andrea Musuruane <musuruan>
Component: Review RequestAssignee: A. Trande (sagitter) <trpost>
Status: RESOLVED FIXED    
Severity: normal CC: leigh123linux, rpmfusion-package-review, trpost
Priority: P5 Flags: trpost: fedora-review+
Version: Current   
Hardware: All   
OS: GNU/Linux   
namespace:

Description Andrea Musuruane 2015-10-18 18:31:37 CEST
https://dl.dropboxusercontent.com/u/12575912/reviews/cannonball.spec
https://dl.dropboxusercontent.com/u/12575912/reviews/cannonball-0.3-1.fc21.src.rpm

Description:
Cannonball is a program which allows you to play an enhanced version of 
Yu Suzuki's seminal arcade racer, OutRun, on a variety of systems:
- 60 fps gameplay (smoother than the original game)
- True widescreen mode (extend the play area by 25%)
- High Resolution mode (improves sprite scaling)
- Time Trial Mode
- Cheats
- Customisable Music
- High Score Saving
- Western, Japanese & prototype track support
- Analog & Digital controllers supported
- Force Feedback / Haptic support (Windows only)
- Fixes bugs present in the original game

Why not in Fedora:
Emulators are not allowed in Fedora

Rpmlint output:
$ rpmlint /home/andrea/rpmbuild/SRPMS/cannonball-0.3-1.fc21.src.rpm
cannonball.src: W: spelling-error %description -l en_US gameplay -> game play, game-play, nameplate
cannonball.src: W: spelling-error %description -l en_US widescreen -> wide screen, wide-screen, windscreen
cannonball.src: W: invalid-license Custom
1 packages and 0 specfiles checked; 0 errors, 3 warnings.

$ rpmlint /home/andrea/rpmbuild/RPMS/x86_64/cannonball-0.3-1.fc21.x86_64.rpm
cannonball.x86_64: W: spelling-error %description -l en_US gameplay -> game play, game-play, nameplate
cannonball.x86_64: W: spelling-error %description -l en_US widescreen -> wide screen, wide-screen, windscreen
cannonball.x86_64: W: invalid-license Custom
cannonball.x86_64: W: no-manual-page-for-binary cannonball
1 packages and 0 specfiles checked; 0 errors, 4 warnings.

$ rpmlint /home/andrea/rpmbuild/RPMS/x86_64/cannonball-debuginfo-0.3-1.fc21.x86_64.rpm
cannonball-debuginfo.x86_64: W: invalid-license Custom
1 packages and 0 specfiles checked; 0 errors, 1 warnings.

AFAIK spelling is correct and the license is fine too since we are in RPM Fusion.
Comment 1 Nicolas Chauvet 2017-08-03 17:53:00 CEST
This review is 404, is it still current ? Please re-open if so.
Comment 2 Andrea Musuruane 2017-08-03 18:19:27 CEST
(In reply to Nicolas Chauvet from comment #1)
> This review is 404, is it still current ? Please re-open if so.

Links probably broken due to Dropbox. I'll update them next week.
Comment 3 Nicolas Chauvet 2017-08-03 18:48:33 CEST
(In reply to Andrea Musuruane from comment #2)
> (In reply to Nicolas Chauvet from comment #1)
> > This review is 404, is it still current ? Please re-open if so.
> 
> Links probably broken due to Dropbox. I'll update them next week.
Thx.
Btw, please try to exchange review and don't let review hang that long.
Time is a scarce resource but still.
Comment 5 A. Trande (sagitter) 2017-08-06 17:51:56 CEST
(In reply to Andrea Musuruane from comment #4)
> https://www.dropbox.com/s/njkgrxvf8n4ulx0/cannonball.spec?dl=0
> https://www.dropbox.com/s/tdu4h8foscw79l7/cannonball-0.3-1.fc21.src.rpm?dl=0

The files are not reachable. Please, do not use restrictive links.
Comment 6 Andrea Musuruane 2017-08-06 17:53:36 CEST
(In reply to Antonio Trande from comment #5)
> (In reply to Andrea Musuruane from comment #4)
> > https://www.dropbox.com/s/njkgrxvf8n4ulx0/cannonball.spec?dl=0
> > https://www.dropbox.com/s/tdu4h8foscw79l7/cannonball-0.3-1.fc21.src.rpm?dl=0
> 
> The files are not reachable. Please, do not use restrictive links.

Files are reachable. Please try again. BTW I have no other way to share these.
Comment 7 A. Trande (sagitter) 2017-08-06 19:15:22 CEST
This emulator is released under a BSD (and Boost) license.
Are you sure it cannot be included on Fedora yet?

Refer: https://lists.fedoraproject.org/archives/list/devel-announce@lists.fedoraproject.org/thread/OCIB2WAZ6DF3HJZV2OWYOTNRTUZZ6VRX/
Comment 8 A. Trande (sagitter) 2017-08-06 19:17:31 CEST
> cannonball-0.3-1.fc21.src.rpm

fc21?!
Comment 9 Andrea Musuruane 2017-08-06 19:40:40 CEST
(In reply to Antonio Trande from comment #7)
> This emulator is released under a BSD (and Boost) license.
> Are you sure it cannot be included on Fedora yet?
> 
> Refer:
> https://lists.fedoraproject.org/archives/list/devel-announce@lists.
> fedoraproject.org/thread/OCIB2WAZ6DF3HJZV2OWYOTNRTUZZ6VRX/

"The entire OutRun codebase has been decompiled and rewritten from scratch in C++"
http://reassembler.blogspot.it/2012/12/cannonball-source-code-release.html

So I really doubt it can be included in Fedora proper.

(In reply to Antonio Trande from comment #8)
> > cannonball-0.3-1.fc21.src.rpm
> 
> fc21?!

Thanks for noticing :-) This review has been open since Oct 2015! I'm really pleased you are interested. Please feel free to review this package. I'll be glad to swap the review.
Comment 10 A. Trande (sagitter) 2017-08-06 19:49:12 CEST
Fix the License tag and add 'desktop-file-utils' as 'BuildRequires' package.
Comment 11 Andrea Musuruane 2017-08-07 17:35:26 CEST
(In reply to Antonio Trande from comment #10)
> Fix the License tag and add 'desktop-file-utils' as 'BuildRequires' package.

After further research, I noticed the license is actually the old MAME license (i.e. before GPLv2+ switch). It's not a BSD license.

https://github.com/djyt/cannonball/blob/master/docs/license.txt
https://github.com/djyt/cannonball/commits/master/docs/license.txt
https://www.openhub.net/licenses/MAME%E2%84%A2_Distribution_License

Moreover, this is another reason why this package cannot be included in Fedora proper:
https://fedoraproject.org/wiki/Licensing:Main#Bad_Licenses

I will fix the License tag accordingly (i.e. License: MAME License)
Comment 12 Andrea Musuruane 2017-08-09 10:03:10 CEST
https://www.dropbox.com/s/njkgrxvf8n4ulx0/cannonball.spec?dl=0
https://www.dropbox.com/s/m6qhvj4mxaux5z6/cannonball-0.3-2.fc25.src.rpm?dl=0

Changelog:
- Updated Source URL
- Fixed License
- Added missing BuildRequires (desktop-file-utils)
- Added missing Requires (hicolor-icon-theme)
- Improved macro usage
- Preserved timestamps
Comment 13 A. Trande (sagitter) 2017-08-10 22:13:33 CEST
- Include "BSD and Boost" licenses.

- '-I/usr/include/boost_1_54_0' flag is a nonsense;
  please, remove it or change the path.


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

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


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

C/C++:
[x]: Package does not contain kernel modules.
[x]: Package contains no static executables.
[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.
[!]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses
     found: "BSD (unspecified)", "*No copyright* BSL (v1.0)", "Unknown or
     generated". 126 files have unknown license. Detailed output of
     licensecheck in /home/sagitter/cannonball/licensecheck.txt
[x]: License file installed when any subpackage combination is installed.
[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.
[x]: Macros in Summary, %description expandable at SRPM build time.
     Note: Macros in: cannonball (description)
[-]: Development files must be in a -devel package
[x]: Package uses nothing in %doc for runtime.
[x]: Package consistently uses macros (instead of hard-coded directory
     names).
[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.
[x]: Requires correct, justified where necessary.
[x]: Spec file is legible and written in American English.
[-]: Package contains systemd file(s) if in need.
[x]: gtk-update-icon-cache is invoked in %postun and %posttrans if package
     contains icons.
     Note: icons in cannonball
[x]: Useful -debuginfo package or justification otherwise.
[x]: Package is not known to require an ExcludeArch tag.
[-]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 10240 bytes in 2 files.
[x]: 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]: 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]: Package requires other packages for directories it uses.
[x]: Package must own all directories that it creates.
[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]: Package contains desktop file if it is a GUI application.
[x]: Package installs a %{name}.desktop using desktop-file-install or
     desktop-file-validate if there is such a file.
[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
     work.
[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
     %{name}.spec.
[x]: File names are valid UTF-8.
[x]: Packages must not store files under /srv, /opt or /usr/local

===== 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).
[x]: Fully versioned dependency in subpackages if applicable.
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in
     cannonball-debuginfo
[ ]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[x]: Patches link to upstream bugs/comments/lists or are otherwise
     justified.
[-]: 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]: 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]: 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 =====

Generic:
[x]: Rpmlint is run on debuginfo package(s).
     Note: There are rpmlint messages (see attachment).
[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.


Rpmlint
-------
Checking: cannonball-0.3-2.fc27.x86_64.rpm
          cannonball-debuginfo-0.3-2.fc27.x86_64.rpm
          cannonball-0.3-2.fc27.src.rpm
cannonball.x86_64: W: spelling-error %description -l en_US gameplay -> game play, game-play, nameplate
cannonball.x86_64: W: invalid-license MAME
cannonball.x86_64: W: only-non-binary-in-usr-lib
cannonball.x86_64: W: hidden-file-or-dir /usr/lib/.build-id
cannonball.x86_64: W: hidden-file-or-dir /usr/lib/.build-id
cannonball.x86_64: W: no-manual-page-for-binary cannonball
cannonball-debuginfo.x86_64: W: invalid-license MAME
cannonball-debuginfo.x86_64: E: debuginfo-without-sources
cannonball.src: W: spelling-error %description -l en_US gameplay -> game play, game-play, nameplate
cannonball.src: W: invalid-license MAME
3 packages and 0 specfiles checked; 1 errors, 9 warnings.




Rpmlint (debuginfo)
-------------------
Checking: cannonball-debuginfo-0.3-2.fc27.x86_64.rpm
cannonball-debuginfo.x86_64: W: invalid-license MAME
cannonball-debuginfo.x86_64: E: debuginfo-without-sources
1 packages and 0 specfiles checked; 1 errors, 1 warnings.





Rpmlint (installed packages)
----------------------------
sh: /usr/bin/python: No such file or directory
cannonball-debuginfo.x86_64: W: invalid-license MAME
cannonball-debuginfo.x86_64: E: debuginfo-without-sources
cannonball.x86_64: W: spelling-error %description -l en_US gameplay -> game play, game-play, nameplate
cannonball.x86_64: W: invalid-license MAME
cannonball.x86_64: W: only-non-binary-in-usr-lib
cannonball.x86_64: W: no-manual-page-for-binary cannonball
2 packages and 0 specfiles checked; 1 errors, 5 warnings.



Requires
--------
cannonball-debuginfo (rpmlib, GLIBC filtered):

cannonball (rpmlib, GLIBC filtered):
    /bin/sh
    hicolor-icon-theme
    libSDL-1.2.so.0()(64bit)
    libc.so.6()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libm.so.6()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.8)(64bit)
    libstdc++.so.6(CXXABI_1.3.9)(64bit)
    rtld(GNU_HASH)



Provides
--------
cannonball-debuginfo:
    cannonball-debuginfo
    cannonball-debuginfo(x86-64)
    debuginfo(build-id)

cannonball:
    application()
    application(cannonball.desktop)
    cannonball
    cannonball(x86-64)



Source checksums
----------------
https://github.com/djyt/cannonball/archive/v0.3/cannonball-0.3.tar.gz :
  CHECKSUM(SHA256) this package     : 572b983b5490f1131d502e573d59e87ff841d5baa608b40482c198686818a476
  CHECKSUM(SHA256) upstream package : 572b983b5490f1131d502e573d59e87ff841d5baa608b40482c198686818a476


Generated by fedora-review 0.6.1 (f03e4e7) last change: 2016-05-02
Command line :/usr/bin/fedora-review -m fedora-rawhide-x86_64 -rn cannonball-0.3-2.fc25.src.rpm
Buildroot used: fedora-rawhide-x86_64
Active plugins: Generic, Shell-api, C/C++
Disabled plugins: Java, Python, fonts, SugarActivity, Ocaml, Perl, Haskell, R, PHP
Disabled flags: EXARCH, DISTTAG, EPEL5, BATCH, EPEL6
Comment 14 Andrea Musuruane 2017-08-11 19:26:52 CEST
(In reply to Antonio Trande from comment #13)
> - Include "BSD and Boost" licenses.

Please remember the license tag is not a list of licenses found in the source archive but it refers to the licenses of the contents of the *binary RPM*:
https://fedoraproject.org/wiki/Packaging:LicensingGuidelines#License:_field

Moreover there is no BSD license in cannonball: "find . -name \* -type f -exec grep "in source and binary forms" {} \;" does not return anything!

Therefore the resulting license of the binary RPM is the MAME license (i.e. MAME + BOOST = MAME).

> - '-I/usr/include/boost_1_54_0' flag is a nonsense;
>   please, remove it or change the path.

Fixed.

https://www.dropbox.com/s/41d5njd5f3wjvrv/cannonball.spec?dl=0
https://www.dropbox.com/s/5gegg7hzzs5ckjc/cannonball-0.3-3.fc25.src.rpm?dl=0
Comment 15 A. Trande (sagitter) 2017-08-11 19:43:25 CEST
(In reply to Andrea Musuruane from comment #14)
> (In reply to Antonio Trande from comment #13)
> > - Include "BSD and Boost" licenses.
> 
> Please remember the license tag is not a list of licenses found in the
> source archive but it refers to the licenses of the contents of the *binary
> RPM*:
> https://fedoraproject.org/wiki/Packaging:LicensingGuidelines#License:_field
> 
> Moreover there is no BSD license in cannonball: "find . -name \* -type f
> -exec grep "in source and binary forms" {} \;" does not return anything!

BSD (unspecified)
-----------------
cannonball-0.3/docs/license.txt
??

$ licensecheck -r * |grep BSL
src/main/cannonboard/asyncserial.cpp: *No copyright* BSL (v1.0)
src/main/cannonboard/asyncserial.hpp: *No copyright* BSL (v1.0)

'asyncserial.cpp' is directly involved during build, this is a Mixed Source Licensing Scenario: https://fedoraproject.org/wiki/Packaging:LicensingGuidelines#Mixed_Source_Licensing_Scenario

> 
> Therefore the resulting license of the binary RPM is the MAME license (i.e.
> MAME + BOOST = MAME).

Where is this  reported this uniformity?
However, there is no any reference to the 'MAME' license in the source archive; or am i wrong?
Comment 16 Andrea Musuruane 2017-08-11 21:30:45 CEST
(In reply to Antonio Trande from comment #15)
> (In reply to Andrea Musuruane from comment #14)
> > (In reply to Antonio Trande from comment #13)
> > > - Include "BSD and Boost" licenses.
> > 
> > Please remember the license tag is not a list of licenses found in the
> > source archive but it refers to the licenses of the contents of the *binary
> > RPM*:
> > https://fedoraproject.org/wiki/Packaging:LicensingGuidelines#License:_field
> > 
> > Moreover there is no BSD license in cannonball: "find . -name \* -type f
> > -exec grep "in source and binary forms" {} \;" does not return anything!
> 
> BSD (unspecified)
> -----------------
> cannonball-0.3/docs/license.txt
> ??
> 
> $ licensecheck -r * |grep BSL
> src/main/cannonboard/asyncserial.cpp: *No copyright* BSL (v1.0)
> src/main/cannonboard/asyncserial.hpp: *No copyright* BSL (v1.0)
> 
> 'asyncserial.cpp' is directly involved during build, this is a Mixed Source
> Licensing Scenario:
> https://fedoraproject.org/wiki/Packaging:
> LicensingGuidelines#Mixed_Source_Licensing_Scenario
> 
> > 
> > Therefore the resulting license of the binary RPM is the MAME license (i.e.
> > MAME + BOOST = MAME).
> 
> Where is this  reported this uniformity?
> However, there is no any reference to the 'MAME' license in the source
> archive; or am i wrong?

You shouldn't trust automatic software checking and you likely missed comment #11: doc/license.txt is NOT a BSD license.

For example, doc/license.txt states that "Redistributions may not be sold, nor may they be used in a commercial product or activity.". So this is definitely NOT a BSD license.

You can find a reference in the git commit history:
"Added MAME derived license."
https://github.com/djyt/cannonball/commits/master/docs/license.txt

If you read the text of doc/license.txt it is exactly the MAME license (word by word):
https://www.openhub.net/licenses/MAME%E2%84%A2_Distribution_License

About Mixed Source Licensing Scenario, please read the following thread:
https://lists.fedoraproject.org/archives/list/packaging@lists.fedoraproject.org/thread/QTXWYMQVWVGDGBF2DFQBDGWJNMEO4HHV/#HAVBN2535DPVZ47ID2J5ON65FXOFWS63

The Boost license is an open source permissive license in the style of the BSD license and the MIT license, but without requiring attribution for redistribution in binary form. 

Hence you can mix it with another less permissive license (e.g. the MAME license) and the result is the the less permissive license.
Comment 17 A. Trande (sagitter) 2017-08-11 21:48:50 CEST
We agree about 'License: MAME'.

Package approved.
Comment 18 Andrea Musuruane 2017-08-12 09:39:03 CEST
Antonio, thanks for the review. Let me know if I can help you reviewing one of your packages.
Comment 19 leigh scott 2017-08-13 12:01:35 CEST
(In reply to Andrea Musuruane from comment #0)

> Why not in Fedora:
> Emulators are not allowed in Fedora


A few issues

1. Why does this qualify to be in rpmfusion?
2. Why have you requested nonfree?
3. The MAME licence tag is nonsense!
Comment 20 Andrea Musuruane 2017-08-13 12:08:25 CEST
(In reply to leigh scott from comment #19)
> (In reply to Andrea Musuruane from comment #0)
> 
> > Why not in Fedora:
> > Emulators are not allowed in Fedora
> 
> 
> A few issues
> 
> 1. Why does this qualify to be in rpmfusion?

a) MAME license is nonfree because "Redistributions may not be sold, nor may they be used in a commercial product or activity."

b) cannonball is a C++ rewrite based in the original OutRun ROMs decompilation (i.e. this is not a clean room rewrite like Wine):
http://reassembler.blogspot.it/2012/12/cannonball-source-code-release.html

> 2. Why have you requested nonfree?

Because the MAME license is nonfree.

> 3. The MAME licence tag is nonsense!

Why?

Please doc/license.txt. It is exactly the MAME license (word by word):
https://www.openhub.net/licenses/MAME%E2%84%A2_Distribution_License
Comment 21 leigh scott 2017-08-13 12:17:39 CEST
(In reply to Andrea Musuruane from comment #20)
> (In reply to leigh scott from comment #19)
> > (In reply to Andrea Musuruane from comment #0)
> > 
> > > Why not in Fedora:
> > > Emulators are not allowed in Fedora
> > 
> > 
> > A few issues
> > 
> > 1. Why does this qualify to be in rpmfusion?
> 
> a) MAME license is nonfree because "Redistributions may not be sold, nor may
> they be used in a commercial product or activity."
> 
> b) cannonball is a C++ rewrite based in the original OutRun ROMs
> decompilation (i.e. this is not a clean room rewrite like Wine):
> http://reassembler.blogspot.it/2012/12/cannonball-source-code-release.html
> 

The license looks like BSD to me

> > 2. Why have you requested nonfree?
> 
> Because the MAME license is nonfree.
> 
> > 3. The MAME licence tag is nonsense!
> 
> Why?
> 
> Please doc/license.txt. It is exactly the MAME license (word by word):
> https://www.openhub.net/licenses/MAME%E2%84%A2_Distribution_License
Comment 22 Andrea Musuruane 2017-08-13 12:23:18 CEST
(In reply to leigh scott from comment #21)
> (In reply to Andrea Musuruane from comment #20)
> > (In reply to leigh scott from comment #19)
> > > (In reply to Andrea Musuruane from comment #0)
> > > 
> > > > Why not in Fedora:
> > > > Emulators are not allowed in Fedora
> > > 
> > > 
> > > A few issues
> > > 
> > > 1. Why does this qualify to be in rpmfusion?
> > 
> > a) MAME license is nonfree because "Redistributions may not be sold, nor may
> > they be used in a commercial product or activity."
> > 
> > b) cannonball is a C++ rewrite based in the original OutRun ROMs
> > decompilation (i.e. this is not a clean room rewrite like Wine):
> > http://reassembler.blogspot.it/2012/12/cannonball-source-code-release.html
> > 
> 
> The license looks like BSD to me

You are completely mistaken.

Cannonball license:
https://github.com/djyt/cannonball/blob/master/docs/license.txt

Since when the BSD license does **NOT** allow commercial redistribution???

Old MAME license (now MAME is GPLv2+):
https://www.openhub.net/licenses/MAME%E2%84%A2_Distribution_License

They are identical, word by word.

BSD licenses:
https://en.wikipedia.org/wiki/BSD_licenses
Comment 23 leigh scott 2017-08-14 21:19:22 CEST
Package processed

https://pkgs.rpmfusion.org/cgit/nonfree/cannonball.git/
Comment 24 Andrea Musuruane 2017-08-15 11:21:58 CEST
Imported and built.