Subject: [bug#44926] [PATCH v2 12/15] gnu: Add dart-2.5.0.

From: nixo <[email-masked]>
Date: Sun, 29 Nov 2020 18:34:11 +0100

* gnu/packages/dart.scm (dart-2.5.0): New variable.
---
 gnu/packages/dart.scm | 90 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 90 insertions(+)

diff --git a/gnu/packages/dart.scm b/gnu/packages/dart.scm
index 33e0135e9f..1c01fd47d1 100644
--- a/gnu/packages/dart.scm
+++ b/gnu/packages/dart.scm
@@ -1061,3 +1061,93 @@
       (alist-replace
        "gcc" `(,gcc-8)
        (package-native-inputs dart-2.1.0-dev.6.0))))))
+
+(define-public dart-2.5.0
+  (package
+    (inherit dart-2.4.0)
+    (version "2.5.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/dart-lang/sdk")
+             (commit version)))
+       (sha256
+        (base32
+         "1xwrj7hj9a28w2ymykmfd7c2bi7b68ssbhkkb7p62yhn4m504vh1"))))
+    (arguments
+     (substitute-keyword-arguments (package-arguments dart-2.4.0)
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (add-before 'configure 'create-gclient-args
+             (lambda _
+               (with-output-to-file "build/config/gclient_args.gni"
+                 (lambda ()
+                   ;; taken from their release, available at
+                   ;; commondatastorage.googleapis.com/dart-archive/channels/
+                   ;; stable/raw/2.5.0/src/dart-2.5.0.tar.gz
+                   (display "checkout_llvm = false")))))
+           (add-before 'configure 'patch-dart-action
+             (lambda* (#:key inputs propagated-inputs #:allow-other-keys)
+               (substitute* "build/dart/dart_action.gni"
+                 ;; FIX: assignment had no effect
+                 (("dfe =") "# dfe =")
+                 (("\"\\$_dart_root/tools/sdks/\\$host_os/.*service.dart.snapshot\"")
+                  ""))))
+           (add-before 'configure 'disable-language-model
+             ;; the language_model is a 200Mb tensor flow binary image, which
+             ;; should be downloaded from
+             ;; https://chrome-infra-packages.appspot.com/p/dart/language_model/
+             ;; It seems to be used for code completition
+             (lambda _
+               (substitute* "sdk/BUILD.gn"
+                 ;; definition and use of ftlite/language model are after a
+                 ;; conditional, make it false
+                 (("target_cpu == \"x64\"") "false"))))
+           (add-before 'configure 'add-missing-includes
+             (lambda _
+               (substitute* "runtime/bin/ffi_test/ffi_test_functions.cc"
+                 ;; compilation fails because of mutex, condition variable and
+                 ;; function not declared
+                 (("#include <stddef.h>" all)
+                  (string-join
+                   `(,all
+                     "#include <functional>" "#include <mutex>"
+                     "#include <condition_variable>")
+                   "\n")))))))))
+    (inputs
+     (append
+      `(("dart-pkg-tflite-native"
+         ,(dart-pkg "tflite-native" "06e533a9747306d1114c53427cc67eda080f51f9"
+                    "1ibd66l1hq0b04cbnxm9k968h0ijqzi1sfslcxx9w45zcnmhk63n"))
+        ("dart-pkg-mustache"
+         ,(dart-pkg "mustache" "5e81b12215566dbe2473b2afd01a8a8aedd56ad9"
+                    "03k614d3njlw06n2ff6g4yf252xnwj5fb83aizs3dz1awmkhygk2"
+                    "https://github.com/xxgreg/mustache")))
+      (replace-inputs
+       dart-2.4.0
+       `(("dart-pkg-dartdoc"
+          ,(dart-pkg "dartdoc" "0.28.4"
+                     "0p9b60nrfqmgbngzsabgh7byrp0p1lwfc9rh77z3gjphmi16ydxf"))
+         ("dart-pkg-fixnum"
+          ,(dart-pkg "fixnum" "0.10.9"
+                     "0vicw7jprch4pd949j0b4h695i5wzk1njg4ffhcz4jrc40l2p0gn"))
+         ("dart-pkg-http"
+          ,(dart-pkg "http" "0.12.0+2"
+                     "0psffnp9lmyklbz06687hkm8ywnspr9ai5bpa33jw0m24zz4znc7"))
+         ("dart-pkg-http-io"
+          ,(dart-pkg "http-io" "2fa188caf7937e313026557713f7feffedd4978b"
+                     "1wfp984n8wykx1n6niwxfhxzr2cq95qdvk47majxizwlzbqv989x"))
+         ("dart-pkg-http-multi-server"
+          ,(dart-pkg "http_multi_server" "2.0.5"
+                     "11szb0by7yn7kdcp9pbd6igy2kxilmpsnvwdm3ds8bp7l1ysgpwk"))
+         ("dart-pkg-http-parser"
+          ,(dart-pkg "http-parser" "3.1.3"
+                     "0g71a2bgws4nv0vllidyvf1ncbrxry81dy98vy0p8lz3h8r7irpx"))
+         ("dart-pkg-linter"
+          ,(dart-pkg
+            "linter" "0.1.96"
+            "13fd9yfv6ww2yg2bhv0x01bgx4cl2vx12cy485ls2m16jwyjf1di"))))))
+    (native-inputs
+     (alist-replace "dart" `(,dart-2.4.0)
+                    (package-native-inputs dart-2.4.0)))))
-- 
2.29.2