Bug 1699561

Summary: Review Request: reicast - Sega Dreamcast emulator
Product: [Fedora] Fedora Reporter: davidgf <david>
Component: Package ReviewAssignee: Nobody's working on this, feel free to take it <nobody>
Status: CLOSED WONTFIX QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: rawhideCC: package-review, quantum.analyst, zebob.m
Target Milestone: ---Flags: package-review: needinfo?
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: 2020-07-16 10:37:37 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On:    
Bug Blocks: 177841    

Description davidgf 2019-04-13 16:51:58 UTC
Spec URL: https://raw.githubusercontent.com/davidgfnet/reicast-fedora-packaging/r8.1/reicast.spec
SRPM URL: https://github.com/davidgfnet/reicast-fedora-packaging/releases/download/r8.1/reicast-8.1-1.fc29.src.rpm

Description:

Hey there. I'd like to include Reicast in the Fedora packages (see reicast.com).
I created the src.rpm package and tested it all in copr (https://copr.fedorainfracloud.org/coprs/davidgf/reicast/)

Fedora Account System Username: davidgf

Comment 1 Robert-André Mauchin 🐧 2019-04-13 18:42:17 UTC
 - Group: is not used in Fedora

 - Packager: is not used in Fedora

 - This should not be used without good reason:

%define debug_package %{nil}

 If your package don't generate debug symbols, you need to find why.

 - Use %global, not %define

 - Make %setup quiet with -q:

%setup -qn reicast-emulator-r%{version}

 - Not needed:

rm -rf $RPM_BUILD_ROOT

 - Use %set_build_flags to set Fedora default build flags:

%build
%set_build_flags

 - make %{?_smp_mflags} → %make_build

 - make install PREFIX=/usr DESTDIR=$RPM_BUILD_ROOT → %make_install PREFIX=%{_prefix}

 - Not needed:

%clean
rm -rf %{buildroot}

 - Just use 

%{_datadir}/%{name}

 in %files to own all the files there

 - Glob the .gz extension for man pages as the compression might change in the future:

%{_mandir}/man1/reicast.1.*
%{_mandir}/man1/reicast-joyconfig.1.*

 - Validate the .desktop file in %install or %check:

desktop-file-validate %{buildroot}/%{_datadir}/applications/reicast.desktop

 - Remove the env in this too:

sed -i 's/\/usr\/bin\/env python/\/usr\/bin\/python3/g' shell/linux/tools/reicast-joyconfig.py

 - You need to add a %changelog

 - Use a better name for your archive:

Source0:    https://github.com/reicast/reicast-emulator/archive/r%{version}/%{name}-%{version}.tar.gz

 - Why not add ARM and aarch64 then?

# It can run on ARM and potentially any platform without JIT though.
ExclusiveArch:	x86_64 %{ix86} %{arm} aarch64

Comment 2 Elliott Sales de Andrade 2019-04-28 00:57:57 UTC
Sorry, I don't think this is acceptable in Fedora: https://fedoraproject.org/wiki/Licensing:SoftwareTypes#Emulators

> 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.

And from Reicast's user guide:

> You will need the Dreamcast BIOS files (dc_boot.bin and dc_flash.bin) to run reicast. You need to dump these files from your Dreamcast.

If Reicast could run without these files at all (using some homebrewed version or something), it would be acceptable.


You may be able to package this for RPM Fusion instead, though I'm not exactly sure of their legal requirements.

Comment 3 davidgf 2019-04-28 23:32:24 UTC
reicast has a built-in BIOS HLE: reios.
Not great but works for many games :) Does that make it acceptable? In essence is like a high level implementation of the BIOS functions, open source also.

Robert-André Mauchin: I will try to address your concerns.
So aarch64 will be supported on the next release, not that one. ARM(v7) is supported but haven't tested yet.
Thanks for your input!

Comment 4 Elliott Sales de Andrade 2019-04-29 06:24:48 UTC
Well, I think that covers:

> 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.

so yes, if the dumped BIOS is optional, then it is fine there.


Also keep in mind the other rules:

> * Emulators must not ship with any ROM files (e.g. games) unless those ROM files are available under a Fedora permissible license and have been built from source code in the Fedora buildsystem.
> * Emulators must not point to any third-party sites which provide firmware or ROM files that are distributed without the clear and explicit permission of their copyright holders.

Comment 5 davidgf 2019-05-09 17:43:34 UTC
Hey there! I addressed most of the issues, there's a couple of them that I wasn't sure what you meant:
https://github.com/davidgfnet/reicast-fedora-packaging/blob/master/reicast.spec

Please let me know what you think and I'll be happy to address any other issues there might be.
Thanks for taking the time to review this, much appreciated!

In regard of the rules I think we comply with them so far. I'm happy to work improving the blob-less (BIOS-less) emulation to improve the users' experience. Also next release will have support for armv7/v8 too.

Comment 6 Robert-André Mauchin 🐧 2019-05-09 18:43:25 UTC
 - Use %set_build_flags to set Fedora default build flags:

%build
%set_build_flags

 - Please split the description to stay below 80 characters per line.

 - Use a better name for your archive:

Source0:    https://github.com/reicast/reicast-emulator/archive/r%{version}/%{name}-%{version}.tar.gz

Comment 7 Package Review 2020-07-10 00:57:17 UTC
This is an automatic check from review-stats script.

This review request ticket hasn't been updated for some time. We're sorry
it is taking so long. If you're still interested in packaging this software
into Fedora repositories, please respond to this comment clearing the
NEEDINFO flag.

You may want to update the specfile and the src.rpm to the latest version
available and to propose a review swap on Fedora devel mailing list to increase
chances to have your package reviewed. If this is your first package and you
need a sponsor, you may want to post some informal reviews. Read more at
https://fedoraproject.org/wiki/How_to_get_sponsored_into_the_packager_group.

Without any reply, this request will shortly be considered abandoned
and will be closed.
Thank you for your patience.