Bug 2300113 - Review Request: bign-handheld-thumbnailer - A thumbnailer for Nintendo handheld systems (Nintendo DS and 3DS) roms and files
Summary: Review Request: bign-handheld-thumbnailer - A thumbnailer for Nintendo handhe...
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Andrei
QA Contact: Fedora Extras Quality Assurance
URL: https://github.com/MateusRodCosta/big...
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2024-07-26 18:13 UTC by Mateus Rodrigues Costa
Modified: 2025-04-23 16:19 UTC (History)
7 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2025-04-23 16:19:54 UTC
Type: ---
Embargoed:
aradchen: fedora-review+


Attachments (Terms of Use)

Description Mateus Rodrigues Costa 2024-07-26 18:13:55 UTC
Spec URL: https://pagure.io/bign-handheld-thumbnailer-spec
SRPM URL: https://copr.fedorainfracloud.org/coprs/mateusrodcosta/bign-handheld-thumbnailer/ (COPR)
Description: A thumbnailer for Nintendo handheld systems (Nintendo DS and 3DS) roms and files.
Fedora Account System Username: mateusrodcosta

Comment 1 Fedora Review Service 2024-07-26 18:14:35 UTC
Cannot find any valid SRPM URL for this ticket. Common causes are:

- You didn't specify `SRPM URL: ...` in the ticket description
  or any of your comments
- The URL schema isn't HTTP or HTTPS
- The SRPM package linked in your URL doesn't match the package name specified
  in the ticket summary


---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 2 Benson Muite 2025-01-30 07:34:49 UTC
Thanks for wanting to bring these to Fedora. Please ensure that the links for the spec file and srpm are to the raw files, not just to the webpages where the files are hosted.  It should be possible to use wget to directly download the files.

Comment 3 Mateus Rodrigues Costa 2025-01-30 12:28:14 UTC
Spec URL: https://pagure.io/bign-handheld-thumbnailer-spec/raw/main/f/bign-handheld-thumbnailer.spec
SRPM URL: https://download.copr.fedorainfracloud.org/results/mateusrodcosta/bign-handheld-thumbnailer/fedora-41-x86_64/08584653-bign-handheld-thumbnailer/bign-handheld-thumbnailer-1.1.2-2.fc41.src.rpm
Description: A thumbnailer for Nintendo handheld systems (Nintendo DS and 3DS) roms and files.
Fedora Account System Username: mateusrodcosta

Comment 4 Mateus Rodrigues Costa 2025-01-30 12:34:37 UTC
fedora-review-service-build

Comment 5 Fedora Review Service 2025-01-30 18:12:01 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/8587796
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2300113-bign-handheld-thumbnailer/fedora-rawhide-x86_64/08587796-bign-handheld-thumbnailer/fedora-review/review.txt

Please take a look if any issues were found.


---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 6 Andrei 2025-02-05 15:17:09 UTC
Taking for review. From a glance looks good, but I will go through checklist for some rust-specific stuff since I am not familiar with it.

Comment 7 Andrei 2025-02-18 10:08:08 UTC
===== MUST items =====

Generic:
[x]: Package successfully compiles and builds into binary rpms on at least
     one supported primary architecture.
     Note: Using prebuilt packages
[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: "Unknown or generated", "GNU General Public License, Version
     2", "*No copyright* GNU General Public License, Version 2". 22 files
     have unknown license. Detailed output of licensecheck in
     /var/lib/copr-rpmbuild/results/bign-handheld-
     thumbnailer/licensecheck.txt
[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.
[-]: Package contains desktop file if it is a GUI application.
[-]: 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.
[-]: 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]: Package complies to the Packaging Guidelines
[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]: The License field must be a valid SPDX expression.
[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]: 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]: Dist tag is present.
[x]: Package does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[x]: Package must not depend on deprecated() packages.
[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]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 2489 bytes in 2 files.
[x]: Packages must not store files under /srv, /opt or /usr/local

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

Generic:
[x]: Reviewer should test that the package builds in mock.
[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]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[-]: Sources are verified with gpgverify first in %prep if upstream
     publishes signatures.
     Note: gpgverify is not used.
[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]: 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: No rpmlint messages.
[x]: Large data in /usr/share should live in a noarch subpackage if package
     is arched.


Rpmlint
-------
Checking: bign-handheld-thumbnailer-1.1.2-2.fc42.x86_64.rpm
          bign-handheld-thumbnailer-1.1.2-2.fc42.src.rpm
============================ rpmlint session starts ============================
rpmlint: 2.5.0
configuration:
    /usr/lib/python3.13/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora-spdx-licenses.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
rpmlintrc: [PosixPath('/tmp/tmpz_6c6n9u')]
checks: 32, packages: 2

