Bug 2374290 - Review Request: genext2fs - ext2 filesystem generator
Summary: Review Request: genext2fs - ext2 filesystem generator
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Benson Muite
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2025-06-23 10:24 UTC by Yanko Kaneti
Modified: 2025-07-13 04:19 UTC (History)
3 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2025-07-13 04:19:56 UTC
Type: Bug
Embargoed:
benson_muite: fedora-review+


Attachments (Terms of Use)

Description Yanko Kaneti 2025-06-23 10:24:29 UTC
Spec URL: http://declera.com/~yaneti/genext2fs/genext2fs.spec
SRPM URL: http://declera.com/~yaneti/genext2fs/genext2fs-1.4.2%5e20250623.g3b99f4a-1.fc43.src.rpm
Description: genext2fs generates an ext2 filesystem as a normal (non-root) user.
It does not require you to mount the image file to copy files on it,
nor does it require that you become the superuser to make device nodes.
Fedora Account System Username: yaneti

Comment 1 andreyesquivel.dev 2025-06-24 17:06:07 UTC
Hello Yanko, 

This is one of my mock reviews for the Fedora sponsorship process.

I performed a thorough review and build of genext2fs comparing the version 1.4.2 (the one you shared) with the newer upstream release 1.5.0 (see https://github.com/bestouff/genext2fs/releases/tag/v1.5.0). Both versions compile successfully under the Fedora build environment using rpmbuild -ba and standard compiler flags, and their respective test suites run without failures or crashes. For version 1.5.0, I created a provisional .spec file and confirmed that the packaging process completes correctly.

During the build process, both versions emit a number of compiler warnings. These include suspicious uses of strncpy and sizeof, which may lead to truncation (-Wstringop-truncation, -Wsizeof-pointer-memaccess), warnings about ignored return values from fread (-Wunused-result), and the potential use of uninitialized variables (-Wmaybe-uninitialized). These warnings appear consistently across both versions, indicating that they originate from upstream code.

Although it would be reasonable to consider packaging the newer 1.5.0 release, both versions exhibit similar upstream code issues that have not yet been addressed. In accordance with Fedora’s guideline of staying close to upstream projects (see https://docs.fedoraproject.org/en-US/package-maintainers/Staying_Close_to_Upstream_Projects/), it is strongly recommended to contact the upstream maintainer to notify him about these warnings. This collaborative approach helps improve the long-term quality, security, and maintainability of the project. Engaging upstream early ensures future releases can be packaged with high confidence and helps eliminate possible runtime issues for the open source community.

I hope this mock review may help for future reviewers that want to work on this package. I will be here to help if needed.

Comment 2 Yanko Kaneti 2025-06-25 20:35:34 UTC
Thanks for looking into it.
I knew about the 1.5.0 tag but think that attempt for release was not really thought through completely.
configure.ac still says  AC_INIT([genext2fs], [1.4.2]). There is an open issue about it (#28) since 2021.

This is not security sensitive code and any warnings could be addressed later at any point when there is actually someone that could be considered active upstream.

Comment 3 andreyesquivel.dev 2025-06-25 21:34:20 UTC
That makes sense. The 1.5.0 tag does appear rushed and ambiguous with that leftover AC_INIT reference. It is not worth switching to an upstream that’s not clearly active or finalized in its releases.

I now understood about the warnings. The code is not security-sensitive, it makes sense to proceed while documenting the issues, as did.

Thank you for your response.

Comment 4 andreyesquivel.dev 2025-06-26 13:07:15 UTC
Hello Yanko,

As part of my Fedora sponsorship process, I have performed a thorough review using the original files provided in this Bugzilla ticket.

I have manually checked the following areas:

    License: [ ] Needs correction: licensecheck found unknown entries and an incorrect FSF address.

    Summary: [ ] Not capitalized, causes rpmlint warning.

    Compiler Warnings: [x] Present, but as discussed earlier, the code is not security sensitive and upstream is inactive. Documenting them is sufficient.

    Overall Build: [x] Builds cleanly in mock.

    Rpmlint: [x] Only minor warnings and 1 FSF address error, nothing blocking.

Please find below the full fedora-review output:

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

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



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

C/C++:
[ ]: Package does not contain kernel modules.
[x]: If your application is a C or C++ application you must list a
     BuildRequires against gcc, gcc-c++ or clang.
[x]: Package does not contain any libtool archives (.la)
[x]: Package contains no static executables.
[x]: Rpath absent or only used for internal libs.

Generic:
[ ]: 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: "Unknown or generated", "GNU General Public License, Version
     2", "FSF All Permissive License". 22 files have unknown license.
     Detailed output of licensecheck in
     /home/andreyesquivel/firstmock/old/review-genext2fs/licensecheck.txt
[ ]: %build honors applicable compiler flags or justifies otherwise.
[ ]: Package contains no bundled libraries without FPC exception.
[ ]: Changelog in prescribed format.
[ ]: 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
[ ]: Package uses nothing in %doc for runtime.
[ ]: Package consistently uses macros (instead of hard-coded directory
     names).
[ ]: Package is named according to the Package Naming Guidelines.
[ ]: Package does not generate any conflict.
[ ]: Package obeys FHS, except libexecdir and /usr/target.
[ ]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[ ]: Requires correct, justified where necessary.
[ ]: Spec file is legible and written in American English.
[ ]: Package contains systemd file(s) if in need.
[ ]: Useful -debuginfo package or justification otherwise.
[ ]: Package is not known to require an ExcludeArch tag.
[ ]: 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]: 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 6323 bytes in 3 files.
[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.
[ ]: Final provides and requires are sane (see attachments).
[ ]: Package functions as described.
[ ]: Latest version is packaged.
[ ]: 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.
[ ]: Package should compile and build into binary rpms on all supported
     architectures.
[ ]: %check is present and all tests pass.
[ ]: 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]: Package should not use obsolete m4 macros
[x]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: genext2fs-1.4.2^20250623.g3b99f4a-1.fc43.x86_64.rpm
          genext2fs-1.4.2^20250623.g3b99f4a-1.fc43.src.rpm
============================ rpmlint session starts ============================
rpmlint: 2.7.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/tmps_i44qjd')]
checks: 32, packages: 2

genext2fs.src: W: summary-not-capitalized ext2 filesystem generator
genext2fs.x86_64: W: summary-not-capitalized ext2 filesystem generator
genext2fs.x86_64: E: incorrect-fsf-address /usr/share/licenses/genext2fs/COPYING
 2 packages and 0 specfiles checked; 1 errors, 2 warnings, 11 filtered, 1 badness; has taken 0.4 s 




Rpmlint (debuginfo)
-------------------
Checking: genext2fs-debuginfo-1.4.2^20250623.g3b99f4a-1.fc43.x86_64.rpm
============================ rpmlint session starts ============================
rpmlint: 2.7.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/tmp9dy6hkze')]
checks: 32, packages: 1

 1 packages and 0 specfiles checked; 0 errors, 0 warnings, 5 filtered, 0 badness; has taken 0.1 s 





Rpmlint (installed packages)
----------------------------
============================ rpmlint session starts ============================
rpmlint: 2.7.0
configuration:
    /usr/lib/python3.14/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: 2

genext2fs.x86_64: W: summary-not-capitalized ext2 filesystem generator
genext2fs.x86_64: E: incorrect-fsf-address /usr/share/licenses/genext2fs/COPYING
 2 packages and 0 specfiles checked; 1 errors, 1 warnings, 11 filtered, 1 badness; has taken 0.5 s 



Source checksums
----------------
https://github.com/bestouff/genext2fs//archive/3b99f4a43f612b9ee74bbf24ca9890606295313f/genext2fs-1.4.2^20250623.g3b99f4a.tar.gz :
  CHECKSUM(SHA256) this package     : a5a729d10ca4fdf198120277d9afa20c0f7219a416bbde9d3be953c545129b82
  CHECKSUM(SHA256) upstream package : a5a729d10ca4fdf198120277d9afa20c0f7219a416bbde9d3be953c545129b82


Requires
--------
genext2fs (rpmlib, GLIBC filtered):
    libc.so.6()(64bit)
    rtld(GNU_HASH)



Provides
--------
genext2fs:
    genext2fs
    genext2fs(x86-64)



Generated by fedora-review 0.10.0 (e79b66b) last change: 2023-07-24
Command line :/usr/bin/fedora-review -n genext2fs
Buildroot used: fedora-rawhide-x86_64
Active plugins: Shell-api, C/C++, Generic
Disabled plugins: Python, Java, R, Ocaml, Haskell, fonts, PHP, SugarActivity, Perl
Disabled flags: EXARCH, EPEL6, EPEL7, DISTTAG, BATCH

Let me know if I can assist with any further details.

Comment 5 andreyesquivel.dev 2025-06-26 15:58:13 UTC
This document provides an updated and detailed package review, including further analysis and recommendations based on the previous check performed.

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]: If your application is a C or C++ application you must list a
     BuildRequires against gcc, gcc-c++ or clang.
[x]: Package does not contain any libtool archives (.la)
[x]: Package contains no static executables.
[x]: Rpath absent or only used for internal libs.

Generic:
[!]: Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
licensecheck detected files with unknown or missing license headers.

[!]: 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", "FSF All Permissive License". 22 files have unknown license.
     Detailed output of licensecheck in
     /home/andreyesquivel/firstmock/old/review-genext2fs/licensecheck.txt
The license is set to GPL-2.0-only, but multiple files show inconsistent or missing license declarations.

[ ]: %build honors applicable compiler flags or justifies otherwise.
Some warnings during build.

[x]: Package contains no bundled libraries without FPC exception.
[x]: Changelog in prescribed format.
[ ]: Sources contain only permissible code or content.
Source appears clean, but incomplete license headers prevent evaluation.

[-]: 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).
[!]: Package is named according to the Package Naming Guidelines.
Name follows upstream, but use of ^ in version string might not be ideal.

