Fedora Account System
Red Hat Associate
Red Hat Customer
Spec URL: https://www.five-ten-sg.com/util/dupeguru.spec SRPM URL: https://www.five-ten-sg.com/util/dupeguru.dupeguru-4.3.1^20260628git16aa6c2-1.fc44.src.rpm Description: dupeGuru is a cross-platform (Linux and OS X) GUI tool to find duplicate files. It's written mostly in Python 3 and has the peculiarity of using multiple GUI toolkits, all using the same core Python code. On OS X, the UI layer is written in Objective-C and uses Cocoa. On Linux, it's written in Python and uses Qt5. Fedora Account System Username: carllibpst
Please use python packaging guidelines macros [1]. It does not follow the standard python build flags that are used in the `%pyproject` macros for example. Afaict the modern build process should work out of the box minus the auxiliary build steps. You can use `build.py` for those, but please open a ticket in upstream to properly support a PEP517 build system. They have options like scikit-build-core, meson, pyside, etc. some having explicit qt integration. [1]: https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/
From the python packaging guidelines: "The rest of the Guidelines apply to packages that ship code that can be imported with Python’s import statement. Specifically, that is all packages that install files under /usr/lib*/python*/." I think the current spec file follows the two distro-wide guidelines. dupeguru does not install anything in /usr/lib.
> dupeguru does not install anything in /usr/lib. But that's the issue, why shouldn't it be. To give an example what if there is another package that has a `core.*` package defined in either site-packages or similarly in its own private path. How will the `import` commands function/break. Having everything in the site-packages with all the conflicts tracked avoids all of these issues amd it is the python packaging standard as in python's documentation, not Fedora's.
Upstream solved that by making /usr/bin/dupeguru a symlink to /usr/share/dupeguru/run.py, so the imports are satisfied by being in the same directory as the python script. I changed that by installing run.py as /usr/bin/dupeguru, and adding sys.path.append() - but that should be sys.path.insert(0,) - will change that in the next update. All the core.* and other stuff that dupeguru uses via import are strictly internal to this package, and not usable from other programs. That stuff really cannot be put in site-packages. See for example /usr/share/crypto-policies/python/policygenerators/java.py - again private to some crypto policy thing. See for example ibus-anthy and ibus-anthy-python - installing python code in /usr/share/ibus-anthy. I did not realize that the python .pyc files can go in a noarch subpackage as in ibus-anthy-python. I will change that in the next update.
Copr build: https://copr.fedorainfracloud.org/coprs/build/10695311 (failed) Build log: https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2497737-dupeguru/srpm-builds/10695311/builder-live.log.gz Please make sure the package builds successfully at least for Fedora Rawhide. - If the build failed for unrelated reasons (e.g. temporary network unavailability), please ignore it. - If the build failed because of missing BuildRequires, please make sure they are listed in the "Depends On" field --- 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.
It is a fragile design and I do insist to open a ticket with upstream to properly support a PEP517 build system. Here is an example: - core.* imports foo - in python 3.72 a new std library core is introduced and foo picks up a dependency on it - either foo starts to import the package's core.* or package is importing the std core.* The proper pythonic packaging approach is for each package to own a namespace and use that in their imports. The project should be pip/uv installable and be consumed like that, not having a custom build process. This not a strictly blocking issue, but as packagers we ought to give feedback to upstream about following proper packaging guidelines and (not even that) modern practices.
Spec URL: https://www.five-ten-sg.com/util/dupeguru.spec SRPM URL: https://www.five-ten-sg.com/util/dupeguru-4.3.1^20260628git16aa6c2-1.fc44.src.rpm [fedora-review-service-build] Split into main and -python packages so all the noarch stuff is not duplicated in the repos. Used the mechanism from ibus-anthy where the main /usr/bin/dupeguru is a shell script that execs python to run the unmodified upstream run.py in /usr/share/dupeguru. That seems cleaner than patching run.py and installing it directly in /usr/bin/dupeguru.
Copr build: https://copr.fedorainfracloud.org/coprs/build/10698914 (succeeded) Review template: https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2497737-dupeguru/fedora-rawhide-x86_64/10698914-dupeguru/fedora-review/review.txt Found issues: - dupeguru-python : /usr/share/dupeguru/core/pe/modules/common.h Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/#_devel_packages - Unversionned Python dependency found. Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/#_dependencies - License file copyright is not marked as %license Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/LicensingGuidelines/#_license_text - Not a valid SPDX expression 'GPLv3'. It seems that you are using the old Fedora license abbreviations. Try `license-fedora2spdx' for converting it to SPDX. Read more: https://fedoraproject.org/wiki/Changes/SPDX_Licenses_Phase_1 - Upstream MD5sum check error, diff is in /var/lib/copr-rpmbuild/results/dupeguru/diff.txt Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/SourceURL/ Please know that there can be false-positives. --- 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.
[fedora-review-service-build]
Created attachment 2148067 [details] The .spec file difference from Copr build 10698914 to 10699067
Copr build: https://copr.fedorainfracloud.org/coprs/build/10699067 (succeeded) Review template: https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2497737-dupeguru/fedora-rawhide-x86_64/10699067-dupeguru/fedora-review/review.txt Found issues: - Upstream MD5sum check error, diff is in /var/lib/copr-rpmbuild/results/dupeguru/diff.txt Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/SourceURL/ Please know that there can be false-positives. --- 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.
Created attachment 2148068 [details] The .spec file difference from Copr build 10699067 to 10699208
Copr build: https://copr.fedorainfracloud.org/coprs/build/10699208 (succeeded) Review template: https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2497737-dupeguru/fedora-rawhide-x86_64/10699208-dupeguru/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.
Ok, I finally figured out what forgeversion/forgeautosetup/forcesource0 want with respect to the github archive tarball naming. I think it is ready to review.
> BuildRequires: libappstream-glib This seems unused. > Requires: python3 > Requires: python3-mutagen > Requires: python3-qt5 > Requires: python3-semantic_version > Requires: python3-send2trash > Requires: python3-xxhash I'd argue these tags should be required on the python package, not the main package. > cat >%{name} <<EOF > #!/usr/bin/sh > exec /usr/bin/python3 /usr/share/dupeguru/run.py "$@" > EOF You should be able to use %{_bindir} and %{_sharedir} macroshere. rpmbuild will expand those while parsing the spec and cat will see only the expanded values. > %make_install NO_VENV=1 PREFIX=/usr > make installdocs NO_VENV=1 DESTDIR=%{buildroot} PREFIX=/usr You can use the %{_prefix} macro here. > install -m 755 %{name} %{buildroot}%{_bindir}/%{name} > install -m 644 -D README.md %{buildroot}%{_pkgdocdir}/README.md > install -m 644 help/changelog %{buildroot}%{_pkgdocdir}/changelog Use the -p option to preserve file timestamps.
Thanks for the comments - those are done. I have been working on adding a top level dupeguru namespace to the python code. This project was also much closer than I thought to a standard setuptools build. The current .spec file uses %pyproject_buildrequires %pyproject_wheel %pyproject_install %pyproject_save_files In order to add the namespace, I think we need to move (core,hscommon,qt) down one level in the file system tree, so the patch would be the same size as the entire project. For now, that is done via commands in %setup, and two small patches. All of that will eventually be changed to a pull request patch, but I want to get feedback first confirming that this is the proper way to package this. With the addition of the namespace, the %pyproject_* packaging puts the python code in %{python3_sitearch}/%{name}. At runtime, we are looking for the help/ and locale/ files in that same directory, but it seems those should be installed into %{_datadir}/%{name}. I fixed this via two absolute symlinks from %{python3_sitearch}/%{name} into %{_datadir}/%{name}. Is there a cleaner way to do that? [fedora-review-service-build]
Spec URL: https://www.five-ten-sg.com/util/dupeguru.spec SRPM URL: https://www.five-ten-sg.com/util/dupeguru.dupeguru-4.3.1^20260628git16aa6c2-1.fc44.src.rpm This version picks up all the open pull requests, including the port to qt6. There are still a few bugs in the qt6 version, but I am hopeful they can be fixed soon. [fedora-review-service-build]
Oops, type in url Spec URL: https://www.five-ten-sg.com/util/dupeguru.spec SRPM URL: https://www.five-ten-sg.com/util/dupeguru-4.3.1^20260628git16aa6c2-1.fc44.src.rpm [fedora-review-service-build]
Created attachment 2149413 [details] The .spec file difference from Copr build 10699208 to 10757484
Copr build: https://copr.fedorainfracloud.org/coprs/build/10757484 (failed) Build log: https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2497737-dupeguru/fedora-rawhide-x86_64/10757484-dupeguru/builder-live.log.gz Please make sure the package builds successfully at least for Fedora Rawhide. - If the build failed for unrelated reasons (e.g. temporary network unavailability), please ignore it. - If the build failed because of missing BuildRequires, please make sure they are listed in the "Depends On" field --- 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.
[fedora-review-service-build] f45 rawhide has send2trash 2.1.0, which seem to be compatible for our purposes with f44 1.8.3. Fixed the restrictions to allow that.
Created attachment 2149457 [details] The .spec file difference from Copr build 10757484 to 10759066
Copr build: https://copr.fedorainfracloud.org/coprs/build/10759066 (succeeded) Review template: https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2497737-dupeguru/fedora-rawhide-x86_64/10759066-dupeguru/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.
[fedora-review-service-build] fixed the source url, and added smp flags to the make commands.
Copr build: https://copr.fedorainfracloud.org/coprs/build/10759226 (succeeded) Review template: https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2497737-dupeguru/fedora-rawhide-x86_64/10759226-dupeguru/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.
[fedora-review-service-build] another try.
Created attachment 2150352 [details] The .spec file difference from Copr build 10759226 to 10759448
Copr build: https://copr.fedorainfracloud.org/coprs/build/10759448 (succeeded) Review template: https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2497737-dupeguru/fedora-rawhide-x86_64/10759448-dupeguru/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.
Spec URL: https://www.five-ten-sg.com/util/dupeguru.spec SRPM URL: https://www.five-ten-sg.com/util/dupeguru-4.3.1^20260802gite8f50a9-1.fc44.src.rpm [fedora-review-service-build] Moved from github/arsenetar to github/carlbyington2
Created attachment 2153362 [details] The .spec file difference from Copr build 10759448 to 10805966
Copr build: https://copr.fedorainfracloud.org/coprs/build/10805966 (succeeded) Review template: https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2497737-dupeguru/fedora-rawhide-x86_64/10805966-dupeguru/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.
Spec URL: https://www.five-ten-sg.com/util/dupeguru.spec SRPM URL: https://www.five-ten-sg.com/util/dupeguru-4.3.1^20260802gitd6e2978-1.fc44.src.rpm [fedora-review-service-build] Abandoned the attempt at noarch, everything in a single package now.
Created attachment 2153421 [details] The .spec file difference from Copr build 10805966 to 10807985
Copr build: https://copr.fedorainfracloud.org/coprs/build/10807985 (succeeded) Review template: https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2497737-dupeguru/fedora-rawhide-x86_64/10807985-dupeguru/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.
Spec URL: https://www.five-ten-sg.com/util/dupeguru.spec SRPM URL: https://www.five-ten-sg.com/util/dupeguru-4.3.1^20260901gitdfd190f-1.fc44.src.rpm [fedora-review-service-build]
Spec URL: https://www.five-ten-sg.com/util/dupeguru.spec SRPM URL: https://www.five-ten-sg.com/util/dupeguru-4.3.1^20260909gitddc8077-1.fc44.src.rpm [fedora-review-service-build]
Spec URL: https://www.five-ten-sg.com/util/dupeguru.spec SRPM URL: https://www.five-ten-sg.com/util/dupeguru-4.3.1^20261018git7b004af-1.fc44.src.rpm [fedora-review-service-build]
1. You have > %global version0 4.3.1 but there is no such version at https://github.com/carlbyington2/dupeguru. 2. You specify the same URL twice > %global forgeurl0 https://github.com/carlbyington2/dupeguru > Url: https://github.com/carlbyington2/dupeguru 3. You have > Source0: %forgeurl0/archive/%{commit}/%{name}-%{shortcommit}.tar.gz instead of > Source: %{forgesource} and I think that strips merits of using forge automation macros as seen at https://docs.fedoraproject.org/en-US/packaging-guidelines/SourceURL/#_using_forges_hosted_revision_control 4. You copy without preserving the timestamps. 5. You have > %license pkg/debian/copyright and in it is > Copyright 2014 Hardcoded Software Inc. (http://www.hardcoded.net) > All rights reserved. Are you sure such license is allowed in Fedora? 6. You use > https://github.com/carlbyington2/dupeguru instead of > https://github.com/arsenetar/dupeguru/ Why?
Spec URL: https://www.five-ten-sg.com/util/dupeguru.spec SRPM URL: https://www.five-ten-sg.com/util/dupeguru-4.3.1^20261019git7b004af-1.fc44.src.rpm [fedora-review-service-build] Thank you for the comments! 1 - The last upstream release was 4.3.1 four years ago. I keep hoping he will pickup these changes and do a new release. Until then, I think it is appropriate to use versions like 4.3.1^20261019git7b004af. 2,3 - I have changed the forge automation in the spec file to match. 4 - I don't see where files are copied without preserving timestamps. cp -a and install -p should preserve those. 5 - Ah, I missed that. I have submitted PR 1433 to see if that fourth clause can be removed. In 2014 there may have been some license enforcement code in this package, but there is no such code now. Of course, if that request is refused we won't be able to get this into Fedora. 6 - The repo at arsenetar/dupeguru is *almost* dead. The last release was four years ago, and there were many PRs that never got merged there. I forked carlbyington2/dupeguru to merge the important ones, mainly the switch to qt6, bugfixes, and a few security issues with sql and xml. In order to be suitable for Fedora, I needed to reorganize the source tree, moving (core,hscommon,qt) down one level to avoid future Python conflicts. That reorganization invalidates all the PRs at arsenetar/dupeguru. I pick up those PRs, then edit the patch to compensate for that reorganization, and apply them at carlbyington2/dupeguru.
commit bb9908abb4c25c9cf99bb78414059115475c947a Author: Virgil Dupras <hsoft> Date: Sun Jan 4 09:59:08 2015 -0500 Change license from BSD to GPLv3 Clearly, the original author intended this code to be under GPLv3. It looks like he overlooked that fourth clause in debian/copyright file.
commit 4886982d43be531e5c2a7fb1f1267b182e101bff Author: Virgil Dupras <hsoft> Date: Thu Sep 30 12:17:41 2010 +0200 Re-licensed to BSD diff --git a/LICENSE b/LICENSE index 25c0e61a..7fb20adf 100644 That commit removed the fourth clause from the BSD license file at the root of the source tree. That happened shortly after removing the registration code and converting to Fairware. I think this clearly shows the intent of the original author that this code is not covered by that fourth clause.
Spec URL: https://www.five-ten-sg.com/util/dupeguru.spec SRPM URL: https://www.five-ten-sg.com/util/dupeguru-4.3.1^20261020git62ea00a-1.fc44.src.rpm [fedora-review-service-build]
Spec URL: https://www.five-ten-sg.com/util/dupeguru.spec SRPM URL: https://www.five-ten-sg.com/util/dupeguru-4.3.1^20261020git521590f-1.fc44.src.rpm [fedora-review-service-build] patched out the about box check for new updates.
Spec URL: https://www.five-ten-sg.com/util/dupeguru.spec SRPM URL: https://www.five-ten-sg.com/util/dupeguru-4.3.1^20261030git521590f-1.fc44.src.rpm [fedora-review-service-build] Oops, was wrong url for the rpm file.
Spec URL: https://www.five-ten-sg.com/util/dupeguru.spec SRPM URL: https://www.five-ten-sg.com/util/dupeguru-4.3.1^20261030gitcd95e68-1.fc44.src.rpm [fedora-review-service-build] allow xxhash 4.0.2 in f45+
Package Review ============== Legend: [x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated Blocking item before approval (fedora-review+): 1. License tag (SPDX): The binary RPM ships generated Sphinx HTML static assets under `%{_datadir}/dupeguru/help/*/_static/` (`doctools.js`/`basic.css` under `BSD-2-Clause`, `haiku.css` under `MIT`, and Snowball `*-stemmer.js` under `BSD-3-Clause`), plus `dupeguru/core/pe/exif.py` derived from Thierry Bousch's public-domain `exifdump.py`. Per Fedora's SPDX rules (no effective-license collapsing for files shipped in the binary RPM), please update `License:` to: License: GPL-3.0-only AND BSD-2-Clause AND BSD-3-Clause AND MIT AND LicenseRef-Fedora-Public-Domain (Note: `dupeguru/hscommon/LICENSE` is an old unused BSD-3-Clause file in the source tree that is not installed in the binary RPM; all `hscommon/*.py` headers and `pkg/debian/copyright` were cleanly updated to GPLv3.) Minor SHOULD cleanups (non-blocking): 2. Spec & launcher polish: - Drop redundant explicit `Requires:` already generated automatically by `python3dist(...)` and shebangs (`python3`, `python3-mutagen`, `python3-semantic_version`, `python3-send2trash`, `python3-xxhash`), keeping only `python3-defusedxml`, `python3-pyqt6`, and `hicolor-icon-theme`. - Escape macros in comments at lines 92-93 (`%%{python3_sitearch}`, `%%{_datadir}`, `%%{name}`) to silence `rpmlint` `macro-in-comment`. - Optional: in `run.py`, consider `os.environ.setdefault("QT_QPA_PLATFORM", "xcb")` instead of overwriting `QT_QPA_PLATFORM` unconditionally. ===== MUST items ===== C/C++: [x]: Package does not contain kernel modules. [x]: Development (unversioned) .so files in -devel subpackage, if present. Note: Python Cython/C extension modules (`_block`, `_cache`, `_block_qt`) reside in private `%{python3_sitearch}/dupeguru/` (not in ld path). [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. (Old 4-clause notice in `pkg/debian/copyright` has been removed upstream in `cd95e68`; all shipped licenses are Fedora-allowed.) [!]: License field in the package spec file matches the actual license. Note: Add SPDX identifiers for shipped Sphinx `_static/` assets and public-domain `exif.py` derivation (see item #1 above). [x]: Package must own all directories that it creates. Note: `/usr/lib64/python3.15/site-packages` is owned by `python3-libs` in Rawhide. [x]: %build honors applicable compiler flags or justifies otherwise. [x]: Package contains no bundled libraries or specifies bundled libraries with Provides: bundled(<libname>) if unbundling is not possible. [x]: Changelog in prescribed format (`%autochangelog`). [x]: Sources contain only permissible code or content. [-]: 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. [x]: Large documentation must go in a -doc subpackage. [x]: Package complies to the Packaging Guidelines. [x]: Package successfully compiles and builds into binary rpms on at least one supported primary architecture (`fedora-rawhide-x86_64`, Python 3.15). [x]: Package installs properly. [x]: Rpmlint is run on all rpms the build produces. [x]: License text included in `%license`. [x]: The License field must be a valid SPDX expression. [x]: Package requires other packages for directories it uses. [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} 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-validate. [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 (SHA256: `f36612f52e1fc94d038529140f3490d1de0441309b75c08a0c9bb858c42e465a`). [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. Python: [x]: Python eggs must not download any dependencies during the build process. [x]: A package which is used by another package via an egg interface should provide egg info (`.dist-info` present). [x]: Package meets the Packaging Guidelines::Python. [x]: Package contains BR: python3-devel. [x]: Packages MUST NOT have dependencies on packages named with the unversioned python- prefix. [x]: Python packages must not contain %{pythonX_site(lib|arch)}/* in %files. [x]: Binary eggs must be removed in %prep. ===== SHOULD items ===== [x]: Final provides and requires are sane. [x]: Latest snapshot version is packaged (`4.3.1^20261030gitcd95e68-1`). [x]: Package does not include license text files separate from upstream. [x]: Patches are justified (`remove-check-for-updates.patch` disables runtime upstream update checks per Fedora policy). [-]: Sources are verified with gpgverify first in %prep if upstream publishes signatures. [x]: Package should compile and build into binary rpms on all supported architectures. [x]: %check is present and all tests pass (`558 passed, 1 skipped`). [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. [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]: Uses parallel make %{?_smp_mflags} macro. [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. Rpmlint ------- Checking: dupeguru-4.3.1^20261030gitcd95e68-1.fc46.x86_64.rpm dupeguru-4.3.1^20261030gitcd95e68-1.fc46.src.rpm dupeguru.x86_64: W: python-leftover-require python3-defusedxml (justified: needed at runtime, missing from upstream metadata) dupeguru.x86_64: W: python-leftover-require python3-pyqt6 (justified: needed at runtime, missing from upstream metadata) dupeguru.spec: W: patch-not-applied Patch0: remove-check-for-updates.patch (false positive: applied by %forgeautosetup -p1) dupeguru.x86_64: W: no-manual-page-for-binary dupeguru dupeguru.spec:102-103: W: macro-in-comment (minor: escape % as %% in comments) 2 packages and 0 specfiles checked; 0 errors, 8 warnings, 0 badness. Generated with fedora-review 0.12.0 against fedora-rawhide-x86_64. -- Reviewed with Gemini (AI pair programmer collaborating with Rénich Bon Ćirić)
spec license tag fixed, and dupeguru/hscommon/LICENSE removed upstream. fixed setup.cfg upstream, and dropped all the redundant requires: for python modules. escaped macros in comments. use os.environ.setdefault() in run.py Spec URL: https://www.five-ten-sg.com/util/dupeguru.spec SRPM URL: https://www.five-ten-sg.com/util/dupeguru-4.3.1^20261101git7a2c79f-1.fc44.src.rpm
All blocking and optional items from Comment #47 are resolved in `dupeguru-4.3.1^20261101git7a2c79f-1`: - [x] `License:` updated to `GPL-3.0-only AND BSD-2-Clause AND BSD-3-Clause AND MIT AND LicenseRef-Fedora-Public-Domain` with breakdown comment in `dupeguru.spec`, and obsolete `dupeguru/hscommon/LICENSE` removed upstream. - [x] Upstream `setup.cfg` updated; all Python runtime dependencies (`defusedxml`, `distro`, `mutagen`, `pyqt6`, `semantic-version`, `send2trash`, `xxhash`) are now emitted automatically via `python3dist(...)` with zero `python-leftover-require` warnings. - [x] Macros escaped in spec comments (`0` `macro-in-comment` warnings) and `run.py` updated to `os.environ.setdefault("QT_QPA_PLATFORM", "xcb")`. - [x] Upstream source SHA-256 verified (`5d19bf2372e1722d8770dd92079babc4a112b444548cac892fa86d52878a6b5f`). - [x] Rebuilt cleanly in Mock (`fedora-rawhide-x86_64`, Python 3.15); `%check` passes `desktop-file-validate`, `%pyproject_check_import`, and `pytest` (`558 passed, 1 skipped`). - [x] `rpmlint` across SRPM, binary, debuginfo, and debugsource RPMs: `0 errors, 2 warnings, 0 badness` (`patch-not-applied` false positive from `%forgeautosetup` and `no-manual-page-for-binary`). Package is approved (`fedora-review+`). -- Reviewed with Gemini, AI pair programmer collaborating with Rénich Bon Ćirić
Hm, I have forgotten the next steps. fedpkg request-repo dupeguru 2497737 that wants 'fedpkg set-forgejo-token' but how do I generate that token?
The Pagure repository was created at https://src.fedoraproject.org/rpms/dupeguru Monitoring: Wasn't able to create project in Anitya. You can create it manually on: `https://release-monitoring.org`