Bug 1414087

Summary: Review Request: Gearboy - Game Boy and Game Boy Color emulator
Product: [Fedora] Fedora Reporter: Daniel Moerner <dmoerner>
Component: Package ReviewAssignee: Jerry James <loganjerry>
Status: CLOSED WONTFIX QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: rawhideCC: alexjnewt, itamar, loganjerry, musuruan, package-review
Target Milestone: ---Flags: loganjerry: fedora-review?
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-01-25 13:04:53 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:    
Bug Blocks: 177841, 1364745    

Description Daniel Moerner 2017-01-17 17:28:39 UTC
Spec URL: http://copr-dist-git.fedorainfracloud.org/cgit/dmoerner/Gearboy/Gearboy.git/plain/Gearboy.spec?id=91cac5b448bbdee305b3a040bb2b11108a6537ff
SRPM URL: https://copr-be.cloud.fedoraproject.org/results/dmoerner/Gearboy/fedora-25-x86_64/00500763-Gearboy/Gearboy-2.3.1-1.fc25.src.rpm

Description: 
Gearboy is a Nintendo Game Boy and Game Boy Color emulator written in
C++. The emulator prioritizes readable, simple source code and high
compatibility across a variety of platforms and architectures. Gearboy
features highly accurate CPU emulation, instruction timing, and memory
timing. It also includes memory bank controllers, accurate LCD
controller emulation, mix frames, sound emulation, and compressed ROM
support.

Fedora Account System Username: dmoerner

Successful koji scratch-build: https://koji.fedoraproject.org/koji/taskinfo?taskID=17313799

This is my first package, and I need a sponsor. 

Gearboy is an emulator compatible with Fedora's new, more relaxed emulator policy.[1] It is GPLv3+ and contains no non-free components. It needs only game ROMS supplied by the user and not included in the package.

I chose to name it "Gearboy" rather than "gearboy" because upstreame consistently uses the capitalized form, including in documentation and in the binary name. (The only exception is actually git tagging, as noted in the spec file.) If "gearboy" would be preferred, it would be trivial to rename the files during install.

Upstream has been very responsive; they merged a number of pull requests I submitted, including man, desktop, and appdata files that I wrote.[2]

I checked the package with mock, rpmlint, and fedora-review many times, and believe it conforms to the package requirements.

To potential sponsors:

I already introduced myself informally on the games mailing list[3], and I will introduce myself again on the devel list. Here is some relevant information that might help you decide to sponsor me:

I have read the packaging guidelines many times. Gearboy is actually the third package I have created while trying to follow the packaging guidelines. (The first, hamlet, an SML interpreter, still requires some patches to satisfy FHS which I have not yet written. I hope to submit a review-request for it when I do that. The second, higan, another emulator, has some licensing issues that I came to believe make it unsuitable for inclusion in Fedora.)