[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.
[!]: Requires correct, justified where necessary.
Recommend adding 'make' explicitly to BuildRequires for clarity.

[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.
[!]: Package complies to the Packaging Guidelines
Some issues remain (license headers, ^ in version)

[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]: 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 6323 bytes in 3 files.
[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]: Package functions as described.
Compilation includes some warnings (-Wstringop-truncation, -Wunused-result),
but they do not affect functionality; the program runs as expected.

[x]: Latest version is packaged.
A newer tag (1.5.0) exists upstream, but no new release since 2020.This version is still having warnings. 

[x]: Package does not include license text files separate from upstream.
[ ]: Sources are verified with gpgverify first in %prep if upstream
     publishes signatures.
gpgverify is not used. The upstream does not publish signatures.

[ ]: Package should compile and build into binary rpm on all supported
     architectures.
Compilation tested on x86_64 only.

[x]: %check is present and all tests pass.
[x]: Packages should try to preserve timestamps of original installed
     files.
The package does not explicitly preserve original timestamps of 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]: Package should not use obsolete m4 macros
[x]: Spec file according to URL is the same as in SRPM.

Rpmlint
-------
Checking: genext2fs-1.4.2^20250623.g3b99f4a-1.fc43.x86_64.rpm
          genext2fs-1.4.2^20250623.g3b99f4a-1.fc43.src.rpm
============================ rpmlint session starts ============================
rpmlint: 2.7.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/tmps_i44qjd')]
checks: 32, packages: 2

genext2fs.src: W: summary-not-capitalized ext2 filesystem generator
genext2fs.x86_64: W: summary-not-capitalized ext2 filesystem generator
genext2fs.x86_64: E: incorrect-fsf-address /usr/share/licenses/genext2fs/COPYING
 2 packages and 0 specfiles checked; 1 errors, 2 warnings, 11 filtered, 1 badness; has taken 0.4 s 




Rpmlint (debuginfo)
-------------------
Checking: genext2fs-debuginfo-1.4.2^20250623.g3b99f4a-1.fc43.x86_64.rpm
============================ rpmlint session starts ============================
rpmlint: 2.7.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/tmp9dy6hkze')]
checks: 32, packages: 1

 1 packages and 0 specfiles checked; 0 errors, 0 warnings, 5 filtered, 0 badness; has taken 0.1 s 





Rpmlint (installed packages)
----------------------------
============================ rpmlint session starts ============================
rpmlint: 2.7.0
configuration:
    /usr/lib/python3.14/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: 2

genext2fs.x86_64: W: summary-not-capitalized ext2 filesystem generator
genext2fs.x86_64: E: incorrect-fsf-address /usr/share/licenses/genext2fs/COPYING
 2 packages and 0 specfiles checked; 1 errors, 1 warnings, 11 filtered, 1 badness; has taken 0.5 s 



Source checksums
----------------
https://github.com/bestouff/genext2fs//archive/3b99f4a43f612b9ee74bbf24ca9890606295313f/genext2fs-1.4.2^20250623.g3b99f4a.tar.gz :
  CHECKSUM(SHA256) this package     : a5a729d10ca4fdf198120277d9afa20c0f7219a416bbde9d3be953c545129b82
  CHECKSUM(SHA256) upstream package : a5a729d10ca4fdf198120277d9afa20c0f7219a416bbde9d3be953c545129b82


Requires
--------
genext2fs (rpmlib, GLIBC filtered):
    libc.so.6()(64bit)
    rtld(GNU_HASH)



Provides
--------
genext2fs:
    genext2fs
    genext2fs(x86-64)



Generated by fedora-review 0.10.0 (e79b66b) last change: 2023-07-24
Command line :/usr/bin/fedora-review -n genext2fs
Buildroot used: fedora-rawhide-x86_64
Active plugins: Shell-api, C/C++, Generic
Disabled plugins: Python, Java, R, Ocaml, Haskell, fonts, PHP, SugarActivity, Perl
Disabled flags: EXARCH, EPEL6, EPEL7, DISTTAG, BATCH

Comment 6 Yanko Kaneti 2025-06-28 06:28:26 UTC
- the name of the filesystem is "ext2" I am not capitalizing that to please rpmlint
- The only file that reasonably can be considered source code and doesn't have a license header is list.h, but its a generic list copy and pasted implementation that probably does not fall under copyright anyway because its a schoolbook excersize.
- Wrong FSF address is not a blocker.

Comment 7 andreyesquivel.dev 2025-06-28 11:56:04 UTC
Hello Yanko,

Thank you very much for the detailed feedback. I appreciate your responses and the technical reasoning behind your decisions.

This review has been a valuable learning experience for me as I work toward becoming a Fedora packager.

Comment 8 Benson Muite 2025-07-04 12:31:08 UTC
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]: If your application is a C or C++ application you must list a
     BuildRequires against gcc, gcc-c++ or clang.
