all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
To: 55104@debbugs.gnu.org
Cc: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Subject: [bug#55104] [PATCH 080/232] gnu: Add skia.
Date: Sun, 24 Apr 2022 23:56:46 -0400	[thread overview]
Message-ID: <20220425035918.25683-80-maxim.cournoyer@gmail.com> (raw)
In-Reply-To: <20220425035918.25683-1-maxim.cournoyer@gmail.com>

* gnu/packages/graphics.scm (skia): New variable.
---
 gnu/packages/graphics.scm | 109 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 109 insertions(+)

diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index 50f562abc1..16e182b827 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -55,6 +55,7 @@ (define-module (gnu packages graphics)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages boost)
+  #:use-module (gnu packages build-tools)
   #:use-module (gnu packages cdrom)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
@@ -88,6 +89,7 @@ (define-module (gnu packages graphics)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages mp3)
   #:use-module (gnu packages multiprecision)
+  #:use-module (gnu packages ninja)
   #:use-module (gnu packages pciutils)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages perl)
@@ -1864,6 +1866,113 @@ (define-public coin3D-4
 and engineering community.")
       (license license:bsd-3)))
 
+(define-public skia
+  ;; Releases follow those of Chromium, about every 6 weeks.  The release
+  ;; version can be found on this page:
+  ;; https://skia.org/docs/user/release/release_notes/.  The commit used
+  ;; should be the last commit, as recommended at
+  ;; https://skia.org/docs/user/release/.
+  (let ((version "98")
+        (revision "0")
+        (commit "55c56abac381e1ae3f0116c410bed81b05e0a38a"))
+    (package
+      (name "skia")
+      (version (git-version version revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://skia.googlesource.com/skia.git")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1ldns2j1g2wj2phlxr9zqkdgs5g64pisxhwxcrq9ijn8a3jhafr2"))))
+      (build-system gnu-build-system)   ;actually GN + Ninja
+      (arguments
+       (list
+        ;; Running the test suite would require 'dm'; unfortunately the tool
+        ;; can only be built for debug builds, which require fetching third
+        ;; party sources.
+        #:tests? #f
+        #:phases
+        #~(modify-phases %standard-phases
+            (replace 'configure
+              (lambda* (#:key inputs #:allow-other-keys)
+                (substitute* "BUILD.gn"
+                  ;; Workaround a bug in the zlib third_party definition, that
+                  ;; fails the build even when zlib is found from the system.
+                  (("deps = \\[ \"//third_party/zlib\" ]")
+                   "deps = []"))
+                (invoke "gn" "gen" "build"
+                        (string-append
+                         ;;
+                         "--args="
+                         "cc=\"gcc\" "              ;defaults to 'cc'
+                         "is_official_build=true "  ;to use system libraries
+                         "is_component_build=true " ;build as a shared library
+                         ;; Specify where locate the harfbuzz and freetype
+                         ;; includes.
+                         (format #f "extra_cflags=[\"-I~a\",\"-I~a\"] "
+                                 (search-input-directory inputs
+                                                         "include/harfbuzz")
+                                 (search-input-directory inputs
+                                                         "include/freetype2"))
+                         ;; Otherwise the validate-runpath phase fails.
+                         "extra_ldflags=[\"-Wl,-rpath=" #$output "/lib\"] "
+                         ;; Disabled, otherwise the build system attempts to
+                         ;; download the SDK at build time.
+                         "skia_use_dng_sdk=false "))))
+            (replace 'build
+              (lambda* (#:key parallel-build? #:allow-other-keys)
+                (let ((job-count (if parallel-build?
+                                     (number->string (parallel-job-count))
+                                     "1")))
+                  (invoke "ninja" "-j" job-count "-C" "build"))))
+            (replace 'install
+              (lambda _
+                ;; Install headers.
+                (for-each (lambda (h)
+                            (install-file h (string-append
+                                             #$output "/include/skia/"
+                                             (dirname h))))
+                          (find-files "." "\\.h$"))
+                ;; Install libraries.
+                (for-each (lambda (lib)
+                            (install-file lib (string-append #$output "/lib")))
+                          (find-files "build" "^lib.*\\.(a|so)"))
+                ;; This pkgconfig file is useful at least to the
+                ;; python-skia-pathops package.
+                (define skia.pc (string-append #$output
+                                               "/lib/pkgconfig/skia.pc"))
+                (mkdir-p (dirname skia.pc))
+                (call-with-output-file skia.pc
+                  (lambda (port)
+                    (format port "\
+prefix=~a
+exec_prefix=${prefix}
+libdir=${prefix}/lib
+includedir=${prefix}/include/skia
+
+Name: skia
+Description: 2D graphic library for drawing text, geometries and images.
+URL: https://skia.org/
+Version: ~a
+Libs: -L${libdir} -lskia
+Cflags: -I${includedir}~%" #$output #$version))))))))
+      (native-inputs (list gn libjpeg-turbo ninja pkg-config python-wrapper))
+      (inputs (list expat fontconfig freetype harfbuzz mesa libwebp zlib))
+      (home-page "https://skia.org/")
+      (synopsis "2D graphics library")
+      (description "Skia is an open source 2D graphics library.  It can be
+used for drawing text, geometries, and images and has support for:
+@itemize
+@item 3x3 matrices with perspective
+@item antialiasing, transparency, filters
+@item shaders, xfermodes, maskfilters, patheffects
+@item subpixel text
+@end itemize")
+      (license license:bsd-3))))
+
 (define-public superfamiconv
   (package
     (name "superfamiconv")
-- 
2.34.0





  parent reply	other threads:[~2022-04-25  4:22 UTC|newest]

Thread overview: 111+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-25  3:57 [bug#55104] [PATCH 000/232] Update IPython to latest, fix texlive-polyglossia, add more Maxim Cournoyer
2022-04-25  3:55 ` [bug#55104] [PATCH 001/232] gnu: python-ipython: Re-order fields Maxim Cournoyer
2022-04-25  3:55   ` [bug#55104] [PATCH 002/232] gnu: python-astroid: Propagate python-typing-extensions Maxim Cournoyer
2022-04-25  3:55   ` [bug#55104] [PATCH 003/232] gnu: Add python-pure-eval Maxim Cournoyer
2022-04-25  3:55   ` [bug#55104] [PATCH 004/232] gnu: Add python-asttokens Maxim Cournoyer
2022-04-25  3:55   ` [bug#55104] [PATCH 005/232] gnu: Add python-littleutils Maxim Cournoyer
2022-04-25  3:55   ` [bug#55104] [PATCH 006/232] gnu: Add python-stack-data Maxim Cournoyer
2022-04-25  3:55   ` [bug#55104] [PATCH 007/232] gnu: python-traitlets: Update to 5.1.1 Maxim Cournoyer
2022-04-25  3:55   ` [bug#55104] [PATCH 008/232] gnu: python-jinja2: Update to 3.1.1 Maxim Cournoyer
2022-04-25  3:55   ` [bug#55104] [PATCH 009/232] gnu: python-prompt-toolkit: Update to 3.0.29 Maxim Cournoyer
2022-04-25  3:55   ` [bug#55104] [PATCH 010/232] gnu: python-ipython: Update to 8.2.0 [fixes CVE-2022-21699] Maxim Cournoyer
2022-04-25  3:55   ` [bug#55104] [PATCH 011/232] gnu: python-nbformat: Update to 5.3.0 Maxim Cournoyer
2022-04-25  3:55   ` [bug#55104] [PATCH 012/232] gnu: Add texlive-paralist Maxim Cournoyer
2022-04-25  3:55   ` [bug#55104] [PATCH 013/232] gnu: Add texlive-stix2-otf Maxim Cournoyer
2022-04-25  3:55   ` [bug#55104] [PATCH 014/232] gnu: Add texlive-metalogo Maxim Cournoyer
2022-04-25  3:55   ` [bug#55104] [PATCH 015/232] gnu: Add texlive-makecmds Maxim Cournoyer
2022-04-25  3:55   ` [bug#55104] [PATCH 016/232] gnu: Add texlive-csplain Maxim Cournoyer
2022-04-25  3:55   ` [bug#55104] [PATCH 017/232] gnu: Add texlive-cs Maxim Cournoyer
2022-04-25  3:55   ` [bug#55104] [PATCH 018/232] gnu: Add texlive-zref Maxim Cournoyer
2022-04-25  3:55   ` [bug#55104] [PATCH 019/232] gnu: Add python-pcpp Maxim Cournoyer
2022-04-25  3:55   ` [bug#55104] [PATCH 020/232] gnu: Add opentype-sanitizer Maxim Cournoyer
2022-04-25  3:55   ` [bug#55104] [PATCH 021/232] gnu: Add python-opentype-sanitizer Maxim Cournoyer
2022-04-25  3:55   ` [bug#55104] [PATCH 022/232] gnu: Add python-defcon-bootstrap Maxim Cournoyer
2022-04-25  3:55   ` [bug#55104] [PATCH 023/232] gnu: Add python-fontmath Maxim Cournoyer
2022-04-25  3:55   ` [bug#55104] [PATCH 024/232] gnu: Add python-unicodedata2 Maxim Cournoyer
2022-04-25  3:55   ` [bug#55104] [PATCH 025/232] gnu: python-fonttools-with-test: Rename to python-fonttools-full Maxim Cournoyer
2022-04-25  3:55   ` [bug#55104] [PATCH 026/232] gnu: Add python-mutatormath Maxim Cournoyer
2022-04-25  3:55   ` [bug#55104] [PATCH 027/232] gnu: Add python-fontpens-bootstrap Maxim Cournoyer
2022-04-25  3:55   ` [bug#55104] [PATCH 028/232] gnu: Add python-booleanoperations Maxim Cournoyer
2022-04-25  3:55   ` [bug#55104] [PATCH 029/232] gnu: Add python-fontparts-bootstrap Maxim Cournoyer
2022-04-25  3:55   ` [bug#55104] [PATCH 030/232] gnu: Add python-fontpens Maxim Cournoyer
2022-04-25  3:55   ` [bug#55104] [PATCH 031/232] gnu: Add python-defcon Maxim Cournoyer
2022-04-25  3:55   ` [bug#55104] [PATCH 032/232] gnu: Add python-fontparts Maxim Cournoyer
2022-04-25  3:55   ` [bug#55104] [PATCH 033/232] gnu: Add python-cu2qu Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 034/232] gnu: Add python-ufoprocessor Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 035/232] gnu: Add python-ufonormalizer Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 036/232] gnu: Add python-types-toml Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 037/232] gnu: Add python-pytest-mypy Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 038/232] gnu: Add python-jaraco-context-bootstrap Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 039/232] gnu: Add python-jaraco-functools-bootstrap Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 040/232] gnu: Add python-autocommand Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 041/232] gnu: Add python-types-freezegun Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 042/232] gnu: Add python-types-pytz Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 043/232] gnu: Add python-pytest-freezegun Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 044/232] gnu: Add python-pytest-enabler-bootstrap Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 045/232] gnu: Add python-path-bootstrap Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 046/232] gnu: Add python-pip-run-bootstrap Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 047/232] gnu: python-importlib-metadata: Update to 4.11.3 Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 048/232] gnu: python-pytest-black: Update to 0.3.12 Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 049/232] gnu: python-mypy: Update to 0.942 and fix search path Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 050/232] gnu: Add python-types-docutils Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 051/232] gnu: python-pytest-checkdocs: Update to 2.7.1 Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 052/232] gnu: Add python-jaraco-classes Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 053/232] gnu: Add python-jaraco-context Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 054/232] gnu: Add python-jaraco-functools Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 055/232] gnu: Add python-pytest-enabler Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 056/232] gnu: Add python-path Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 057/232] gnu: Add python-pip-run Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 058/232] gnu: Add python-tempora Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 059/232] gnu: Add python-pytest-perf Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 060/232] gnu: python-factory-boy: Update to 3.2.1 Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 061/232] gnu: python-faker: Update to 13.3.4 and honor TESTS? Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 062/232] gnu: Add python-pytest-randomly Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 063/232] gnu: Add psautohint-font-data Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 064/232] gnu: Add psautohint Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 065/232] gnu: Add python-ordered-set Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 066/232] gnu: Add python-xdoctest Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 067/232] gnu: Add python-ubelt Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 068/232] gnu: python-setuptools: Update to 62.0.0 Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 069/232] gnu: python-pathpy: Deprecate by python-path Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 070/232] gnu: python-pytest-shutil: Adjust to use python-path Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 071/232] gnu: python-pytest-cov: Update to 3.0.0 Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 072/232] gnu: Add python-scikit-build Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 073/232] gnu: python-jupyter-packaging: Update to 0.12.0, run test suite Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 074/232] gnu: python-scipy: Move input fields below arguments field Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 075/232] gnu: python-scipy: Update to 1.8.0 and enable parallel build Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 076/232] gnu: Add java-antlr4-runtime-cpp Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 077/232] gnu: Add python-fonttools-next Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 078/232] gnu: Add python-afdko Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 079/232] gnu: Add python-cffsubr Maxim Cournoyer
2022-04-25  3:56   ` Maxim Cournoyer [this message]
2022-04-25  3:56   ` [bug#55104] [PATCH 081/232] gnu: Add python-skia-pathops Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 082/232] gnu: Add python-ufolib2 Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 083/232] gnu: Add python-compreffor Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 084/232] gnu: Add python-ufo2ft Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 085/232] gnu: Add python-sfdlib Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 086/232] gnu: Add font-amiri Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 087/232] gnu: Add font-sil-ezra Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 088/232] gnu: Add texlive-bidi Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 089/232] gnu: Add font-gfs-ambrosia Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 090/232] gnu: python-click: Update to 8.1.2 and honor TESTS? Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 091/232] gnu: python-flask: Update to 2.1.1 Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 092/232] gnu: Add python-untangle Maxim Cournoyer
2022-04-25  3:56   ` [bug#55104] [PATCH 093/232] gnu: python-black: Update to 22.3.0 Maxim Cournoyer
2022-04-25  3:57   ` [bug#55104] [PATCH 094/232] gnu: pylint: Run tests in parallel Maxim Cournoyer
2022-04-25  3:57   ` [bug#55104] [PATCH 095/232] gnu: python-trio: Update to 0.20.0 Maxim Cournoyer
2022-04-25  3:57   ` [bug#55104] [PATCH 096/232] gnu: Add python-pydevd Maxim Cournoyer
2022-04-25  3:57   ` [bug#55104] [PATCH 097/232] gnu: Add python-debugpy Maxim Cournoyer
2022-04-25  3:57   ` [bug#55104] [PATCH 098/232] gnu: python-greenlet: Update to 1.1.2 Maxim Cournoyer
2022-04-25  3:57   ` [bug#55104] [PATCH 099/232] gnu: Add python-pytest-forked-next Maxim Cournoyer
2022-04-25  3:57   ` [bug#55104] [PATCH 100/232] gnu: python-pytest-xdist-next: Update to 2.5.0 Maxim Cournoyer
2022-04-25  3:57   ` [bug#55104] [PATCH 101/232] gnu: Add python-ipyparallel-bootstrap Maxim Cournoyer
2022-04-25  9:53 ` [bug#55104] [PATCH 000/232] Update IPython to latest, fix texlive-polyglossia, add more Lars-Dominik Braun
2022-04-25 13:15   ` Maxim Cournoyer
2022-04-26  7:36     ` Lars-Dominik Braun
2022-04-27  3:09       ` Maxim Cournoyer
2022-04-27 11:50         ` Lars-Dominik Braun
2022-05-12  1:31           ` Maxim Cournoyer
2022-04-26 11:21     ` zimoun
2022-04-25 11:36 ` Julien Lepiller
2022-04-25 13:23   ` Maxim Cournoyer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220425035918.25683-80-maxim.cournoyer@gmail.com \
    --to=maxim.cournoyer@gmail.com \
    --cc=55104@debbugs.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.