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
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.
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.
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.
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.
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
- 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.
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.
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
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
Thanks. Please be sure to use the updated spec file when importing.
The Pagure repository was created at https://src.fedoraproject.org/rpms/genext2fs
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
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.
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.