diff options
Diffstat (limited to 'gnu/packages/image-viewers.scm')
-rw-r--r-- | gnu/packages/image-viewers.scm | 125 |
1 files changed, 89 insertions, 36 deletions
diff --git a/gnu/packages/image-viewers.scm b/gnu/packages/image-viewers.scm index e7bfb10474..12bf318b0a 100644 --- a/gnu/packages/image-viewers.scm +++ b/gnu/packages/image-viewers.scm @@ -14,6 +14,7 @@ ;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com> ;;; Copyright © 2020 Peng Mei Yu <pengmeiyu@riseup.net> ;;; Copyright © 2020 R Veera Kumar <vkor@vkten.in> +;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz> ;;; ;;; This file is part of GNU Guix. ;;; @@ -35,6 +36,7 @@ #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix packages) + #:use-module (guix utils) #:use-module (guix build-system gnu) #:use-module (guix build-system cmake) #:use-module (guix build-system meson) @@ -420,44 +422,95 @@ imaging. It supports several HDR and LDR image formats, and it can: (license license:gpl2+))) ;; CBR and RAR are currently unsupported, due to non-free dependencies. -;; For optional PDF support, you can install the mupdf package. (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) - (inputs - `(("p7zip" ,p7zip) - ("python2-pillow" ,python2-pillow) - ("python2-pygtk" ,python2-pygtk))) - (arguments - ;; Python 2.5 or newer (Python 3 and up is not supported) - `(#:python ,python-2 - #:tests? #f ; there are no tests - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'configure - (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))))) - (home-page "https://sourceforge.net/p/mcomix/wiki/Home/") - (synopsis "Image viewer for comics") - (description "MComix is a customizable image viewer that specializes as + ;; Official mcomix hasn't been updated since 2016, it's broken with + ;; python-pillow 6+ and only supports Python 2. We use fork instead. + (let ((commit "fea55a7a9369569eefed72209eed830409c4af98")) + (package + (name "mcomix") + (version (git-version "1.2.1" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/multiSnow/mcomix3") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "05zl0dkjwbdcm2zlk4nz9w33amlqj8pbf32a8ymshc2356fqhhi5")))) + (build-system python-build-system) + (inputs + `(("p7zip" ,p7zip) + ("python-pillow" ,python-pillow) + ("python-pygobject" ,python-pygobject) + ("python-pycairo" ,python-pycairo))) + (arguments + `(#:tests? #f ; FIXME: How do we run tests? + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'configure + (lambda* (#:key inputs #:allow-other-keys) + (let ((p7zip (assoc-ref inputs "p7zip"))) + ;; insert absolute path to 7z executable + (substitute* "mcomix/mcomix/archive/sevenzip_external.py" + (("_7z_executable = -1") + (string-append "_7z_executable = u'" p7zip "/bin/7z'")))) + #t)) + (replace 'build + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (pyver ,(version-major+minor (package-version python))) + (lib (string-append out "/lib/python" pyver))) + (invoke (which "python") "installer.py" "--srcdir=mcomix" + (string-append "--target=" lib)) + (rename-file (string-append lib "/mcomix") + (string-append lib "/site-packages")) + #t))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (share (string-append out "/share")) + (bin (string-append out "/bin")) + (pyver ,(version-major+minor (package-version python))) + (lib (string-append out "/lib/python" pyver "/site-packages"))) + (mkdir-p bin) + (rename-file (string-append lib "/mcomixstarter.py") + (string-append bin "/mcomix")) + (rename-file (string-append lib "/comicthumb.py") + (string-append bin "/comicthumb")) + (install-file "mime/mcomix.desktop" + (string-append share "/applications")) + (install-file "mime/mcomix.appdata.xml" + (string-append share "/metainfo")) + (install-file "mime/mcomix.xml" + (string-append share "/mime/packages")) + (install-file "mime/comicthumb.thumbnailer" + (string-append share "/thumbnailers")) + (install-file "man/mcomix.1" (string-append share "/man/man1")) + (install-file "man/comicthumb.1" (string-append share "/man/man1")) + (for-each + (lambda (size) + (install-file + (format #f "mcomix/mcomix/images/~sx~s/mcomix.png" size size) + (format #f "~a/icons/hicolor/~sx~s/apps/" share size size)) + (for-each + (lambda (ext) + (install-file + (format #f "mime/icons/~sx~s/application-x-~a.png" size size ext) + (format #f "~a/icons/hicolor/~sx~s/mimetypes/" + share size size))) + '("cb7" "cbr" "cbt" "cbz"))) + '(16 22 24 32 48)) + #t)))))) + (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.") - (license license:gpl2+))) +including CBZ, CB7, CBT, LHA. + +For PDF support, install the @emph{mupdf} package.") + (license license:gpl2+)))) (define-public qview (package |