Created attachment 226613 [details]
multimedia/py-mat2: Metadata removal tool
Simple Python port. Tested on amd64 FreeBSD 13.0-RELEASE with Poudriere.
Portlint likes the port, as does Portclippy.
Will submit the GTK3 fronted (https://gitlab.com/rmnvgr/metadata-cleaner)
in a separate PR.
Metadata consist of information that characterizes data. Metadata are
used to provide documentation for data products. In essence, metadata
answer who, what, when, where, why, and how about every facet of the
data that are being documented.
Metadata within a file can tell a lot about you. Cameras record data
about when a picture was taken and what camera was used. Office
documents like PDF or Office automatically adds author and company
information to documents and spreadsheets. Maybe you don't want to
disclose those information.
This is precisely the job of mat2: getting rid, as much as possible,
mat2 provides a command line tool, and graphical user interfaces via
a service menu for Dolphin, the default file manager of KDE, and an
extension for Nautilus, the default file manager of GNOME.
The following formats are supported: avi, bmp, css, epub/ncx, flac,
gif, jpeg, m4a/mp2/mp3/..., mp4, odc/odf/odg/odi/odp/ods/odt/...,
off/opus/oga/spx/..., pdf, png, ppm, pptx/xlsx/docx/..., zip, torrent,
svg/svgz/..., tar/tar.gz/tar.bz2/tar.xz/..., tiff, wav, wmv, ...
Thanks for submittinng a new port Robert!
Initial review items:
- COMMENT: Match upstream metadata as completely and closely as possible. 
- CATEGORIES: Always include python category unless use of Python is entirely irrelevant.  I'd trim the list too. Pick 3 with one obvious primary. Id suggest: sysutils security python
- Use MASTER_SITES=CHEESESHOP (PyPI) unless tests or other important files are missing. Use standard Python ecosystem infrastructure whenever possible. 
- RUN_DEPENDS: Upstream declares pycairo in install_requires, but is missing here?
- RUN_DEPENDS: Make optional dependencies OPTIONS whenever possible.
- This package installs files into non version specific places (setup.py:console_scripts/scripts installs into LOCALBASE/bin/*), so needs to be made concurrent (installation) safe. USE_PYTHON=concurrent 
(In reply to Kubilay Kocak from comment #1)
Thanks for raising these issues. This is my first Python port and I will go ahead and address them in a revised patch.
> RUN_DEPENDS: Upstream declares pycairo in install_requires, but is missing here?
This is pulled in as a transitive dependency through py38-gobject3. If desired, I can go ahead and make it an explicit dependency.
> - CATEGORIES: Always include python category unless use of Python is entirely irrelevant.  I'd trim the list too. Pick 3 with one obvious primary. Id suggest: sysutils security python
Thanks, I had perhaps misunderstood the policy here and assumed the python group was for ports from the Python project only. Sysutils is not a good choice since the purpose of this document is to modify media files and documents (hence multimedia, audio, textproc).
Created attachment 226629 [details]
multimedia/py-mat2: Handy tool to trash your metadata
Fixed patch applying QA feedback.
It might be a good idea to link this Python policy page in the Porter's handbook. I was not aware there was more policy than what the handbook said.
Forgot to mention, of course I also tested the updated the patch with Poudriere on amd64 i386 arm64 armv7 FreeBSD 13.0. So QA has been performed.
A commit in branch main references this bug:
Author: Robert Clausecker <email@example.com>
AuthorDate: 2021-07-22 12:53:48 +0000
Commit: Li-Wen Hsu <lwhsu@FreeBSD.org>
CommitDate: 2021-08-03 19:30:44 +0000
multimedia/py-mat2: (New) Handy tool to trash your metadata
multimedia/Makefile | 1 +
multimedia/py-mat2/Makefile (new) | 30 ++++++++++++++++++++++++++++++
multimedia/py-mat2/distinfo (new) | 3 +++
multimedia/py-mat2/pkg-descr (new) | 24 ++++++++++++++++++++++++
4 files changed, 58 insertions(+)