unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
From: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
To: 31307@debbugs.gnu.org
Subject: [bug#31307] [PATCH] Add MAT, the Metadata Anonymisation Toolkit
Date: Mon, 8 Nov 2021 02:34:16 +0100	[thread overview]
Message-ID: <20211108023416.6b7609f9@primary_laptop> (raw)
In-Reply-To: <87wowrj9kq.fsf@gmail.com>


[-- Attachment #1.1: Type: text/plain, Size: 563 bytes --]

Hi,

I found while browsing debbugs.gnu.org, and I've started working on
adding MAT2.

I've got it working, so I'm attaching my work as-is to avoid
duplication of work. Tests probably need to be disabled for it to work.

I didn't submit it yet because not only the package needs some cleanups
(that could have been fixed), but more importantly I also wanted to make
tests work as I was afraid that getting this package wrong could have
bad consequences for people if for some reasons it didn't cleanup the
metadata due to packaging issues.

Denis.

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.2: mat2.scm --]
[-- Type: text/x-scheme, Size: 5749 bytes --]

;;; Copyright © 2021 Denis Carikli <GNUtoo@cyberdimension.org>
;;;
;;; This file is not part of GNU Guix (yet).
;;;
;;; This file is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; This file is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages mat2)
  #:use-module (guix build-system python)
  #:use-module (guix download)
  #:use-module ((guix licenses) #:prefix license:)
  #:use-module (guix packages)
  #:use-module (gnu packages glib)
  #:use-module (gnu packages gnome)
  #:use-module (gnu packages gtk)
  #:use-module (gnu packages music)
  #:use-module (gnu packages pdf)
  #:use-module (gnu packages photo)
  #:use-module (gnu packages video)
  #:use-module (gnu packages virtualization))

(define-public mat2
  (package
    (name "mat2")
    (version "0.12.1")
    (source (origin
             (method url-fetch)
             (uri (string-append
		   ;; Also available at
		   ;; http://wmj5kiic7b6kjplpbvwadnht2nh2qnkbnqtcv3dyvpqtz7ssbssftxid.onion
		   "https://0xacab.org/jvoisin/mat2/-/archive/0.12.0/mat2-"
		    version ".tar.bz2"))
              (sha256
	       (base32
                "0lfip7g0rjvjspvwxyizknq2ccgrhfqp4ji7v0cch76srz12yb05"))))

    (build-system python-build-system)

;; - `python3-mutagen` for audio support
;; - `python3-gi-cairo` and `gir1.2-poppler-0.18` for PDF support
;; - `gir1.2-gdkpixbuf-2.0` for images support
;; - `gir1.2-rsvg-2.0` for svg support
;; - `FFmpeg`, optionally, for video support
;; - `libimage-exiftool-perl` for everything else
;; - `bubblewrap`, optionally, for sandboxing

    (inputs
     `(("python-mutagen" ,python-mutagen)           ;; for audio support
       ("python-pycairo" ,python-pycairo)           ;; for PDF support
       ("poppler", poppler)                         ;; for PDF support
       ("gdk-pixbuf", gdk-pixbuf)                   ;; for images support
       ("librsvg" ,librsvg)                         ;; for svg support
       ("ffmpeg" ,ffmpeg)                           ;; optional, for video support
       ("perl-image-exiftool", perl-image-exiftool) ;; for everything else
;;       ("bubblewrap", bubblewrap)                   ;; optional, for sandboxing
       ("python-pygobject" ,python-pygobject)       ;; used in tests
       ))
    ;; TODO
    (native-inputs
     `(("python-mutagen" ,python-mutagen)           ;; for audio support
       ("python-pycairo" ,python-pycairo)           ;; for PDF support
       ("poppler", poppler)                         ;; for PDF support
       ("gdk-pixbuf", gdk-pixbuf)                   ;; for images support
       ("librsvg" ,librsvg)                         ;; for svg support
       ("ffmpeg" ,ffmpeg)                           ;; optional, for video support
       ("perl-image-exiftool", perl-image-exiftool) ;; for everything else
;;       ("bubblewrap", bubblewrap)                   ;; optional, for sandboxing
       ("python-pygobject" ,python-pygobject)       ;; used in tests
       ))
    ;; TODO
    (propagated-inputs
     `(("python-mutagen" ,python-mutagen)           ;; for audio support
       ("python-pycairo" ,python-pycairo)           ;; for PDF support
       ("poppler", poppler)                         ;; for PDF support
       ("gdk-pixbuf", gdk-pixbuf)                   ;; for images support
       ("librsvg" ,librsvg)                         ;; for svg support
       ("ffmpeg" ,ffmpeg)                           ;; optional, for video support
       ("perl-image-exiftool", perl-image-exiftool) ;; for everything else
;;       ("bubblewrap", bubblewrap)                   ;; optional, for sandboxing
       ("python-pygobject" ,python-pygobject)       ;; used in tests
       ))

    ;; TODO
    ;;    (arguments
    ;;     `(#:tests? #f ))
    (arguments
     `(#:phases
       (modify-phases %standard-phases
         (add-after 'unpack 'fix-tests
           (lambda _
             (substitute* "libmat2/exiftool.py"
			  (("/usr/bin/vendor_perl/exiftool")
			   (which "exiftool")))
             ;; (substitute* "libmat2/bubblewrap.py"
	     ;; 		  (("shutil.which\\('bwrap'\\)")
	     ;; 		   (string-append "'"
	     ;; 				  (which "bwrap") ;; we have no bwrap for now
	     ;; 				  "'")))
             (substitute* "libmat2/exiftool.py"
			  (("shutil.which\\('exiftool'\\)")
			   (string-append "'"
					  (which "exiftool")
					  "'")))
             (substitute* "libmat2/video.py"
			  (("shutil.which\\('ffmpeg'\\)")
			   (string-append "'"
					  (which "ffmpeg")
					  "'")))
             (substitute* (find-files "tests" "\\.py")
			  (("^#!/usr/bin/env python3$")
			   (which "python3")))	     
             #t))
         (delete 'check)
         (add-after 'install 'check
           (lambda _
             ;; The Archlinux PKGBUILD uses that command for tests:
             (invoke "python" "-m" "unittest" "discover" "-v")
             #t)))))

    (synopsis "Metadata removal tool")
    (description
     "Metadata removal tool, supporting a wide range of commonly used file formats")
    (home-page "https://0xacab.org/jvoisin/mat2")
    (license license:gpl3+)))


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

      parent reply	other threads:[~2021-11-08  1:38 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-04-28 21:38 [bug#31307] [PATCH] Add MAT, the Metadata Anonymisation Toolkit from Boum Chris Marusich
2018-04-28 22:11 ` Nils Gillmann
2018-04-29  3:09   ` Chris Marusich
2018-04-29  8:18     ` Chris Marusich
2018-05-02  6:00     ` Chris Marusich
2018-05-02  6:12       ` Nils Gillmann
2018-05-05 20:33 ` Ludovic Courtès
2018-05-05 21:37   ` Chris Marusich
2018-05-06 19:26     ` Leo Famulari
2018-05-06 19:44   ` Leo Famulari
2018-06-15  7:06     ` Ludovic Courtès
2018-07-05  8:29       ` Chris Marusich
2018-06-16 13:42     ` Nils Gillmann
2021-09-13  2:26       ` Sarah Morgensen
2021-11-08  1:34 ` Denis 'GNUtoo' Carikli [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20211108023416.6b7609f9@primary_laptop \
    --to=gnutoo@cyberdimension.org \
    --cc=31307@debbugs.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).