Bug 257336

Summary: [NEW PORT] multimedia/py-mat2: Handy tool to trash your metadata
Product: Ports & Packages Reporter: Robert Clausecker <fuz>
Component: Individual Port(s)Assignee: Li-Wen Hsu <lwhsu>
Status: Closed FIXED    
Severity: Affects Only Me CC: fuz, grahamperrin, lwhsu, python
Priority: --- Keywords: feature
Version: LatestFlags: fuz: maintainer-feedback+
Hardware: Any   
OS: Any   
URL: https://0xacab.org/jvoisin/mat2
Attachments:
Description Flags
multimedia/py-mat2: Metadata removal tool
none
multimedia/py-mat2: Handy tool to trash your metadata none

Description Robert Clausecker 2021-07-22 14:12:43 UTC
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,
of metadata.

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, ...

WWW: https://0xacab.org/jvoisin/mat2
Comment 1 Kubilay Kocak freebsd_committer freebsd_triage 2021-07-23 02:37:14 UTC
Thanks for submittinng a new port Robert!

Initial review items:

 - COMMENT: Match upstream metadata as completely and closely as possible. [1] 

 - CATEGORIES: Always include python category unless use of Python is entirely irrelevant. [2] 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. [3]

 - 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 [4]

[1] https://wiki.freebsd.org/Python/PortsPolicy#COMMENT
[2] https://wiki.freebsd.org/Python/PortsPolicy#CATEGORIES
[3] https://wiki.freebsd.org/Python/PortsPolicy#MASTER_SITES
[4] https://wiki.freebsd.org/Python/PortsPolicy#concurrent
Comment 2 Robert Clausecker 2021-07-23 07:02:24 UTC
(In reply to Kubilay Kocak from comment #1)

Hi,

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. [2] 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).
Comment 3 Robert Clausecker 2021-07-23 07:58:56 UTC
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.
Comment 4 Robert Clausecker 2021-07-24 21:22:14 UTC
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.
Comment 5 commit-hook freebsd_committer 2021-08-03 19:32:24 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=bfd59f03a3608727ef8a26298d3ac7ea8d003a37

commit bfd59f03a3608727ef8a26298d3ac7ea8d003a37
Author:     Robert Clausecker <fuz@fuz.su>
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

    PR:             257336

 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(+)