[x]: Package does not contain any libtool archives (.la)
[x]: Package contains no static executables.
[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: "Unknown or generated", "GNU General Public License, Version
     2", "FSF All Permissive License". 22 files have unknown license.
     Detailed output of licensecheck in /home/fedora-
     packaging/reviews/genext2fs/2374290-genext2fs/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.
[-]: 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.
[ ]: 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]: 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 6323 bytes in 3 files.
[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).
[ ]: 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]: 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:
[!]: Spec file according to URL is the same as in SRPM.
     Note: Spec file as given by url is not the same as in SRPM (see
     attached diff).
     See: (this test has no URL)
[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]: Package should not use obsolete m4 macros


Rpmlint
-------
Checking: genext2fs-1.4.2^20250623.g3b99f4a-1.fc43.x86_64.rpm
          genext2fs-1.4.2^20250623.g3b99f4a-1.fc43.src.rpm
============================ rpmlint session starts ============================
rpmlint: 2.7.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/tmpjd5q0gev')]
checks: 32, packages: 2

genext2fs.src: W: summary-not-capitalized ext2 filesystem generator
genext2fs.x86_64: W: summary-not-capitalized ext2 filesystem generator
genext2fs.x86_64: E: incorrect-fsf-address /usr/share/licenses/genext2fs/COPYING
 2 packages and 0 specfiles checked; 1 errors, 2 warnings, 11 filtered, 1 badness; has taken 0.4 s 




