lumo 1.9.0 -> 1.10.1 plus darwin support

This commit is contained in:
hlolli 2020-02-19 23:16:40 +01:00
parent 43a775649c
commit ef712ff2f5
No known key found for this signature in database
GPG Key ID: 4B0F0A72A77F2CED
9 changed files with 1465 additions and 1376 deletions

View File

@ -1,13 +1,25 @@
{ stdenv, lib, fetchurl, clojure, { stdenv
nodejs, jre, unzip, nodePackages, , lib
python, openssl, pkgs }: , fetchurl
, clojure
let # packageJSON=./package.json; , gnutar
version = "1.9.0"; , nodejs
nodeVersion = "10.9.0"; , jre
, unzip
, nodePackages
, xcbuild
, python
, openssl
, pkgs
, fetchgit
, darwin
}:
let
version = "1.10.1";
nodeVersion = "11.13.0";
nodeSources = fetchurl { nodeSources = fetchurl {
url="https://nodejs.org/dist/v${nodeVersion}/node-v${nodeVersion}.tar.gz"; url = "https://nodejs.org/dist/v${nodeVersion}/node-v${nodeVersion}.tar.gz";
sha256="0wgawq3wzw07pir73bxz13dggcc1fj0538y7y69n3cc0a2kiplqy"; sha256 = "1cjzjbshxnysxkvbf41p3m8298cnhs9kfvdczgvvvlp6w16x4aac";
}; };
lumo-internal-classpath = "LUMO__INTERNAL__CLASSPATH"; lumo-internal-classpath = "LUMO__INTERNAL__CLASSPATH";
@ -78,7 +90,8 @@ let # packageJSON=./package.json;
:output-to ${if simple :output-to ${if simple
then ''\"cljstmp/main.js\"'' then ''\"cljstmp/main.js\"''
else ''\"target/deleteme.js\"'' }}) else ''\"target/deleteme.js\"'' }})
''); ''
);
cacheToJsons = '' cacheToJsons = ''
@ -120,24 +133,44 @@ let # packageJSON=./package.json;
cljdeps = import ./deps.nix { inherit pkgs; }; cljdeps = import ./deps.nix { inherit pkgs; };
classp = cljdeps.makeClasspaths { classp = cljdeps.makeClasspaths {
extraClasspaths=["src/js" "src/cljs/bundled" "src/cljs/snapshot"]; extraClasspaths = [ "src/js" "src/cljs/bundled" "src/cljs/snapshot" ];
}; };
getJarPath = jarName: (lib.findFirst (p: p.name == jarName) null cljdeps.packages).path.jar; getJarPath = jarName: (lib.findFirst (p: p.name == jarName) null cljdeps.packages).path.jar;
in
in stdenv.mkDerivation { stdenv.mkDerivation {
inherit version; inherit version;
pname = "lumo"; pname = "lumo";
src = fetchurl { src = fetchgit {
url = "https://github.com/anmonteiro/lumo/archive/${version}.tar.gz"; url = "https://github.com/anmonteiro/lumo.git";
sha256 = "1mr3zjslznhv7y3mzvg1pmmvzn10d6di26izz4x8p4nfnshacwgw"; 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 patches = [ ./no_mangle.patch ./mkdir_promise.patch ];
nodePackages."lumo-build-deps-../interpreters/clojurescript/lumo" ];
postPatch = ''
substituteInPlace $NIX_BUILD_TOP/lumo/vendor/nexe/exe.js \
--replace 'glob.sync(dir + "/*")' 'glob.sync(dir + "/../*")'
'';
buildPhase = '' buildPhase = ''
# Copy over lumo-build-deps environment # Copy over lumo-build-deps environment
@ -207,7 +240,10 @@ in stdenv.mkDerivation {
# Step 4: Bunde javascript # Step 4: Bunde javascript
echo 1111
cat scripts/bundle.js
NODE_ENV=production node scripts/bundle.js NODE_ENV=production node scripts/bundle.js
echo 2222
node scripts/bundleForeign.js node scripts/bundleForeign.js
# Step 5: Backup resources # Step 5: Backup resources
@ -215,21 +251,20 @@ in stdenv.mkDerivation {
# Step 6: Package executeable 1st time # Step 6: Package executeable 1st time
# fetch node sources and copy to palce that nexe will find # fetch node sources and copy to palce that nexe will find
mkdir -p tmp/${nodeVersion} mkdir -p tmp/node/${nodeVersion}
cp ${nodeSources} tmp/${nodeVersion}/node-${nodeVersion}.tar.gz cp ${nodeSources} tmp/node/${nodeVersion}/node-${nodeVersion}.tar.gz
tar -C ./tmp/${nodeVersion} -xf ${nodeSources} tar -C ./tmp/node/${nodeVersion} -xf ${nodeSources} --warning=no-unknown-keyword
mv ./tmp/${nodeVersion}/node-v${nodeVersion}/* ./tmp/${nodeVersion}/ mv ./tmp/node/${nodeVersion}/node-v${nodeVersion}/* ./tmp/node/${nodeVersion}/
rm -rf ${lumo-internal-classpath} rm -rf ${lumo-internal-classpath}
mv target ${lumo-internal-classpath} cp -rf target ${lumo-internal-classpath}
node scripts/package.js ${nodeVersion} node scripts/package.js ${nodeVersion}
rm -rf ${lumo-internal-classpath} rm -rf target
mv ${lumo-internal-classpath} target
# Step 7: AOT Macros # Step 7: AOT Macros
sh scripts/aot-bundle-macros.sh sh scripts/aot-bundle-macros.sh
# Step 8: Package executeable 2nd time # Step 8: Package executeable 2nd time
rm -rf ${lumo-internal-classpath}
mv target ${lumo-internal-classpath}
node scripts/package.js ${nodeVersion} node scripts/package.js ${nodeVersion}
''; '';
@ -250,7 +285,6 @@ in stdenv.mkDerivation {
homepage = https://github.com/anmonteiro/lumo; homepage = https://github.com/anmonteiro/lumo;
license = stdenv.lib.licenses.epl10; license = stdenv.lib.licenses.epl10;
maintainers = [ stdenv.lib.maintainers.hlolli ]; maintainers = [ stdenv.lib.maintainers.hlolli ];
platforms = stdenv.lib.platforms.linux; platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin;
}; };
} }

View File

@ -1,12 +1,12 @@
{:deps {:deps
{org.clojure/clojure {:mvn/version "1.10.0-beta5"} {org.clojure/clojure {:mvn/version "1.10.1"}
org.clojure/clojurescript {:mvn/version "1.10.439"} org.clojure/clojurescript {:mvn/version "1.10.520"}
org.clojure/test.check {:mvn/version "0.10.0-alpha3"} org.clojure/test.check {:mvn/version "0.10.0-alpha4"}
org.clojure/tools.reader {:mvn/version "1.3.2" org.clojure/tools.reader {:mvn/version "1.3.2"
:exclusions [org.clojure/clojure org.clojure/clojurescript]} :exclusions [org.clojure/clojure org.clojure/clojurescript]}
com.cognitect/transit-cljs {:mvn/version "0.8.256" com.cognitect/transit-cljs {:mvn/version "0.8.256"
:exclusions [org.clojure/clojure org.clojure/clojurescript]} :exclusions [org.clojure/clojure org.clojure/clojurescript]}
malabarba/lazy-map {:mvn/version "1.3" malabarba/lazy-map {:mvn/version "1.3"
:exclusions [org.clojure/clojure org.clojure/clojurescript]} :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]}}} :exclusions [org.clojure/clojure org.clojure/clojurescript]}}}

View File

@ -1,16 +1,15 @@
# generated by clj2nix-1.0.3 # generated by clj2nix-1.0.4
{ pkgs }: { pkgs }:
let repos = [ let repos = [
"https://repo.clojars.org/" "https://repo.clojars.org/"
"https://repo1.maven.org/" "https://repo1.maven.org/"
"http://central.maven.org/maven2/"
"http://oss.sonatype.org/content/repositories/releases/" "http://oss.sonatype.org/content/repositories/releases/"
"http://oss.sonatype.org/content/repositories/public/" "http://oss.sonatype.org/content/repositories/public/"
"http://repo.typesafe.com/typesafe/releases/" "http://repo.typesafe.com/typesafe/releases/"
]; ];
in rec { in rec {
makePaths = {extraClasspaths ? []}: (builtins.map (dep: if builtins.hasAttr "jar" dep.path then dep.path.jar else dep.path) packages) ++ extraClasspaths; 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;}); makeClasspaths = {extraClasspaths ? []}: builtins.concatStringsSep ":" (makePaths {inherit extraClasspaths;});
@ -43,8 +42,8 @@
inherit repos; inherit repos;
artifactId = "clojure"; artifactId = "clojure";
groupId = "org.clojure"; groupId = "org.clojure";
sha512 = "f7a6b207b1bcbb6523d32ecfdd3c8c25d4d0b0a59c78baf06cdc69ba3c21c5e96b5dac8e9efcb331efd94e10bccbb9b54fca62a4312309db65a1f9d89d9da3f4"; sha512 = "f28178179483531862afae13e246386f8fda081afa523d3c4ea3a083ab607d23575d38ecb9ec0ee7f4d65cbe39a119f680e6de4669bc9cf593aa92be0c61562b";
version = "1.10.0-beta5"; version = "1.10.1";
}; };
} }
@ -142,8 +141,8 @@
inherit repos; inherit repos;
artifactId = "fipp"; artifactId = "fipp";
groupId = "fipp"; groupId = "fipp";
sha512 = "155b5bb7045ac7c3a75c638e65464ca1fc90e5b4692328fc2da73b26792178fdbce5ab01ba0397e1986b6162b06b8904712d2c366f32ea43ea5fa2b454a526a5"; sha512 = "d844ab63d28cb5e31657cc38e574bbc7072a78419c997f25445ac6ea4a719904a4f4844b37e3f664a8d2e49bd38ff1006a9e8c6e63fb4e2f0a2322d6c2638275";
version = "0.6.14"; version = "0.6.17";
}; };
} }
@ -153,8 +152,8 @@
inherit repos; inherit repos;
artifactId = "clojurescript"; artifactId = "clojurescript";
groupId = "org.clojure"; groupId = "org.clojure";
sha512 = "4aec5abdd48aaf95f7a729e11d225a99d02caa3a4ddff3e9e4f8db80dea83ab70a4440691cb372562c8c16e73c2850b22806a2851df3849c852fddd49b57fc58"; sha512 = "b241959d6bd2ab659920965d301508226e26b3edcee469e4cd516cd4ed014b1a6b132c17ee7d96a8e66fe27fd01a74813ac8b85958d260f9fdbbeb4348d57ff1";
version = "1.10.439"; version = "1.10.520";
}; };
} }
@ -307,8 +306,8 @@
inherit repos; inherit repos;
artifactId = "core.rrb-vector"; artifactId = "core.rrb-vector";
groupId = "org.clojure"; groupId = "org.clojure";
sha512 = "5f737bf3ca3acf567b2b5c14b5761c8c38e94e1f6168f8cba9f46d2ae41334ae3d68d2c00663827a6214094d96b9767f6803f66ab44b0012c6f2e3c2997b1796"; sha512 = "4e410c4a90a869e98d5d69a8a6dd6427e9d77b70e1a2b54cf24baf23389f22e7a208375783c2fdc5c1a5acfb8511a5c5ed57ad1a946d5bffd203f453d90a6155";
version = "0.0.13"; version = "0.0.14";
}; };
} }
@ -351,8 +350,8 @@
inherit repos; inherit repos;
artifactId = "test.check"; artifactId = "test.check";
groupId = "org.clojure"; groupId = "org.clojure";
sha512 = "bf57571a9d31d50cf15b38134f4d7c34d03eb458bc62b30c7a1dbf233e300c67f1fda6673dbd1584a0497cf8875f972e6697e7f13d0c3e70e4254697b1b75cc6"; sha512 = "60fa3bd38c32cf193c573f1bd47c6abd7e7a5bb2fc7f7f9f97aa9dcd54d5e2eab9e351f5f83b01bb96b32811a9f2f5ab384c6b7b7ebbb6c86d1ad4f2789351bf";
version = "0.10.0-alpha3"; version = "0.10.0-alpha4";
}; };
} }

View File

@ -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;
}
-

View File

@ -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,

View File

@ -1,40 +1,49 @@
{ {
"name": "lumo-build-deps", "name": "lumo-build-deps",
"version": "1.9.0", "version": "1.10.1",
"dependencies": { "dependencies": {
"@babel/core": "^7.1.5", "@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-class-properties": "^7.1.0",
"@babel/plugin-proposal-object-rest-spread": "^7.0.0", "@babel/plugin-proposal-object-rest-spread": "^7.0.0",
"@babel/plugin-transform-runtime": "^7.1.0", "@babel/plugin-transform-runtime": "^7.1.0",
"@babel/preset-env": "^7.1.5", "@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", "@babel/runtime": "^7.1.5",
"async": "^3.1.1",
"async-retry": "^1.2.3", "async-retry": "^1.2.3",
"babel-core": "^7.0.0-bridge.0", "babel-core": "^7.0.0-bridge.0",
"babel-eslint": "10.0.1", "babel-eslint": "10.0.3",
"babel-jest": "^23.6.0", "babel-jest": "^25.1.0",
"babel-loader": "^8.0.4", "babel-loader": "^8.0.4",
"babel-plugin-transform-flow-strip-types": "6.22.0", "babel-plugin-transform-flow-strip-types": "6.22.0",
"chalk": "^2.4.1", "browserify": "^16.2.3",
"cross-env": "5.2.0", "chalk": "^3.0.0",
"colors": "^1.3.3",
"cross-env": "7.0.0",
"death": "^1.1.0", "death": "^1.1.0",
"flow-bin": "0.85.0", "flow-bin": "0.118.0",
"google-closure-compiler-js": "20170910.0.1", "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", "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", "node-fetch": "^2.2.1",
"paredit.js": "0.3.4", "paredit.js": "0.3.6",
"posix-getopt": "github:anmonteiro/node-getopt#master", "posix-getopt": "github:anmonteiro/node-getopt#master",
"prettier": "1.15.1", "prettier": "1.19.1",
"progress": "^2.0.0", "progress": "^2.0.0",
"read-pkg": "^4.0.1", "read-pkg": "^5.2.0",
"rollup": "0.67.0", "request": "^2.88.0",
"rollup-plugin-babel": "4.0.3", "rollup": "^1.9.0",
"rollup-plugin-babel-minify": "6.1.1", "rollup-plugin-babel": "^4.3.2",
"rollup-plugin-commonjs": "9.2.0", "rollup-plugin-babel-minify": "^9.1.1",
"rollup-plugin-node-resolve": "3.4.0", "rollup-plugin-commonjs": "^10.0.0",
"rollup-plugin-replace": "2.1.0", "rollup-plugin-node-resolve": "^5.0.0",
"rollup-plugin-replace": "^2.1.1",
"tar-stream": "^2.0.1",
"webpack": "^4.25.1", "webpack": "^4.25.1",
"webpack-cli": "^3.2.3", "webpack-cli": "^3.2.3",
"which-promise": "^1.0.0" "which-promise": "^1.0.0"

View File

@ -363,7 +363,7 @@ let
npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${stdenv.lib.optionalString production "--production"} rebuild npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${stdenv.lib.optionalString production "--production"} rebuild
if [ "''${dontNpmInstall-}" != "1" ] if [ "$dontNpmInstall" != "1" ]
then then
# NPM tries to download packages even when they already exist if npm-shrinkwrap is used. # NPM tries to download packages even when they already exist if npm-shrinkwrap is used.
rm -f npm-shrinkwrap.json rm -f npm-shrinkwrap.json

File diff suppressed because it is too large Load Diff

View File

@ -9130,7 +9130,7 @@ in
kanif = callPackage ../applications/networking/cluster/kanif { }; kanif = callPackage ../applications/networking/cluster/kanif { };
lumo = callPackage ../development/interpreters/clojurescript/lumo { lumo = callPackage ../development/interpreters/clojurescript/lumo {
nodejs = nodejs-10_x; nodejs = nodejs-13_x;
}; };
lxappearance = callPackage ../desktops/lxde/core/lxappearance { lxappearance = callPackage ../desktops/lxde/core/lxappearance {