I completed a sample review for the minetestmapper package.[4] I thought the package was in very good shape, so it turned out to be very simple. (I'm sure I missed something, though!) But it did give me an opportunity to find what I believe is a small bug in fedora-review[5], and to write and submit a manpage for the package upstream.[6]

Finally, back when I was involved in Debian development, they asked you to triage a so-called "release-critical" bug, like a FTBFS. I informally did this for a recent bug in guile found during the rawhide readline-7 rebuild.[7] (It turned out to be non-reproducible.)

I also hang out in IRC as dmoerner, you are welcome to quiz me or ask me to do additional things! Thanks!

[1] https://fedoraproject.org/wiki/Licensing:SoftwareTypes?rd=Licensing/SoftwareTypes#Emulators
[2] https://github.com/drhelius/Gearboy/pull/42
[3] https://lists.fedoraproject.org/archives/list/games@lists.fedoraproject.org/thread/LPEW5CCGK6JRGDCV3CTRXGGDTAD2EHO5/
[4] https://bugzilla.redhat.com/show_bug.cgi?id=1410651#c1
[5] https://bugzilla.redhat.com/show_bug.cgi?id=1414065
[6] https://github.com/minetest/minetestmapper/pull/43
[7] https://bugzilla.redhat.com/show_bug.cgi?id=1412931#c1

Comment 1 Jerry James 2017-01-24 23:04:24 UTC
$ fedora-review -b 1414087
INFO: Processing bugzilla bug: 1414087
INFO: Getting .spec and .srpm Urls from : 1414087
INFO:   --> SRPM url: https://copr-be.cloud.fedoraproject.org/results/dmoerner/Gearboy/fedora-25-x86_64/00500763-Gearboy/Gearboy-2.3.1-1.fc25.src.rpm
INFO:   --> Spec url: http://copr-dist-git.fedorainfracloud.org/cgit/dmoerner/Gearboy/Gearboy.git/plain/Gearboy.spec
INFO: Using review directory: /home/jamesjer/1414087-Gearboy
INFO: Downloading .spec and .srpm files
ERROR: 'Error 404 downloading http://copr-dist-git.fedorainfracloud.org/cgit/dmoerner/Gearboy/Gearboy.git/plain/Gearboy.spec'

Comment 2 Daniel Moerner 2017-01-24 23:15:44 UTC
Hi Jerry,

Thanks a lot for trying to take a look at this. Sorry about the bad link for the spec file, I thought I tested this.

For reasons I can't quite understand, Gearboy.spec is not in the master branch in copr, but is in the f25 and f26 branches. That's why fedora-review isn't finding it. Here's a link:
http://copr-dist-git.fedorainfracloud.org/cgit/dmoerner/Gearboy/Gearboy.git/plain/Gearboy.spec?h=f25

Alternatively, here's a link to github:

https://raw.githubusercontent.com/dmoerner/Gearboy-packaging/master/Gearboy.spec

Thanks,
Daniel

Comment 3 Jerry James 2017-01-25 00:28:43 UTC
We need to ensure that the requirements listed here are met: https://fedoraproject.org/wiki/Licensing:SoftwareTypes?rd=Licensing/SoftwareTypes#Emulators

I'm concerned about src/boot_roms.h.  The header of that file claims copyright and gives a license, but then comments:

// From GameBoy-Online emulator

before listing a bunch of hex bytes with the worrisome name of kBootRomDMG.  We'll have to determine what those bytes are and where they came from before we can continue.

Comment 4 Daniel Moerner 2017-01-25 00:41:15 UTC
Good catch, I should have looked beyond the headers. 

I have followed up with upstream but it doesn't appear promising. A bit of searching reveals that those bytes have been circulating in several GB emulators for many years, but with no clear statement of their source or license.

https://github.com/drhelius/Gearboy/issues/43

Comment 5 Andrea Musuruane 2017-01-25 08:36:44 UTC
Please read:
http://gbdev.gg8.se/wiki/articles/Gameboy_Bootstrap_ROM

I guess this is a blocker to have Gearboy in Fedora proper.

Comment 6 Daniel Moerner 2017-01-25 13:04:34 UTC
Thank you for sharing, I was not aware of that history. This does look like a clear legal blocker.

Thanks all for your help; my apologies for any time you spent on this. I will be much more careful next time.

I believe the correct thing to do this is to close this bug "WONTFIX".

Comment 7 Itamar Reis Peixoto 2017-01-25 13:33:38 UTC
please submit it to rpmfusion, thank you.

Comment 8 Daniel Moerner 2017-01-25 13:34:40 UTC
Thank you for the suggestion, Itamar and Andrea; I will submit it to rpmfusion.

Comment 9 Jeremy Newton 2017-03-23 22:44:48 UTC
It seems like upstream has specified that these roms can be removed:
https://github.com/drhelius/Gearboy/issues/43

Comment 10 Daniel Moerner 2017-03-24 01:50:50 UTC
(In reply to Jeremy Newton from comment #9)
> It seems like upstream has specified that these roms can be removed:
> https://github.com/drhelius/Gearboy/issues/43

That is true. However, when the roms are made removable, Gearboy will be unable to emulate or function without them. Therefore I don't think it's appropriate for the main archive, given the policy:

"* Emulators which depend on firmware or ROM files to function may not be included in Fedora, unless the copyright holder(s) for the firmware/ROM files give clear permission for the firmware/ROM files to be distributed (either under a Fedora permissible license or under the Fedora firmware exception criteria). Note: This only covers the situation where an emulator will not run at all without firmware/ROM files. For example, emulators that compile and run, but ship with no game ROMs are not covered by this rule."

It is appropriate for rpmfusion, I've just been quite busy recently and need to look into how rpmfusion works when I have time.