Hi Liliana, Liliana Marie Prikler <liliana.prik...@gmail.com> writes:
> * gnu/packages/image-viewers.scm (mcomix): Update to 2.0.1. > [source]: Use sourceforge once again. > [inputs]: Add ‘python’. > [arguments]: Convert to a list of G-Expressions. > <#:tests?>: Drop. > <#:phases>: Rename ‘configure’ to ‘patch-sources’. Also fix an assertion > error in "mcomix/image_tools.py". > No longer replace ‘build’ or ‘install’. Add ‘install-data’ phase after > ‘install’. Use (this-package-input) to refer to the python input. > --- > gnu/packages/image-viewers.scm | 123 +++++++++++---------------------- > 1 file changed, 42 insertions(+), 81 deletions(-) > > diff --git a/gnu/packages/image-viewers.scm b/gnu/packages/image-viewers.scm > index 6ab6cf3307..1c325cd8a7 100644 > --- a/gnu/packages/image-viewers.scm > +++ b/gnu/packages/image-viewers.scm > @@ -662,91 +662,52 @@ (define-public luminance-hdr > > ;; CBR and RAR are currently unsupported, due to non-free dependencies. > (define-public mcomix > - ;; 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 > - (list p7zip python-pillow python-pygobject 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 > + (package > + (name "mcomix") > + (version "2.0.1") > + (source > + (origin > + (method url-fetch) > + (uri (string-append "mirror://sourceforge/mcomix/MComix-" version "/" > + "mcomix-" version ".tar.gz")) > + (sha256 > + (base32 > + "187ca815vxb2in1ryvfiaf1zapi0bc9jxdac3c1bky0kr6x7xyap")))) > + (build-system python-build-system) > + (inputs > + (list p7zip python python-pillow python-pygobject python-pycairo)) > + (arguments > + (list > + #:phases > + #~(modify-phases %standard-phases > + (add-after 'unpack 'patch-source > + (lambda* (#:key inputs #:allow-other-keys) > + (let ((p7zip (assoc-ref inputs "p7zip"))) > + ;; insert absolute path to 7z executable I know it's in the original, but since while we're revamping the package, let's make this comment a proper complete sentence. > + (substitute* "mcomix/archive/sevenzip_external.py" > + (("_7z_executable = -1") > + (string-append "_7z_executable = u'" p7zip "/bin/7z'"))) I'd use something like: (format #f "_7z_executable = ~s" (search-input-file inputs "bin/7z")) For the replacement. That unicode string (u"something") is obsolete/unnecessary (all strings are unicode in Python 3). > + (substitute* "mcomix/image_tools.py" > + (("assert name not in supported_formats_gdk") > + "if name in supported_formats_gdk: continue"))))) > + (add-after 'install 'install-data > + (lambda* (#:key outputs #:allow-other-keys) > + (copy-recursively > + "mcomix/images" > + (string-append (assoc-ref outputs "out") > + "/lib/python" > + #$(version-major+minor > + (package-version (this-package-input > "python"))) > + "/site-packages/mcomix/images"))))))) > + (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+)))) > + (license license:gpl2+))) I haven't tried it, but LGTM with my above comments addressed. Thank you! Maxim