Skip to content

fedora .spec file to start conversation - #1407

Open
carlbyington2 wants to merge 26 commits into
arsenetar:masterfrom
carlbyington2:fedora-build
Open

fedora .spec file to start conversation#1407
carlbyington2 wants to merge 26 commits into
arsenetar:masterfrom
carlbyington2:fedora-build

Conversation

@carlbyington2

Copy link
Copy Markdown

First, thank you for maintaining this!!

I am working on packaging dupeguru into the Fedora ecosystem. There are many Fedora requirements. The main one that affects this package is that the python code gets installed into /usr/lib64/python3.14/site-packages, so to avoid conflicts I needed to add a dupeguru namespace. That reorganization moved (core,hscommon,qt) down one level in the source tree. I did not do that as a patch, but instead as bash commands in the .spec file.

I also picked up all the open pull requests, including the qt6 port. Thank you for that!! I am not sure what the next step should be. I could make a single pull request for this entire set of changes, but that would include/embed all those other pull requests.

SAY-5 and others added 25 commits August 2, 2026 13:24
This sets the desktop filename so the application name in the dock is "dupeguru" instead of just "python3".

See also:
https://github.com/qutebrowser/qutebrowser/pull/4153/files
https://tickets.metabrainz.org/browse/PICARD-1502
arsenetar#1390
- Update all PyQt5 imports to PyQt6
- Move QAction from QtWidgets to QtGui
- Replace removed QDesktopWidget with QApplication.screenAt()
- Update all Qt enum accesses to fully-qualified namespaced form
- Replace exec_() calls with exec()
- Replace pyrcc5 with rcc -g python
in the comments for 1392 pull request
…ation

- Pre-scale images to 450x450 before block extraction (qt/pe/photo.py)
  instead of processing full-resolution images (e.g., 4000x3000)
- Parallelize image preparation using ThreadPoolExecutor across all CPU
  cores instead of sequential single-threaded processing
- Enable SQLite WAL mode for better concurrent cache access

Benchmarked: ~2 img/s → 33 img/s on real photos (16x speedup).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…urbo)

Add a user-facing "Scan speed" dropdown in the Picture preferences dialog
that controls how aggressively images are pre-scaled before block extraction:

- Accurate (slow): no pre-scaling, processes full-resolution images
- Balanced (recommended): pre-scale to 450px — good accuracy/speed trade-off
- Turbo: pre-scale to 150px — fastest, suitable for large collections

Each mode uses a separate cache file so switching modes doesn't require
re-scanning. The preference is persisted across sessions.

Also improves Filter Hardness UI by disabling all related labels (not just
the slider) when the control is inactive.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace string interpolation with parameterized queries in
cache_sqlite.py and add whitelist validation in fs.py to
prevent SQL injection vulnerabilities.

- Use parameterized placeholders in get_multiple()
- Use parameterized placeholders in purge_outdated()
- Add VALID_KEYS whitelist in FilesDB class
- Add key validation in get() and put() methods

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace xml.etree.ElementTree.parse() with defusedxml safe parser
in all XML loading operations. This prevents XML External Entity
(XXE) attacks when loading user-provided XML files.

- Add defusedxml dependency to requirements.txt
- Use safe_parse() from defusedxml in directories.py
- Use safe_parse() from defusedxml in results.py
- Use safe_parse() from defusedxml in ignore.py
- Use safe_parse() from defusedxml in exclude.py
- Maintain xml.etree for XML writing (safe operations)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace shell=True subprocess calls with properly tokenized
arguments using shlex.split() and shell=False. This prevents
command injection when file paths contain shell metacharacters.

- Use shlex.split() to tokenize custom command string
- Replace %d/%r placeholders in tokenized arguments
- Execute with shell=False for security
- Add error handling with user feedback
- Remove Windows quoted-path workaround (unnecessary with shell=False)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Localization PL: better word
Localization PL: better word
Ajouts et typo
Ajouts et typo
Ajouts, typo et corrections
and under wayland, Qt6 application windows do not use the proper
styling
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants