From db9f951b837a95558e98564fdeed1cc2fd37d39b Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Tue, 14 Jul 2020 22:26:17 -0400 Subject: gnu: Add ruby-chunky-png. * gnu/packages/ruby.scm (ruby-chunky-png): New variable. --- gnu/packages/ruby.scm | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index e38f9afd22..530e5a14f7 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -1577,6 +1577,74 @@ (define-public ruby-standard (home-page "https://github.com/testdouble/standard") (license license:expat))) +(define-public ruby-chunky-png + ;; There hasn't been a release since 2018/11/21 and there are test failures + ;; in that release, so use the latest commit. + (let ((revision "1") + (commit "143b9cd1412e49edd4f8b661c7cd9b22941f43c0")) + (package + (name "ruby-chunky-png") + (version (git-version "1.3.11" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/wvanbergen/chunky_png.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0wbcgfzymbpmmxsb04arc49a2icki6f2fc6d6sqgg8369mc67g9z")))) + (build-system ruby-build-system) + (arguments + `(#:test-target "spec" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'disable-bundler + (lambda _ + (substitute* (find-files "." "\\.rb$") + (("require.*bundler/setup.*") "")) + #t)) + (replace 'replace-git-ls-files + (lambda _ + ;; TODO: Remove after the fix of using 'cut' to better mimic the + ;; git ls-files output is merged in ruby-build-system. + (substitute* "chunky_png.gemspec" + (("`git ls-files`") + "`find . -type f -not -regex '.*\\.gem$' |sort |cut -c3-`")) + #t))))) + (native-inputs + `(("bundler" ,bundler) + ("ruby-rspec" ,ruby-rspec) + ("ruby-standard" ,ruby-standard) + ("ruby-yard" ,ruby-yard))) + (synopsis "Ruby library to handle PNG images") + (description "ChunkyPNG is a pure Ruby library that can read and write +Portable Network Graphics (PNG) images without depending on an external image +library. It tries to be memory efficient and reasonably fast. It has +features such as: +@itemize +@item +Decoding support for any image that the PNG standard allows. This includes all +standard color modes, all bit depths, all transparency, and interlacing and +filtering options. +@item +Encoding support for images of all color modes (true color, grayscale, and +indexed) and transparency for all these color modes. The best color mode is +chosen automatically, based on the amount of used colors. +@item Read/write access to the image's pixels. +@item Read/write access to all image metadata that is stored in chunks. +@item +Memory efficiency: @code{fixnum} are used, i.e. 4 or 8 bytes of memory per +pixel, depending on the hardware). +@item +Performance: ChunkyPNG is reasonably fast for Ruby standards, by only using +integer math and a highly optimized saving routine. +@item Interoperability with RMagick. +@end itemize") + (home-page "https://github.com/wvanbergen/chunky_png/wiki") + (license license:expat)))) + (define-public ruby-ast (package (name "ruby-ast") -- cgit v1.2.3