bign-handheld-thumbnailer.src: E: spelling-error ('roms', '%description -l en_US roms -> toms, rims, oms')
bign-handheld-thumbnailer.x86_64: E: spelling-error ('roms', '%description -l en_US roms -> toms, rims, oms')
bign-handheld-thumbnailer.x86_64: W: no-manual-page-for-binary bign-handheld-thumbnailer
 2 packages and 0 specfiles checked; 2 errors, 1 warnings, 7 filtered, 2 badness; has taken 0.3 s 




Rpmlint (debuginfo)
-------------------
rpmlint bign-handheld-thumbnailer-debuginfo-1.1.2-2.fc42.x86_64.rpm
(none): E: fatal error while reading bign-handheld-thumbnailer-debuginfo-1.1.2-2.fc42.x86_64.rpm: 'utf-8' codec can't decode byte 0xe1 in position 443: invalid continuation byte



Rpmlint (installed packages)
----------------------------
=================================== rpmlint session starts ==================================
rpmlint: 2.5.0
configuration:
    /usr/lib/python3.13/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora-spdx-licenses.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
checks: 32, packages: 1

bign-handheld-thumbnailer.x86_64: E: spelling-error ('roms', '%description -l en_US roms -> toms, rims, oms')
bign-handheld-thumbnailer.x86_64: W: no-manual-page-for-binary bign-handheld-thumbnailer


Source checksums
----------------
https://github.com/MateusRodCosta/bign-handheld-thumbnailer/archive/refs/tags/v1.1.2.tar.gz :
  CHECKSUM(SHA256) this package     : 1bc2e6aa441cb8e889df797d2cc5fc4d29e929ecd7ed902b27e27b67cea64109
  CHECKSUM(SHA256) upstream package : 1bc2e6aa441cb8e889df797d2cc5fc4d29e929ecd7ed902b27e27b67cea64109


Requires
--------
bign-handheld-thumbnailer (rpmlib, GLIBC filtered):
    ld-linux-x86-64.so.2()(64bit)
    libc.so.6()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libgcc_s.so.1(GCC_3.3)(64bit)
    libgcc_s.so.1(GCC_4.2.0)(64bit)
    libgio-2.0.so.0()(64bit)
    libglib-2.0.so.0()(64bit)
    libgobject-2.0.so.0()(64bit)
    libm.so.6()(64bit)
    rtld(GNU_HASH)



Provides
--------
bign-handheld-thumbnailer:
    bign-handheld-thumbnailer
    bign-handheld-thumbnailer(x86-64)
    metainfo()
    metainfo(dev.mateusrodcosta.bign_handheld_thumbnailer.metainfo.xml)



Generated by fedora-review 0.10.0 (e79b66b) last change: 2023-07-24
Command line :/bin/fedora-review --no-colors --prebuilt --rpm-spec --name bign-handheld-thumbnailer --mock-config /var/lib/copr-rpmbuild/results/configs/child.cfg
Buildroot used: fedora-rawhide-x86_64
Active plugins: Shell-api, Generic
Disabled plugins: Perl, PHP, Java, Ocaml, fonts, SugarActivity, Haskell, C/C++, R, Python
Disabled flags: EXARCH, EPEL6, EPEL7, DISTTAG, BATCH

Comment 8 Andrei 2025-02-18 10:11:53 UTC
Looks good, but I am running into issues with debuginfo package. 

rpmlint gives error both on rpm file (see review text above).

rpmlint -i gives more explanation that might be helpful to resolve:

'''
Traceback (most recent call last):
  File "/usr/bin/rpmlint", line 8, in <module>
    sys.exit(lint())
             ~~~~^^
  File "/usr/lib/python3.13/site-packages/rpmlint/cli.py", line 176, in lint
    sys.exit(lint.run())
             ~~~~~~~~^^
  File "/usr/lib/python3.13/site-packages/rpmlint/lint.py", line 108, in run
    return self._run()
           ~~~~~~~~~^^
  File "/usr/lib/python3.13/site-packages/rpmlint/lint.py", line 73, in _run
    self.validate_installed_packages(self._load_installed_rpms(self.options['installed']))
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.13/site-packages/rpmlint/lint.py", line 226, in validate_installed_packages
    self.run_checks(pkg, pkg == packages[-1])
    ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.13/site-packages/rpmlint/lint.py", line 281, in run_checks
    fn(pkg)
    ~~^^^^^
  File "/usr/lib/python3.13/site-packages/rpmlint/checks/AbstractCheck.py", line 17, in check
    return self.check_binary(pkg)
           ~~~~~~~~~~~~~~~~~^^^^^
  File "/usr/lib/python3.13/site-packages/rpmlint/checks/BinariesCheck.py", line 698, in check_binary
    self.run_elf_checks(pkg, pkgfile)
    ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
  File "/usr/lib/python3.13/site-packages/rpmlint/checks/BinariesCheck.py", line 587, in run_elf_checks
    self.readelf_parser = ReadelfParser(pkgfile.path, pkgfile.name)
                          ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.13/site-packages/rpmlint/readelfparser.py", line 357, in __init__
    self.program_header_info = ElfProgramHeaderInfo(pkgfile_path, extra_flags)
                               ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.13/site-packages/rpmlint/readelfparser.py", line 143, in __init__
    self.parse()
    ~~~~~~~~~~^^
  File "/usr/lib/python3.13/site-packages/rpmlint/readelfparser.py", line 146, in parse
    r = subprocess.run(['readelf', '-W', '-l', self.path] + self.extra_flags, encoding='utf8',
                       capture_output=True, env=ENGLISH_ENVIROMENT)
  File "/usr/lib64/python3.13/subprocess.py", line 558, in run
    stdout, stderr = process.communicate(input, timeout=timeout)
                     ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/python3.13/subprocess.py", line 1221, in communicate
    stdout, stderr = self._communicate(input, endtime, timeout)
                     ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/python3.13/subprocess.py", line 2168, in _communicate
    stdout = self._translate_newlines(stdout,
                                      self.stdout.encoding,
                                      self.stdout.errors)
  File "/usr/lib64/python3.13/subprocess.py", line 1098, in _translate_newlines
    data = data.decode(encoding, errors)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe1 in position 443: invalid continuation byte
'''