Rpmlint (debuginfo)
-------------------
Checking: genext2fs-debuginfo-1.4.2^20250623.g3b99f4a-1.fc43.x86_64.rpm
============================ rpmlint session starts ============================
rpmlint: 2.7.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/tmp3rvbvr4v')]
checks: 32, packages: 1

 1 packages and 0 specfiles checked; 0 errors, 0 warnings, 5 filtered, 0 badness; has taken 0.1 s 





Rpmlint (installed packages)
----------------------------
============================ rpmlint session starts ============================
rpmlint: 2.7.0
configuration:
    /usr/lib/python3.14/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: 2

genext2fs.x86_64: W: summary-not-capitalized ext2 filesystem generator
genext2fs.x86_64: E: incorrect-fsf-address /usr/share/licenses/genext2fs/COPYING
 2 packages and 0 specfiles checked; 1 errors, 1 warnings, 11 filtered, 1 badness; has taken 0.4 s 



Source checksums
----------------
https://github.com/bestouff/genext2fs//archive/3b99f4a43f612b9ee74bbf24ca9890606295313f/genext2fs-1.4.2^20250623.g3b99f4a.tar.gz :
  CHECKSUM(SHA256) this package     : a5a729d10ca4fdf198120277d9afa20c0f7219a416bbde9d3be953c545129b82
  CHECKSUM(SHA256) upstream package : a5a729d10ca4fdf198120277d9afa20c0f7219a416bbde9d3be953c545129b82


Requires
--------
genext2fs (rpmlib, GLIBC filtered):
    libc.so.6()(64bit)
    rtld(GNU_HASH)



