| Summary: | Review request: retroarch - Reference frontend for the libretro API | ||
|---|---|---|---|
| Product: | Package Reviews | Reporter: | David Demelier <markand> |
| Component: | Review Request | Assignee: | RPM Fusion Package Review <rpmfusion-package-review> |
| Status: | RESOLVED WONTFIX | ||
| Severity: | enhancement | CC: | leigh123linux, musuruan, rpmfusion-package-review, vitaly |
| Priority: | P1 | Flags: | vitaly:
fedora-review?
|
| Version: | Current | ||
| Hardware: | x86_64 | ||
| OS: | GNU/Linux | ||
| namespace: | free | ||
Remove all the requires as rpm autorequires does it
Requires: SDL2
Requires: alsa-lib
Requires: bzip2-libs
Requires: ffmpeg
Requires: freetype
Requires: libX11
Requires: libXau
Requires: libXext
Requires: libXxf86vm
Requires: libglvnd-egl
Requires: libglvnd-glx
Requires: libpng
Requires: libv4l
Requires: libxcb
Requires: mesa-libGL
Requires: mesa-libgbm
Requires: mesa-libwayland-egl
Requires: pulseaudio-libs
Requires: systemd-libs
Requires: zlib
It will fix these rpmlint errors which are 'must fix'
retroarch.x86_64: E: explicit-lib-dependency alsa-lib
retroarch.x86_64: E: explicit-lib-dependency bzip2-libs
retroarch.x86_64: E: explicit-lib-dependency libX11
retroarch.x86_64: E: explicit-lib-dependency libXau
retroarch.x86_64: E: explicit-lib-dependency libXext
retroarch.x86_64: E: explicit-lib-dependency libXxf86vm
retroarch.x86_64: E: explicit-lib-dependency libglvnd-egl
retroarch.x86_64: E: explicit-lib-dependency libglvnd-glx
retroarch.x86_64: E: explicit-lib-dependency libpng
retroarch.x86_64: E: explicit-lib-dependency libv4l
retroarch.x86_64: E: explicit-lib-dependency libxcb
retroarch.x86_64: E: explicit-lib-dependency pulseaudio-libs
retroarch.x86_64: E: explicit-lib-dependency systemd-libs
retroarch.x86_64: E: explicit-lib-dependency zlib
Remove the extension from the man files
from
%{_mandir}/man6/retroarch-cg2glsl.6.gz
%{_mandir}/man6/retroarch.6.gz
to
%{_mandir}/man6/retroarch-cg2glsl.6.*
%{_mandir}/man6/retroarch.6.*
Package contains a desktop file which must be validated
%{_datadir}/applications/retroarch.desktop
see https://fedoraproject.org/wiki/Packaging:Guidelines#Desktop_files
These files aren't installed properly
change
%{_docdir}/retroarch/COPYING
%{_docdir}/retroarch/README.md
to
%doc README.md
%license COPYING
You have also missed requires on the sub-packages, shouldn't they require retroarch.
Currently %{_libdir}/retroarch/ is unowned, the main package should provide and own the directory
%files
%doc README.md
%license COPYING
%dir %{_libdir}/retroarch/
%{_bindir}/retroarch
%{_bindir}/retroarch-cg2glsl
%{_datadir}/applications/retroarch.desktop
%{_datadir}/pixmaps/retroarch.svg
%{_docdir}/retroarch/COPYING
%{_docdir}/retroarch/README.md
%{_mandir}/man6/retroarch-cg2glsl.6.*
%{_mandir}/man6/retroarch.6.*
%{_sysconfdir}/retroarch.cfg
%package filters-audio
Summary: Reference frontend for the libretro API (audio filters)
Requires: %{name}%{?_isa} = %{version}-%{release}
%description filters-audio
Additional audio filters.
%package filters-video
Summary: Reference frontend for the libretro API (video filters)
Requires: %{name}%{?_isa} = %{version}-%{release}
%description filters-video
Additional video filters.
Also changelog must be in correct format %changelog * Fri May 04 2018 David Demelier <markand@malikanai.fr> - 1.7.2-1 - Separate filters from main package. Thank for the review, I think I have covered many of the comments. Here's the v2: SPEC: http://markand.fr/static/rpms/v2/retroarch.spec SRPM: http://markand.fr/static/rpms/v2/retroarch-1.7.2-1.fc28.src.rpm Regards. (In reply to David Demelier from comment #3) > Thank for the review, I think I have covered many of the comments. > > Here's the v2: > > SPEC: http://markand.fr/static/rpms/v2/retroarch.spec > SRPM: http://markand.fr/static/rpms/v2/retroarch-1.7.2-1.fc28.src.rpm > > Regards. I missed these in files, please remove %{_docdir}/retroarch/COPYING %{_docdir}/retroarch/README.md (In reply to leigh scott from comment #1) > Remove the extension from the man files > > from > > %{_mandir}/man6/retroarch-cg2glsl.6.gz > %{_mandir}/man6/retroarch.6.gz > > to > > %{_mandir}/man6/retroarch-cg2glsl.6.* > %{_mandir}/man6/retroarch.6.* This is not correct. The correct syntax is "%{_mandir}/man6/manpage.6*": https://fedoraproject.org/wiki/Packaging:Guidelines#Manpages Thus man pages could be installed uncompressed or compressed with any compression method RPM will like. (In reply to leigh scott from comment #4) > (In reply to David Demelier from comment #3) > > Thank for the review, I think I have covered many of the comments. > > > > Here's the v2: > > > > SPEC: http://markand.fr/static/rpms/v2/retroarch.spec > > SRPM: http://markand.fr/static/rpms/v2/retroarch-1.7.2-1.fc28.src.rpm > > > > Regards. > > I missed these in files, please remove > > %{_docdir}/retroarch/COPYING > %{_docdir}/retroarch/README.md If I remove those, I get rpmbuild telling that the files are installed but not listed: error: Installed (but unpackaged) file(s) found: /usr/share/doc/retroarch/COPYING Should I keep them or remove them at %install step? (In reply to David Demelier from comment #6) > (In reply to leigh scott from comment #4) > > (In reply to David Demelier from comment #3) > > > Thank for the review, I think I have covered many of the comments. > > > > > > Here's the v2: > > > > > > SPEC: http://markand.fr/static/rpms/v2/retroarch.spec > > > SRPM: http://markand.fr/static/rpms/v2/retroarch-1.7.2-1.fc28.src.rpm > > > > > > Regards. > > > > I missed these in files, please remove > > > > %{_docdir}/retroarch/COPYING > > %{_docdir}/retroarch/README.md > > If I remove those, I get rpmbuild telling that the files are installed but > not listed: > > error: Installed (but unpackaged) file(s) found: > /usr/share/doc/retroarch/COPYING > > Should I keep them or remove them at %install step? Yes delete it and let %doc install it instead %{buildroot}%{_sysconfdir}/retroarch.cfg # Don't install COPYING as doc should do it rm %{buildroot}%{_docdir}/retroarch/COPYING %files %doc README.md %license COPYING %dir %{_libdir}/retroarch/ %{_bindir}/retroarch %{_bindir}/retroarch-cg2glsl %{_datadir}/applications/retroarch.desktop %{_datadir}/pixmaps/retroarch.svg %{_mandir}/man6/retroarch-cg2glsl.6.* %{_mandir}/man6/retroarch.6.* %{_sysconfdir}/retroarch.cfg Here's a v3 SPEC: http://markand.fr/static/rpms/v3/retroarch.spec SRPM: http://markand.fr/static/rpms/v3/retroarch-1.7.2-1.fc28.src.rpm Remove this rows:
%set_build_flags
./configure \
--prefix=/usr \
--disable-cg \
--disable-jack \
--disable-sdl \
--enable-ffmpeg
Use this:
%configure --disable-cg \
--disable-jack \
--disable-sdl \
--enable-ffmpeg
This row %dir %{_libdir}/retroarch/ should be replaced with
%{_libdir}/retroarch
All retroarch names can be replaced to %{name} macro.
No, you can't use %configure because it's a custom script and it does not understand all parameters from the macro: + ./configure --build=x86_64-redhat-linux-gnu --host=x86_64-redhat-linux-gnu --program-prefix= --disable-dependency-tracking --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64 --libexecdir=/usr/libexec --localstatedir=/var --sharedstatedir=/var/lib --mandir=/usr/share/man --infodir=/usr/share/info --prefix=/usr --disable-cg --disable-jack --disable-sdl --enable-ffmpeg Checking operating system ... Linux Unknown option --program-prefix= That's why there was %set_build_flags Here's a v4 SPEC: http://markand.fr/static/rpms/v4/retroarch.spec SRPM: http://markand.fr/static/rpms/v4/retroarch-1.7.2-1.fc28.src.rpm 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]: Development (unversioned) .so files in -devel subpackage, if present.
Note: Unversioned so-files in private %_libdir subdirectory (see
attachment). Verify they are not in ld path.
[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.
[x]: License field in the package spec file matches the actual license.
Note: Checking patched sources after %prep for licenses. Licenses
found: "GPL", "BSD (3 clause)", "LGPL (v2.1)", "ISC", "*No copyright*
MIT/X11 (BSD like)", "*No copyright* Apache (v2.0)", "GFDL GPL", "LGPL
(v2 or later)", "GPL (v3 or later)", "zlib/libpng", "GPL (v2 or later)
(with incorrect FSF address)", "BSD (2 clause)", "Apache (v2.0)", "GPL
(v2 or later)", "*No copyright* GPL (v2)", "MIT/X11 (BSD like)", "BSD
(3 clause) GPL (v3 or later)", "*No copyright* LGPL", "GPL (v3 or
later) (with incorrect FSF address)", "NTP (legal disclaimer)", "BSD
(unspecified)", "*No copyright* Public domain", "Unknown or
generated", "*No copyright* GPL (v3 or later)", "LGPL (v2.1 or
later)", "GPL (v2)". 3731 files have unknown license. Detailed output
of licensecheck in /home/vitaly/review-retroarch/licensecheck.txt
[x]: License file installed when any subpackage combination is installed.
[x]: Package does not own files or directories owned by other packages.
[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]: 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.
[x]: 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.
[x]: Package contains systemd file(s) if in need.
[x]: Useful -debuginfo package or justification otherwise.
[x]: Package is not known to require an ExcludeArch tag.
[x]: Large documentation must go in a -doc subpackage. Large could be size
(~1MB) or number of files.
Note: Documentation size is 20480 bytes in 1 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 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]: 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 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:
[x]: 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.
[x]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[x]: 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.
[x]: %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: No rpmlint messages.
[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.
[x]: Spec file according to URL is the same as in SRPM.
Rpmlint
-------
Checking: retroarch-1.7.2-1.fc28.x86_64.rpm
retroarch-filters-audio-1.7.2-1.fc28.x86_64.rpm
retroarch-filters-video-1.7.2-1.fc28.x86_64.rpm
retroarch-debuginfo-1.7.2-1.fc28.x86_64.rpm
retroarch-debugsource-1.7.2-1.fc28.x86_64.rpm
retroarch-1.7.2-1.fc28.src.rpm
retroarch.x86_64: W: spelling-error Summary(en_US) frontend -> fronted, front end, front-end
retroarch.x86_64: W: spelling-error Summary(en_US) libretro -> libretto, lib retro, lib-retro
retroarch.x86_64: W: spelling-error %description -l en_US frontend -> fronted, front end, front-end
retroarch.x86_64: W: spelling-error %description -l en_US libretro -> libretto, lib retro, lib-retro
retroarch.x86_64: W: spelling-error %description -l en_US videogame -> video game, video-game, ideogram
retroarch.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/audio/chorus.so
retroarch.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/audio/crystalizer.so
retroarch.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/audio/echo.so
retroarch.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/audio/eq.so
retroarch.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/audio/iir.so
retroarch.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/audio/panning.so
retroarch.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/audio/phaser.so
retroarch.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/audio/reverb.so
retroarch.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/audio/tremolo.so
retroarch.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/audio/vibrato.so
retroarch.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/audio/wahwah.so
retroarch.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/video/2xbr.so
retroarch.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/video/2xsai.so
retroarch.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/video/blargg_ntsc_snes.so
retroarch.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/video/darken.so
retroarch.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/video/epx.so
retroarch.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/video/lq2x.so
retroarch.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/video/phosphor2x.so
retroarch.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/video/scale2x.so
retroarch.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/video/super2xsai.so
retroarch.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/video/supereagle.so
retroarch.x86_64: W: non-conffile-in-etc /etc/retroarch.cfg
retroarch-filters-audio.x86_64: W: spelling-error Summary(en_US) frontend -> fronted, front end, front-end
retroarch-filters-audio.x86_64: W: spelling-error Summary(en_US) libretro -> libretto, lib retro, lib-retro
retroarch-filters-audio.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/audio/chorus.so
retroarch-filters-audio.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/audio/crystalizer.so
retroarch-filters-audio.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/audio/echo.so
retroarch-filters-audio.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/audio/eq.so
retroarch-filters-audio.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/audio/iir.so
retroarch-filters-audio.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/audio/panning.so
retroarch-filters-audio.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/audio/phaser.so
retroarch-filters-audio.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/audio/reverb.so
retroarch-filters-audio.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/audio/tremolo.so
retroarch-filters-audio.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/audio/vibrato.so
retroarch-filters-audio.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/audio/wahwah.so
retroarch-filters-audio.x86_64: W: no-documentation
retroarch-filters-video.x86_64: W: spelling-error Summary(en_US) frontend -> fronted, front end, front-end
retroarch-filters-video.x86_64: W: spelling-error Summary(en_US) libretro -> libretto, lib retro, lib-retro
retroarch-filters-video.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/video/2xbr.so
retroarch-filters-video.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/video/2xsai.so
retroarch-filters-video.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/video/blargg_ntsc_snes.so
retroarch-filters-video.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/video/darken.so
retroarch-filters-video.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/video/epx.so
retroarch-filters-video.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/video/lq2x.so
retroarch-filters-video.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/video/phosphor2x.so
retroarch-filters-video.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/video/scale2x.so
retroarch-filters-video.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/video/super2xsai.so
retroarch-filters-video.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/video/supereagle.so
retroarch-filters-video.x86_64: W: no-documentation
retroarch.src: W: spelling-error Summary(en_US) frontend -> fronted, front end, front-end
retroarch.src: W: spelling-error Summary(en_US) libretro -> libretto, lib retro, lib-retro
retroarch.src: W: spelling-error %description -l en_US frontend -> fronted, front end, front-end
retroarch.src: W: spelling-error %description -l en_US libretro -> libretto, lib retro, lib-retro
retroarch.src: W: spelling-error %description -l en_US videogame -> video game, video-game, ideogram
retroarch.src:59: W: configure-without-libdir-spec
6 packages and 0 specfiles checked; 0 errors, 60 warnings.
Rpmlint (debuginfo)
-------------------
Checking: retroarch-debuginfo-1.7.2-1.fc28.x86_64.rpm
1 packages and 0 specfiles checked; 0 errors, 0 warnings.
Rpmlint (installed packages)
----------------------------
sh: /usr/bin/python: No such file or directory
retroarch-filters-audio.x86_64: W: spelling-error Summary(en_US) frontend -> fronted, front end, front-end
retroarch-filters-audio.x86_64: W: spelling-error Summary(en_US) libretro -> libretto, lib retro, lib-retro
retroarch-filters-audio.x86_64: W: invalid-url URL: http://www.libretro.com <urlopen error [Errno -2] Name or service not known>
retroarch-filters-audio.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/audio/chorus.so
retroarch-filters-audio.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/audio/crystalizer.so
retroarch-filters-audio.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/audio/echo.so
retroarch-filters-audio.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/audio/eq.so
retroarch-filters-audio.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/audio/iir.so
retroarch-filters-audio.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/audio/panning.so
retroarch-filters-audio.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/audio/phaser.so
retroarch-filters-audio.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/audio/reverb.so
retroarch-filters-audio.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/audio/tremolo.so
retroarch-filters-audio.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/audio/vibrato.so
retroarch-filters-audio.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/audio/wahwah.so
retroarch-filters-audio.x86_64: W: no-documentation
retroarch.x86_64: W: spelling-error Summary(en_US) frontend -> fronted, front end, front-end
retroarch.x86_64: W: spelling-error Summary(en_US) libretro -> libretto, lib retro, lib-retro
retroarch.x86_64: W: spelling-error %description -l en_US frontend -> fronted, front end, front-end
retroarch.x86_64: W: spelling-error %description -l en_US libretro -> libretto, lib retro, lib-retro
retroarch.x86_64: W: spelling-error %description -l en_US videogame -> video game, video-game, ideogram
retroarch.x86_64: W: invalid-url URL: http://www.libretro.com <urlopen error [Errno -2] Name or service not known>
retroarch.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/audio/chorus.so
retroarch.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/audio/crystalizer.so
retroarch.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/audio/echo.so
retroarch.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/audio/eq.so
retroarch.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/audio/iir.so
retroarch.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/audio/panning.so
retroarch.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/audio/phaser.so
retroarch.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/audio/reverb.so
retroarch.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/audio/tremolo.so
retroarch.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/audio/vibrato.so
retroarch.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/audio/wahwah.so
retroarch.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/video/2xbr.so
retroarch.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/video/2xsai.so
retroarch.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/video/blargg_ntsc_snes.so
retroarch.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/video/darken.so
retroarch.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/video/epx.so
retroarch.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/video/lq2x.so
retroarch.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/video/phosphor2x.so
retroarch.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/video/scale2x.so
retroarch.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/video/super2xsai.so
retroarch.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/video/supereagle.so
retroarch.x86_64: W: non-conffile-in-etc /etc/retroarch.cfg
retroarch-debugsource.x86_64: W: invalid-url URL: http://www.libretro.com <urlopen error [Errno -2] Name or service not known>
retroarch-debuginfo.x86_64: W: invalid-url URL: http://www.libretro.com <urlopen error [Errno -2] Name or service not known>
retroarch-filters-video.x86_64: W: spelling-error Summary(en_US) frontend -> fronted, front end, front-end
retroarch-filters-video.x86_64: W: spelling-error Summary(en_US) libretro -> libretto, lib retro, lib-retro
retroarch-filters-video.x86_64: W: invalid-url URL: http://www.libretro.com <urlopen error [Errno -2] Name or service not known>
retroarch-filters-video.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/video/2xbr.so
retroarch-filters-video.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/video/2xsai.so
retroarch-filters-video.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/video/blargg_ntsc_snes.so
retroarch-filters-video.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/video/darken.so
retroarch-filters-video.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/video/epx.so
retroarch-filters-video.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/video/lq2x.so
retroarch-filters-video.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/video/phosphor2x.so
retroarch-filters-video.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/video/scale2x.so
retroarch-filters-video.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/video/super2xsai.so
retroarch-filters-video.x86_64: W: unstripped-binary-or-object /usr/lib64/retroarch/filters/video/supereagle.so
retroarch-filters-video.x86_64: W: no-documentation
5 packages and 0 specfiles checked; 0 errors, 59 warnings.
Requires
--------
retroarch-filters-audio (rpmlib, GLIBC filtered):
retroarch(x86-64)
retroarch (rpmlib, GLIBC filtered):
/usr/bin/python3
libEGL.so.1()(64bit)
libGL.so.1()(64bit)
libSDL2-2.0.so.0()(64bit)
libX11-xcb.so.1()(64bit)
libX11.so.6()(64bit)
libXext.so.6()(64bit)
libXxf86vm.so.1()(64bit)
libasound.so.2()(64bit)
libasound.so.2(ALSA_0.9)(64bit)
libasound.so.2(ALSA_0.9.0rc4)(64bit)
libavcodec.so.58()(64bit)
libavcodec.so.58(LIBAVCODEC_58)(64bit)
libavformat.so.58()(64bit)
libavformat.so.58(LIBAVFORMAT_58)(64bit)
libavutil.so.56()(64bit)
libavutil.so.56(LIBAVUTIL_56)(64bit)
libc.so.6()(64bit)
libdl.so.2()(64bit)
libdrm.so.2()(64bit)
libfreetype.so.6()(64bit)
libgbm.so.1()(64bit)
libgcc_s.so.1()(64bit)
libm.so.6()(64bit)
libmvec.so.1()(64bit)
libpthread.so.0()(64bit)
libpulse.so.0()(64bit)
libpulse.so.0(PULSE_0)(64bit)
librt.so.1()(64bit)
libstdc++.so.6()(64bit)
libswresample.so.3()(64bit)
libswresample.so.3(LIBSWRESAMPLE_3)(64bit)
libswscale.so.5()(64bit)
libswscale.so.5(LIBSWSCALE_5)(64bit)
libudev.so.1()(64bit)
libudev.so.1(LIBUDEV_183)(64bit)
libwayland-client.so.0()(64bit)
libwayland-cursor.so.0()(64bit)
libwayland-egl.so.1()(64bit)
libxcb.so.1()(64bit)
libz.so.1()(64bit)
rtld(GNU_HASH)
retroarch-debugsource (rpmlib, GLIBC filtered):
retroarch-debuginfo (rpmlib, GLIBC filtered):
retroarch-filters-video (rpmlib, GLIBC filtered):
retroarch(x86-64)
Provides
--------
retroarch-filters-audio:
retroarch-filters-audio
retroarch-filters-audio(x86-64)
retroarch:
application()
application(retroarch.desktop)
retroarch
retroarch(x86-64)
retroarch-debugsource:
retroarch-debugsource
retroarch-debugsource(x86-64)
retroarch-debuginfo:
debuginfo(build-id)
retroarch-debuginfo
retroarch-debuginfo(x86-64)
retroarch-filters-video:
retroarch-filters-video
retroarch-filters-video(x86-64)
Unversioned so-files
--------------------
retroarch: /usr/lib64/retroarch/filters/audio/chorus.so
retroarch: /usr/lib64/retroarch/filters/audio/crystalizer.so
retroarch: /usr/lib64/retroarch/filters/audio/echo.so
retroarch: /usr/lib64/retroarch/filters/audio/eq.so
retroarch: /usr/lib64/retroarch/filters/audio/iir.so
retroarch: /usr/lib64/retroarch/filters/audio/panning.so
retroarch: /usr/lib64/retroarch/filters/audio/phaser.so
retroarch: /usr/lib64/retroarch/filters/audio/reverb.so
retroarch: /usr/lib64/retroarch/filters/audio/tremolo.so
retroarch: /usr/lib64/retroarch/filters/audio/vibrato.so
retroarch: /usr/lib64/retroarch/filters/audio/wahwah.so
retroarch: /usr/lib64/retroarch/filters/video/2xbr.so
retroarch: /usr/lib64/retroarch/filters/video/2xsai.so
retroarch: /usr/lib64/retroarch/filters/video/blargg_ntsc_snes.so
retroarch: /usr/lib64/retroarch/filters/video/darken.so
retroarch: /usr/lib64/retroarch/filters/video/epx.so
retroarch: /usr/lib64/retroarch/filters/video/lq2x.so
retroarch: /usr/lib64/retroarch/filters/video/phosphor2x.so
retroarch: /usr/lib64/retroarch/filters/video/scale2x.so
retroarch: /usr/lib64/retroarch/filters/video/super2xsai.so
retroarch: /usr/lib64/retroarch/filters/video/supereagle.so
retroarch-filters-audio: /usr/lib64/retroarch/filters/audio/chorus.so
retroarch-filters-audio: /usr/lib64/retroarch/filters/audio/crystalizer.so
retroarch-filters-audio: /usr/lib64/retroarch/filters/audio/echo.so
retroarch-filters-audio: /usr/lib64/retroarch/filters/audio/eq.so
retroarch-filters-audio: /usr/lib64/retroarch/filters/audio/iir.so
retroarch-filters-audio: /usr/lib64/retroarch/filters/audio/panning.so
retroarch-filters-audio: /usr/lib64/retroarch/filters/audio/phaser.so
retroarch-filters-audio: /usr/lib64/retroarch/filters/audio/reverb.so
retroarch-filters-audio: /usr/lib64/retroarch/filters/audio/tremolo.so
retroarch-filters-audio: /usr/lib64/retroarch/filters/audio/vibrato.so
retroarch-filters-audio: /usr/lib64/retroarch/filters/audio/wahwah.so
retroarch-filters-video: /usr/lib64/retroarch/filters/video/2xbr.so
retroarch-filters-video: /usr/lib64/retroarch/filters/video/2xsai.so
retroarch-filters-video: /usr/lib64/retroarch/filters/video/blargg_ntsc_snes.so
retroarch-filters-video: /usr/lib64/retroarch/filters/video/darken.so
retroarch-filters-video: /usr/lib64/retroarch/filters/video/epx.so
retroarch-filters-video: /usr/lib64/retroarch/filters/video/lq2x.so
retroarch-filters-video: /usr/lib64/retroarch/filters/video/phosphor2x.so
retroarch-filters-video: /usr/lib64/retroarch/filters/video/scale2x.so
retroarch-filters-video: /usr/lib64/retroarch/filters/video/super2xsai.so
retroarch-filters-video: /usr/lib64/retroarch/filters/video/supereagle.so
Source checksums
----------------
http://github.com/libretro/retroarch/archive/v1.7.2/retroarch-1.7.2.tar.gz :
CHECKSUM(SHA256) this package : d330a267f4f1ec3265a97d7f6b8edf8dbe1938ab22c8795bbbddc040f2542ef9
CHECKSUM(SHA256) upstream package : d330a267f4f1ec3265a97d7f6b8edf8dbe1938ab22c8795bbbddc040f2542ef9
Generated by fedora-review 0.6.1 (f03e4e7) last change: 2016-05-02
Command line :/usr/bin/fedora-review -u https://bugzilla.rpmfusion.org/show_bug.cgi?id=4892
Buildroot used: fedora-28-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
1. You must fix license tag. Correct license for main project is GPLv3+. Also you must add all other licenses used in project (see main review automatic check results). 2. All shared libraries from retroarch-filters-video and retroarch-filters-audio subpackages must be installed with chmod 0755, not 0644. Then rpmbuild will strip debuginfo from them and rpmlint will show no warnings. 1. For license, I've added GPLv3+. However the automatic result list is very long and probably contains external stuff not written by RetroArch authors. Why should we add this? Every software has third party code and if we should add all these licenses we will have very big lists everytime. I've checked several others distributions packages, all only keep GPLv3+ as their license. The RetroArch COPYING also only list GPLv3. 2. Fixed. So if you're okay with 1, here's a v5: SPEC: http://markand.fr/static/rpms/v5/retroarch.spec SRPM: http://markand.fr/static/rpms/v5/retroarch-1.7.2-1.fc28.src.rpm > Why should we add this? On Fedora License tag must contains names of all licenses used in project. > Every software has third party code and if we should add all these licenses we will have very big lists everytime. It's fine. > I've checked several others distributions packages, all only keep GPLv3+ as their license. Please read this: https://fedoraproject.org/wiki/Packaging:LicensingGuidelines > So if you're okay with 1, here's a v5: Cannot download due to 404 error. Please fix. I've asked upstream, they maintain that pure RetroArch code is only GPLv3+ as some folks pointed out on #retroarch IRC channel: 14:59 < orbea> https://github.com/libretro/RetroArch/blob/master/COPYING 14:59 < retrobot> Title: RetroArch/COPYING at master · libretro/RetroArch · GitHub 15:00 < orbea> the cores may have different licenses, but I think RA is just gplv3 I check with them for the licenses that your tool has shown. Sorry for broken links, it's fixed now. (In reply to Vitaly Zaitsev from comment #15) > > I've checked several others distributions packages, all only keep GPLv3+ as their license. > > Please read this: > https://fedoraproject.org/wiki/Packaging:LicensingGuidelines "The License: field refers to the licenses of the contents of the binary rpm" It is not a list of licenses found in the source files. Therefore if the resulting binary is the combination of different (and mixable) licensed source files, only the resulting license must be stated in the License field. E.g. BSD and GPLv2+ and GPLv3 = GPLv3. > I've asked upstream, they maintain that pure RetroArch code is only GPLv3+ as some folks pointed out on #retroarch IRC channel
Please read licensing guidelines. You **must** specify all licenses used in project (including all bundled third-party code).
(In reply to Vitaly Zaitsev from comment #18) > Please read licensing guidelines. You **must** specify all licenses used in > project (including all bundled third-party code). No, you are wrong. Please read them again: https://fedoraproject.org/wiki/Packaging:LicensingGuidelines#License:_field "The License: field refers to the licenses of the contents of the ***binary rpm***. When in doubt, ask. If a source package generates multiple binary packages, the License: field may differ between them if necessary. This implies that a single spec may have multiple per-subpackage License: tags. Each of those License: tags must comply with all applicable guidelines. " > The License: field refers to the licenses of the contents of the ***binary rpm***. When in doubt, ask
All third-party code are part of binary in RPM, so you must include them into License tag.
Sorry, but I will not approve this package until all licensing issues will be resolved.
Can we try to find a compromise on the license issue with this package ? BTW is the retroarch code itslef GPLv3 (only) or GPLv3+ ? Seems what's unclear in the fedora guideline about this is about the bundling situation. For example, you cannot assume the license of ffmpeg to affect retroarch license tag because ffmpeg can be compiled from LGPLv2+ to GPLv3+. in RPM Fusion, we compile ffmpeg with GPLv3+ and it has to be compatible with downstream users. Which is fine if the retroarch package is tagged with GPLv3. But if any downstream ffmpeg users use any "BSD with advertising" code which is GPL incompatible along with LGPLv2+, both version need to be mentioned in the package license tag to reflect that. Can we just copy any license from the retroarch archive and tag every kind of license once on the retroarch license tag ? Does everyone agrees on that ? Do we also need to add LGPL license since retroarch links to glibc? I don't understand because whatever RetroArch incorporate third party code is similar that linking to it. When an application links to libSDL we don't add zlib to the license field IIRC. > Do we also need to add LGPL license since retroarch links to glibc? No, because application linked dynamically with glibc, libstdc++, etc. You need to specify only licenses of bundled libraries or resources. > When an application links to libSDL we don't add zlib **Dynamically** links. Static linkage is strongly forbidden in Fedora. Okay, I'll update the license tag once I return from vacations. Thanks for this clarification. (In reply to David Demelier from comment #24) > Okay, I'll update the license tag once I return from vacations. Thanks for > this clarification. Hi, any update on this ? Hi, sorry I had been extremely busy these days. I'll try to complete this weekend. Any progress? Hello, I'm very sorry but I'm considering leaving fedora. Even if we push that package, I won't be able to maintain it afterwards. Let's close it? (In reply to David Demelier from comment #28) ... > I'm very sorry but I'm considering leaving fedora. Even if we push that > package, I won't be able to maintain it afterwards. Let's close it? Sorry to hear that. I hope nothing in our side is the cause of the decision. Thx for your notice tough. I hope someone can take-over your work. There is a need to submit a new review request. > Sorry to hear that. I hope nothing in our side is the cause of the decision.
Thx for your notice tough.
No don't worry, RPM Fusion is definitely the first thing I enable once I get a CentOS/Fedora install :)
|
Hi, This is my first RPM Fusion package. RetroArch is not eligible for inclusion in Fedora because: 1. It depends on ffmpeg, 2. It has a lot of assets / libretro cores that are open source but in a non-commercial clause, 3. Some libretro core also depend on ffmpeg. What is RetroArch? RetroArch is the reference frontend for the libretro API. Popular examples of implementations for this API includes videogame system emulators and game engines, but also more generalized 3D programs. These programs are instantiated as dynamic libraries. We refer to these as "libretro cores". $ rpmlint retroarch.spec SPECS/retroarch.spec:74: W: configure-without-libdir-spec SPECS/retroarch.spec:141: W: macro-in-%changelog %{_libdir} SPECS/retroarch.spec:142: W: macro-in-%changelog %{_datadir} SPECS/retroarch.spec:143: W: macro-in-%changelog %{_datadir} 0 packages and 1 specfiles checked; 0 errors, 4 warnings. The home made configure file do not require installation of any library, other warnings are a bit useless to me. $ rpmlint retroarch-1.7.2-1.fc28.x86_64.rpm retroarch.x86_64: E: explicit-lib-dependency alsa-lib retroarch.x86_64: E: explicit-lib-dependency bzip2-libs retroarch.x86_64: E: explicit-lib-dependency libX11 retroarch.x86_64: E: explicit-lib-dependency libXau retroarch.x86_64: E: explicit-lib-dependency libXext retroarch.x86_64: E: explicit-lib-dependency libXxf86vm retroarch.x86_64: E: explicit-lib-dependency libglvnd-egl retroarch.x86_64: E: explicit-lib-dependency libglvnd-glx retroarch.x86_64: E: explicit-lib-dependency libpng retroarch.x86_64: E: explicit-lib-dependency libv4l retroarch.x86_64: E: explicit-lib-dependency libxcb retroarch.x86_64: E: explicit-lib-dependency pulseaudio-libs retroarch.x86_64: E: explicit-lib-dependency systemd-libs retroarch.x86_64: E: explicit-lib-dependency zlib retroarch.x86_64: W: spelling-error Summary(en_US) frontend -> fronted, front end, front-end retroarch.x86_64: W: spelling-error Summary(en_US) libretro -> libretto, lib retro, lib-retro retroarch.x86_64: W: spelling-error %description -l en_US frontend -> fronted, front end, front-end retroarch.x86_64: W: spelling-error %description -l en_US libretro -> libretto, lib retro, lib-retro retroarch.x86_64: W: spelling-error %description -l en_US videogame -> video game, video-game, ideogram retroarch.x86_64: W: no-version-in-last-changelog retroarch.x86_64: W: non-conffile-in-etc /etc/retroarch.cfg 1 packages and 0 specfiles checked; 14 errors, 7 warnings. I can't understand the problem with dependencies. SPEC: http://markand.fr/static/rpms/retroarch.spec SRPM: http://markand.fr/static/rpms/retroarch-1.7.2-1.fc28.src.rpm I don't have a sponsor yet.