diff options
author | hlolli <hlolli@gmail.com> | 2020-02-19 23:16:40 +0100 |
---|---|---|
committer | hlolli <hlolli@gmail.com> | 2020-02-19 23:16:40 +0100 |
commit | ef712ff2f5eed5d350d26b28fd1fb8eed5f37e22 (patch) | |
tree | a12e8766df8ab2ec3e3309cddefc16e08db161ae /pkgs/development/interpreters/clojurescript | |
parent | 43a775649ce6c8a6d2b1d7bea8ccccd6eac72468 (diff) | |
download | nixpkgs-ef712ff2f5eed5d350d26b28fd1fb8eed5f37e22.tar nixpkgs-ef712ff2f5eed5d350d26b28fd1fb8eed5f37e22.tar.gz nixpkgs-ef712ff2f5eed5d350d26b28fd1fb8eed5f37e22.tar.bz2 nixpkgs-ef712ff2f5eed5d350d26b28fd1fb8eed5f37e22.tar.lz nixpkgs-ef712ff2f5eed5d350d26b28fd1fb8eed5f37e22.tar.xz nixpkgs-ef712ff2f5eed5d350d26b28fd1fb8eed5f37e22.tar.zst nixpkgs-ef712ff2f5eed5d350d26b28fd1fb8eed5f37e22.zip |
lumo 1.9.0 -> 1.10.1 plus darwin support
Diffstat (limited to 'pkgs/development/interpreters/clojurescript')
6 files changed, 437 insertions, 362 deletions
diff --git a/pkgs/development/interpreters/clojurescript/lumo/default.nix b/pkgs/development/interpreters/clojurescript/lumo/default.nix index 0e9d81d5e95..23dd19b6114 100644 --- a/pkgs/development/interpreters/clojurescript/lumo/default.nix +++ b/pkgs/development/interpreters/clojurescript/lumo/default.nix @@ -1,18 +1,30 @@ -{ stdenv, lib, fetchurl, clojure, - nodejs, jre, unzip, nodePackages, - python, openssl, pkgs }: - -let # packageJSON=./package.json; - version = "1.9.0"; - nodeVersion = "10.9.0"; - nodeSources = fetchurl { - url="https://nodejs.org/dist/v${nodeVersion}/node-v${nodeVersion}.tar.gz"; - sha256="0wgawq3wzw07pir73bxz13dggcc1fj0538y7y69n3cc0a2kiplqy"; - }; - lumo-internal-classpath = "LUMO__INTERNAL__CLASSPATH"; +{ stdenv +, lib +, fetchurl +, clojure +, gnutar +, nodejs +, jre +, unzip +, nodePackages +, xcbuild +, python +, openssl +, pkgs +, fetchgit +, darwin +}: +let + version = "1.10.1"; + nodeVersion = "11.13.0"; + nodeSources = fetchurl { + url = "https://nodejs.org/dist/v${nodeVersion}/node-v${nodeVersion}.tar.gz"; + sha256 = "1cjzjbshxnysxkvbf41p3m8298cnhs9kfvdczgvvvlp6w16x4aac"; + }; + lumo-internal-classpath = "LUMO__INTERNAL__CLASSPATH"; - # as found in cljs/snapshot/lumo/repl.cljs - requireDeps = '' \ + # as found in cljs/snapshot/lumo/repl.cljs + requireDeps = '' \ cljs.analyzer \ cljs.compiler \ cljs.env \ @@ -50,104 +62,125 @@ let # packageJSON=./package.json; lumo.js-deps \ lumo.common ''; - compileClojurescript = (simple: '' - (require '[cljs.build.api :as cljs]) - (cljs/build \"src/cljs/snapshot\" - {:optimizations ${if simple then ":simple" else ":none"} - :main 'lumo.core - :cache-analysis true - :source-map false - :dump-core false - :static-fns true - :optimize-constants false - :npm-deps false - :verbose true - :closure-defines {'cljs.core/*target* \"nodejs\" - 'lumo.core/*lumo-version* \"${version}\"} - :compiler-stats true - :process-shim false - :fn-invoke-direct true - :parallel-build false - :browser-repl false - :target :nodejs - :hashbang false - ;; :libs [ \"src/cljs/bundled\" \"src/js\" ] - :output-dir ${if simple - then ''\"cljstmp\"'' - else ''\"target\"''} - :output-to ${if simple - then ''\"cljstmp/main.js\"'' - else ''\"target/deleteme.js\"'' }}) - ''); + compileClojurescript = (simple: '' + (require '[cljs.build.api :as cljs]) + (cljs/build \"src/cljs/snapshot\" + {:optimizations ${if simple then ":simple" else ":none"} + :main 'lumo.core + :cache-analysis true + :source-map false + :dump-core false + :static-fns true + :optimize-constants false + :npm-deps false + :verbose true + :closure-defines {'cljs.core/*target* \"nodejs\" + 'lumo.core/*lumo-version* \"${version}\"} + :compiler-stats true + :process-shim false + :fn-invoke-direct true + :parallel-build false + :browser-repl false + :target :nodejs + :hashbang false + ;; :libs [ \"src/cljs/bundled\" \"src/js\" ] + :output-dir ${if simple + then ''\"cljstmp\"'' + else ''\"target\"''} + :output-to ${if simple + then ''\"cljstmp/main.js\"'' + else ''\"target/deleteme.js\"'' }}) + '' + ); - cacheToJsons = '' - (import [java.io ByteArrayOutputStream FileInputStream]) - (require '[cognitect.transit :as transit] - '[clojure.edn :as edn] - '[clojure.string :as str]) + cacheToJsons = '' + (import [java.io ByteArrayOutputStream FileInputStream]) + (require '[cognitect.transit :as transit] + '[clojure.edn :as edn] + '[clojure.string :as str]) - (defn write-transit-json [cache] - (let [out (ByteArrayOutputStream. 1000000) - writer (transit/writer out :json)] - (transit/write writer cache) - (.toString out))) + (defn write-transit-json [cache] + (let [out (ByteArrayOutputStream. 1000000) + writer (transit/writer out :json)] + (transit/write writer cache) + (.toString out))) - (defn process-caches [] - (let [cache-aot-path \"target/cljs/core.cljs.cache.aot.edn\" - cache-aot-edn (edn/read-string (slurp cache-aot-path)) - cache-macros-path \"target/cljs/core\$macros.cljc.cache.json\" - cache-macros-stream (FileInputStream. cache-macros-path) - cache-macros-edn (transit/read (transit/reader cache-macros-stream :json)) - caches [[cache-aot-path cache-aot-edn] - [cache-macros-path cache-macros-edn]]] - (doseq [[path cache-edn] caches] - (doseq [key (keys cache-edn)] - (let [out-path (str/replace path #\"(\.json|\.edn)\$\" - (str \".\" (munge key) \".json\")) - tr-json (write-transit-json (key cache-edn))] - (spit out-path tr-json)))))) + (defn process-caches [] + (let [cache-aot-path \"target/cljs/core.cljs.cache.aot.edn\" + cache-aot-edn (edn/read-string (slurp cache-aot-path)) + cache-macros-path \"target/cljs/core\$macros.cljc.cache.json\" + cache-macros-stream (FileInputStream. cache-macros-path) + cache-macros-edn (transit/read (transit/reader cache-macros-stream :json)) + caches [[cache-aot-path cache-aot-edn] + [cache-macros-path cache-macros-edn]]] + (doseq [[path cache-edn] caches] + (doseq [key (keys cache-edn)] + (let [out-path (str/replace path #\"(\.json|\.edn)\$\" + (str \".\" (munge key) \".json\")) + tr-json (write-transit-json (key cache-edn))] + (spit out-path tr-json)))))) - (process-caches) - ''; + (process-caches) + ''; - trimMainJsEnd = '' - (let [string (slurp \"target/main.js\")] - (spit \"target/main.js\" - (subs string 0 (.indexOf string \"cljs.nodejs={};\")))) - ''; + trimMainJsEnd = '' + (let [string (slurp \"target/main.js\")] + (spit \"target/main.js\" + (subs string 0 (.indexOf string \"cljs.nodejs={};\")))) + ''; - cljdeps = import ./deps.nix { inherit pkgs; }; - classp = cljdeps.makeClasspaths { - extraClasspaths=["src/js" "src/cljs/bundled" "src/cljs/snapshot"]; - }; - + cljdeps = import ./deps.nix { inherit pkgs; }; + classp = cljdeps.makeClasspaths { + extraClasspaths = [ "src/js" "src/cljs/bundled" "src/cljs/snapshot" ]; + }; - getJarPath = jarName: (lib.findFirst (p: p.name == jarName) null cljdeps.packages).path.jar; -in stdenv.mkDerivation { + getJarPath = jarName: (lib.findFirst (p: p.name == jarName) null cljdeps.packages).path.jar; +in +stdenv.mkDerivation { inherit version; pname = "lumo"; - src = fetchurl { - url = "https://github.com/anmonteiro/lumo/archive/${version}.tar.gz"; - sha256 = "1mr3zjslznhv7y3mzvg1pmmvzn10d6di26izz4x8p4nfnshacwgw"; + src = fetchgit { + url = "https://github.com/anmonteiro/lumo.git"; + rev = "${version}"; + sha256 = "12agi6bacqic2wq6q3l28283badzamspajmajzqm7fbdl2aq1a4p"; }; + buildInputs = [ + nodejs + clojure + jre + unzip + python + openssl + gnutar + nodePackages."lumo-build-deps-../interpreters/clojurescript/lumo" + ] + ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ + ApplicationServices + xcbuild + ] + ); - buildInputs = [ nodejs clojure jre unzip python openssl - nodePackages."lumo-build-deps-../interpreters/clojurescript/lumo" ]; + patches = [ ./no_mangle.patch ./mkdir_promise.patch ]; + + postPatch = '' + substituteInPlace $NIX_BUILD_TOP/lumo/vendor/nexe/exe.js \ + --replace 'glob.sync(dir + "/*")' 'glob.sync(dir + "/../*")' + ''; buildPhase = '' - # Copy over lumo-build-deps environment + # Copy over lumo-build-deps environment rm yarn.lock cp -rf ${nodePackages."lumo-build-deps-../interpreters/clojurescript/lumo"}/lib/node_modules/lumo-build-deps/* ./ # configure clojure-cli mkdir ./.cpcache export CLJ_CONFIG=`pwd` - export CLJ_CACHE=`pwd`/.cpcache + export CLJ_CACHE=`pwd`/.cpcache # require more namespaces for cljs-bundle sed -i "s!ns lumo.core! \ @@ -155,7 +188,7 @@ in stdenv.mkDerivation { (:require ${requireDeps}) \ (:require-macros [clojure.template :as temp] \ [cljs.test :as test])!g" \ - ./src/cljs/snapshot/lumo/core.cljs + ./src/cljs/snapshot/lumo/core.cljs # Step 1: compile clojurescript with :none and :simple ${clojure}/bin/clojure -Scp ${classp} -e "${compileClojurescript true}" @@ -204,10 +237,13 @@ in stdenv.mkDerivation { # Step 3: generate munged cache jsons ${clojure}/bin/clojure -Scp ${classp} -e "${cacheToJsons}" rm ./target/cljs/core\$macros\.cljc\.cache\.json - + # Step 4: Bunde javascript +echo 1111 +cat scripts/bundle.js NODE_ENV=production node scripts/bundle.js +echo 2222 node scripts/bundleForeign.js # Step 5: Backup resources @@ -215,21 +251,20 @@ in stdenv.mkDerivation { # Step 6: Package executeable 1st time # fetch node sources and copy to palce that nexe will find - mkdir -p tmp/${nodeVersion} - cp ${nodeSources} tmp/${nodeVersion}/node-${nodeVersion}.tar.gz - tar -C ./tmp/${nodeVersion} -xf ${nodeSources} - mv ./tmp/${nodeVersion}/node-v${nodeVersion}/* ./tmp/${nodeVersion}/ + mkdir -p tmp/node/${nodeVersion} + cp ${nodeSources} tmp/node/${nodeVersion}/node-${nodeVersion}.tar.gz + tar -C ./tmp/node/${nodeVersion} -xf ${nodeSources} --warning=no-unknown-keyword + mv ./tmp/node/${nodeVersion}/node-v${nodeVersion}/* ./tmp/node/${nodeVersion}/ rm -rf ${lumo-internal-classpath} - mv target ${lumo-internal-classpath} + cp -rf target ${lumo-internal-classpath} node scripts/package.js ${nodeVersion} - rm -rf ${lumo-internal-classpath} + rm -rf target + mv ${lumo-internal-classpath} target # Step 7: AOT Macros sh scripts/aot-bundle-macros.sh # Step 8: Package executeable 2nd time - rm -rf ${lumo-internal-classpath} - mv target ${lumo-internal-classpath} node scripts/package.js ${nodeVersion} ''; @@ -250,7 +285,6 @@ in stdenv.mkDerivation { homepage = https://github.com/anmonteiro/lumo; license = stdenv.lib.licenses.epl10; maintainers = [ stdenv.lib.maintainers.hlolli ]; - platforms = stdenv.lib.platforms.linux; + platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin; }; } - diff --git a/pkgs/development/interpreters/clojurescript/lumo/deps.edn b/pkgs/development/interpreters/clojurescript/lumo/deps.edn index e1563599a8c..7a2faee1d7a 100644 --- a/pkgs/development/interpreters/clojurescript/lumo/deps.edn +++ b/pkgs/development/interpreters/clojurescript/lumo/deps.edn @@ -1,12 +1,12 @@ {:deps - {org.clojure/clojure {:mvn/version "1.10.0-beta5"} - org.clojure/clojurescript {:mvn/version "1.10.439"} - org.clojure/test.check {:mvn/version "0.10.0-alpha3"} + {org.clojure/clojure {:mvn/version "1.10.1"} + org.clojure/clojurescript {:mvn/version "1.10.520"} + org.clojure/test.check {:mvn/version "0.10.0-alpha4"} org.clojure/tools.reader {:mvn/version "1.3.2" :exclusions [org.clojure/clojure org.clojure/clojurescript]} com.cognitect/transit-cljs {:mvn/version "0.8.256" :exclusions [org.clojure/clojure org.clojure/clojurescript]} malabarba/lazy-map {:mvn/version "1.3" :exclusions [org.clojure/clojure org.clojure/clojurescript]} - fipp {:mvn/version "0.6.14" + fipp {:mvn/version "0.6.17" :exclusions [org.clojure/clojure org.clojure/clojurescript]}}} diff --git a/pkgs/development/interpreters/clojurescript/lumo/deps.nix b/pkgs/development/interpreters/clojurescript/lumo/deps.nix index 3e53c7f98dd..4f3beff3b81 100644 --- a/pkgs/development/interpreters/clojurescript/lumo/deps.nix +++ b/pkgs/development/interpreters/clojurescript/lumo/deps.nix @@ -1,241 +1,240 @@ -# generated by clj2nix-1.0.3 +# generated by clj2nix-1.0.4 { pkgs }: - let repos = [ - "https://repo.clojars.org/" - "https://repo1.maven.org/" - "http://central.maven.org/maven2/" - "http://oss.sonatype.org/content/repositories/releases/" - "http://oss.sonatype.org/content/repositories/public/" - "http://repo.typesafe.com/typesafe/releases/" - ]; - - in rec { - makePaths = {extraClasspaths ? []}: (builtins.map (dep: if builtins.hasAttr "jar" dep.path then dep.path.jar else dep.path) packages) ++ extraClasspaths; - makeClasspaths = {extraClasspaths ? []}: builtins.concatStringsSep ":" (makePaths {inherit extraClasspaths;}); - - packages = [ - { - name = "com.cognitect/transit-java"; - path = pkgs.fetchMavenArtifact { - inherit repos; - artifactId = "transit-java"; - groupId = "com.cognitect"; - sha512 = "80365a4f244e052b6c4fdfd2fd3b91288835599cb4dd88e0e0dae19883dcda39afee83966810ed81beff342111c3a45a66f5601c443f3ad49904908c43631708"; - version = "0.8.332"; - }; - } - - { - name = "org.clojure/data.json"; - path = pkgs.fetchMavenArtifact { - inherit repos; - artifactId = "data.json"; - groupId = "org.clojure"; - sha512 = "ce526bef01bedd31b772954d921a61832ae60af06121f29080853f7932326438b33d183240a9cffbe57e00dc3744700220753948da26b8973ee21c30e84227a6"; - version = "0.2.6"; - }; - } - - { - name = "org.clojure/clojure"; - path = pkgs.fetchMavenArtifact { - inherit repos; - artifactId = "clojure"; - groupId = "org.clojure"; - sha512 = "f7a6b207b1bcbb6523d32ecfdd3c8c25d4d0b0a59c78baf06cdc69ba3c21c5e96b5dac8e9efcb331efd94e10bccbb9b54fca62a4312309db65a1f9d89d9da3f4"; - version = "1.10.0-beta5"; - }; - } - - { - name = "commons-codec/commons-codec"; - path = pkgs.fetchMavenArtifact { - inherit repos; - artifactId = "commons-codec"; - groupId = "commons-codec"; - sha512 = "8edecc0faf38e8620460909d8191837f34e2bb2ce853677c486c5e79bb79e88d043c3aed69c11f1365c4884827052ee4e1c18ca56e38d1a5bc0ce15c57daeee3"; - version = "1.10"; - }; - } - - { - name = "com.google.errorprone/error_prone_annotations"; - path = pkgs.fetchMavenArtifact { - inherit repos; - artifactId = "error_prone_annotations"; - groupId = "com.google.errorprone"; - sha512 = "bd2135cc9eb2c652658a2814ec9c565fa3e071d4cff590cbe17b853885c78c9f84c1b7b24ba736f4f30ed8cec60a6af983827fcbed61ff142f27ac808e97fc6b"; - version = "2.1.3"; - }; - } - - { - name = "org.clojure/core.specs.alpha"; - path = pkgs.fetchMavenArtifact { - inherit repos; - artifactId = "core.specs.alpha"; - groupId = "org.clojure"; - sha512 = "348c0ea0911bc0dcb08655e61b97ba040649b4b46c32a62aa84d0c29c245a8af5c16d44a4fa5455d6ab076f4bb5bbbe1ad3064a7befe583f13aeb9e32a169bf4"; - version = "0.2.44"; - }; - } - - { - name = "org.clojure/spec.alpha"; - path = pkgs.fetchMavenArtifact { - inherit repos; - artifactId = "spec.alpha"; - groupId = "org.clojure"; - sha512 = "18c97fb2b74c0bc2ff4f6dc722a3edec539f882ee85d0addf22bbf7e6fe02605d63f40c2b8a2905868ccd6f96cfc36a65f5fb70ddac31c6ec93da228a456edbd"; - version = "0.2.176"; - }; - } - - { - name = "org.codehaus.mojo/animal-sniffer-annotations"; - path = pkgs.fetchMavenArtifact { - inherit repos; - artifactId = "animal-sniffer-annotations"; - groupId = "org.codehaus.mojo"; - sha512 = "9e5e3ea9e06e0ac9463869fd0e08ed38f7042784995a7b50c9bfd7f692a53f0e1430b9e1367dc772d0d4eafe5fd2beabbcc60da5008bd792f9e7ec8436c0f136"; - version = "1.14"; - }; - } - - { - name = "com.googlecode.json-simple/json-simple"; - path = pkgs.fetchMavenArtifact { - inherit repos; - artifactId = "json-simple"; - groupId = "com.googlecode.json-simple"; - sha512 = "f8798bfbcc8ab8001baf90ce47ec2264234dc1da2d4aa97fdcdc0990472a6b5a5a32f828e776140777d598a99d8a0c0f51c6d0767ae1a829690ab9200ae35742"; - version = "1.1.1"; - }; - } - - { - name = "com.cognitect/transit-cljs"; - path = pkgs.fetchMavenArtifact { - inherit repos; - artifactId = "transit-cljs"; - groupId = "com.cognitect"; - sha512 = "318b98ddd63629f37b334bb90e625bc31ab6abcf0b1fa80d8e097551658f2d9219b5ee35869a31f2976d7d385da83bea0c07b0d097babcae241ecbd0fe8a7ecd"; - version = "0.8.256"; - }; - } - - { - name = "org.clojure/google-closure-library"; - path = pkgs.fetchMavenArtifact { - inherit repos; - artifactId = "google-closure-library"; - groupId = "org.clojure"; - sha512 = "75631182ef12f21723fe3eba1003d8cf9b8348a51512961e4e1b87bc24d8f3abb14a70c856f08cdaa5588a2d7c2b1b0c03aeaa3c4c5f2ed745a85f59ceeab83a"; - version = "0.0-20170809-b9c14c6b"; - }; - } - - { - name = "fipp"; - path = pkgs.fetchMavenArtifact { - inherit repos; - artifactId = "fipp"; - groupId = "fipp"; - sha512 = "155b5bb7045ac7c3a75c638e65464ca1fc90e5b4692328fc2da73b26792178fdbce5ab01ba0397e1986b6162b06b8904712d2c366f32ea43ea5fa2b454a526a5"; - version = "0.6.14"; - }; - } - - { - name = "org.clojure/clojurescript"; - path = pkgs.fetchMavenArtifact { - inherit repos; - artifactId = "clojurescript"; - groupId = "org.clojure"; - sha512 = "4aec5abdd48aaf95f7a729e11d225a99d02caa3a4ddff3e9e4f8db80dea83ab70a4440691cb372562c8c16e73c2850b22806a2851df3849c852fddd49b57fc58"; - version = "1.10.439"; - }; - } - - { - name = "com.google.jsinterop/jsinterop-annotations"; - path = pkgs.fetchMavenArtifact { - inherit repos; - artifactId = "jsinterop-annotations"; - groupId = "com.google.jsinterop"; - sha512 = "b6fd98a9167d031f6bff571567d4658fda62c132dc74d47ca85e02c9bb3ce8812b1012c67f4c81501ab0cbd9ccd9cda5dcf32d306e04368ace7a173cecae975d"; - version = "1.0.0"; - }; - } - - { - name = "com.fasterxml.jackson.core/jackson-core"; - path = pkgs.fetchMavenArtifact { - inherit repos; - artifactId = "jackson-core"; - groupId = "com.fasterxml.jackson.core"; - sha512 = "a1bd6c264b9ab07aad3d0f26b65757e35ff47904ab895bb7f997e3e1fd063129c177ad6f69876907b04ff8a43c6b1770a26f53a811633a29e66a5dce57194f64"; - version = "2.8.7"; - }; - } - - { - name = "malabarba/lazy-map"; - path = pkgs.fetchMavenArtifact { - inherit repos; - artifactId = "lazy-map"; - groupId = "malabarba"; - sha512 = "ce56d6f03ac344579e15f062cdd4c477c0323da716d4d4106c4edb746959699e0b294b25aacf8ecf1579a6bdd5556a60f4bcb1648d22832984c069a0431c840f"; - version = "1.3"; - }; - } - - { - name = "com.cognitect/transit-js"; - path = pkgs.fetchMavenArtifact { - inherit repos; - artifactId = "transit-js"; - groupId = "com.cognitect"; - sha512 = "6ca0978e633e41b45ff5a76df79099ba7c4900a8ca9f6acd2a903e4ab10a1ec0c83d4127009df9dac1337debaba01f7ff1d5cced1c2159c05ef94845f73f0623"; - version = "0.8.846"; - }; - } - - { - name = "org.mozilla/rhino"; - path = pkgs.fetchMavenArtifact { - inherit repos; - artifactId = "rhino"; - groupId = "org.mozilla"; - sha512 = "466e7a76303ea191802b5e7adb3dff64c1d6283a25ce87447296b693b87b166f4cdd191ef7dc130a5739bfa0e4a81b08550f607c84eec167406d9be2225562dc"; - version = "1.7R5"; - }; - } - - { - name = "org.clojure/google-closure-library-third-party"; - path = pkgs.fetchMavenArtifact { - inherit repos; - artifactId = "google-closure-library-third-party"; - groupId = "org.clojure"; - sha512 = "57fa84fbbca3eb9e612d2842e4476b74f64d13dd076ffca6c9d9e15c4ca8a2f2c56cc19307bcad0ab5b4f9cb0c3e7900ccc845bd570ebc92e2633885ab621f35"; - version = "0.0-20170809-b9c14c6b"; - }; - } - - { - name = "com.google.javascript/closure-compiler-externs"; - path = pkgs.fetchMavenArtifact { - inherit repos; - artifactId = "closure-compiler-externs"; - groupId = "com.google.javascript"; - sha512 = "1a47c8559144095c0b23a8e40acd7185625cea5a4c103eb75fbacd32d5809d087bfb60aaf57066329649c6017ec5f993756024e767a5b8f84926371ba6183a82"; - version = "v20180805"; - }; - } - - { +let repos = [ + "https://repo.clojars.org/" + "https://repo1.maven.org/" + "http://oss.sonatype.org/content/repositories/releases/" + "http://oss.sonatype.org/content/repositories/public/" + "http://repo.typesafe.com/typesafe/releases/" + ]; + +in rec { + makePaths = {extraClasspaths ? []}: (builtins.map (dep: if builtins.hasAttr "jar" dep.path then dep.path.jar else dep.path) packages) ++ extraClasspaths; + makeClasspaths = {extraClasspaths ? []}: builtins.concatStringsSep ":" (makePaths {inherit extraClasspaths;}); + + packages = [ + { + name = "com.cognitect/transit-java"; + path = pkgs.fetchMavenArtifact { + inherit repos; + artifactId = "transit-java"; + groupId = "com.cognitect"; + sha512 = "80365a4f244e052b6c4fdfd2fd3b91288835599cb4dd88e0e0dae19883dcda39afee83966810ed81beff342111c3a45a66f5601c443f3ad49904908c43631708"; + version = "0.8.332"; + }; + } + + { + name = "org.clojure/data.json"; + path = pkgs.fetchMavenArtifact { + inherit repos; + artifactId = "data.json"; + groupId = "org.clojure"; + sha512 = "ce526bef01bedd31b772954d921a61832ae60af06121f29080853f7932326438b33d183240a9cffbe57e00dc3744700220753948da26b8973ee21c30e84227a6"; + version = "0.2.6"; + }; + } + + { + name = "org.clojure/clojure"; + path = pkgs.fetchMavenArtifact { + inherit repos; + artifactId = "clojure"; + groupId = "org.clojure"; + sha512 = "f28178179483531862afae13e246386f8fda081afa523d3c4ea3a083ab607d23575d38ecb9ec0ee7f4d65cbe39a119f680e6de4669bc9cf593aa92be0c61562b"; + version = "1.10.1"; + }; + } + + { + name = "commons-codec/commons-codec"; + path = pkgs.fetchMavenArtifact { + inherit repos; + artifactId = "commons-codec"; + groupId = "commons-codec"; + sha512 = "8edecc0faf38e8620460909d8191837f34e2bb2ce853677c486c5e79bb79e88d043c3aed69c11f1365c4884827052ee4e1c18ca56e38d1a5bc0ce15c57daeee3"; + version = "1.10"; + }; + } + + { + name = "com.google.errorprone/error_prone_annotations"; + path = pkgs.fetchMavenArtifact { + inherit repos; + artifactId = "error_prone_annotations"; + groupId = "com.google.errorprone"; + sha512 = "bd2135cc9eb2c652658a2814ec9c565fa3e071d4cff590cbe17b853885c78c9f84c1b7b24ba736f4f30ed8cec60a6af983827fcbed61ff142f27ac808e97fc6b"; + version = "2.1.3"; + }; + } + + { + name = "org.clojure/core.specs.alpha"; + path = pkgs.fetchMavenArtifact { + inherit repos; + artifactId = "core.specs.alpha"; + groupId = "org.clojure"; + sha512 = "348c0ea0911bc0dcb08655e61b97ba040649b4b46c32a62aa84d0c29c245a8af5c16d44a4fa5455d6ab076f4bb5bbbe1ad3064a7befe583f13aeb9e32a169bf4"; + version = "0.2.44"; + }; + } + + { + name = "org.clojure/spec.alpha"; + path = pkgs.fetchMavenArtifact { + inherit repos; + artifactId = "spec.alpha"; + groupId = "org.clojure"; + sha512 = "18c97fb2b74c0bc2ff4f6dc722a3edec539f882ee85d0addf22bbf7e6fe02605d63f40c2b8a2905868ccd6f96cfc36a65f5fb70ddac31c6ec93da228a456edbd"; + version = "0.2.176"; + }; + } + + { + name = "org.codehaus.mojo/animal-sniffer-annotations"; + path = pkgs.fetchMavenArtifact { + inherit repos; + artifactId = "animal-sniffer-annotations"; + groupId = "org.codehaus.mojo"; + sha512 = "9e5e3ea9e06e0ac9463869fd0e08ed38f7042784995a7b50c9bfd7f692a53f0e1430b9e1367dc772d0d4eafe5fd2beabbcc60da5008bd792f9e7ec8436c0f136"; + version = "1.14"; + }; + } + + { + name = "com.googlecode.json-simple/json-simple"; + path = pkgs.fetchMavenArtifact { + inherit repos; + artifactId = "json-simple"; + groupId = "com.googlecode.json-simple"; + sha512 = "f8798bfbcc8ab8001baf90ce47ec2264234dc1da2d4aa97fdcdc0990472a6b5a5a32f828e776140777d598a99d8a0c0f51c6d0767ae1a829690ab9200ae35742"; + version = "1.1.1"; + }; + } + + { + name = "com.cognitect/transit-cljs"; + path = pkgs.fetchMavenArtifact { + inherit repos; + artifactId = "transit-cljs"; + groupId = "com.cognitect"; + sha512 = "318b98ddd63629f37b334bb90e625bc31ab6abcf0b1fa80d8e097551658f2d9219b5ee35869a31f2976d7d385da83bea0c07b0d097babcae241ecbd0fe8a7ecd"; + version = "0.8.256"; + }; + } + + { + name = "org.clojure/google-closure-library"; + path = pkgs.fetchMavenArtifact { + inherit repos; + artifactId = "google-closure-library"; + groupId = "org.clojure"; + sha512 = "75631182ef12f21723fe3eba1003d8cf9b8348a51512961e4e1b87bc24d8f3abb14a70c856f08cdaa5588a2d7c2b1b0c03aeaa3c4c5f2ed745a85f59ceeab83a"; + version = "0.0-20170809-b9c14c6b"; + }; + } + + { + name = "fipp"; + path = pkgs.fetchMavenArtifact { + inherit repos; + artifactId = "fipp"; + groupId = "fipp"; + sha512 = "d844ab63d28cb5e31657cc38e574bbc7072a78419c997f25445ac6ea4a719904a4f4844b37e3f664a8d2e49bd38ff1006a9e8c6e63fb4e2f0a2322d6c2638275"; + version = "0.6.17"; + }; + } + + { + name = "org.clojure/clojurescript"; + path = pkgs.fetchMavenArtifact { + inherit repos; + artifactId = "clojurescript"; + groupId = "org.clojure"; + sha512 = "b241959d6bd2ab659920965d301508226e26b3edcee469e4cd516cd4ed014b1a6b132c17ee7d96a8e66fe27fd01a74813ac8b85958d260f9fdbbeb4348d57ff1"; + version = "1.10.520"; + }; + } + + { + name = "com.google.jsinterop/jsinterop-annotations"; + path = pkgs.fetchMavenArtifact { + inherit repos; + artifactId = "jsinterop-annotations"; + groupId = "com.google.jsinterop"; + sha512 = "b6fd98a9167d031f6bff571567d4658fda62c132dc74d47ca85e02c9bb3ce8812b1012c67f4c81501ab0cbd9ccd9cda5dcf32d306e04368ace7a173cecae975d"; + version = "1.0.0"; + }; + } + + { + name = "com.fasterxml.jackson.core/jackson-core"; + path = pkgs.fetchMavenArtifact { + inherit repos; + artifactId = "jackson-core"; + groupId = "com.fasterxml.jackson.core"; + sha512 = "a1bd6c264b9ab07aad3d0f26b65757e35ff47904ab895bb7f997e3e1fd063129c177ad6f69876907b04ff8a43c6b1770a26f53a811633a29e66a5dce57194f64"; + version = "2.8.7"; + }; + } + + { + name = "malabarba/lazy-map"; + path = pkgs.fetchMavenArtifact { + inherit repos; + artifactId = "lazy-map"; + groupId = "malabarba"; + sha512 = "ce56d6f03ac344579e15f062cdd4c477c0323da716d4d4106c4edb746959699e0b294b25aacf8ecf1579a6bdd5556a60f4bcb1648d22832984c069a0431c840f"; + version = "1.3"; + }; + } + + { + name = "com.cognitect/transit-js"; + path = pkgs.fetchMavenArtifact { + inherit repos; + artifactId = "transit-js"; + groupId = "com.cognitect"; + sha512 = "6ca0978e633e41b45ff5a76df79099ba7c4900a8ca9f6acd2a903e4ab10a1ec0c83d4127009df9dac1337debaba01f7ff1d5cced1c2159c05ef94845f73f0623"; + version = "0.8.846"; + }; + } + + { + name = "org.mozilla/rhino"; + path = pkgs.fetchMavenArtifact { + inherit repos; + artifactId = "rhino"; + groupId = "org.mozilla"; + sha512 = "466e7a76303ea191802b5e7adb3dff64c1d6283a25ce87447296b693b87b166f4cdd191ef7dc130a5739bfa0e4a81b08550f607c84eec167406d9be2225562dc"; + version = "1.7R5"; + }; + } + + { + name = "org.clojure/google-closure-library-third-party"; + path = pkgs.fetchMavenArtifact { + inherit repos; + artifactId = "google-closure-library-third-party"; + groupId = "org.clojure"; + sha512 = "57fa84fbbca3eb9e612d2842e4476b74f64d13dd076ffca6c9d9e15c4ca8a2f2c56cc19307bcad0ab5b4f9cb0c3e7900ccc845bd570ebc92e2633885ab621f35"; + version = "0.0-20170809-b9c14c6b"; + }; + } + + { + name = "com.google.javascript/closure-compiler-externs"; + path = pkgs.fetchMavenArtifact { + inherit repos; + artifactId = "closure-compiler-externs"; + groupId = "com.google.javascript"; + sha512 = "1a47c8559144095c0b23a8e40acd7185625cea5a4c103eb75fbacd32d5809d087bfb60aaf57066329649c6017ec5f993756024e767a5b8f84926371ba6183a82"; + version = "v20180805"; + }; + } + + { name = "org.javassist/javassist"; path = pkgs.fetchMavenArtifact { inherit repos; @@ -307,8 +306,8 @@ inherit repos; artifactId = "core.rrb-vector"; groupId = "org.clojure"; - sha512 = "5f737bf3ca3acf567b2b5c14b5761c8c38e94e1f6168f8cba9f46d2ae41334ae3d68d2c00663827a6214094d96b9767f6803f66ab44b0012c6f2e3c2997b1796"; - version = "0.0.13"; + sha512 = "4e410c4a90a869e98d5d69a8a6dd6427e9d77b70e1a2b54cf24baf23389f22e7a208375783c2fdc5c1a5acfb8511a5c5ed57ad1a946d5bffd203f453d90a6155"; + version = "0.0.14"; }; } @@ -351,8 +350,8 @@ inherit repos; artifactId = "test.check"; groupId = "org.clojure"; - sha512 = "bf57571a9d31d50cf15b38134f4d7c34d03eb458bc62b30c7a1dbf233e300c67f1fda6673dbd1584a0497cf8875f972e6697e7f13d0c3e70e4254697b1b75cc6"; - version = "0.10.0-alpha3"; + sha512 = "60fa3bd38c32cf193c573f1bd47c6abd7e7a5bb2fc7f7f9f97aa9dcd54d5e2eab9e351f5f83b01bb96b32811a9f2f5ab384c6b7b7ebbb6c86d1ad4f2789351bf"; + version = "0.10.0-alpha4"; }; } diff --git a/pkgs/development/interpreters/clojurescript/lumo/mkdir_promise.patch b/pkgs/development/interpreters/clojurescript/lumo/mkdir_promise.patch new file mode 100644 index 00000000000..e9504bb5c1a --- /dev/null +++ b/pkgs/development/interpreters/clojurescript/lumo/mkdir_promise.patch @@ -0,0 +1,20 @@ +diff --git a/vendor/nexe/exe.js b/vendor/nexe/exe.js +index 21e78bb..ecbfca4 100644 +--- a/vendor/nexe/exe.js ++++ b/vendor/nexe/exe.js +@@ -254,9 +254,7 @@ return initModule._compile(${JSON.stringify(source)}, process.execPath); + */ + + function makeOutputDirectory(next) { +- mkdirp(path.dirname(options.output), function() { +- next(); +- }); ++ mkdirp(path.dirname(options.output)).then(() => next()); + }, + + /** +@@ -1107,4 +1105,3 @@ exports.package = function(path, options) { + + return obj; + } +- diff --git a/pkgs/development/interpreters/clojurescript/lumo/no_mangle.patch b/pkgs/development/interpreters/clojurescript/lumo/no_mangle.patch new file mode 100644 index 00000000000..9af22341195 --- /dev/null +++ b/pkgs/development/interpreters/clojurescript/lumo/no_mangle.patch @@ -0,0 +1,13 @@ +diff --git a/scripts/bundle.js b/scripts/bundle.js +index 16425a4..0d510fc 100644 +--- a/scripts/bundle.js ++++ b/scripts/bundle.js +@@ -73,6 +73,8 @@ const plugins = [ + if (!isDevBuild) { + plugins.push( + babelMinify({ ++ evaluate: false, ++ mangle: false, + comments: false, + removeConsole: true, + removeDebugger: true, diff --git a/pkgs/development/interpreters/clojurescript/lumo/package.json b/pkgs/development/interpreters/clojurescript/lumo/package.json index cfffdc890d1..6ab3f9616c7 100644 --- a/pkgs/development/interpreters/clojurescript/lumo/package.json +++ b/pkgs/development/interpreters/clojurescript/lumo/package.json @@ -1,40 +1,49 @@ { "name": "lumo-build-deps", - "version": "1.9.0", + "version": "1.10.1", "dependencies": { "@babel/core": "^7.1.5", - "@babel/plugin-external-helpers": "7.0.0", + "@babel/plugin-external-helpers": "7.8.3", "@babel/plugin-proposal-class-properties": "^7.1.0", "@babel/plugin-proposal-object-rest-spread": "^7.0.0", "@babel/plugin-transform-runtime": "^7.1.0", "@babel/preset-env": "^7.1.5", - "@babel/preset-stage-2": "7.0.0", + "@babel/preset-stage-2": "7.8.3", "@babel/runtime": "^7.1.5", + "async": "^3.1.1", "async-retry": "^1.2.3", "babel-core": "^7.0.0-bridge.0", - "babel-eslint": "10.0.1", - "babel-jest": "^23.6.0", + "babel-eslint": "10.0.3", + "babel-jest": "^25.1.0", "babel-loader": "^8.0.4", "babel-plugin-transform-flow-strip-types": "6.22.0", - "chalk": "^2.4.1", - "cross-env": "5.2.0", + "browserify": "^16.2.3", + "chalk": "^3.0.0", + "colors": "^1.3.3", + "cross-env": "7.0.0", "death": "^1.1.0", - "flow-bin": "0.85.0", + "flow-bin": "0.118.0", "google-closure-compiler-js": "20170910.0.1", + "glob": "^7.1.3", + "gunzip-maybe": "^1.4.1", + "insert-module-globals": "^7.2.0", "jszip": "github:anmonteiro/jszip#patch-1", - "nexe": "3.0.0-beta.7", + "mkdirp": "^1.0.3", + "ncp": "^2.0.0", "node-fetch": "^2.2.1", - "paredit.js": "0.3.4", + "paredit.js": "0.3.6", "posix-getopt": "github:anmonteiro/node-getopt#master", - "prettier": "1.15.1", + "prettier": "1.19.1", "progress": "^2.0.0", - "read-pkg": "^4.0.1", - "rollup": "0.67.0", - "rollup-plugin-babel": "4.0.3", - "rollup-plugin-babel-minify": "6.1.1", - "rollup-plugin-commonjs": "9.2.0", - "rollup-plugin-node-resolve": "3.4.0", - "rollup-plugin-replace": "2.1.0", + "read-pkg": "^5.2.0", + "request": "^2.88.0", + "rollup": "^1.9.0", + "rollup-plugin-babel": "^4.3.2", + "rollup-plugin-babel-minify": "^9.1.1", + "rollup-plugin-commonjs": "^10.0.0", + "rollup-plugin-node-resolve": "^5.0.0", + "rollup-plugin-replace": "^2.1.1", + "tar-stream": "^2.0.1", "webpack": "^4.25.1", "webpack-cli": "^3.2.3", "which-promise": "^1.0.0" |