Provides
--------
genext2fs:
    genext2fs
    genext2fs(x86-64)



Diff spec file in url and in SRPM
---------------------------------
--- /home/fedora-packaging/reviews/genext2fs/2374290-genext2fs/srpm/genext2fs.spec	2025-07-04 10:21:31.085783716 +0300
+++ /home/fedora-packaging/reviews/genext2fs/2374290-genext2fs/srpm-unpacked/genext2fs.spec	2025-06-23 03:00:00.000000000 +0300
@@ -1,2 +1,12 @@
+## START: Set by rpmautospec
+## (rpmautospec version 0.8.1)
+## RPMAUTOSPEC: autorelease, autochangelog
+%define autorelease(e:s:pb:n) %{?-p:0.}%{lua:
+    release_number = 1;
+    base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}"));
+    print(release_number + base_release_number - 1);
+}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}}
+## END: Set by rpmautospec
+
 %global commit 3b99f4a43f612b9ee74bbf24ca9890606295313f
 %global shortcommit %(c=%{commit}; echo ${c:0:7})
@@ -44,3 +54,6 @@
 
 %changelog
-%autochangelog
\ No newline at end of file
+## START: Generated by rpmautospec
+* Mon Jun 23 2025 Yanko Kaneti <yaneti> - 1.4.2^20250623.g3b99f4a-1
+- First attempt
+## END: Generated by rpmautospec


Generated by fedora-review 0.10.0 (e79b66b) last change: 2023-07-24
Command line :/usr/bin/fedora-review -b 2374290
Buildroot used: fedora-rawhide-x86_64
Active plugins: Generic, C/C++, Shell-api
Disabled plugins: Python, SugarActivity, PHP, Java, Haskell, Perl, R, Ocaml, fonts
Disabled flags: EXARCH, EPEL6, EPEL7, DISTTAG, BATCH

Comments:
a) Would be good for license information to be added to cache.h and lists.h
https://github.com/bestouff/genext2fs/pull/39
Upstream does not seem to be active though
b) The commit date is incorrect, it should be 20201011 not 20250623
consider changing
%global shortcommit %(c=%{commit}; echo ${c:0:7})

Name:           genext2fs
Version:        1.4.2^20250623.g%{shortcommit}

to

%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global commitdate 20201011

Name:           genext2fs
Version:        1.4.2^%{commitdate}.g%{shortcommit}

see https://docs.fedoraproject.org/en-US/packaging-guidelines/Versioning/#_snapshots
c) For the summary, would also use
Ext2 filesystem generator
not blocking though.
d) Koji build:
https://koji.fedoraproject.org/koji/taskinfo?taskID=134594405
e) Notify upstream about incorrect FSF address:
https://github.com/bestouff/genext2fs/pull/38
f) Adding
BuildRequires: make
is also good, but not blocking

Comment 9 Yanko Kaneti 2025-07-04 14:43:49 UTC
Thanks Benson, for looking into it and for filing those upstream issues. I've noted them in the new version

- Review improvements

Spec URL: http://declera.com/~yaneti/genext2fs/genext2fs.spec
SRPM URL: http://declera.com/~yaneti/genext2fs/genext2fs-1.4.2^20201011.g3b99f4a-1.fc43.src.rpm

Comment 10 Benson Muite 2025-07-04 15:34:45 UTC
Thanks. Please be sure to use the updated spec file when importing.

Comment 11 Fedora Admin user for bugzilla script actions 2025-07-04 15:42:45 UTC
The Pagure repository was created at https://src.fedoraproject.org/rpms/genext2fs

Comment 12 Fedora Update System 2025-07-04 16:10:13 UTC
FEDORA-2025-8313e0c909 (genext2fs-1.4.2^20201011.g3b99f4a-1.fc42) has been submitted as an update to Fedora 42.
https://bodhi.fedoraproject.org/updates/FEDORA-2025-8313e0c909

Comment 13 Fedora Update System 2025-07-05 15:47:36 UTC
FEDORA-2025-8313e0c909 has been pushed to the Fedora 42 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf install --enablerepo=updates-testing --refresh --advisory=FEDORA-2025-8313e0c909 \*`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2025-8313e0c909

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 14 Fedora Update System 2025-07-13 04:19:56 UTC
FEDORA-2025-8313e0c909 (genext2fs-1.4.2^20201011.g3b99f4a-1.fc42) has been pushed to the Fedora 42 stable repository.
If problem still persists, please make note of it in this bug report.


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