+ ;; 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.
+
+For PDF support, install the @emph{mupdf} package.")
+ (license license:gpl2+))))
+
+(define-public qview
+ (package
+ (name "qview")
+ (version "3.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/jurplel/qView.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "15a91bs3wcqhgf76wzigbn10hayg628j84pq4j2vaxar94ak0vk7"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda _
+ (invoke "qmake")))
+ ;; Installation process hard-codes "/usr/bin", possibly
+ ;; prefixed.
+ (add-after 'configure 'fix-install-directory
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (substitute* "Makefile"
+ (("\\$\\(INSTALL_ROOT\\)/usr") out))
+ #t)))
+ ;; Don't phone home or show "Checking for updates..." in the
+ ;; About menu.
+ (add-before 'build 'disable-auto-update
+ (lambda _
+ (substitute* "src/qvaboutdialog.cpp"
+ (("ui->updateLabel->setText\\(updateText\\);") "")
+ (("requestUpdates\\(\\);") ""))
+ #t)))))
+ (inputs
+ `(("qtbase" ,qtbase)
+ ("qtsvg" ,qtsvg)
+ ("qtimageformats" ,qtimageformats)))
+ (home-page "https://interversehq.com/qview/")
+ (synopsis "Convenient and minimal image viewer")
+ (description "qView is a Qt image viewer designed with visually
+minimalism and usability in mind. Its features include animated GIF
+controls, file history, rotation/mirroring, and multithreaded
+preloading.")
+ (license license:gpl3+)))
+
+(define-public chafa
+ (package
+ (name "chafa")
+ (version "1.2.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://hpjansson.org/chafa/releases/chafa-"
+ version ".tar.xz"))
+ (sha256
+ (base32
+ "0aa7119514rhsak5i0kgvwllb9z74lnfzfn7dzfhs27fc8cvx1dg"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("glib" ,glib)
+ ("imagemagick" ,imagemagick)))
+ (synopsis "Convert images to ANSI/Unicode characters")
+ (description
+ "Chafa is a command-line utility that converts all kinds of images,
+including animated GIFs, into ANSI/Unicode character output that can be
+displayed in a terminal.")
+ (home-page "https://hpjansson.org/chafa/")
+ (license license:lgpl3+)))
+
+(define-public imv