Comment 9 Mateus Rodrigues Costa 2025-02-18 15:38:52 UTC
> rpmlint gives error both on rpm file (see review text above).

So, about those messages:

```
bign-handheld-thumbnailer.src: E: spelling-error ('roms', '%description -l en_US roms -> toms, rims, oms')
bign-handheld-thumbnailer.x86_64: E: spelling-error ('roms', '%description -l en_US roms -> toms, rims, oms')
bign-handheld-thumbnailer.x86_64: W: no-manual-page-for-binary bign-handheld-thumbnailer
 2 packages and 0 specfiles checked; 2 errors, 1 warnings, 7 filtered, 2 badness; has taken 0.3 s 
```

"roms" is a valid word, specially when related to videogames, which is the context here (i.e. "game roms"). So that message can be safely ignored.
And, yes, I didn't put the effort yet to create a man page. Since it's just a thumbaniler there might not be as much benefit in having a man page, but I still plan on trying to create one in the future.

> Looks good, but I am running into issues with debuginfo package. 

So, about

```
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe1 in position 443: invalid continuation byte
```

I asked on the Fedora Rust SIG Matrix room and they basically said:

> 🤷 Don't think it's an important check, particularly on a debuginfo package.

They did worrry a bit that since I am using meson and meson macros, the correct Rust build flags are being set.

---

IMHO those warning are not important, but you can always ping some Rust packager to confirm.

Comment 10 Mateus Rodrigues Costa 2025-02-18 15:57:52 UTC
Further analysis from the Rust SIG Matrix room:

Apparently the rpmlint issue with debuginfo is https://github.com/rpm-software-management/rpmlint/issues/202 which gets fixed in rpmlint 2.6.1.

The Rust flags are correctly set even when using the meson macros.

Comment 11 Andrei 2025-02-18 16:49:48 UTC
Oh, I did not mean those errors about misspelling and no man page, that is waivable IMO too.

Just for a good measure I quickly built rpmlint 2.7.0 and tried it again. No errors.

So LGTM!

Comment 12 Vít Ondruch 2025-02-18 17:17:44 UTC
(In reply to Mateus Rodrigues Costa from comment #10)
> Apparently the rpmlint issue with debuginfo

I might be wrong, but I believe that in the days when Bodhi was using rpmlint (until it was replaced by rpminspect), the -debuginfo packages were ignored. Moreover those are autogenerated, so there are no high changes to influence their content in a way which would be relevant for rpmlint.

Comment 13 Mateus Rodrigues Costa 2025-04-02 21:33:39 UTC
Hi, what is the next step here?

I guess it's pending I getting a sponsor?

Comment 14 Andrei 2025-04-03 07:11:08 UTC
(In reply to Mateus Rodrigues Costa from comment #13)
> Hi, what is the next step here?
> 
> I guess it's pending I getting a sponsor?

Hi, yeah, it appears so.
https://docs.fedoraproject.org/en-US/package-maintainers/New_Package_Process_for_New_Contributors/#get_sponsored

Comment 15 Fabio Valentini 2025-04-09 12:15:31 UTC
This section from the docs is relevant:

> When the package is APPROVED by the reviewer, you must separately obtain member sponsorship in order to check in and build your package. Sponsorship is not automatic and may require that you further participate in other ways in order to demonstrate your understanding of the packaging guidelines. The key to becoming sponsored is to convince an existing sponsor-level member that you understand and follow the project’s guidelines and processes.

Comment 16 Fedora Admin user for bugzilla script actions 2025-04-10 14:18:27 UTC
The Pagure repository was created at https://src.fedoraproject.org/rpms/bign-handheld-thumbnailer

Comment 17 Mateus Rodrigues Costa 2025-04-23 16:19:54 UTC
This package already made it into F40, F41, F42 and Rawhide.


Note You need to log in before you can comment on or make changes to this bug.