Subject: Re: bug#26500: [PATCH] gnu: Add mcomix.

From: nee <[email-masked]>
Date: Wed, 19 Apr 2017 00:09:41 +0200

Am 17.04.2017 um 21:21 schrieb Arun Isaac:
> 
> If mupdf is a heavy dependency and it is not commonly needed, you can
> drop it and just package with 7z and rar as dependencies.

I have successfully patched in the path for 7zip.
I init the variable that stores it with a unicode string. I make the
assumption that the store path will never contain a ' character.

I read a little bit about unrar and it's issues with mcomix.
Unrar is very old and only supports RAR2, as someone says in the mcomix
issues it is unable to unpack most rar archives created after 2002¹. On
other distro mcomix currently relies on an unfree rar package², and
there is an open ticket³ about switching to a free library like
libarchiver (which supports RAR5 and is also used by file-roller, which
works fine on GuixSD).

I tried unrar on the commandline and it would list file names, but
always fail on unpacking. When called by mcomix, it would always try to
read a password from stdin and freeze the gui.
I will omit rar support for now, since unrar is mostly useless.

> 
> Sort these inputs alphabetically, as I mentioned in the crawl thread.
> 
> LGTM, otherwise! Please send an updated patch. Thanks!
> 
Okay.

(1) https://sourceforge.net/p/mcomix/feature-requests/82/#2bc5
(2) https://sourceforge.net/p/mcomix/feature-requests/82/
(3) https://sourceforge.net/p/mcomix/feature-requests/85/
From 6ecc38ecc8ce93d21cb4fa854b6332230c4ea4c9 Mon Sep 17 00:00:00 2001
From: nee <[email-masked]>
Date: Fri, 14 Apr 2017 19:09:40 +0200
Subject: [PATCH] gnu: Add mcomix.

* gnu/packages/image-viewers.scm (mcomix): New variable.
---
 gnu/packages/image-viewers.scm | 40 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

diff --git a/gnu/packages/image-viewers.scm b/gnu/packages/image-viewers.scm
index 830ce10ea..83ca1ee46 100644
--- a/gnu/packages/image-viewers.scm
+++ b/gnu/packages/image-viewers.scm
@@ -6,6 +6,7 @@
 ;;; Copyright © 2017 Alex Griffin <[email-masked]>
 ;;; Copyright © 2017 ng0 <[email-masked]>
 ;;; Copyright © 2017 Mathieu Othacehe <[email-masked]>
+;;; Copyright © 2017 nee <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -28,6 +29,7 @@
   #:use-module (guix packages)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system cmake)
+  #:use-module (guix build-system python)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages base)
@@ -46,6 +48,7 @@
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages xorg)
+  #:use-module (gnu packages python)
   #:use-module (gnu packages))
 
 (define-public feh
@@ -360,3 +363,40 @@ imaging.  It supports several HDR and LDR image formats, and it can:
 @item Copy EXIF data between sets of images.
 @end itemize\n")
     (license license:gpl2+)))
+
+(define-public mcomix
+  (package
+    (name "mcomix")
+    (version "1.2.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://sourceforge/mcomix/MComix-" version
+                                  "/mcomix-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "0fzsf9pklhfs1rzwzj64c0v30b74nk94p93h371rpg45qnfiahvy"))))
+    (build-system python-build-system)
+    (arguments
+     ;; Python 2.5 or newer (Python 3 and up is not supported)
+     `(#:python ,python-2
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((p7zip (assoc-ref inputs "p7zip")))
+               ;; insert absolute path to 7z executable
+               (substitute* "mcomix/archive/sevenzip_external.py"
+                 (("_7z_executable = -1")
+                  (string-append "_7z_executable = u'" p7zip "/bin/7z'"))))
+             #t)))))
+    (inputs `(("python2-pillow" ,python2-pillow)
+              ("python2-pygtk" ,python2-pygtk)
+              ("p7zip" ,p7zip)))
+    (home-page "https://sourceforge.net/p/mcomix/wiki/Home/")
+    (synopsis "Image viewer for comics")
+    (description "MComix is a customizable image viewer that specializes as
+a comic and manga reader.  It supports a variety of container formats
+including CBZ, CB7, CBT, LHA.
+CBR and rar are currently unsupported, due to unfree dependencies.
+For optional pdf support, you can install the mupdf package.")
+    (license license:gpl2+)))
-- 
2.12.2